OpenStackはオープンソースのクラウドコンピューティングプラットフォームであり、サービスとしてのインフラストラクチャにソリューションを提供します。 OpenStackは、IaaSを提供するためにまとめられた複数のコンポーネントで構成されています。コンポーネントは、その使用法とともに以下にリストされています。
コンポーネント:
コンポーネント | 名前 | 使用 |
---|---|---|
計算 | (ノバ) | 仮想マシンを管理します |
オブジェクトストレージ | (Swift) | クラウド全体のストレージを管理します |
ブロックストレージ | (シンダー) | インスタンスを計算するためのストレージを管理します |
ネットワーキング | (Neutron) | ネットワークとIPアドレスを管理します |
ダッシュボード | (Horizon) | リソースを管理するためのグラフィカルなWebインターフェイスを提供する |
アイデンティティサービス | (キーストーン) | クラウド全体で認証システムを管理します |
画像サービス | (一瞥) | ディスクとサーバーのイメージを提供します(テンプレート) |
テレメトリ | (雲高計) | 請求システム |
オーケストレーション | (熱) | オーケストレーション機能を提供します |
インフラストラクチャの設計:
インフラストラクチャに関しては、OpenStackネットワーキング(neutron)を使用します。ここでは、合計3つのUbuntuインスタンスが使用され、コントローラー、ネットワーク、およびコンピューティングノードとして機能します。
OpenStackは、64ビットのホストオペレーティングシステムを使用して、ノードごとに以下の最小構成を推奨します。
•コントローラーノード:1プロセッサー、2 GBメモリ、および5 GBストレージ
•コンピュートノード:1プロセッサー、2 GBメモリ、および10GBストレージ
以下は、各ノードのネットワーク構成です。
役割 | NWカード1 | NWカード2 |
---|---|---|
コントローラーノード HostName=controller.itzgeek.local(コントローラー) | 192.168.12.21 / 24、GW =192.168.12.2 (管理ネットワーク) | 192.168.0.21 / 24 GW =192.168.0.1 (パブリックネットワーク– DHCP対応) |
計算ノード HostName=Compute.itzgeek.local(計算) | 192.168.12.22 / 24 GW =192.168.12.2 (管理ネットワーク) | 192.168.0.22 / 24 GW =192.168.0.1 (パブリックネットワーク– DHCP対応) |
*ゲートウェイ192.168.12.1を使用した192.168.12.0/24での管理
このネットワークには、パッケージのインストール、セキュリティアップデート、DNS、NTPなどの管理目的ですべてのノードにインターネットアクセスを提供するためのゲートウェイが必要です。
*ゲートウェイ192.168.0.1を使用した192.168.0.0/24で公開
このネットワークには、OpenStack環境のインスタンスへのインターネットアクセスを提供するためのゲートウェイが必要です。
ノードがIPアドレスの代わりにホスト名を使用して通信できるように、ホストエントリを追加します。すべてのノードに配置します。
# nano /etc/hosts # controller 192.168.12.21 controller.itzgeek.local controller # compute 192.168.12.22 compute.itzgeek.local compute
IPアドレスの構成が完了したら、ノード間でpingを実行して接続を確認します。
NTPサーバー:
他のすべてのノードがコントローラーノードと同期時間をとれるように、コントローラーノードにchrony(NTP)をインストールして構成します。
# apt-get install ntp # service ntp restart
クライアントNTP構成
計算ノードおよび将来追加するノードにNTPパッケージをインストールします。
# apt-get install ntp
以下の構成ファイルを編集します。
# nano /etc/ntp.conf
このファイルから他のntpサーバーを削除するか、「server」という単語で始まる行をコメントアウトしてください。以下のエントリを追加して、ノードをコントローラノードと同期させます。
server controller
NTPサービスを再起動します。
# service ntp restart
OpenStackパッケージ:
UbuntuCloudアーカイブキーリングとリポジトリをインストールします。
# apt-get install software-properties-common # add-apt-repository cloud-archive:liberty
システムをアップグレードします。
# apt-get update && apt-get dist-upgrade
OpenStackpythonクライアントをインストールします。
# apt-get install python-openstackclient
すべてのノードで上記の2つの手順を実行します。
MySQLデータベースのインストール:
OpenStackコンポーネントはMySQLデータベースを使用して情報を保存するため、MySQLをコントローラーノードにインストールします。
# apt-get install mariadb-server python-pymysql
インストーラーはコマンドラインtuiを呼び出して、MySQLのrootパスワードを設定します。
/etc/mysql/conf.d/mysqld_openstack.cnfを作成および編集します ファイル
# 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
NoSQLデータベースのインストール(テレメトリサービス用):
テレメトリサービスは、NoSQLデータベースを使用して情報を保存します。データベースは通常、コントローラーノードで実行されます。ここではMongoDBを使用します。
NoSQLデータベースサーバーのインストールは、テレメトリサービスをインストールする場合にのみ必要です。それ以外の場合は、これをスキップできます。
MongoDBとパッケージをインストールします。
# apt-get install mongodb-server mongodb-clients python-pymongo
/etc/mongodb.confを編集します ファイル。
# vi /etc/mongodb.conf
次の値を追加し、bind_ip値がコントローラーノードの管理IPアドレスに設定されていることを確認して、他のノードがMySQLインスタンスにアクセスできるようにします。また、 smallfiles =trueを設定します 。
# Management interface IP address of the controller node bind_ip = 192.168.12.21 smallfiles = true
MongoDBサービスを停止して開始します。
# service mongodb stop # rm -rf /var/lib/mongodb/journal/prealloc.* # service mongodb start
RabbitMQのインストール:
RabbitMQは、サービス間の操作とステータス情報を調整するためにOpenStackによって使用されます。コントローラノードにインストールします。
# apt-get install rabbitmq-server
openstackユーザーを追加します。
# rabbitmqctl add_user openstack password
*パスワードを自分のパスワードに置き換えます。
openstackユーザーに読み取り、書き込み、構成アクセスを許可します。
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
次は、 KeyStone(OpenStack Identity)サービスの構成です。 。