Monday Oct 26, 2015

Boost Your OpenStack Environment with Oracle Solaris and SPARC

Oracle Solaris 11.3 is now available for download from the Oracle Technology Network, including a complete distribution of OpenStack based on the Juno release (Kilo coming soon!). Check out the press release that covers this announcement.

We often get customers being surprised that there is work being done to integrate Oracle Solaris into OpenStack. One of the design goals that we had when we started this integration project was to be able to expose all the enterprise ready features across compute, network and storage. In many respects, our customers have been running their own Infastructure as a Service offerings for years, taking advantage of Oracle Solaris Zones for low-overhead virtualization, ZFS for scalable and secure storage, and the wide range of security and availability features. With OpenStack becoming the industry standard for IaaS, it was a natural fit for Oracle Solaris, and we've been quickly able to provide drivers for the various OpenStack services and provide customers with the best of both worlds - agility of OpenStack with the enterprise security and reliability of Oracle Solaris.

And now we've begun the next journey of providing further differentiation with today's announcement of the next generation line up of servers based on the Oracle M7 SPARC processor. This presents us with the opportunity to expose better security and performance for Oracle software in the cloud, a direct result of Oracle's Software in Silicon strategy with features such as Silicon Secured Memory and Database Query Acceleration. No better platform in which to deploy OpenStack and scale for any enterprise workload.

Tuesday Oct 20, 2015

ANNOUNCING: Oracle OpenStack for Oracle Linux Release 2

Today we are announcing Oracle OpenStack for Oracle Linux Release 2. It is the first commercially available OpenStack deployment based on Docker containers without the need to install components individually with RPMs.

Based on the upstream Kilo release,  Oracle OpenStack for Oracle Linux R2 includes support for new modules such as Heat and Murano. The new release also uses MySQL Cluster to provide mission-critical Active/Active High Availability (HA), high performance and scalability for all OpenStack services.

Highlights of Oracle OpenStack for Oracle Linux Release 2:

  • Deployment and operation  are simplified compared to other vendors’ releases, by leveraging Docker-based containers for deployment and upgrades.
  • Based on upstream Kilo release
  • With integrated high availability features customers can now deploy MySQL in an Active/Active configuration, bringing enterprise database functionality to OpenStack cloud deployments.
  • Cinder drivers for Oracle All Flash FS Storage System and Oracle ZFS Storage Appliance are supported. Ceph Storage solutions are offered as a technology preview with Oracle Linux, utilizing the Ceph Object Gateway.
  • Integrated enterprise OpenStack cloud solution with a single line of support.
  • Oracle OpenStack for Oracle Linux is free to download and use. 
Read more:

If you are attending OOW15:

  • Visit Oracle OpenStack for Oracle Linux Demopod located at Oracle Linux, Oracle VM and OpenStack Showcase, Moscone South, Booth #121, Kiosk: SLX-010 to talk to product manager and engineers
  • Attend sessions: 
    • General Session: Oracle Linux-the State of the Penguin [GEN9479], Tuesday, Oct 27, 11:00 a.m. | Park Central-Metropolitan II
    • Maximize Your Private Cloud Investment with Oracle OpenStack for Oracle Linux [CON9574], Wednesday, Oct 28, 4:15 p.m. | Park Central-Metropolitan II
    • Rapid Private Cloud with Oracle VM and Oracle OpenStack for Oracle Linux [CON9576], Wednesday, Oct 28, 1:45 p.m. | Park Central-Metropolitan II
    • HOL: Getting Started with Oracle OpenStack for Oracle Linux [HOL10473], Monday, Oct 26, 12:30 p.m. | Hotel Nikko—Nikko Ballroom II (3rd Floor)

Connect with Oracle OpenStack for Oracle Linux via FacebookBlogYouTubeSlideShare

Tuesday Oct 06, 2015

Oracle OpenStack at Oracle OpenWorld 2015

Oracle OpenWorld 2015 is nearly here. We've got a great line up of OpenStack related sessions and hands on labs. If you're coming to the event and want to get up to speed on the benefits of OpenStack and the work that Oracle is doing across its product line to integrate with this cloud platform, make sure to check out the sessions below:

