3.5. ストレージ
仮想マシンのストレージは、仮想マシンに割り当てられた物理ストレージから抽象化されます。これは、準仮想化またはエミュレートされたブロックデバイスドライバーを使用して仮想マシンに接続されます。
3.5.1. ストレージプール
ストレージプール は、仮想マシンにストレージを提供する目的で libvirt によって管理されるファイル、ディレクトリー、またはストレージデバイスです。ストレージプールは、仮想マシンイメージを保存するストレージ ボリューム に分割されるか、追加のストレージとして仮想マシンに割り当てられます。複数のゲストで同じストレージプールを共有できるため、ストレージリソースの割り当てを改善できます。 詳細は、『Red Hat Enterprise Linux 7 仮想化の導入および管理ガイド』 を参照してください。
- ローカルストレージのプール
- ローカルストレージプールは、ホストサーバーに直接割り当てることができます。これには、ローカルデバイスのローカルディレクトリー、直接接続したディスク、物理パーティション、および論理ボリューム管理 (LVM) ボリュームグループが含まれます。ローカルストレージプールは、移行や大量の仮想マシンを必要としない開発、テスト、および小規模なデプロイメントに役立ちます。ローカルストレージプールは、ライブマイグレーションをサポートしていないため、多くの実稼働環境には適していない場合があります。
- ネットワーク (共有) ストレージプール
- ネットワークストレージプールには、標準プロトコルを使用してネットワーク経由で共有されるストレージデバイスが含まれます。virt-manager を使用してホスト間で仮想マシンを移行する場合はネットワークストレージが必要ですが、virsh を使用して移行する場合は任意です。ネットワークストレージプールは libvirt によって管理されます。
3.5.2. ストレージボリューム
ストレージプールは、ストレージボリューム に分類されます。ストレージボリュームは、libvirt が処理する物理パーティション、LVM 論理ボリューム、ファイルベースのディスクイメージ、その他のストレージタイプの抽象化です。ストレージボリュームは、基盤となるハードウェアに関係なく、ローカルストレージデバイスとして仮想マシンに提示されます。
3.5.3. エミュレートされたストレージデバイス
仮想マシンには、ホストによってエミュレートされるさまざまなストレージデバイスを提示できます。各タイプのストレージデバイスは特定のユースケースに適しており、最大限の柔軟性とゲストオペレーティングシステムとの互換性を実現できます。
- virtio-scsi
- virtio-scsi は、多数のディスクまたは TRIM などの高度なストレージ機能を使用するゲストに推奨される準仮想化デバイスです。Red Hat Enterprise Linux 7 以外のオペレーティングシステムを使用しているゲストでは、ゲストドライバーのインストールが必要になる場合があります。
- virtio-blk
- virtio-blk は、イメージファイルをゲストに公開するのに適した準仮想化ストレージデバイスです。virtio-blk は最適なディスク I/O パフォーマンスを仮想マシンに提供できますが、virtio-scsi より機能が少なくなっています。.
- IDE
- IDE は、virtio ドライバーをサポートしていないレガシーゲストに推奨されます。IDE のパフォーマンスは virtio-scsi または virtio-blk よりも低いものの、IDE はさまざまなシステムと互換性があります。
- CD-ROM
- ATAPI CD-ROM および virtio-scsi CD-ROM が利用可能です。これらにより、ゲストが ISO ファイルまたはホストの CD-ROM ドライブを使用できるようになります。virtio-scsi CD-ROM は、virtio-scsi ドライバーがインストールされているゲストで使用できます。ATAPI CD-ROM のほうが互換性は高いものの、パフォーマンスは低くなります。
- USB 大容量記憶装置とフロッピーディスク
- リムーバブルメディアが必要な場合は、エミュレートされた USB 大容量記憶装置とフロッピーディスクを使用できます。USB 大容量記憶装置は、容量が大きいため、フロッピーディスクよりも推奨されます。
3.5.4. ホストストレージ
ディスクイメージは、ホストに接続されたさまざまなローカルおよびリモートストレージテクノロジーに保存できます。
- イメージファイル
- イメージファイルは、ホストファイルシステムにのみ保存できます。イメージファイルは、ext4 や xfs などのローカルファイルシステム、または NFS などのネットワークファイルシステムに保存できます。libguestfs などのツールで、ファイルの管理、バックアップ、および監視を行うことができます。KVM のディスクイメージ形式には次のものがあります。
- raw
- raw イメージファイルには、追加のメタデータを含まないディスクのコンテンツが含まれます。raw ファイルには、事前に割り当てられたファイルとスパースファイルがあります (ホストファイルシステムで許可されている場合)。スパースファイルは、オンデマンドでホストディスク領域を割り当てるため、シンプロビジョニングの一種です。事前に割り当てられたファイルは完全にプロビジョニングされますが、スパースファイルよりもパフォーマンスが高くなります。raw ファイルは、ディスク I/O パフォーマンスが重要で、ネットワーク経由でイメージファイルを転送する必要がほとんどない場合に適しています。
- qcow2
- qcow2 イメージファイルは、バッキングファイル、スナップショット、圧縮、暗号化など、多くの高度なディスクイメージ機能を提供します。テンプレートイメージから仮想マシンをインスタンス化するために使用できます。通常、qcow2 ファイルはネットワーク経由で転送する方が効率的です。これは、仮想マシンによって書き込まれたセクターのみがイメージに割り当てられるためです。Red Hat Enterprise Linux 7 は、qcow2 バージョン 3 イメージファイル形式をサポートしています。
- LVM ボリューム
- 論理ボリューム (LV) は、ディスクイメージに使用でき、システムの LVM ツールを使用して管理できます。LVM は、ブロックストレージモデルが単純であるため、ファイルシステムよりも高いパフォーマンスを提供します。LVM シンプロビジョニングは、LVM ボリュームのスナップショットと効率的な領域の使用を提供し、qcow2 への移行の代替手段として使用できます。
- Host devices
- 物理 CD-ROM、raw ディスク、論理ユニット番号 (LUN) などのホストデバイスをゲストに提示できます。これにより、ゲストは SAN または iSCSI LUN とローカル CD-ROM メディアを優れたパフォーマンスで使用できます。ホストデバイスは、ストレージ管理をホストではなく SAN で行う場合に使用できます。
- 分散ストレージシステム
- Gluster ボリュームをディスクイメージとして使用できます。これにより、高パフォーマンスのクラスター化ストレージをネットワーク上で実現できます。Red Hat Enterprise Linux 7 には、GlusterFS 上のディスクイメージのネイティブサポートが含まれています。これにより、KVM ホストは GlusterFS ボリュームから仮想マシンイメージを起動し、GlusterFS ボリュームのイメージを仮想マシンのデータディスクとして使用できます。GlusterFS FUSE と比較すると、KVM のネイティブサポートはより高いパフォーマンスを提供します。
ストレージおよび仮想化の詳細は、仮想マシンのストレージの 管理 を参照してください。