Transcript

© Copyright IBM Corporation 2015 商標POWER8 と Intel x86 を使用したハイブリッド OpenStack 環境を構築する

ページ 1 / 12

POWER8 と Intel x86 を使用したハイブリッド OpenStack 環境を構築するDa Wei ZhangAdvisory Software EngineerIBM

Bo Chang LiuI/T SpecialistIBM

Indrajit PoddarSenior Software EngineerIBM

Dr. Seetharami R. SeelamSenior Software EngineerIBM

Zhe WangIBM Intern

2015年 1月 22日

IBM Bluemix は、Cloud Foundry オープンソース・プロジェクトをベースとした PaaS (Platformas a Service) オファリングです。Cloud Foundry オープンソース・プロジェクトは、クラウド・アプリケーションへ容易に組み込めるエンタープライズ・レベルの機能とサービスを提供します。POWER8™ は IBM による最新のプロセッサーです。現在、POWER8 上では、Node.js、Ruby、Java プログラミング言語といった各種のランタイムで作成された CloudFoundry アプリケーションを実行することができます。POWER8 システムと Intel x86 システムを使用したハイブリッド Cloud Foundry 環境を構築するには、ハイブリッド OpenStack 環境を作成することが最初のステップとなります。OpenStack は、IBM をはじめ、業界をリードする企業が推進している人気の高いオープンソース IaaS (Infrastructure as a Service) プロジェクトです。このチュートリアルでは、PowerKVM 上に OpenStack コンピュート・ノードをセットアップして、そのノードを Intel x86 を使用した OpenStack コントローラー・ノードに接続するプロセスを紹介します。さらにシリーズの今後のチュートリアルでは、BOSH 自動化を有効にして、このハイブリッド OpenStack 環境に Cloud Foundry DEA (Droplet Execution Agent) をデプロイする方法を説明します。

IBM Bluemix に登録

developerWorks® ibm.com/developerWorks/jp/

POWER8 と Intel x86 を使用したハイブリッド OpenStack 環境を構築する

ページ 2 / 12

このクラウド・プラットフォームには、モバイル・アプリケーションや Web アプリケーションの構築とデプロイを短時間で行えるようにするための無料のサービス、ランタイム、インフラストラクチャーが揃っています。

IBM Bluemix は、Cloud Foundry オープンソース・プロジェクトをベースとした PaaS (Platform asa Service) オファリングです。Cloud Foundry オープンソース・プロジェクトは、クラウド・アプリケーションへ容易に組み込めるエンタープライズ・レベルの機能とサービスを提供します。現在、IBM による最新のプロセッサーである POWER8 上では、Node.js、Ruby、Java プログラミング言語といった各種のランタイムで作成された Cloud Foundry アプリケーションを実行できるようになっています。POWER8 システムと Intel x86 システムを使用したハイブリッド Cloud Foundry環境を構築するには、ハイブリッド OpenStack 環境を作成することが最初のステップとなります。

Bluemix を Linux on Power に移植するには、x86 マシンと POWER8 マシンからなるハイブリッド環境に OpenStack をデプロイする必要があります。このチュートリアルでは以下のステップに従うことで、IBM PowerKVM 上に OpenStack コンピュート・ノード (Power コンピュート・ノード)をセットアップして、x86 を使用した OpenStack コントローラー・ノード (x86 コントローラー・ノード) に接続します。

1. PowerKVM 用のファームウェアをインストールしてアップデートする.2. PowerKVM オペレーティング・システムをインストールする3. OpenStack Nova を PowerKVM にインストールする4. OpenStack を x86 コントローラー・ノードにインストールする5. Power コンピュート・ノードと x86 コントローラー・ノードを接続する6. OpenStack インストール済み環境を検証する

アプリケーションを作成するために必要となるもの•  2 台の物理マシン (1 台の x86 マシンと、1 台の Power7+ マシンまたはPOWER8 マシン)•  CentOS と PowerKVM のインストール・バージョン•  インターネット接続

