並行稼働による 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_upgrade
mysql
コマンドラインクライアントを使用してデータベースサーバーに接続できることを確認します。正常に接続できる場合には、以下のような出力が表示されます。#
mysql
Welcome 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.1
conductor = 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
-
6. API バージョンの制限の削除
#
openstack-service restart nova
Comments