Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

並行稼働による Red Hat Enterprise Linux OpenStack Platform 6 (Juno) へのクラウド移行

更新 -


1. 並行稼働によるクラウド移行

アップグレードの代わりとして、完全に別個の Red Hat Enterprise Linux OpenStack Platform 6 環境をデプロイして、旧システムから新システムにリソースを徐々に移行することも可能です。この方法は、多くのユーザーに過度の負担がかかる可能性がありますが、他のオプションと比べてデプロイ環境への負担が最も少ない方法として考慮することができます。
さらに詳しい情報は、以下のドキュメントを参照してください。
  • OpenStack のデプロイ: 実習環境 (手動設定) (実習を目的とした手動のインストール)
  • OpenStack のデプロイ: 概念実証向けの環境 (Packstack) (Packstack を使用して all-in-one 環境をインストールする手順)
  • OpenStack のデプロイメント: エンタープライズ環境 (Red Hat Enterprise Linux OpenStack Platform インストーラー)
これらのドキュメントは https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux_OpenStack_Platform/ に掲載しています。


2.RHEL 6 環境におけるアップグレード前のタスク

本項には、RHEL 6 ベースの Icehouse デプロイメントを RHEL 7 ベースの Juno デプロイメントに移行するにあたっての前提条件および必要条件を記載します。
  • アプリケーションデータ   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 Enterprise Linux OpenStack Platform 6 のデプロイに必要なチャンネルおよびリポジトリーの設定について説明します。

注記

旧バージョンの Red Hat OpenStack リポジトリーは利用可能な状態ですが、Red Hat Enterprise Linux OpenStack Platform 6 のインストールの前に、お使いのシステムからこれらのリポジトリーへアクセスできないようにする必要があります。たとえば、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

注記

cloud-init を必要とする、カスタムの Red Hat Enterprise Linux ゲストイメージを作成する場合、Red Hat Common for RHEL Server チャンネルの使用を推奨しています。
Red Hat Enterprise Linux 7 の場合は、以下のコマンドを実行します。
# subscription-manager repos \
--enable=rhel-7-server-rh-common-rpms


3.1. コンテンツ配信ネットワーク (CDN) チャンネル

コンテンツ配信ネットワーク (CDN) から Red Hat Enterprise Linux OpenStack Platform 6 をインストールすることができます。そのためには、正しいチャンネルを使用するように subscription-manager を設定します。
CDN チャンネルを有効にするには、以下のコマンドを実行します。
# subscription-manager repos --enable=[reponame]
CDN チャンネルを無効にするには、以下のコマンドを実行します。
# subscription-manager repos --disable=[reponame]
Red Hat Enterprise Linux 7

以下の表には、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 インストーラー

以下の表には、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. コントローラーノードのアップグレード


アップグレードの最初のステップは、コントローラーノードを Icehouse から Juno にアップグレードする作業です。


