Red Hat Training

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

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

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

13.1. ストレージの概念

ストレージプールは、ゲスト仮想マシンで使用するために作成できるストレージの量です。ストレージプールはストレージボリュームに分類されます。各ストレージボリュームは、ゲストバス上のブロックデバイスとしてゲスト仮想マシンに割り当てられます。
ストレージプールとボリュームは、libvirt を使用して管理されます。libvirtのリモートプロトコルを使用すると、ゲスト仮想マシンのライフサイクルのすべての側面やゲスト仮想マシンで必要なリソースの設定を管理できます。この操作は、リモートホストで実行できます。その結果、libvirtVirtual Machine Manager などの管理アプリケーションは、ユーザーがゲスト仮想マシンのホストの物理マシンを設定するために必要なすべてのタスクを実行できるようにします。これには、シェルアクセスやその他の制御チャネルを必要とせず、ゲスト仮想マシンの実行、シャットダウン、リソースの割り当てなどが含まれます。
libvirt API を使用して、ストレージプールのボリューム一覧を照会したり、ストレージプールの容量、割り当て、利用可能なストレージに関する情報を取得したりできます。ストレージプールのストレージボリュームは、スパースボリュームで異なる可能性がある割り当てや容量などの情報を取得するためにクエリーされることがあります。
ストレージプールがこれに対応する場合は、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. 仮想マシンにストレージデバイスを割り当てます。

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

このページには機械翻訳が使用されている場合があります (詳細はこちら)。