3.5. ストレージ

仮想マシン向けのストレージは、仮想マシンに割り当てられた物理ストレージから抽出されます。これは、準仮想化またはエミュレートされたブロックデバイスドライバーを使用して仮想マシンにアタッチされます。

3.5.1. ストレージプール

ストレージプール とは、仮想マシンにストレージを提供するために libvirt が管理するファイルやディレクトリー、ストレージデバイスのことです。ストレージプールは、仮想マシンイメージを保存するストレージ ボリューム または仮想マシンに新たなストレージとしてアタッチされるストレージボリュームに分割されます。複数のゲストが同一のストレージプールを共有でき、ストレージリソースをより適切に割り当てることができます。詳細はRed Hat Enterprise Linux 7 仮想化の導入および管理ガイドを参照してください。
ローカルストレージプール
ローカルストレージプールは、ホストサーバーに直接アタッチされています。これに含まれるのは、ローカルディレクトリー、直接アタッチされたディスク、物理パーティション、ローカルデバイス上の論理ボリューム管理 (LVM) のボリュームグループです。ローカルストレージプールは開発、テスト、移行や多数の仮想マシンを必要としない小規模開発などに役立ちます。ローカルストレージプールは、ライブマイグレーションに対応していないため、多くの本番環境に適切でない可能性があります。
ネットワーク (共有) ストレージプール
ネットワークストレージプールには、標準プロトコル使用のネットワークにまたがって共有されるストレージデバイスが含まれます。ネットワークストレージは、virt-manager を使用したホスト間の仮想マシン移行で必要となりますが、virsh を使用した移行の場合はオプションとなります。ネットワークストレージプールは、libvirtで管理します。

3.5.2. ストレージボリューム

ストレージプールは、さらにストレージボリュームに分割されます。ストレージボリュームとは、物理パーティション、LVM 論理ボリューム、ファイルベースのディスクイメージ、libvirt で処理される他のストレージタイプなどを抽象化したものです。ストレージボリュームは、基盤となるハードウェアに関係なく、ローカルストレージデバイスとして仮想マシンに提示されます。

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 よりも低いですが、複数の異なるシステムに対する互換性の面では優れています。
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 ファイルのタイプは Preallocated (事前割り当て) ファイルまたは Sparse (スパース) ファイルのいずれかになります。Sparse ファイルはホストディスク容量をオンデマンドで割り当てるため、一種のシンプロビジョニングと言うことができます。Preallocated ファイルは完全にプロビジョニングされますが、Sparse ファイルよりもパフォーマンスが高くなります。
Raw ファイルは、ディスクの I/O パフォーマンスが重要となる場合や、イメージファイルをネットワーク上で転送する必要がほとんどない場合に適しています。
qcow2
qcow2 イメージファイルは、バッキングファイルや、スナップショット、圧縮および暗号化などの数多くの高度なディスクイメージ機能を提供します。これらのイメージファイルは、テンプレートイメージから仮想マシンのインスタンスを作成するために使用することができます。
qcow2 ファイルは、通常ネットワーク上でより効率的に転送できるファイルです。仮想マシンによって書き込まれるセクターのみがイメージに割り当てられるためです。
Red Hat Enterprise Linux 7.0 は、qcow2 バージョン 3 のイメージファイル形式をサポートします。
LVM ボリューム
論理ボリューム (LV) はディスクイメージに使用でき、システムの LVM ツールを使用して管理できます。LVM のブロックストレージのモデルは他のファイルシステムよりもシンプルであるため、LVM はより高いパフォーマンスを提供します。
LVM シンプロビジョニングはスナップショットを提供し、LVM ボリュームの領域のより効率的な使用を可能にします。さらに、qcow2 に対する移行の代替手段として使用することができます。
ホストデバイス
物理 CD-ROM および Raw ディスク、または論理ユニット番号 (LUN) などのホストデバイスをゲストに提示することができます。これにより、ゲストはパフォーマンスを維持した状態で、SAN や iSCSI LUN、およびローカル CD-ROM メディアを使用できます。
ホストデバイスは、ストレージ管理がホスト上ではなく SAN 上で行なわれている場合に使用することができます。
分散ストレージシステム
Gluster ボリュームはディスクイメージとして使用できます。これにより、ネットワーク上で高パフォーマンスのクラスター化ストレージを使用することができます。
Red Hat Enterprise Linux 7 には、GlusterFS 上のディスクに対するネイティブサポートが含まれます。これにより、KVM ホストは GlusterFS ボリュームから仮想マシンイメージを起動し、仮想マシンのデータディスクとして GlusterFS ボリュームのイメージを使用することができます。GlusterFS FUSE と比較すると、KVM のネイティブサポートのほうが高いパフォーマンスを実現します。

注記

ストレージおよび仮想化に関する詳細は、Red Hat Enterprise Linux 7 仮想化の導入および管理ガイドを参照してください。