ステップ 1. PowerKVM 用のファームウェアをインストールしてアップデートするKVM は、Linux 上の OpenStack でサポートされている、最もよく使用されている仮想化テクノロジーの 1 つです。IBM Linux Technology Center は Power7+ および POWER8 上で動作するPowerKVM を開発しました。PowerKVM には、Linux マルチプロトコル通信プロセッサー (MCP) が組み込まれており、この MCP にすべての KVM 関連のモジュールおよびプログラムが含まれています。PowerKVM は、ホスト・ハイパーバイザーの役割を果たし、GA1.0 専用の OpenStack コンピュート・ノードとしてサポートされます。

PowerKVM を Power マシンにインストールするには、PowerKVM 用のファームウェアをインストールしてアップデートする必要があります。PowerKVM をサポートしている Power7 は、特定のPower7 モデルのみに限られていることに注意してください (「参考文献」を参照)。

ibm.com/developerWorks/jp/ developerWorks®

POWER8 と Intel x86 を使用したハイブリッド OpenStack 環境を構築する

ページ 3 / 12

アップデートしたファームウェアの拡張システム管理インターフェース (ASMI) で、「SystemConfiguration (システム構成) > 「Sapphire Hypervisor Configuration (Sapphire ハイパーバイザー構成)」の順にクリックして、Sapphire と PowerVM との間で切り替えを行うオプションを選択します。このオプションは、次に電源のオフおよびオンが行われた後で有効になります。フィールドを更新して IPMI パスワードを構成してください (Firebird ブレードの場合は、このステップを無視してください)。切り替えオプションが適用されたモードでは、マシンは Sapphire でブートされて、使用可能なすべてのコンソールに petitboot メニューが表示されます。

このバージョンのファームウェアでは、コンソールを使用する場合にも、マシンを起動/停止する場合にも、IPMI (Intelligent Platform Management Interface) を使用することができます。

ステップ 2. PowerKVM オペレーティング・システムをインストールするIPMI を使用するには、制御マシン (例えば、ラップトップ) に ipmitool プログラムがインストールされていること、そして FSP の IP アドレスを知っていることが前提条件となります。

1. 前に説明したように、ASMI で IPMI パスワードを設定します。2. 以下のコマンドを実行します。

ipmitool -I lanplus -H <domain_name> power cycleipmitool -I lanplus -H <domain_name> sol activate

3. システムが再起動したら、「petitboot」 > 「Exit to shell (終了してシェルを表示)」の順にクリックしてコマンドライン・シェルを開き、以下のようにして IP アドレスを構成します。nvram --update-config"petitboot,network=<MAC_ADDR>,static,<IP>,<GW>,dns <DOMAIN_SERVER_IP>"

4. 自動インストール・シェル・スクリプトをダウンロードして実行します。それには、以下のコマンドを使用します。wgethttp://ozlabs.au.ibm.com/~anton/sapphire/sapphire_frobisher_install.sh./sapphire_frobisher_install.sh

5. DNS が解決されないために問題が発生した場合は、sapphire_frobisher_install.sh ファイル内の MIRROR_HOST を正しい IP アドレス (例えば、MIRROR_HOST=ltcphx.austin.ibm.com) に変更してください。

ステップ 3. OpenStack Nova を PowerKVM にインストールするOpenStack は、データ・センター内にあるコンピューティング・リソース、ストレージ・リソース、ネットワーキング・リソースの大規模なプールを管理するクラウド・オペレーティング・システムであり、IaaS (Infrastructure as a Service) を提供します。この例で使用する OpenStack のリリースは Icehouse です。2014年 8月の時点で、OpenStack Icehouse は以下の 7 つのコア・プロジェクトで構成されています。

•  Dashboard (Horizon)•  Compute (Nova)•  Images (Glance)•  Network (Neutron)•  Block Storage (Cinder)•  Object Store (Swift)

developerWorks® ibm.com/developerWorks/jp/

POWER8 と Intel x86 を使用したハイブリッド OpenStack 環境を構築する

ページ 4 / 12

•  Identity (Keystone)

