LinuxコマンドラインでOpenStackのアベイラビリティゾーンを作成・管理する方法
OpenStackの用語において、アベイラビリティゾーン(Availability Zone)とは、ネットワークサービス(Neutron)、ブロックストレージ(Cinder)、コンピュート(Nova)を論理的に分割した領域を指します。アベイラビリティゾーンの主な役割は、本番環境と非本番環境の両方を含むワークロードや設定をグループ化することです。
この記事では、Linuxのコマンドラインを使って、OpenStack上でアベイラビリティゾーンを作成し、活用する方法を解説します。
デフォルトのアベイラビリティゾーンについて
OpenStackをデプロイすると、コンピュート(Nova)用のデフォルトのアベイラビリティゾーンが自動的に作成されます。このNova AZには、すべてのコンピュートノードが含まれます。
アベイラビリティゾーンの確認方法
1. アベイラビリティゾーンの一覧を表示する
アベイラビリティゾーンの一覧を確認するには、以下のOpenStackコマンドを実行します。
~# source openrc ~# openstack availability zone list
2. コンピュートのアベイラビリティゾーンのみを表示する
コンピュートに関連するアベイラビリティゾーンだけを確認したい場合は、次のコマンドを使用します。
~# openstack availability zone list --compute
3. アベイラビリティゾーンにマッピングされたホストを確認する
コンピュートのアベイラビリティゾーンにどのホストがマッピングされているかを調べるには、以下のコマンドを実行します。
~# openstack host list | grep -E "Zone|nova"
ホストアグリゲートとアベイラビリティゾーンの作成手順
ステップ1: ホストアグリゲートグループを作成する
まず、2つのホストアグリゲートグループを作成します。一方を「non-production(非本番)」、もう一方を「production(本番)」という名前にします。
~# openstack aggregate create non-production ~# openstack aggregate create production
ステップ2: アベイラビリティゾーンを作成してグループに紐付ける
次に、アベイラビリティゾーンを作成し、それぞれ対応するホストアグリゲートグループに紐付けます。
# openstack aggregate set --zone <az_name> <host_aggregate_name>
ステップ3: コンピュートホストをグループに追加する
最後に、各コンピュートホストを対応するホストアグリゲートグループに追加します。ここでは、compute-7、8、9を非本番グループに、compute-4、5、6を本番グループに登録します。
~# openstack aggregate add host non-production compute-0-7 ~# openstack aggregate add host non-production compute-0-8 ~# openstack aggregate add host non-production compute-0-9
ステップ4: 作成結果を確認する
作成したアベイラビリティゾーンとホストアグリゲートグループの一覧は、以下のコマンドで確認できます。
~# openstack aggregate list
さらに、アベイラビリティゾーンに紐付いたコンピュートノードの詳細を確認するには、次のコマンドを実行します。
~# openstack aggregate show production ~# openstack aggregate show non-production
これらのコマンドの出力結果から、Linuxコマンドライン経由でOpenStackのアベイラビリティゾーンが正常に作成されたことを確認できます。
アベイラビリティゾーン内に仮想マシンを作成する
アベイラビリティゾーンの作成後は、それぞれのゾーン内にさまざまな仮想マシンを作成できるようになります。
特定のAZに仮想マシンを作成する
指定したアベイラビリティゾーンに仮想マシンを作成するには、以下のコマンドを使用します。
~# openstack server create --flavor <flavor-name> --image <Image-Name-Or-Image-ID> --nic net-id=<Network-ID> --security-group <Security-Group-ID> --key-name <Keypair-Name> --availability-zone <AZ-Name> <VM-Name>
具体的な実行例は以下の通りです。
~# openstack server create --flavor m1.small --image Cirros --nic net-id=37b9ab9a-f198-4db1-a5d6-S789b0Sbfb4c --security-group f8dda7c3-f7c3-423b-923a-2b21fe0bbf3c --key-name mykey --availability-zone production-az test-vm-prod-az
作成した仮想マシンの詳細情報を確認するには、次のコマンドを実行します。
~# openstack server show test-vm-prod-az
特定のコンピュートノード上に仮想マシンを作成する
特定のコンピュートノードを指定して仮想マシンを作成することも可能です。その場合は、アベイラビリティゾーン名の後に「:(コロン)」で区切ってホスト名を指定します。
~# openstack server create --flavor <flavor-name> --image <Image-Name-Or-Image-ID> --nic net-id=<Network-ID> --security-group <Security-Group-ID> --key-name <Keypair-Name> --availability-zone <AZ-Name>:<Compute-Host> <VM-Name>
例として、本番用アベイラビリティゾーン内の特定のコンピュートノード「compute-0-6」上に仮想マシンを起動する場合は、以下のコマンドを使用します。
~# openstack server create --flavor m1.small --image Cirros --nic net-id=37b9ab9a-f198-4db1-a5d6-S789b0Sbfb4c --security-group f8dda7c3-f7c3-423b-923a-2b21fe0bbf3c --key-name mykey --availability-zone production-az:compute-0-6 test-vm-prod-az-host
仮想マシンの詳細を再度確認するには、以下のコマンドを実行します。
~# openstack server show test-vm-prod-az-host
このコマンドを実行すると、指定したホスト上に仮想マシンが作成されたことを示す出力が表示されます。
非本番用AZに仮想マシンを作成する
同様の手順で、非本番用アベイラビリティゾーンにも仮想マシンを作成できます。以下はその実行例です。
~# openstack server create --flavor m1.small --image Cirros --nic net-id=37b9ab9a-f198-4db1-a5d6-S789b0Sbfb4c --security-group f8dda7c3-f7c3-423b-923a-2b21fe0bbf3c --key-name mykey --availability-zone non-production-az vm-nonprod-az
作成した仮想マシンの詳細は、次のコマンドで確認できます。
~# openstack server show vm-nonprod-az
コマンドを実行すると、非本番用アベイラビリティゾーン内に仮想マシンが正しく作成されたことを示す出力が得られます。
まとめ
このように、OpenStackのCLIコマンドを活用すれば、ホストアグリゲートをベースとしたアベイラビリティゾーンの作成から、ゾーンや特定ホストを指定した仮想マシンのデプロイまで、柔軟に管理することができます。本番環境と非本番環境を論理的に分離することで、運用性と可用性の向上が期待できます。
著者について
Kevin Arrows(ケビン・アローズ)
Kevin Arrowsは、10年以上の業界経験を持つ高度な技術スペシャリストです。Microsoft Certified Technology Specialist(MCTS)の資格を保有し、最新の技術動向を追い続けることに強い情熱を持っています。ソフトウェア開発、サイバーセキュリティ、クラウドコンピューティングなど幅広い技術分野に関する記事を数多く執筆しており、複雑な技術的概念を明快かつ簡潔に説明する能力で高く評価されています。
-
ssh-addで「Could not open a connection to your authentication agent」エラーが出た時の解決方法
「Could not open a connection to your authentication agent(認証エージェントへの接続を開けませんでした)」というエラーは、ssh-addコマンドで鍵のパスフレーズを登録しようとした際に表示されることがあります。この問題の主な原因は、ssh-agentが正しく割り当てられていないことです。そのため、やや特殊な環境で発生しやすいという特徴があります。例えば、Raspbianを動かしているRaspberry Pi、コマンドプロンプトを取り出した組み込みルーター、Android上のLinuxターミナルなどでこのエラーに遭遇することがあります。幸い
-
Linuxコマンドラインでテキストファイルの内容を表示する方法|cat・more・lessの使い方徹底解説
Linuxを使い始めたばかりの方から最もよく寄せられる質問のひとつが、「どのコマンドを使えばファイルの中身を確認できるのか」というものです。伝統的なUnix環境に関することの多くと同じように、やり方はひとつではありません。しかも、ここで紹介するテクニックの大半は、OS XやFreeBSDを使っている方にもそのまま応用できます。つまり、コマンドラインからファイルを表示する基本さえ身につければ、ほぼどんなUnix系のプロンプトに出会っても迷わず操作できるようになるということです。方法1:通常のテキストファイルを表示するテキストファイルを表示する最も簡単な方法は、catに続けてファイル名を入力するこ