OpenStackディストリビューション「RDO」を用いて、実際に動作するOpenStack環境を構築しながら、OpenStackの利用方法や内部構造を学ぶ特集です。今回は、仮想マシンインスタンスに接続する仮想ディスクについて解説します。OpenStack環境では、OSをインストールしたディスク領域(システム領域)と永続データを保存するディスク領域(データ領域)を明確に区別して管理する必要があるので、仮想ディスクの構成を理解して使いこなすことは特に重要になります。
OpenStack標準の仮想マシン起動方式
これまで、仮想マシンインスタンスを起動する際に、「イメージ名」を指定してきました。これは、Glanceが管理するテンプレートイメージ(OSをインストール済みの仮想ディスクイメージ)を指定するもので、指定のイメージを複製して仮想マシンインスタンスに接続するという処理が行われます。仮想マシンインスタンスを起動するコンピュートノードのローカルディスクに、複製したイメージがダウンロードされる形になります。OpenStackでは、これが標準的な起動方式です。
この起動方式を使う場合、仮想マシンインスタンス起動時に指定するフレーバーによって、追加の仮想ディスク領域を割り当てることができます。表1は、標準で用意されるフレーバーですが、それぞれ「ルートディスク」「一時ディスク」「スワップディスク」の値が定義されています。
「ルートディスク」は、テンプレートイメージを複製したディスク領域のことで、複製後に、ここで指定されたサイズに拡張されます。一時ディスクは未使用のディスク領域で、空のファイルシステムとしてフォーマットされて、「/mnt」にマウントされます。スワップディスクは、スワップ領域として使用するディスク領域です。
名前 | 仮想CPU数 | メモリー | ルートディスク | 一時ディスク | スワップディスク |
---|---|---|---|---|---|
m1.tiny | 1 | 512MB | 1GB | 0 | 0 |
m1.small | 1 | 2048MB | 20GB | 0 | 0 |
m1.medium | 2 | 4096MB | 40GB | 0 | 0 |
m1.large | 4 | 8192MB | 80GB | 0 | 0 |
m1.xlarge | 8 | 16384MB | 160GB | 0 | 0 |
ただし、表1に示したフレーバーでは、「一時ディスク」と「スワップディスク」が全て0になっているために、これらのディスク領域は用意されません。そこで、管理者ユーザーでこれらの値を指定したフレーバーを定義して仮想マシンインスタンスを起動すると、ゲストOS内部では次のようなディスク構成になります。「vda」「vdb」「vdc」の3つの仮想ディスクが接続されていることが分かります。
$ lsblk □
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 10G 0 disk
└vda1 253:1 0 10G 0 part / <--- ルートディスク
vdb 253:16 0 20G 0 disk /mnt <--- 一時ディスク
vdc 253:32 0 2G 0 disk [SWAP] <--- スワップディスク
※□…このマークで改行
管理者権限のユーザーでHorizonのダッシュボードにログインすると、画面左に「管理」メニューが表示されます。ここから、「システム」→「フレーバー」のメニューを選ぶと、フレーバーの変更や追加ができます。