General Sessions

  • General Session: Oracle Linux-the State of the Penguin [GEN9479]
    Wim Coekaerts, Senior Vice President, Oracle
    Chris Kawalek, Sr. Principal Product Director, Oracle
    Tuesday, Oct 27, 11:00 a.m. | Park Central-Metropolitan II
  • General Session: Security, Speed, Simplicity - Hybrid Cloud Present & Future with Oracle Solaris [GEN8606]
    Markus Flierl, Vice President, Oracle
    Chris Riggin, Chief IT Architect, Verizon
    Tuesday, Oct 27, 11:00 a.m. | Intercontinental—Intercontinental C (5th Floor)

Conference Sessions

  • OpenStack and MySQL [CON2625]
    Matthew Lord, MySQL Product Manager, Oracle
    Thursday, Oct 29, 1:15 p.m. | Moscone South-250
  • Secure Private Cloud Done Right with Oracle and OpenStack [CON8313]
    Glynn Foster, Oracle Solaris Product Manager, Oracle
    Jeffrey Kiely, Principal Product Manager, Oracle
    Monday, Oct 26, 5:15 p.m. | Intercontinental-Intercontinental C (5th Floor)
  • Developer Cloud Made Simple: How to Build an OpenStack Developer Cloud [CON8337]
    Deepankar Bairagi, Principal Software Engineer, Oracle
    Liang Chen, Architect, Oracle Developer Studio, Oracle
    Nasser Nouri, Principal Software Engineer, Oracle
    Thursday, Oct 29, 9:30 a.m. | Intercontinental-Intercontinental B (5th Floor)
  • Maximize Your Private Cloud Investment with Oracle OpenStack for Oracle Linux [CON9574]
    Chris Kawalek, Sr. Principal Product Director, Oracle
    Dilip Modi, Principal Product Manager, Oracle OpenStack, Oracle
    Wednesday, Oct 28, 4:15 p.m. | Park Central-Metropolitan II
  • The DBaaS You’ve Been Waiting for-Oracle Database, Oracle Solaris, SPARC, and OpenStack [CON8354]
    Mehmet Kurtoglu, TT Group - BroadBand Database Operations Manager, TTNET
    Onder Ozbek, Product Manager, Oracle
    Eric Saxe, Director of Engineering, Oracle
    Thursday, Oct 29, 1:15 p.m. | Intercontinental-Intercontinental B (5th Floor)
  • Rapid Private Cloud with Oracle VM and Oracle OpenStack for Oracle Linux [CON9576]
    Michael Glasgow, Technical Product Manager, Oracle
    John Priest, Director, Oracle VM Product Management, Oracle
    Wednesday, Oct 28, 1:45 p.m. | Park Central-Metropolitan II
  • The Cutting Edge of Technology: Deploying a Secure Cloud with OpenStack [CON3225]
    Detlef Drewanz, Master Principal Sales Consultant, Oracle
    Eric Saxe, Director of Engineering, Oracle
    Thursday, Oct 29, 2:30 p.m. | Intercontinental-Intercontinental B (5th Floor)
  • Oracle Enterprise Manager? OpenStack? VSphere? Have It Your Way! [CON8059]
    Shrikanth Krupanandan, Director, Database administration, Fidelity Management & Research Company
    Scott Meadows, Director, Oracle
    Nirant Puntambekar, Senior Manager, Software Development, Oracle
    Thursday, Oct 29, 1:15 p.m. | Intercontinental-Sutter (5th Floor)
  • DevOps Done Right: Secure Virtualization with Oracle Solaris [CON8468]
    Duncan Hardie, Principal Product Manager, Oracle
    Fritz Wittwer, Service Engineer, Swisscom Schweiz AG
    Wednesday, Oct 28, 12:15 p.m. | Intercontinental-Intercontinental B (5th Floor)
  • MySQL Backup and Recovery-Use Cases and Solutions [CON2494]
    Mike Frank, Product Management Director, Oracle
    Monday, Oct 26, 12:15 p.m. | Moscone South-262