手順 1. コントローラーノードのアップグレード

  1. RHEL 7 コントローラーノードのデプロイ

    1. 新しいサーバーセットに RHEL 7 をデプロイし、必須パッケージをインストールすることにより基本的なシステム設定 (インターフェースの定義、ストレージの接続など) を復元します。
      # yum install -y \
      openstack-selinux \
      openvswitch
    2. openvswitch サービスを有効にします。
      # systemctl enable openvswitch
      # systemctl start openvswitch
      
    3. Block Storage Service に LVM バックエンドを使用している場合には、LIO サブシステムを管理するための targetcli パッケージもインストールして有効にする必要があります。
      # yum -y install targetcli
      # systemctl enable target
      # systemctl start target
      
    4. 対象の Block Storage が含まれている LVM ボリュームグループを有効にします。
      # vgchange -ay
  2. ネットワーク設定の復元

    1. 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
    2. インターフェースを有効にします。
      # ifup br-ex
  3. iptables ルールの復元

    1. RHEL 6 の /etc/sysconfig/iptables を RHEL 7 ホストの /etc/sysconfig/iptables にコピーして、RHEL6 コントローラーノードで定義されていたローカルのファイアウォール設定を RHEL7 コントローラーノードにインポートします。
    2. iptables-services パッケージをインストールします。
      # yum install -y iptables-services
    3. iptables サービスを停止します。
      # systemctl stop iptables
    4. バックアップから iptables の設定を復元します。
      # cp BACKUP/etc/sysconfig/iptables /etc/sysconfig/iptables
    5. iptables サービスを有効にします。
      # systemctl enable iptables
      # systemctl start iptables
      
  4. rabbitmq-server のインストール

    1. rabbitmq-server パッケージをインストールします。
      # yum install -y rabbitmq-server
    2. rabbitmq の設定ファイルを RHEL6 コントローラーから RHEL7 コントローラーの /etc/rabbitmq に移行します。
      # rsync -a BACKUP/etc/rabbitmq/ /etc/rabbitmq
    3. rabbitmq-server サービスを有効にします。
      # systemctl enable rabbitmq-server
      # systemctl start rabbitmq-server
  5. mariadb-server のインストール

    1. mariadb-server パッケージをインストールします。
      # yum install -y mariadb-server
    2. /var/lib/mysql ディレクトリーを再マウント (および /etc/fstab を適切に変更) するか、バックアップから /var/lib/mysql の内容を復元します。
      # rsync -a BACKUP/var/lib/mysql/ /var/lib/mysql/
    3. /root/.my.conf ファイルが存在する場合には、バックアップからそのファイルを復元します。
      # cp BACKUP/root/.my.cnf /root/.my.cnf
    4. /var/lib/mysql の所有権を正しく設定します。
      # chown -R mysql:mysql /var/lib/mysql
      # fixfiles restore /var/lib/mysql/
      
    5. mariadb サービスを有効にします。
      # systemctl enable mariadb
      # systemctl start mariadb
      
    6. 必要なデータベースの更新を行います。
      # 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)]> 
      
  6. Identity Service のインストール

    1. openstack-keystone パッケージをインストールします。
      # yum install -y openstack-keystone
    2. RHEL6 コントローラーから RHEL7 コントローラーの /etc/keystone に Identity Service の設定ファイルをコピーします。
      # rsync -a BACKUP/etc/keystone/ /etc/keystone/
    3. Identity Service のデータベーススキーマをアップグレードします。
      # sudo -u keystone keystone-manage db_sync
    4. Identity Service を有効にします。
      # systemctl enable openstack-keystone
      # systemctl start openstack-keystone
    5. Identity Service の管理者の認証情報を読み込み、Identity が正常に稼働していることを確認します。
      # . /root/keystonerc_admin
      # keystone endpoint-list

    注記

    以下のステップは、Identity Service の認証情報がお使いの環境に読み込まれていることを前提としています。
  7. Block Storage Service のインストール

    1. openstack-cinder パッケージをインストールします。
      # yum install -y openstack-cinder
    2. 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
    3. Block Storage のデータベーススキーマをアップグレードします。
      # sudo -u cinder cinder-manage db sync
    4. Block Storage Service を有効にします。
      # systemctl enable openstack-cinder-{api,volume,scheduler}
      # systemctl start openstack-cinder-{api,volume,scheduler}
      
    5. Block Storage API が正常に応答し、ボリュームが使用可能であることを確認します。
      # cinder list
  8. Image Service のインストール

    1. openstack-glance パッケージをインストールします。
      # yum install -y openstack-glance
    2. RHEL6 コントローラーから RHEL7 コントローラーの /etc/glance に Identity Service の設定ファイルをコピーします。
      # rsync -a BACKUP/etc/glance/ /etc/glance/
    3. Image Service のデータベーススキーマをアップグレードします。
      # sudo -u glance glance-manage db sync
    4. Image Service のログとデータのディレクトリーの所有権を正しく設定します。
      # chown -R glance:glance /var/lib/glance
      # fixfiles restore /var/lib/glance
    5. Image Service を有効にします。
      # systemctl enable openstack-glance-{api,registry}
      # systemctl start openstack-glance-{api,registry}
      
    6. Image Service が正常に応答することを確認します。
      # glance image-list
  9. OpenStack Networking のインストール

    1. openstack-neutron パッケージと、使用する OpenStack Networking プラグイン (openstack-neutron-ml2openstack-neutron-openvswitch など) のパッケージをインストールします。
      # yum install -y openstack-neutron{,-ml2,-openvswitch}
    2. 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 {} \;
    3. OpenStack Networking のデータベーススキーマをアップグレードします。
      # neutron-db-manage --config-file /etc/neutron/neutron.conf \
      --config-file /etc/neutron/plugin.ini \
      upgrade head
    4. 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 エージェントを有効にする必要がある場合があります。
    5. 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 のコラムに :-) と表示されるはずです。
  10. Compute のインストール

    1. openstack-nova パッケージをインストールします。
      # yum install -y openstack-nova
    2. RHEL6 コントローラーから RHEL7 コントローラーの /etc/nova に Compute の設定ファイルをコピーします。
      # rsync -a BACKUP/etc/nova/ /etc/nova/
    3. nova.conf を編集して、「upgrade-levels」のセクションに以下を追加して、Compute API を Icehouse と互換性のあるバージョンに上限設定します。
      [upgrade-levels]
      compute = 3.23.1
      conductor = 3.23.1

      注記

      この設定は、Juno コントローラーを Icehouse のコンピュートノードと相互運用するには必須です。
    4. Compute のデータベーススキーマをアップグレードします。
      # sudo -u nova nova-manage db sync
    5. コントローラー上の Compute Service を有効にします。
      # systemctl enable openstack-nova-{api,cert,conductor,consoleauth,novncproxy,scheduler}
      # systemctl start openstack-nova-{api,cert,conductor,consoleauth,novncproxy,scheduler}
      
    6. 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 コラムに表示されるはずです。
  11. Dashboard のインストール

    1. openstack-dashboard パッケージをインストールします。
      # yum install -y openstack-dashboard
    2. 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
    3. Apache サービスを有効にします。
      # systemctl enable httpd
      # systemctl start httpd
      