OpenStack のコア・コンポーネントとして知られる Nova は、クラウド・コンピューティング・プラットフォームを管理し、ハードウェア・リソースを仮想化します。Nova には nova-api、nova-compute、nova-volume、nova-network、nova-schedule などのサブコンポーネントがあります。nova-compute プロセスは、主に、ハイパーバイザーの API を介して仮想マシン・インスタンスを作成および終了するワーカー・デーモンの役割を果たします。このプロセスはキューからアクション (KVM インスタンスを起動するなど) を受け取った後、一連のシステム・コマンドを実行することによってそのアクションを実行すると同時に、データベース内の状態を更新します。

ハイブリッド環境は、コントローラー・ノードとしての x86 システムと、コンピュート・ノードとしての Power マシンからなります。その論理アーキテクチャーを図 1 に示します。

図 1. ハイブリッド環境の論理アーキテクチャー

以下のステップに従って、PowerKVM に nova-compute をインストールします。

1. PowerKVM に適切なバージョンの git をインストールできるように、/etc/yum.repos.d/base.repo ファイルを以下のコード・リストと図 2 に示すように更新します。git は、osee-tools (OpenStack エンタープライズ・エディション) のソース・コードをダウンロードするために使用します。[fedora_19_ppc64]name=fedora_19_ppc64baseurl=ftp://fr2.rpmfind.net/linux/fedora-secondary/releases/19/Everything/ppc64/osenabled=1gpgcheck=0

ibm.com/developerWorks/jp/ developerWorks®

POWER8 と Intel x86 を使用したハイブリッド OpenStack 環境を構築する

ページ 5 / 12

図 2. repo ファイルに加える変更内容

2. repo ファイルに変更を加えた後、以下のコマンドによって、yum を更新して git をインストールします。yum clean all & yum makecacheyum install git.ppc64

3. カレント・ディレクトリーを、OpenStack エンタープライズ・エディション (osee) のソース・コードをダウンロードしたディレクトリーに変更します。git clone http://gerrit.rtp.raleigh.ibm.com/p/osee-tools.git

4. カレント・ディレクトリーを osee-tools/ に変更し、osee-icehouse という git ブランチを選択します。git checkout osee-icehouse

5. Selinux を使用不可にします。6. openstack.repo に変更を加えます。7. カレント・ディレクトリーを osee-tools/install/ に変更し、step010.create_repo.sh スク

リプトを実行します。このスクリプトにより、/etc/yum.repos.d/ ディレクトリー内にopenstack.repo ファイルが作成されます。作成されたファイルを開いて、baseurl を以下のコード・リストと図 3 に示す日付に変更するか、あるいは最新の日付に変更します。[openstack-ppc]name=openstack ppc yum repositorybaseurl= http://rchgsa.ibm.com/projects/e/emsol/ccs/build/driver/osee-icehouse/fc19/openstack/D20140417-1739/ppc64gpgcheck=0enabled=1

[openstack-noarch]name=openstack noarch yum repositorybaseurl= http://rchgsa.ibm.com/projects/e/emsol/ccs/build/driver/osee-icehouse/fc19/openstack/D20140417-1739/noarchgpgcheck=0enabled=1

developerWorks® ibm.com/developerWorks/jp/

POWER8 と Intel x86 を使用したハイブリッド OpenStack 環境を構築する

ページ 6 / 12

図 3. openstack.repo に加える変更内容

8. Power マシンが Nova コンピュート・ノードになるので、osee-tools/install/ ディレクトリーにある build.include ファイルの下記コード・リストと図 4 に示す部分を構成します。###################################Suggested to modify################################To configure a compute node rather than a controller node, set this item to yIS_COMPUTE_NODE=n# If IS_COMPUTE_NODE=y, use this item to set controller ip address, if USE_IPV6=y, please# make sure configure the corresponding IPv6 addressCONTROLLER_IP_ADDR=

図 4. インストールを開始する前に必要な Nova コンピュート・ノードに対する変更箇所