Hands on Labs

  • How to Build a Hadoop Cluster Using OpenStack [HOL1598]
    Ekine Akuiyibo, Software Engineer, Oracle
    Thursday, Oct 29, 9:30 a.m. | Hotel Nikko-Monterey
  • Oracle OpenStack for Oracle Solaris-Fast, Secure, and Compliant App Deployment [HOL10358]
    Scott Dickson, Principal Sales Engineer, Oracle
    Glynn Foster, Oracle Solaris Product Manager, Oracle
    Wednesday, Oct 28, 10:15 a.m. | Hotel Nikko-Nikko Ballroom I
  • Deploying a Multinode OpenStack Setup with a Preconfigured Oracle WebLogic Cluster [HOL6653]
    Sai spoorthy Padigi, Software Developer 1, Oracle
    Sandeep Shanbhag, Software Engineer, Oracle
    Wednesday, Oct 28, 8:45 a.m. | Hotel Nikko-Monterey
  • Oracle OpenStack for Oracle Solaris-a Complete Cloud Environment in Minutes [HOL10357]
    Scott Dickson, Principal Sales Engineer, Oracle
    Tuesday, Oct 27, 4:00 p.m. | Hotel Nikko-Nikko Ballroom I
  • In 60 Minutes: Build a Storage Cloud That Is Sustainable, Low Cost, and Secure [HOL2925]
    Donna Harland, Principal Product Manager, Oracle
    Joseph Lampitt, Solution Specialist, Oracle
    Hanli Ren, Senior Software Engineer, Oracle
    Adam Zhang, Principle Software Engineer, Oracle
    Tuesday, Oct 27, 8:45 a.m. | Hotel Nikko-Monterey
  • Build Your Own Cloud Environment with Oracle Solaris 11 RAD and REST [HOL6663]
    Gary Wang, Manager, Oracle
    Yu Wang, Software Engineer, Oracle
    Xiao-song Zhu, Principal Software Engineer, Oracle
    Monday, Oct 26, 3:30 p.m. | Hotel Nikko-Nikko Ballroom I
You can see all the session abstracts, along with all the rest of the Oracle OpenWorld 2015 content, at the content catalog. Looking forward to you joining us for a great event!

Friday Oct 02, 2015

Friday Spotlight: Oracle Linux, Virtualization, and OpenStack Showcase at OOW15

Happy Friday everyone!

Today's topic will be about our amazing showcase at Oracle OpenWorld, Oct 25-29. The Oracle Linux, Oracle VM and OpenStack showcase is located in Moscone South, booth #121, featuring Oracle product demos and Partners.  In past years, our showcase had been a great location to see demos of Oracle Linux and Oracle VM as well as solutions from our Partners. This year, it is expanded with Oracle OpenStack product demos and a theatre. Here's a list of the Oracle and Partner kiosks, don't forget to visit and talk to one of the experts that can help you out with your questions:

  • SLX-007 - Access Applications Securely with Oracle Secure Global Desktop
  • SLX-008 - Oracle VM VirtualBox
  • SLX-009 - Enhance Security and Reduce Costs Using Zero-Downtime Updates with Oracle Linux and Ksplice
  • SLX-010 - Oracle OpenStack for Oracle Linux  -Enterprise Ready
  • SLX-011 - Oracle Linux for the Cloud-Enabled Data Center
  • SLX-012  - Develop and Distribute Containerized Applications with Oracle Linux
  • SLX-013 - Oracle VM Server for x86
  • SLX-014 - Oracle VM Server for SPARC  

The table below lists the featured Partners and their solutions:

The Oracle Linux, Oracle VM, and OpenStack Showcase will also include an in-booth theatre for Partners and Oracle experts to share their solutions to customers and partners, alike. For the latest listing of theatre sessions currently confirmed please refer to the Schedule Builder

Don't forget to visit us at Moscone South #121, we will giveaway some great software (keeping it as a surprise- you need to come and see) and be in the drawing for our famous penguins and and Intel Mini PC - NUC appliance where you can use it for set top boxes to video surveillance, and home entertainment systems to digital signage, it is one appliance that can do it all.

Register today.

Wednesday Sep 09, 2015

Managing Nova's image cache

If you've deployed an OpenStack environment for a while, over time you'll notice that your image cache continues to grow as the images installed into VMs are transferred from Glance over to each of the Nova compute nodes. Dave Miner, who's been lead on setting up an internal OpenStack cloud for our Oracle Solaris engineering organization, has covered some remediation steps in his blog:

Configuring and Managing OpenStack Nova's Image Cache