この時点で、コントローラーでは Juno が稼働し、コンピュートノードでは Icehouse が稼働して、完全に機能する環境が整った状態となっているはずです。


5. コンピュートノードのアップグレード


次に、コンピュートノードを設定します。


手順 2. コンピュートノードのアップグレード

  1. Compute のインスタンスの移行

    1. RHEL 7 をベースとしてコンピュートノードを再インストールする前に、実行中のインスタンスを別のコンピュートノードに移行します。
      アップグレードする環境がライブマイグレーションをサポートしている場合には、nova live-migration コマンドを (管理者の権限があるユーザーとして) 使用することができます。
      # nova live-migration SERVER_UUID
      このコマンドにより、インスタンスが別の利用可能なコンピュートノードに移行されます。
      アップグレードする環境がライブマイグレーションをサポートしてない場合は、nova migrate コマンドを使用することができます。
      # nova migrate SERVER_UUID
      このコマンドにより、仮想サーバーは一時停止され、別の利用可能な Compute ホストで再開されます。
    2. サーバーは CONFIRM_RESIZE の状態に切り替わります。各サーバーで resize-confirm コマンドを実行します。
      # nova resize-confirm SERVER_UUID

      注記

      nova migrate コマンドが機能するには、ソースのホスト上の nova ユーザーが ssh を使用して、リモートホスト上の nova ユーザーに接続できる必要があります。
      インスタンスの移行についての詳しい情報は、https://access.redhat.com/articles/1265613 を参照してください。
  2. RHEL7 コンピュートノードのデプロイ

    1. 事前に必要なパッケージをインストールします。
      # yum install -y openstack-selinux \
      openvswitch \
    2. openvswitchlibvirtd のサービスを有効にします。
      # systemctl enable openvswitch
      # systemctl start openvswitch
  3. 仮想化サポートのインストール

    1. libvirtqemu-kvm のパッケージをインストールします。
      # yum install -y libvirt qemu-kvm
    2. バックアップから libvirtd の設定を復元します。
      # cp BACKUP/etc/libvirt/libvirtd.conf \
      /etc/libvirtd.conf
    3. libvirtd サービスを有効にします。
      # systemctl enable libvirtd
      # systemctl start libvirtd
  4. iptables ルールの復元

    1. RHEL6 コンピュートノードで定義されていたローカルのファイアウォール設定を RHEL7 コンピュートノードにインポートします。
    2. iptables-services パッケージをインストールします。
      # yum install -y iptables -services
    3. iptables サービスを停止します。
      # systemctl stop iptables
    4. バックアップから iptables の設定を復元します。
      # cp BACKUP/etc/sysconfig/iptables /etc/sysconfig/iptables
    5. iptables サービスを有効にします。
      # systemctl enable iptables
      # systemctl start iptables
      
  5. OpenStack Networking のインストール

    1. OpenStack Networking OpenVswitch エージェントをインストールします。
      # yum install -y openstack-neutron-openvswitch
    2. バックアップから OpenStack Networking の設定を復元します。
      # rsync -a BACKUP/etc/neutron/ /etc/neutron/
    3. ホスト上で OpenStack Networking Service を有効にします。
      # systemctl enable neutron-openvswitch-agent neutron-ovs-cleanup
      # systemctl start neutron-openvswitch-agent
      
    4. コントローラーで neutron agent-list コマンドを実行してコンピュートノード上のエージェントが正常に応答することを確認します。
  6. Compute のインストール

    1. openstack-nova-compute パッケージをインストールします。
      # yum install -y openstack-nova-compute
    2. バックアップから Compute の設定を復元します。
      # rsync -a BACKUP/etc/nova
    3. nova.conf を編集して、Compute API を Icehouse と互換性があるバージョンに上限設定します。
      [upgrade levels]
      compute = 3.23.1

      注記

      この設定は、Juno コントローラーを Icehouse のコンピュートノードと相互運用するには必須です。
    4. Compute ホストで Compute Service を有効にします。
      # systemctl enable openstack-nova-compute
      # systemctl start openstack-nova-compute
    5. コントローラーで nova service-list コマンドを実行してコンピュートノード上の nova-compute サービスが正常に応答することを確認します。
      # nova service-list


6. API バージョンの制限の削除


全 Compute ホストのアップグレードが終了したら、アップグレードプロセスを実行中にコントローラーと Compute ホストに適用した「upgrade-levels」の制限を削除して、Nova サービスを再起動します。
# openstack-service restart nova