9. 図 5 に示すようにパラメーターの値を設定し、IS_COMPUTE_NODE=y とします。CONTROLLER_IP_ADDR パラメーターでは、コントローラー・ノードとしての x86 システムの IP アドレスを、Power マシンの接続先として設定します。###################################Suggested to modify################################To configure a compute node rather than a controller node, set this item to yIS_COMPUTE_NODE=y# If IS_COMPUTE_NODE=y, use this item to set controller ip address, if USE_IPV6=y, please# make sure configure the corresponding IPv6 addressCONTROLLER_IP_ADDR=9.26.19.176

ibm.com/developerWorks/jp/ developerWorks®

POWER8 と Intel x86 を使用したハイブリッド OpenStack 環境を構築する

ページ 7 / 12

図 5. インストールを開始する前に必要な Nova コンピュート・ノードに対する変更内容

10. 以下のコマンドを実行して、コンピュート・ノードをインストールします。run step070.config_nova_compute.sh

ステップ 4. OpenStack を x86 にインストールする

x86 マシンはコントローラー・ノードとして機能します。したがって、x86 マシンには OpenStackシステム全体をインストールする必要があります。前と同じように、git を使用して osee-tools をダウンロードしてください。

1. git をインストールして、osee-tools をダウンロードします。yum install git.x86_64git clone http://gerrit.rtp.raleigh.ibm.com/p/osee-tools.gitgit checkout osee-tools

2. OpenStack をインストールする前に、少なくとも 500 GB を割り当てた cinder-volumes ボリューム・グループを作成します。

3. Selinux を使用不可にします。4. 図 6 に示すように、カレント・ディレクトリーを osee-tools/install に変更し

て、step090.neutron.sh を除く step010*.sh から step130*.sh までのスクリプトを実行します (OpenStack クラウド内のネットワークは、Neutron ではなく Nova ネットワークを使用して管理されるため、Neutron コンポーネントは無視されます)。注: step050.qpid_messaging.sh スクリプトを実行する前に、yum remove boost-system を実行してください。[root@end1 install]# lsbuild.include step010.create_repo.sh step040.config_keystone_database.sh step060.glance_image.sh step090.neutron.sh step093.horizon.sh step120.openstack-bvt.shcinder-volumes step020.presetup.sh step041.swift.sh step070.config_nova_compute.sh step091.heat.sh step100.service_setup.sh step130.rsyslog.shrunall.sh step030.install_db.sh step050.qpid_messaging.sh step080.cinder.sh step092.ceilometer.sh step110.add_image.sh

図 6. OpenStack のインストール中に実行する必要があるスクリプト

スクリプトの実行が正常に完了したら、ネットワーク・ブリッジ br100 を作成します (以下のコード・リストと図 7 を参照)。これが、クラウド・システムのデフォルト・ゲートウェイになります。 nova network-create bluemix_network --fixed-cidr 10.0.1.0/24 --fixed-range-v4 10.0.1.0/24 --gateway 10.0.1.1 --bridge br100 --bridge-interface eth1

developerWorks® ibm.com/developerWorks/jp/

POWER8 と Intel x86 を使用したハイブリッド OpenStack 環境を構築する

ページ 8 / 12

図 7. OpenStack Network のネットワーク・ブリッジの作成

5. iptables のルールを構成して OpenStack ダッシュボード (ポート 80) への Web アクセスを有効にします。それには、図 8 に示す行を /etc/sysconfig/iptables ファイルに追加します。 iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

図 8. ipstables のルールの変更内容

Web アクセスを許可するようにダッシュボードの設定を構成します。ダッシュボードの構成ファイルは /etc/openstack-dashboard/local_settings ファイルです。ALLOWED_HOSTS パラメーターを変更してローカル・ホスト IP アドレスを設定します (以下のコード・リストおよび図9 を参照)。# Required for Django 1.5.# If horizon is running in production (DEBUG is False), set this# with the list of host/domain names that the application can serve.# For more information see:# https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hostsALLOWED_HOSTS = ['9.26.19.176', 'horizon.example.com', 'localhost']

図 9. ダッシュボードの構成

