Menu Close
Settings Close

Language and Page Formatting Options

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第13章 仮想マシン用のストレージの管理

本章では、仮想マシンのストレージについて説明します。仮想ストレージは、仮想マシンの接続に割り当てられた物理ストレージから抽象化されます。ストレージは、準仮想化またはエミュレートのブロックデバイスドライバーを使用して仮想マシンに接続されています。

13.1. ストレージの概念

storage pool は、ゲスト仮想マシンが使用するために確保するストレージの量です。ストレージプールは、ストレージボリュームに分類されます。各ストレージボリュームは、ゲストバスのブロックデバイスとしてゲスト仮想マシンに割り当てられます。
ストレージプールとボリュームは、libvirt を使用して管理されます。libvirt のリモートプロトコルを使用すると、ゲスト仮想マシンのライフサイクルのあらゆる側面、およびゲスト仮想マシンに必要なリソースの設定を管理できます。この操作は、リモートホストで実行できます。そして、libvirt を使用した管理アプリケーション (Virtual Machine Manager など) は、ゲスト仮想マシンにホスト物理マシンを設定するために必要なすべてのタスクを実行できるようにします。これには、シェルアクセスやその他の制御チャネルを必要とせずに、リソースの割り当て、ゲスト仮想マシンの実行、シャットダウン、リソースの割り当て解除などが含まれます。
libvirt の API を使用すると、ストレージプールのボリューム一覧を照会したり、ストレージプールの容量、割り当て、利用可能なストレージに関する情報を取得したりできます。ストレージプール内のストレージボリュームは、スパースボリュームで異なる可能性がある割り当てや容量などの情報を取得するためにクエリーされることがあります。
注記
スパースボリュームの詳細は、Virtualization Getting Started Guide を参照してください。
ストレージプールがこれに対応する場合は、libvirt API を使用してストレージボリュームを作成、クローン、サイズ変更、および削除できます。API は、ストレージボリュームへのデータのアップロード、ストレージボリュームからのデータのダウンロード、またはストレージボリュームからのデータの消去にも使用できます。
ストレージプールを起動すると、ドメイン XML 内のボリュームへのホストパスの代わりに、ストレージプール名とストレージボリューム名を使用して、ストレージボリュームをゲストに割り当てることができます。
注記
ドメインXML の詳細は、23章ドメイン XML の操作 を参照してください。
ストレージプールは停止 (破棄) できます。これによりデータの抽象化は削除されますが、データは保持されます。
たとえば、mount -t nfs nfs.example.com:/path/to/share /path/to/data を使用する NFS サーバー。ストレージ管理者は、仮想化ホストで NFS ストレージプールを定義して、エクスポートしたサーバーパスおよびクライアントターゲットパスを記述できます。これにより、libvirt が起動した場合、または必要に応じてlibvirt が実行中に、libvirt がマウントを実行します。NFS サーバーがエクスポートしたディレクトリーが含まれるファイルは、NFS ストレージプールのストレージボリュームとして一覧表示されます。
ストレージボリュームをゲストに追加する際、管理者がターゲットパスをボリュームに追加する必要はありません。名前でストレージプールとストレージボリュームを追加する必要があります。したがって、ターゲットクライアントのパスが変更しても、仮想マシンには影響を及ぼしません。
ストレージプールが開始すると、libvirt は、システム管理者がログインして mount nfs.example.com:/path/to/share /vmdata を実行した場合と同じように、指定したディレクトリーに共有をマウントします。ストレージプールが自動起動するように設定されている場合は、libvirt が起動したときに、指定したディレクトリーに NFS 共有ディスクがマウントされていることが libvirt により確認されます。
ストレージプールが起動すると、NFS 共有ディスクのファイルはストレージボリュームとして報告され、ストレージボリュームのパスは、libvirt の API を使用してクエリーできます。ストレージボリュームのパスは、ゲスト仮想マシンの XML 定義のセクションにコピーできます。このセクションは、ゲスト仮想マシンのブロックデバイスのソースストレージを記述します。NFS の場合、libvirt の API を使用するアプリケーションは、プールのサイズの制限 (共有ストレージの容量) まで、ストレージプール (NFS 共有のファイル) でストレージボリュームを作成して削除できます。
ボリュームの作成および削除は、すべてのストレージプールタイプで対応しているわけではありません。ストレージプールを停止する (pool-destroy) と、開始操作を取り消します。この場合は、NFS 共有のマウントを解除します。コマンドの名前が記載されているにも関わらず、共有上のデータは destroy 操作で修正されません。詳細は、man virsh を参照してください。

手順13.1 ストレージの作成と割り当て

この手順により、仮想マシンゲストのストレージを作成および割り当てるために必要な手順の概要がわかります。
  1. ストレージプールの作成

    利用可能なストレージメディアから、1 つ以上のストレージプールを作成します。詳細は、「ストレージプールの使用」 を参照してください。
  2. ストレージボリュームの作成

    利用可能なストレージプールから、ストレージボリュームを 1 つ以上作成します。詳細は、「ストレージボリュームの使用」 を参照してください。
  3. 仮想マシンへのストレージデバイスの割り当て

    ストレージボリュームから抽象化されたストレージデバイスを、ゲスト仮想マシンに割り当てます。詳細は、「ゲストへのストレージデバイスの追加」 を参照してください。