In essence his solution is to provide a periodic SMF service to routinely clean up the images from the cache. Check it out!

Tuesday Aug 11, 2015

Chat to us at OpenStack Silicon Valley 2015 Event!

Oracle is sponsoring the upcoming OpenStack Silicon Valley 2015 event in a couple of weeks time. We're looking forward to participating in the discussions, and we will have a sponsored session with Markus Flierl, VP of Solaris engineering (not currently posted on the schedule).

We've made some pretty great progress in OpenStack over the past year across all of the software and hardware portfolios that I mentioned in my recent OpenStack Silicon Valley blog post. The IT industry is moving fast and with the recent interest in containers, agile development and microservices, we're excited to see the standardization through recent efforts including the Open Container Initiative and our announcement to include Docker into Oracle Solaris. We'd love to chat to you about what we're doing with OpenStack, our Software in Silicon strategy at Oracle and some of the trends we're seeing in our customer base, at our booth E4. Come join us!

Monday Aug 10, 2015

Swift Object Storage with ZFS Storage Appliance

Jim Kremer has written a new blog that shows you how to configure Swift to take advantage of an Oracle ZFS Storage Appliance. Jim walks step by step how to configure OpenStack Swift into a highly available cluster using an Oracle ZFS Storage Appliance as the backend storage over NFSv4.

Jim summarizes the unique benefits that using a ZFS Storage Appliance brings to OpenStack environments over a typical Swift deployment:

  • Swift data will be stored on a ZFS filesystem as a backing store instead of XFS.
  • Storage will be accessed via NFS v4. Solaris NFS supports extended attributes and locking so it works great with Swift.
  • Each Solaris Swift instance will run the account server, container server and object server as well as the proxy server instead of having separate proxy servers and storage servers.
  • All of the Solaris Swift instances can access and share the same backend storage systems.
  • All the Solaris Swift servers will use the exact same Swift ring configuration.
  • Disaster recovery is supported with the built in remote replication available on the ZFS Storage Appliance.
  • Only one copy of data needs to be stored since ZFS supports different levels of mirroring as well as raidz.
  • ZFS automatically caches hot data in SSDs or in DRAM to increase reading hot blocks of data. A good example of such a workload is booting many VMs in a cloud computing environment.

For more information, see Solaris Swift using ZFS Storage Appliance

Tuesday Jul 28, 2015

Migrating Neutron Database from sqlite to MySQL for Oracle OpenStack for Oracle Solaris

Many OpenStack development environments use sqlite as a backend to store data. However in a production environment MySQL is widely used. Oracle also recommends to use MySQL for its OpenStack services. For many of the OpenStack services (nova, cinder, neutron...) sqlite is the default backend. Oracle OpenStack for Oracle Solaris users may want to migrate their backend database from sqlite to MySQL.

The general idea is to dump the sqlite database. Translate the dumped SQL statements so that they are compatible with MySQL. Stop neutron services. Create MySQL database. Replay the modified SQL statements in the MySQL database.

The details listed here are for the Juno release (integrated in Oracle Solaris 11.2 SRU 10.5 or newer) and Neutron is taken as an example use case.

Migrating neutron database from sqlite to MySQL

If not already installed, install MySQL

# pkg install --accept mysql-55 mysql-55/client python-mysql

Start the MySQL service
# svcadm enable -rs mysql

NOTE: If MySQL was already installed and running, then before running the next step double check that neutron database on MySQL is either not yet created or it is empty. The next step will drop the existing MySQL Neutron database if it exists on MySQL and create it. If the MySQL Neutron database is not empty then stop at this point. The following steps are limited to the case where MySQL neutron database and newly created/recreated.

Create Neutron database on MySQL

mysql -u root -p<<EOF
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
IDENTIFIED BY 'neutron';

Enter the root password when prompted

Identify that the Neutron services are online: # svcs -a | grep neutron | grep online | awk '{print $3}' \ > /tmp/neutron-svc
Disable the Neutron services: # for item in `cat /tmp/neutron-svc`; do svcadm disable $item; done
Make a backup of Neutron sqlite database:
# cp /var/lib/neutron/neutron.sqlite \
Get the db dump of Neutron from sqlite:
# /usr/bin/sqlite3 /var/lib/neutron/neutron.sqlite .dump \
       > /tmp/neutron-sqlite.sql