変更作業が終わったら、httpd サービスと memcached サービスを再起動します。それには、以下のコマンドを実行します。chown apache:apache/usr/share/openstack-dashboard/openstack_dashboard/local/service httpd restart && service memcached restart

6. 以下のコマンドを使用して、keystone から neutron サービスを削除します。keystone service-delete {neutron_ID}

ibm.com/developerWorks/jp/ developerWorks®

POWER8 と Intel x86 を使用したハイブリッド OpenStack 環境を構築する

ページ 9 / 12

7. Web ブラウザーを使用して OpenStack ダッシュボードにアクセスします。ログインするには、ユーザー名 admin とパスワード openstack1 を使用します。

ステップ 5. Power コンピュート・ノードと x86 コントローラー・ノードを接続するステップ 3 とステップ 4 のそれぞれで、Power システムに Nova コンピュート・ノードを導入し、x86 システムにコントローラー・ノードを導入しました。通常、これらのノードは接続済みになっています。接続状態を確認するには、x86 マシンにログインして、コマンド nova-manageservice list を実行します。Power ノードが正常に動作していれば、ステータス (Status) が「enabled」、状態 (State) が「:-)」と表示されます (以下のコード・リストと図 10 を参照)。

[root@end1 install]# nova-manage service listBinary Host Zone Status State Updated_Atnova-conductor end1.torolab.ibm.com internal enabled :-) 2014-08-25 13:53:08nova-scheduler end1.torolab.ibm.com internal enabled :-) 2014-08-25 13:53:08nova-console end1.torolab.ibm.com internal enabled :-) 2014-08-25 13:53:06nova-consoleauth end1.torolab.ibm.com internal enabled :-) 2014-08-25 13:53:10nova-cert end1.torolab.ibm.com internal enabled :-) 2014-08-25 13:53:03nova-compute end1.torolab.ibm.com nova enabled :-) 2014-08-25 13:53:06nova-compute tiny4 power enabled :-) 2014-08-25 13:53:07nova-network tiny4 internal enabled :-) 2014-08-25 13:53:07nova-network end1.torolab.ibm.com internal enabled :-) 2014-08-25 13:53:05nova-cells end1.torolab.ibm.com internal enabled :-) 2014-08-25 13:53:07

図 10. x86 および Power での Nova サービスのステータス

ステータス (Status) が「disabled」と表示されている場合、あるいは状態 (State) が「XXX」と表示されている場合は、コンピュート・ノードを手作業でコントローラー・ノードに接続します。それにはまず、PowerKVM にログインして以下のコマンドを実行します。

nohup /usr/bin/python /usr/bin/nova-compute --config-file/etc/nova/nova.conf --log-file /var/log/nova/compute.log &

nohup /usr/bin/python /usr/bin/nova-network --config-file/etc/nova/nova.conf --logfile /var/log/nova/network.log &

次に、x86 コントローラー・ノードにログインし、以下のコード・リストに示すように nova-manage コマンドを使用して、Power システム上の Compute サービスと Network サービスを起動します。

nova-manage service enable --host=tiny4 --service=nova-computenova-manage service enable --host=tiny4 --service=nova-network

上記のコマンドが成功すると、Power コンピュート・ノードが x86 コントローラー・ノードに接続されます。

developerWorks® ibm.com/developerWorks/jp/

POWER8 と Intel x86 を使用したハイブリッド OpenStack 環境を構築する

ページ 10 / 12

ステップ 6. Openstack を検証する

これで、ハイブリッド環境の中に OpenStack 環境が正常に導入されました。これを検証するには、ダッシュボードを使用することができます。あるいは、異なる複数のホスト・マシンの中で仮想マシンをブートして検証することもできます。以下に記載するのは、異なるホスト集合をセットアップする一例です。

OpenStack クラウドは、上位レベルから下位レベルまで、複数のレベルに区分することができます。具体的には、リージョン (Regions)、###### (Availability Zones)、ホスト集合 (HostAggregates) というレベルです。ホスト集合 (Host Aggregates) にはコンピュート・ノードのグループにタグを付けるためのメタデータが含まれます。このメタデータによって、スケジューラーは特定の特性に基づき、仮想マシンを配置する場所を把握することができます。このハイブリッド環境では、メタデータ availability_zone=power を設定した「power」という名前のホスト集合を作成します。

