並行稼働による Red Hat Enterprise Linux OpenStack Platform 6 (Juno) へのクラウド移行
1. 並行稼働によるクラウド移行
-
OpenStack のデプロイ: 実習環境 (手動設定) (実習を目的とした手動のインストール)
-
OpenStack のデプロイ: 概念実証向けの環境 (Packstack) (Packstack を使用して all-in-one 環境をインストールする手順)
-
OpenStack のデプロイメント: エンタープライズ環境 (Red Hat Enterprise Linux OpenStack Platform インストーラー)
2.RHEL 6 環境におけるアップグレード前のタスク
-
アプリケーションデータ OpenStack の全アプリケーションデータ (MySQL データベースストレージ、Block Storage のボリューム、イメージ) は専用のローカルデバイス、ファイルシステム、またはリモートサーバーによって提供されるボリュームに保管する必要があります。RHEL 7 をインストールする際に、このデータが消去または上書きされないようにします。アップグレード後にデータを保持できない場合には、最初にバックアップしておいてください。NFS 共有を別のシステムからマウントして、該当するディレクトリーをコピーする方法が簡単な解決策です。
#mkdir -p BACKUP/var/lib/{glance,nova,mysql}/#rsync -a /var/lib/mysql/ BACKUP/var/lib/mysql/#rsync -a /var/lib/glance/ BACKUP/var/lib/glance/#rsync -a /var/lib/nova/ BACKUP/var/lib/nova/注記
本記事ではこれ以降、バックアップディレクトリーのマウント先をバックアップと呼びます。 -
設定ファイル OpenStack 設定ファイルの完全なバックアップがあることを確認してください。これには、
/etc内の全ファイルと、/rootまたはローカルにあるユーザーのホームディレクトリーに保管されている認証情報 (Identity 用、MySQL 用など) が含まれます。各サービスで新規追加/更新された設定オプションや非推奨となった設定オプションについての詳しい説明は、https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux_OpenStack_Platform/ で 『Configuration Reference』 を参照してください。 -
ホスト名およびアドレス アップグレードのプロセスを簡素化するために、以下の手順では、アップグレード対象の RHEL 6 ホストと同じ IP アドレスとホスト名で新しい RHEL 7 ホストを設定する必要があります。
-
RHEL 6 ホストに新しい IP アドレスを割り当てて、元の IP アドレスを新しい RHEL 7 ホストが使用できるようにすることが可能です。こうすることにより、既存のコントローラー上の設定ファイルおよびその他のデータへのアクセスが確保されますが、アップグレード対象ホストを保持した状態で新規ホストをセットアップするための追加のハードウェアを用意する必要はありません。
-
RHEL 6 ホストに RHEL 7 のインストールを行うことができます。この方法では、追加のハードウェアは必要ありませんが、設定ファイルおよびその他のデータを確実にバックアップしておく必要があります。
-
-
Cinder LVM バックエンドを使用している場合 アップグレードを開始する前に Block Storage ボリュームを切断してください。RHEL 7 では、RHEL 6 で実装されていた TGT バックエンドに代わって LIO iSCSI バックエンドが導入されました。この変更のため、iSCSI ターゲットの設定は、アップグレード後には維持されません。
注記
Red Hat Enterprise Linux OpenStack インストーラーを使用して、自動応答ファイルでインストールを行う場合には、ボリュームをオフラインにするだけでは十分ではありません。マッピングでローカルの Block Storage LVM を保護するように設定する必要があります。
3. コンテンツ配信ネットワーク (CDN) チャンネルの設定
注記
-
Red Hat OpenStack 1.0 (Essex) -- rhel-server-ost-6-preview-rpms
-
Red Hat OpenStack 2.1 (Folsom) -- rhel-server-ost-6-folsom-rpms
-
Red Hat Enterprise Linux OpenStack Platform 3 (Grizzly) -- rhel-server-ost-6-3-rpms
-
Red Hat Enterprise Linux OpenStack Platform 4 Beta (Havana) -- rhel-6-server-openstack-beta-rpms
-
Red Hat Enterprise Linux OpenStack Platform 4 (Havana) -- rhel-6-server-openstack-4.0-rpms
-
Red Hat Enterprise Linux OpenStack Platform 5 (Icehouse) -- rhel-7-server-openstack-5.0-rpms
注記
#subscription-manager repos \--enable=rhel-7-server-rh-common-rpms
3.1. コンテンツ配信ネットワーク (CDN) チャンネル
#subscription-manager repos --enable=[reponame]
#subscription-manager repos --disable=[reponame]
以下の表には、Red Hat Enterprise Linux 7 のチャンネルについてまとめています。
表 1. 必須チャンネル
| チャンネル | リポジトリー名 |
|---|---|
| Red Hat Enterprise Linux 7 Server (RPMS) |
rhel-7-server-rpms
|
| Red Hat OpenStack 6.0 for Server 7 (RPMS) |
rhel-7-server-openstack-6.0-rpms
|
| Red Hat Enterprise Linux 7 Server - RH Common (RPMs) |
rhel-7-server-rh-common-rpms
|
表 2. 任意チャンネル
| チャンネル | リポジトリー名 |
|---|---|
| Red Hat Enterprise Linux 7 Server - Optional |
rhel-7-server-optional-rpms
|
以下の表には、Red Hat Enterprise Linux OpenStack Platform インストーラーについてまとめています。
表 3. 必須チャンネル
| チャンネル | リポジトリー名 |
|---|---|
| Foreman-RHEL-7 |
rhel-7-server-openstack-6.0-installer-rpms
|
| Red Hat Enterprise Linux 7 Server (RPMS) |
rhel-7-server-rpms
|
| Red Hat Software Collections RPMs for Red Hat Enterprise Linux 7 Server |
rhel-server-rhscl-7-rpms
|
| Images on CDN (任意) |
rhel-7-server-openstack-6.0-files
|
以下の表には、Red Hat Enterprise Linux OpenStack Platform 6 を正常に機能させるために無効にする必要のあるチャンネルをまとめています。
表 4. 無効にするチャンネル
| チャンネル | リポジトリー名 |
|---|---|
| Red Hat CloudForms Management Engine |
"cf-me-*"
|
| Red Hat CloudForms Tools for RHEL 6 |
"rhel-6-server-cf-*"
|
| Red Hat Enterprise Virtualization |
"rhel-6-server-rhev*"
|
| Red Hat Enterprise Linux 6 Server - Extended Update Support |
"*-eus-rpms"
|
4. コントローラーノードのアップグレード
手順 1. コントローラーノードのアップグレード
-
RHEL 7 コントローラーノードのデプロイ
-
新しいサーバーセットに RHEL 7 をデプロイし、必須パッケージをインストールすることにより基本的なシステム設定 (インターフェースの定義、ストレージの接続など) を復元します。
#yum install -y \openstack-selinux \openvswitch -
openvswitch サービスを有効にします。
#systemctl enable openvswitch#systemctl start openvswitch -
Block Storage Service に LVM バックエンドを使用している場合には、LIO サブシステムを管理するための targetcli パッケージもインストールして有効にする必要があります。
#yum -y install targetcli#systemctl enable target#systemctl start target -
対象の Block Storage が含まれている LVM ボリュームグループを有効にします。
#vgchange -ay
-
-
ネットワーク設定の復元
-
ifcfg-br-exなどの OpenStack Networking の設定に必要な/etc/sysconfig/network-scriptsファイルを復元します。#cp BACKUP/etc/sysconfig/network-scripts/ifcfg-br-ex \/etc/sysconfig/network-scripts/ifcfg-br-ex -
インターフェースを有効にします。
#ifup br-ex
-
-
iptables ルールの復元
-
RHEL 6 の
/etc/sysconfig/iptablesを RHEL 7 ホストの/etc/sysconfig/iptablesにコピーして、RHEL6 コントローラーノードで定義されていたローカルのファイアウォール設定を RHEL7 コントローラーノードにインポートします。 -
iptables-servicesパッケージをインストールします。#yum install -y iptables-services -
iptablesサービスを停止します。#systemctl stop iptables -
バックアップから
iptablesの設定を復元します。#cp BACKUP/etc/sysconfig/iptables /etc/sysconfig/iptables -
iptablesサービスを有効にします。#systemctl enable iptables#systemctl start iptables
-
-
rabbitmq-serverのインストール-
rabbitmq-serverパッケージをインストールします。#yum install -y rabbitmq-server -
rabbitmqの設定ファイルを RHEL6 コントローラーから RHEL7 コントローラーの/etc/rabbitmqに移行します。#rsync -a BACKUP/etc/rabbitmq/ /etc/rabbitmq -
rabbitmq-serverサービスを有効にします。#systemctl enable rabbitmq-server#systemctl start rabbitmq-server
-
-
mariadb-serverのインストール-
mariadb-serverパッケージをインストールします。#yum install -y mariadb-server -
/var/lib/mysqlディレクトリーを再マウント (および/etc/fstabを適切に変更) するか、バックアップから/var/lib/mysqlの内容を復元します。#rsync -a BACKUP/var/lib/mysql/ /var/lib/mysql/ -
/root/.my.confファイルが存在する場合には、バックアップからそのファイルを復元します。#cp BACKUP/root/.my.cnf /root/.my.cnf -
/var/lib/mysqlの所有権を正しく設定します。#chown -R mysql:mysql /var/lib/mysql#fixfiles restore /var/lib/mysql/ -
mariadbサービスを有効にします。#systemctl enable mariadb#systemctl start mariadb -
必要なデータベースの更新を行います。
#mysql_upgrademysqlコマンドラインクライアントを使用してデータベースサーバーに接続できることを確認します。正常に接続できる場合には、以下のような出力が表示されます。#mysqlWelcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 419 Server version: 5.5.40-MariaDB MariaDB Server Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
-
-
Identity Service のインストール
-
openstack-keystoneパッケージをインストールします。#yum install -y openstack-keystone -
RHEL6 コントローラーから RHEL7 コントローラーの
/etc/keystoneに Identity Service の設定ファイルをコピーします。#rsync -a BACKUP/etc/keystone/ /etc/keystone/ -
Identity Service のデータベーススキーマをアップグレードします。
#sudo -u keystone keystone-manage db_sync -
Identity Service を有効にします。
#systemctl enable openstack-keystone#systemctl start openstack-keystone -
Identity Service の管理者の認証情報を読み込み、Identity が正常に稼働していることを確認します。
#. /root/keystonerc_admin#keystone endpoint-list
注記
以下のステップは、Identity Service の認証情報がお使いの環境に読み込まれていることを前提としています。 -
-
Block Storage Service のインストール
-
openstack-cinderパッケージをインストールします。#yum install -y openstack-cinder -
RHEL6 コントローラーから RHEL7 コントローラーの
/etc/cinderに Block Storage の設定ファイルをコピーします。#rsync -a BACKUP/etc/cinder/ /etc/cinder/注記
LVM バックエンドを使用している場合には、cinder.confが新しい LIO ドライバーを使用するように更新する必要があります。/etc/cinder/cinder.confを以下のように編集します。[DEFAULT]
iscsi_helper=lioadm -
Block Storage のデータベーススキーマをアップグレードします。
#sudo -u cinder cinder-manage db sync -
Block Storage Service を有効にします。
#systemctl enable openstack-cinder-{api,volume,scheduler}#systemctl start openstack-cinder-{api,volume,scheduler} -
Block Storage API が正常に応答し、ボリュームが使用可能であることを確認します。
#cinder list
-
-
Image Service のインストール
-
openstack-glanceパッケージをインストールします。#yum install -y openstack-glance -
RHEL6 コントローラーから RHEL7 コントローラーの
/etc/glanceに Identity Service の設定ファイルをコピーします。#rsync -a BACKUP/etc/glance/ /etc/glance/ -
Image Service のデータベーススキーマをアップグレードします。
#sudo -u glance glance-manage db sync -
Image Service のログとデータのディレクトリーの所有権を正しく設定します。
#chown -R glance:glance /var/lib/glance#fixfiles restore /var/lib/glance -
Image Service を有効にします。
#systemctl enable openstack-glance-{api,registry}#systemctl start openstack-glance-{api,registry} -
Image Service が正常に応答することを確認します。
#glance image-list
-
-
OpenStack Networking のインストール
-
openstack-neutronパッケージと、使用する OpenStack Networking プラグイン (openstack-neutron-ml2、openstack-neutron-openvswitchなど) のパッケージをインストールします。#yum install -y openstack-neutron{,-ml2,-openvswitch} -
RHEL6 コントローラーから RHEL7 コントローラーの
/etc/neutronに OpenStack Networking の設定ファイルをコピーします。#rsync -a BACKUP/etc/neutron/ /etc/neutron/注記
システム上の OpenStack Networking の UID および GID が異なる可能性があるので、これらのファイルのパーミッションを正しく設定します。#find /etc/neutron \! -group root -exec chgrp neutron {} \; -
OpenStack Networking のデータベーススキーマをアップグレードします。
#neutron-db-manage --config-file /etc/neutron/neutron.conf \--config-file /etc/neutron/plugin.ini \upgrade head -
OpenStack Networking Service を有効にします。
#systemctl enable neutron-{dhcp-agent,l3-agent,metadata-agent,openvswitch-agent,server}#systemctl start neutron-{dhcp-agent,l3-agent,metadata-agent,openvswitch-agent,server}LBaaS や VPNaaS などをサポートするには、追加の Neutron エージェントを有効にする必要がある場合があります。 -
OpenStack Networking エージェントが起動されて、正常に応答することを確認します。
#neutron agent-list上記のコマンドの出力には、コンピュートホスト上の openvswitch エージェントの一覧が表示されるはずです。+--------------------------------------+--------------------+------------------+-------+----------------+---------------------------+ | id | agent_type | host | alive | admin_state_up | binary | +--------------------------------------+--------------------+------------------+-------+----------------+---------------------------+ . . . | 15736a0a-acc2-4227-b0e3-3bb720351870 | Open vSwitch agent | compute-1.local | :-) | True | neutron-openvswitch-agent | | f87cc391-5263-4808-bf80-8b7d3caf8716 | Open vSwitch agent | compute-0.local | :-) | True | neutron-openvswitch-agent | +--------------------------------------+--------------------+------------------+-------+----------------+---------------------------+
aliveのコラムに:-)と表示されるはずです。
-
-
Compute のインストール
-
openstack-novaパッケージをインストールします。#yum install -y openstack-nova -
RHEL6 コントローラーから RHEL7 コントローラーの
/etc/novaに Compute の設定ファイルをコピーします。#rsync -a BACKUP/etc/nova/ /etc/nova/ -
nova.confを編集して、「upgrade-levels」のセクションに以下を追加して、Compute API を Icehouse と互換性のあるバージョンに上限設定します。[upgrade-levels]
compute = 3.23.1conductor = 3.23.1注記
この設定は、Juno コントローラーを Icehouse のコンピュートノードと相互運用するには必須です。 -
Compute のデータベーススキーマをアップグレードします。
#sudo -u nova nova-manage db sync -
コントローラー上の Compute Service を有効にします。
#systemctl enable openstack-nova-{api,cert,conductor,consoleauth,novncproxy,scheduler}#systemctl start openstack-nova-{api,cert,conductor,consoleauth,novncproxy,scheduler} -
Compute Service が正常に起動していることを確認します。
#nova service-listコントローラー上のサービスとコンピュートノード上で実行されているnova-computeサービスの両方が表示されるはずです。+----+------------------+------------------+----------+---------+-------+----------------------------+-----------------+ | Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +----+------------------+------------------+----------+---------+-------+----------------------------+-----------------+ . . . | 5 | nova-compute | compute-0.local | nova | enabled | up | 2015-01-16T14:23:48.000000 | - | | 6 | nova-compute | compute-1.local | nova | enabled | up | 2015-01-16T14:23:43.000000 | - | +----+------------------+------------------+----------+---------+-------+----------------------------+-----------------+
nova-computeサービスがStateコラムに表示されるはずです。
-
-
Dashboard のインストール
-
openstack-dashboardパッケージをインストールします。#yum install -y openstack-dashboard -
RHEL6 コントローラーから RHEL7 コントローラーの
/etc/openstack-dashboardに Dashboard の設定ファイルをコピーします。#rsync -a BACKUP/etc/openstack-dashboard/ \/etc/openstack-dashboard/注記
httpd_can_network_connectという SELinux boolean を有効にします。setsebool httpd_can_network_connect=true -
Apache サービスを有効にします。
#systemctl enable httpd#systemctl start httpd
-
5. コンピュートノードのアップグレード
手順 2. コンピュートノードのアップグレード
-
Compute のインスタンスの移行
-
RHEL 7 をベースとしてコンピュートノードを再インストールする前に、実行中のインスタンスを別のコンピュートノードに移行します。アップグレードする環境がライブマイグレーションをサポートしている場合には、
nova live-migrationコマンドを (管理者の権限があるユーザーとして) 使用することができます。#nova live-migration SERVER_UUIDこのコマンドにより、インスタンスが別の利用可能なコンピュートノードに移行されます。アップグレードする環境がライブマイグレーションをサポートしてない場合は、nova migrateコマンドを使用することができます。#nova migrate SERVER_UUIDこのコマンドにより、仮想サーバーは一時停止され、別の利用可能な Compute ホストで再開されます。 -
サーバーは
CONFIRM_RESIZEの状態に切り替わります。各サーバーでresize-confirmコマンドを実行します。#nova resize-confirm SERVER_UUID注記
nova migrateコマンドが機能するには、ソースのホスト上のnovaユーザーがsshを使用して、リモートホスト上のnovaユーザーに接続できる必要があります。インスタンスの移行についての詳しい情報は、https://access.redhat.com/articles/1265613 を参照してください。
-
-
RHEL7 コンピュートノードのデプロイ
-
事前に必要なパッケージをインストールします。
#yum install -y openstack-selinux\openvswitch\ -
openvswitchとlibvirtdのサービスを有効にします。#systemctl enable openvswitch#systemctl start openvswitch
-
-
仮想化サポートのインストール
-
libvirtとqemu-kvmのパッケージをインストールします。#yum install -y libvirt qemu-kvm -
バックアップから
libvirtdの設定を復元します。#cp BACKUP/etc/libvirt/libvirtd.conf \/etc/libvirtd.conf -
libvirtdサービスを有効にします。#systemctl enable libvirtd#systemctl start libvirtd
-
-
iptables ルールの復元
-
RHEL6 コンピュートノードで定義されていたローカルのファイアウォール設定を RHEL7 コンピュートノードにインポートします。
-
iptables-servicesパッケージをインストールします。#yum install -y iptables -services -
iptablesサービスを停止します。#systemctl stop iptables -
バックアップから
iptablesの設定を復元します。#cp BACKUP/etc/sysconfig/iptables /etc/sysconfig/iptables -
iptablesサービスを有効にします。#systemctl enable iptables#systemctl start iptables
-
-
OpenStack Networking のインストール
-
OpenStack Networking OpenVswitch エージェントをインストールします。
#yum install -y openstack-neutron-openvswitch -
バックアップから OpenStack Networking の設定を復元します。
#rsync -a BACKUP/etc/neutron/ /etc/neutron/ -
ホスト上で OpenStack Networking Service を有効にします。
#systemctl enable neutron-openvswitch-agent neutron-ovs-cleanup#systemctl start neutron-openvswitch-agent -
コントローラーで
neutron agent-listコマンドを実行してコンピュートノード上のエージェントが正常に応答することを確認します。
-
-
Compute のインストール
-
openstack-nova-computeパッケージをインストールします。#yum install -y openstack-nova-compute -
バックアップから Compute の設定を復元します。
#rsync -a BACKUP/etc/nova -
nova.confを編集して、Compute API を Icehouse と互換性があるバージョンに上限設定します。[upgrade levels]
compute = 3.23.1注記
この設定は、Juno コントローラーを Icehouse のコンピュートノードと相互運用するには必須です。 -
Compute ホストで Compute Service を有効にします。
#systemctl enable openstack-nova-compute#systemctl start openstack-nova-compute -
コントローラーで
nova service-listコマンドを実行してコンピュートノード上のnova-computeサービスが正常に応答することを確認します。#nova service-list
-
