2.4 ブロックストレージリソース
ブロックストレージリソースである仮想ストレージは、仮想マシンインスタンスを停止/破棄しても内容が失われない、永続的なディスク領域を提供します。
AWS では「EBS(Elastic Block Store)」、OpenStack では「ブロックストレージ」と呼ばれます[※5]。本章では、仮想ストレージのことを簡単に「ボリューム」と呼ぶことにします。ボリューム作成後の容量拡張やスナップショットコピーなど、一般的なストレージ装置が提供するディスク領域と同等の管理機能が提供されます。
※5 OpenStack における正式名称は「OpenStack Block Storage」ですが、一般には、ブロックストレージ、あるいは、ブロックボリュームと呼ばれています。
2.4.1 仮想ストレージの基本機能
仮想ストレージの基本的な使い方は、図 2.17 のようにまとめられます。新規のボリュームは、容量を指定して作成します。作成したボリュームを起動中の仮想マシンインスタンスに接続すると、ゲスト OS からは、追加のディスクデバイス(「/dev/vdb」など)として認識されます。ファイルシステムを作成してマウントするなど、通常のディスクデバイスと同様に利用できます。
2.3.2 項で説明したように、仮想マシンインスタンスを停止/破棄すると、ゲスト OS が導入されたルートディスクは削除されますが、ボリュームのほうはそのまま残ります。他の仮想マシンインスタンスに再接続すれば、ボリュームに保存したデータを再利用することができます。
たとえば、仮想マシンインスタンスが障害で停止した際は、同じ構成の仮想マシンインスタンスを追加起動して、ボリュームを再接続します。これにより、障害停止前のデータを引き継いで、すぐにアプリケーションを再開することができます。
また、仮想マシンインスタンスから取り外した状態のボリュームは、スナップショットコピーを作成することができます。ただし、スナップショットは、そのまま仮想マシンインスタンスに接続することはできません。スナップショットをクローン(複製)して、新しいボリュームを作成した後に、そちらを仮想マシンインスタンスに接続します。
2.4.2 仮想ストレージからの起動
仮想マシンインスタンスを起動する際に、テンプレートイメージを複製したルートディスクを使用する代わりに、仮想ストレージのボリュームからゲスト OS を起動することもできます。AWS では「EBS Boot」、OpenStack では「Boot from Volume」と呼ばれる機能になります(図 2.18)。
この機能を利用する場合は、事前にテンプレートイメージの内容をコピーしたボリュームを作成しておきます。仮想マシンインスタンスを起動する際に、テンプレートイメージの代わりに、起動用のボリュームを指定します。この場合、仮想マシンインスタンスを停止/破棄しても、OS 領域のボリュームはそのまま残ります。このボリュームから新しい仮想マシンインスタンスを起動することで、停止直前と同じ構成でゲスト OS の利用を再開することができます[※6]。
※6 ゲストOS にWindows を使用する場合、このような使い方はサポート対象外となります。