The following steps are run to create a neutron-mysql.sql file which will be compatible with MySQL database engine.

Suppress foreign key checks during create table/index
# echo 'SET foreign_key_checks = 0;' > /tmp/neutron-sqlite-schema.sql

Dump sqlite schema to a file
# /usr/bin/sqlite3 /var/lib/neutron/neutron.sqlite .dump  | \  grep -v 'INSERT INTO' >> /tmp/neutron-sqlite-schema.sql


Remove BEGIN/COMMIT/PRAGMA lines from the file.
(Oracle Solaris sed does not support -i option and hence redireciting to a new file 
 and then renaming it to original file)
# sed '/BEGIN TRANSACTION;/d; /COMMIT;/d; /PRAGMA/d' \ /tmp/neutron-sqlite-schema.sql \ > /tmp/ \ && mv /tmp/ \ /tmp/neutron-sqlite-schema.sql

Replace some SQL identifiers that are enclosed in double quotes, 
to be enclosed in back quotes
e.g. "limit to `limit`
# for item in binary blob group key limit type; do sed "s/\"$item\"/\`$item\`/g" \ /tmp/neutron-sqlite-schema.sql > /tmp/ \ && mv /tmp/ \ /tmp/neutron-sqlite-schema.sql; done

Enable foreign key checks at the end of the file

# echo 'SET foreign_key_checks = 1;' >> /tmp/neutron-sqlite-schema.sql 
Dump the data alone (INSERT statements) into another file

# /usr/bin/sqlite3 /var/lib/neutron/neutron.sqlite .dump \
| grep 'INSERT INTO' > /tmp/neutron-sqlite-data.sql
In INSERT statements table names are in double quotes in sqlite,
 but in mysql there should not be double quotes

# sed 's/INSERT INTO \"\(.*\)\"/INSERT INTO \1/g' \
/tmp/neutron-sqlite-data.sql > /tmp/ \
 && mv /tmp/ /tmp/neutron-sqlite-data.sql

Concat schema and data files to neutron-mysql.sql

# cat /tmp/neutron-sqlite-schema.sql \
/tmp/neutron-sqlite-data.sql > /tmp/neutron-mysql.sql 
Populate Neutron database in MySQL: # mysql neutron < /tmp/neutron-mysql.sql

Specify the connection under [database] section of /etc/neutron/neutron.conf file:

The connection string format is as follows:
connection = mysql://%SERVICE_USER%:%SERVICE_PASSWORD%@hostname/neutron 
For example:
connection = mysql://neutron:neutron@localhost/neutron
Enable the Neutron services:
# for item in `cat /tmp/neutron-svc`; do svcadm enable -rs $item; done 
# rm -f /var/lib/neutron/neutron.sqlite.ORIG \ /tmp/neutron-sqlite-schema.sql \ /tmp/neutron-sqlite-data.sql \   /tmp/neutron-mysql.sql 

Details about translating SQL statements to be compatible with MySQL

NOTE: /tmp/neutron-sqlite-schema.sql will have the Neutron sqlite database schema as SQL statements and /tmp/neutron-sqlite-data.sql will have the data in Neutron sqlite database which can be replayed to recreate the database. The sql statements in neutron-sqlite-schema.sql and neutron-sqlite-data.sql are to be MySQL compatible so that it can be replayed on MySQL Neutron database. A set of sed commands as listed above are used to create MySQL compatible SQL statements. The following text provides detailed information about the differences between sqlite and MySQL that are to be dealt with.

There are some differences in the way sqlite and MySQL expect the SQL statements to be which are as shown in the table below:

Reserved words are in double quotes: 
e.g "blob", "type", "key", 
"group", "binary", "limit"
Reserved words are in back quotes: 
e.g `blob`, `type`, `key`, 
`group`, `binary`, `limit`
Table name in Insert Statement 
are in quotes 
INSERT INTO "alembic_version"
Table name in Insert Statement 
are without quotes 
INSERT INTO alembic_version

Apart from the above the following requirements are to be met before running neutron.sql on MySQL:

The lines containing PRAGMA, 'BEGIN TRANSACTION', 'COMMIT' are to be removed from the file.