1. x86 コントローラーにログインし、以下のコマンドを実行して、「power」というホスト集合を作成します。nova aggregate-create power power

作成した power ホスト集合に Power マシンを追加します。nova aggregate-add-host power <power_name>

2. http://<x86_ip>/dashboard/ を開いてログインします。デフォルトのユーザー名は admin、パスワードは openstack1 です。「Admin (管理)」 > 「System Panel (システム・パネル)」 >「Host Aggregates (ホスト集合)」の順にクリックして、ホスト集合のリストを表示します (図11 を参照)。図 11. ダッシュボードに表示されたホスト集合のリスト

まとめ

このチュートリアルでは、x86 コントローラー・ノードと Power コンピュート・ノードからなるハイブリッド OpenStack 環境をセットアップする方法を説明しました。このシリーズの今後のチュートリアルでは、BOSH 自動化を有効にして、Power システムに Cloud Foundry DEA (DropletExecution Agent) を デプロイする方法、そしてこのハイブリッド OpenStack 環境上でハイブリッド Bluemix を構築する方法を説明します。

ibm.com/developerWorks/jp/ developerWorks®

POWER8 と Intel x86 を使用したハイブリッド OpenStack 環境を構築する

ページ 11 / 12

著者について

Da Wei Zhang

Da Wei Zhang は 2008年に IBM に入社しました。現在は、IBM PureApplication、IBMSmartCloud Orchestrator、IBM Workload Deployer、OpenStack、IBM Bluemix などのIBM によるクラウド・オファリングでのクラウドのプロトタイプとパフォーマンス最適化に取り組んでいます。これまでに、通信、モバイル・ネットワーキング、そしてIBM i 上の Java 仮想マシンに取り組んだ経験もあります。

Bo Chang Liu

Bo Chang Liu は 2011年に IBM に入社しました。現在、IBM SmartCloudEntry、Openstack、IBM Bluemix などの複数のプラットフォームでのクラウド・ソリューションに取り組んでいます。これまで、IBM System z® 上の ELS ソリューションおよびクラウド・ソリューションに取り組んだ経験もあります。

Indrajit Poddar

Indrajit Poddar は、IBM Software Group Technical Strategy のソフトウェア・アーキテクトとして、分散型クラウド・コンピューティング、DevOps、SDI (Software-Defined Infrastructure) などの戦略的技術分野でのインキュベーション・プロジェクトのリーダーをしています。彼は IBM マスター・インベンターであり、これまでにIBM Outstanding Technical Achievement アワードを 3 回受賞しています。

Dr. Seetharami R. Seelam

Seelam 博士は、Thomas J. Watson Research Center の Distributed Computing グループに所属する研究スタッフ・メンバーです。彼の研究対象には、次世代 (多言語) ミドルウェア、データ・セントリック・コンピューティング、ハイブリッド・システム、ワークロード最適化システム、並列および分散システム、オペレーティング・システム、リソース・マネジメント、そして商用ワークロードおよび科学ワークロードに対するシステム・パフォーマンス評価があります。現在は、コンテナー・クラウド・サービスを作成する取り組み、および POWER プラットフォーム上でのコンテナーを作成する取り組みを先導しています。

developerWorks® ibm.com/developerWorks/jp/

POWER8 と Intel x86 を使用したハイブリッド OpenStack 環境を構築する

ページ 12 / 12

Zhe Wang

Zhe Wang は、北京交通大学に在籍する博士号取得候補者です。彼の研究分野には、次世代ネットワーク、SDN によるスイッチングおよびルーティング、ネットワーク・セキュリティーなどがあります。

© Copyright IBM Corporation 2015(www.ibm.com/legal/copytrade.shtml)商標(www.ibm.com/developerworks/jp/ibm/trademarks/)


Recommended