OpenStackはオープンソースのクラウドコンピューティングプラットフォームであり、サービスとしてのインフラストラクチャにソリューションを提供します。 OpenStackは、IaaSを提供するためにまとめられた複数のコンポーネントで構成されています。コンポーネントは、その使用法とともに以下にリストされています。
コンポーネント:
コンポーネント | 名前 | 使用 |
---|---|---|
計算 | (ノバ) | 仮想マシンを管理します |
オブジェクトストレージ | (Swift) | クラウド全体のストレージを管理します |
ブロックストレージ | (シンダー) | インスタンスを計算するためのストレージを管理します |
ネットワーキング | (Neutron) | ネットワークとIPアドレスを管理します |
ダッシュボード | (Horizon) | リソースを管理するためのグラフィカルなWebインターフェイスを提供する |
アイデンティティサービス | (キーストーン) | クラウド全体で認証システムを管理します |
画像サービス | (一瞥) | ディスクとサーバーのイメージを提供します(テンプレート) |
テレメトリ | (雲高計) | 請求システム |
オーケストレーション | (熱) | オーケストレーション機能を提供します |
データベース | (Trove) | データベースエンジン |
ベアメタルプロビジョニング | (皮肉) | 仮想マシンの代わりにベアメタルシステムをプロビジョニングします |
マルチテナントクラウドメッセージング | (Zaqar) | Web開発者向けのクラウドメッセージングサービス |
エラスティックマップリデュース | (サハラ) | Hadoopクラスターのプロビジョニング |
インフラストラクチャの設計:
インフラストラクチャに関しては、OpenStackネットワーキング(neutron)を使用します。ここでは、合計3つのUbuntuインスタンスが使用され、コントローラー、ネットワーク、およびコンピューティングノードとして機能します。
OpenStackは、64ビットのホストオペレーティングシステムを使用して、ノードごとに以下の構成を推奨します。
•コントローラノード:1プロセッサ、2 GBメモリ、および5 GBストレージ
•ネットワークノード:1プロセッサ、512 MBメモリ、および5 GBストレージ
•コンピュートノード:1プロセッサ、2 GBメモリ、および10GBのストレージ
以下は、各ノードのネットワーク構成です。
役割 | NWカード1 | NWカード2 | NWカード3 |
---|---|---|---|
コントローラーノード | 192.168.12.21 / 24、GW =192.168.12.2 (管理ネットワーク) | NA | NA |
ネットワークノード | 192.168.12.22 / 24 GW =192.168.12.2 (管理ネットワーク) | 192.168.11.22 / 24 (トンネルネットワーク) | 192.168.0.10 / 24 GW =192.168.0.1 (外部ネットワーク– DHCP対応) |
計算ノード | 192.168.12.23 / 24 GW =192.168.12.2 (管理ネットワーク) | 192.168.11.23 / 24 (トンネルネットワーク) | NA |
*トンネルネットワークの構成ファイルにはゲートウェイIPが含まれていません。このネットワークは、ネットワークノードとコンピュートノード間の内部通信に使用されます。
ノードがIPアドレスの代わりにホスト名を使用して通信できるように、ホストエントリを追加します。すべてのノードに配置します。
# nano /etc/hosts # controller 192.168.12.21 controller # network 192.168.12.22 network # compute 192.168.12.23 compute
IPアドレスの構成が完了したら、ノード間でpingを実行して接続を確認します。
NTPサーバー:
他のすべてのノードが時刻同期を実行できるように、コントローラーノードにNTPをインストールして構成します。
# apt-get install ntp # service ntp restart
クライアントNTP構成
ネットワークノードとコンピュートノードの両方にNTPパッケージをインストールします
# apt-get install ntp
以下の構成ファイルを編集します。
# nano /etc/ntp.conf
ファイルから他のntpサーバーを削除し、wordserverで始まる行をハッシュします。以下のエントリを追加して、ノードをコントローラノードと同期させます。
server controller
NTPサービスを再起動します。
# service ntp restart
OpenStackパッケージ:
UbuntuCloudアーカイブキーリングとリポジトリをインストールします。
# apt-get install ubuntu-cloud-keyring # echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" "trusty-updates/kilo main" > /etc/apt/sources.list.d/cloudarchive-kilo.list
システムをアップグレードします。
# apt-get update && apt-get dist-upgrade
すべてのノードで上記の2つの手順を実行します。
MySQLデータベースのインストール:
OpenStackコンポーネントはMySQLデータベースを使用して情報を保存するため、MySQLをコントローラーノードにインストールします。
# apt-get install mariadb-server python-mysqldb
インストーラーはコマンドラインtuiを呼び出して、MySQLのrootパスワードを設定します。
# nano /etc/mysql/conf.d/mysqld_openstack.cnf
次の値を追加し、bind-address値がコントローラーノードの管理IPアドレスに設定されていることを確認して、他のノードがMySQLインスタンスにアクセスできるようにします。
[mysqld] ## Set to Management IP bind-address = 192.168.12.21 default-storage-engine = innodb innodb_file_per_table collation-server = utf8_general_ci init-connect = 'SET NAMES utf8' character-set-server = utf8
MySQLを再起動します。
# service mysql restart
RabbitMQのインストール:
RabbitMQは、サービス間の操作とステータス情報を調整するためにOpenStackによって使用されます。コントローラノードにインストールします。
# apt-get install rabbitmq-server
openstackユーザーを追加します。
# rabbitmqctl add_user openstack password
*パスワードを自分のパスワードに置き換えます。
openstackユーザーに読み取り、書き込み、構成アクセスを許可します。
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
次に、KeyStone(OpenStack Identity)サービスを構成します。