The CREATE TABLE statements with FOREIGN KEY references are to be rearranged (or ordered) in such a way that the TABLE name that is REFERENCED has to be created earlier than the table that is REFERRING it. The Indices on tables which are referenced by FOREIGN KEY statements are created soon after those tables are created. The last two requirements are not necessary if FOREIGN KEY check is disabled. Hence foreign_key_checks is SET to 0 at the beginning of neutron-mysql.sql and enabled again by setting foreign_key_checks to 1 before the INSERT statements in neutron-mysql.sql file.

New Oracle University course for Oracle OpenStack!

A new Oracle University course is now available: OpenStack Administration Using Oracle Solaris (Ed 1). This is a great way to get yourself up to speed on OpenStack, especially if you're thinking about getting a proof of concept, development or test, or even production environments online!

The course is based on OpenStack Juno in Oracle Solaris 11.2 SRU 10.5. Through a series of guided hands-on labs you will learn to:

  • Describe the OpenStack Framework.
  • Configure a Single-Node OpenStack Setup.
  • Configure a Multi-Node OpenStack Setup.
  • Administer OpenStack Resources Using the Horizon UI.
  • Manage Virtual Machine Instances.
  • Troubleshoot OpenStack.

The course is 3 days long and we recommend that you have taken a previous Oracle Solaris 11 administration course. This is an excellent introduction to OpenStack that you'll not want to miss!

Thursday Jul 23, 2015

OpenStack Summit Tokyo - Voting Begins!

It's voting time! The next OpenStack Summit will be held in Tokyo, October 27-30.

The Oracle OpenStack team have submitted a few papers for the summit that can now be voted for:

If you'd like to see these talks, please Vote Now!

Monday Jul 20, 2015

OpenStack and Hadoop

It's always interesting to see how technologies get tied together in the industry. Orgad Kimchi from the Oracle Solaris ISV engineering group has blogged about the combination of OpenStack and Hadoop. Hadoop is an open source project run by the Apache Foundation that provided distributed storage and compute for large data sets - in essence, the very heart of big data. In this technical How To, Orgad shows how to set up a multi-node Hadoop cluster using OpenStack by creating a pre-configured Unified Archives that can be uploaded to the Glance Image Repository for deployment across VMs created with Nova.

Check out: How to Build a Hadoop 2.6 Cluster Using Oracle OpenStack

Sunday Jul 19, 2015

Flat networks and fixed IPs with OpenStack Juno

Girish blogged previously on the work that we've been doing to support new features with the Solaris integrations into the Neutron OpenStack networking project. One of these features provides a flat network topology, allowing administrators to be able to plumb VMs created through an OpenStack environment directly into an existing network infrastructure. This essentially gives administrators a choice between a more secure, dynamic network using either VLAN or VXLAN and a pool of floating IP addresses, or an untagged static or 'flat' network with a set of allocated fixed IP addresses.

Scott Dickson has blogged about flat networks, along with the steps required to set up a flat network with OpenStack, using our driver integration into Neutron based on Elastic Virtual Switch. Check it out!

Sunday Jul 12, 2015

Upgrading the Solaris engineering OpenStack Cloud

Internally we've set up an OpenStack cloud environment for the developers of Solaris as a self-service Infrastructure as a Service solution. We've been running a similar service for years called LRT, or Lab Reservation Tool, that allows developers to book time on systems in our lab. Dave Miner has blogged previously about this work to set up the OpenStack cloud, initially based on Havana:

While the OpenStack team were off building the tools to make an upgrade painless, Dave was patiently waiting (and filing bugs) before he could upgrade the cloud to Juno. With the tooling in place, he had the green light. Check out Dave's experiences with his latest post: Upgrading Solaris Engineering's OpenStack Cloud.

As a reminder, OpenStack Juno is now in Oracle Solaris 11.2 SRU 10.5 onwards and also in the Oracle Solaris 11.3 Beta release we pushed out last week with some great new OpenStack features that we've added to our drivers.

Thursday Jul 09, 2015

PRESENTATION: Oracle OpenStack for Oracle Linux at OpenStack Summit Session

In this blog, we wanted to share a presentation given at OpenStack Summit in Vancouver early in May. We have just setup our account and published our first presentation there.  

If you want to see more of these presentations, follow us at our Oracle OpenStack SlideShare space.

Tuesday Jul 07, 2015

Upgrading OpenStack from Havana to Juno

Upgrading from Havana to Juno - Under the Covers

Upgrade from one OpenStack release to the next is a daunting task.  Experienced OpenStack operators usually only do so reluctantly.  After all, it took days (for some - weeks) to get OpenStack to stand up correctly in the first place and now they want to upgrade it?  At the last OpenStack Summit in Vancouver, it wasn't uncommon to hear about companies with large clouds still running Havana.  Moving forward to Icehouse, Juno or Kilo was to be an epic undertaking with lots of downtime for users and lots of frustration for operators.

In Solaris engineering, not only are we dealing with upgrading from Havana but we actually skipped Icehouse entirely.  This means we had to move people from Havana directly to Juno which isn't officially supported upstream.   Upstream only supports moving from X to X+1 so we were mostly on our own for this.  Luckily, the Juno code base for each component carried the database starting point from Havana and carried SQLAlchemy-Migrate scripts through Icehouse to Juno.  This ends up being a huge headache saver because 'component-manage db sync' will simply do the right thing and convert the schema automatically.

We created new SMF services for each component to handle any of the upgrade duties.  Each service does comparable tasks:  prepare the database for migration and update configuration files for Juno.  The component-upgrade service is now a dependency for each other component-* service.  This way,  Juno versions of OpenStack software won't run until after the upgrade service completes.

The Databases

For the most part, migration of the databases from Havana to Juno is straight-forward.  Since the components deliver the appropriate SQLAlchemy-Migrate scripts, we can simply enable the proper component-db SMF service and let the 'db sync' calls handle the database.   We did hit a few snags along the way, however.  Migration of SQLite-backed databases became increasingly error-prone as we worked on Juno.  Upstream, there's a strong push to do away with SQLite support entirely.  We decided that we would not support migration of SQLite databases explicitly.  That is, if an operator chose to run one or more of the components with SQLite, we would try to upgrade the database automatically for them but there were no guarantees.  It's well documented both in Oracle's documentation and the upstream documentation that SQLite isn't robust enough to handle what OpenStack needs for throughput to the database.

The second major snag we hit was the forced change to 'charset = utf8' in Glance 2014.2.2 for MySQL.  This required our upgrade SMF services to introspect into each component's configuration files, extract their SQLAlchemy connection string, and, if MySQL, convert all the databases to use utf8.  With these checks done and any MySQL databases converted, our databases could migrate cleanly and be ready for Juno

The Configuration Files

Each component's configuration files had to examined to look for deprecations or changes from Havana to Juno.  We started off simply examining the default configuration files for Juno 2014.2.2 and looking for 'deprecated'.  A simple Python dictionary was created to contain the renames and deprecations for Juno.  We then examine each configuration file and, if necessary, move configuration names and values to the proper place.  As an example, the Havana components typically set DEFAULT.sql_connection = <SQLAlchemy Connection String>.  In Juno, those were all changed to database.connection = <SQLAlchemy Connection String> so we had to make sure the upgraded configuration file for Juno brought the new variable along including the rename.

The Safety Net

"Change configuration values automatically?!"
"Update database character sets?!!"
"Are you CRAZY?!  You can't DO that!"

Oh, but remember that you're running Solaris where we have the best enterprise OS tools.  Upgrading to Juno will create a new boot environment for operators.  For anyone unfamiliar with boot environments, please examine the awesome magic here.  What this means is an upgrade to Juno is completely safe.  The Havana deployment and all of the instances, databases and configurations will be saved in the current BE while Juno will be installed into a brand new BE for you.  The new BE activates on the next boot where the upgrade process will happen automatically.  If the upgrade goes sideways, the old BE is calmly sitting there ready to called back into action.

Hopefully this takes the hand-wringing out of upgrading OpenStack for operators running Solaris.  OpenStack is complicated enough as it is without also incurring additional headaches around upgrading from one release to the next.   


Oracle OpenStack is cloud management software that provides customers an enterprise-grade solution to deploy and manage their entire IT environment. Customers can rapidly deploy Oracle and third-party applications across shared compute, network, and storage resources with ease, with end-to-end enterprise-class support. For more information, see here.


« November 2015