第13章 ストレージプール
nfs.example.com:/path/to/share を /vm_data にマウントします。ストレージプールが起動すると、libvirt は指定ディレクトリーに共有をマウントします。これは、システム管理者がログインし、mount nfs.example.com:/path/to/share /vmdata を実行したかのような動作になります。ストレージプールが自動起動するように設定されている場合、libvirt は libvirt の起動時に指定されたディレクトリーに NFS 共有ディスクをマウントします。
man virsh を参照してください。
fstab に追加して、その共有が起動時にマウントされるようにします。
- virtio-blk = 2^63 バイトまたは 8 エクサバイト (raw ファイルまたはディスクを使用)
- Ext4 = ~ 16 TB (4 KB ブロックサイズを使用)
- XFS = ~8 エクサバイト
- qcow2 とホストファイルシステムはそれぞれ独自のメタデータを維持し、非常に大きなイメージサイズを使用する場合はスケーラビリティーの評価または調整を行う必要があります。raw ディスクを使用すると、スケーラビリティーや最大サイズに影響を与える可能性のある層の数が少なくなります。
/var/lib/libvirt/images/ ディレクトリーをデフォルトのストレージプールとして使用します。このデフォルトストレージプールは別のストレージプールに変更することができます。
- ローカルのストレージプール - ローカルのストレージプールは直接ホスト物理マシンサーバーに割り当てられます。ローカルのストレージプールには、ローカルのディレクトリー、直接割り当てられているディスク、物理パーティション、および LVM ボリュームグループなどが含まれます。これらのストレージボリュームはゲスト仮想マシンのイメージを格納するか、または追加ストレージとしてゲスト仮想マシンに割り当てられます。ローカルのストレージプールは直接ホスト物理マシンサーバーに割り当てられるため、ゲスト仮想マシンの移行や大量のゲスト仮想マシンを必要としない小規模な導入、テスト、および開発などに便利です。ローカルのストレージプールはライブマイグレーションには対応していないため、多くの実稼働環境には適していません。
- ネットワーク接続の (共有) ストレージプール - ネットワーク接続のストレージプールには、標準プロトコルを使ってネットワーク経由で共有されるストレージデバイスが含まれます。ネットワーク接続のストレージは、ホスト物理マシン間での仮想マシンの移行に virt-manager を使用する場合は必須になりますが、virsh を使用する場合はオプションになります。ネットワーク接続のストレージプールは libvirt で管理します。ネットワーク接続のストレージプールに対応するプロトコルには、以下が含まれます。
- ファイバーチャネルベースの LUN
- iSCSI
- NFS
- GFS2
- SCSI RDMA プロトコル (SCSI RCP) - InfiniBand アダプターと 10GbE iWARP アダプターで使用されるブロックエクスポートプロトコル
注記
例13.1 NFS ストレージプール
/path/to/share は /vm_data にマウントされる)。プールが起動すると、libvirt は指定ディレクトリーに共有をマウントします。これは、システム管理者がログインし、mount nfs.example.com:/path/to/share /vmdata を実行したかのような動作になります。プールが自動起動するように設定されている場合、libvirt は、libvirt の起動時に指定されるディレクトリー上に NFS 共有をマウントします。
注記
警告
13.1. ディスクベースのストレージプール
警告
/dev/sdb) への書き込みアクセスは付与しないようにし、パーティション (例: /dev/sdb1) や LVM ボリュームなどを使用するようにします。
13.1.1. virsh を使用したディスクベースのストレージプールの作成
virsh コマンドを使用して、ディスクデバイスを使って新しいストレージプールを作成します。
警告
ディスクに GPT ディスクラベルを作成します。
ディスクのラベルは、GPT (GUID Partition Table) ディスクラベルを使って付け直す必要があります。GPT ディスクラベルを使用すると、各デバイス上に最大 128 個もの数多くのパーティションを作成できます。MS-DOS パーティションテーブルに比べ、GPT パーティションテーブルの方がはるかに多くのパーティションのパーティションデータを格納することができます。#
parted /dev/sdbGNU Parted 2.1 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mklabel New disk label type? gpt (parted) quit Information: You may need to update /etc/fstab. #ストレージプールの設定ファイルを作成します。
新規デバイスに必要となるストレージプール情報が含まれた一時 XML テキストファイルを作成します。このファイルは以下のような形式にし、以下のフィールドを含む必要があります。- <name>guest_images_disk</name>
nameパラメーターはストレージプールの名前を指定します。この例では、guest_images_disk という名前を使用しています。- <device path='/dev/sdb'/>
path属性を持つdeviceパラメーターはストレージデバイスのデバイスパスを指定します。この例では、デバイス /dev/sdb を使用しています。- <target> <path>/dev</path></target>
pathサブパラメーターを持つファイルシステムtargetパラメーターは、ホスト物理マシンのファイルシステム上の位置を指定して、このストレージプールで作成されたボリュームを割り当てます。例: sdb1、sdb2、sdb3。この例のように /dev/ を使用すると、このストレージプールから作成したボリュームは /dev/sdb1、/dev/sdb2、/dev/sdb3 となり、これらにアクセスできるようになります。- <format type='gpt'/>
formatパラメーターは、パーティションテーブルのタイプを指定します。この例では、前述のステップで作成した GPT ディスクラベルのタイプと一致するよう gpt を使用しています。
テキストエディターを使って、ストレージプールデバイス用の XML ファイルを作成します。例13.2 ディスクベースストレージデバイスのストレージプール
<pool type='disk'> <name>guest_images_disk</name> <source> <device path='/dev/sdb'/> <format type='gpt'/> </source> <target> <path>/dev</path> </target> </pool>ストレージプールを起動します。
virsh pool-startコマンドを使用してストレージプールを起動します。virsh pool-list --allコマンドを使用して、プールが起動していることを確認できます。#
virsh pool-start iscsirhel7guestPool iscsirhel7guest started #virsh pool-list --allName State Autostart ----------------------------------------- default active yes guest_images_disk active noデバイスを割り当てます。
前述のステップで作成した XML 設定ファイルと共にvirsh pool-defineコマンドを使用し、ストレージプールの定義を追加します。#
virsh pool-define ~/guest_images_disk.xmlPool guest_images_disk defined from /root/guest_images_disk.xml #virsh pool-list --allName State Autostart ----------------------------------------- default active yes guest_images_disk inactive noautostart をオンにします。
ストレージプールのautostartをオンにします。Autostart は、libvirtdサービスの起動時にストレージプールを起動するようにこのサービスを設定します。#
virsh pool-autostart guest_images_diskPool guest_images_disk marked as autostarted #virsh pool-list --allName State Autostart ----------------------------------------- default active yes guest_images_disk active yesストレージプールの設定を確認します。
ストレージプールが正しく作成されたこと、およびサイズが正確に報告されていること、さらに状態がrunningとして報告されていることを確認します。#
virsh pool-info guest_images_diskName: guest_images_disk UUID: 551a67c8-5f2a-012c-3844-df29b167431c State: running Capacity: 465.76 GB Allocation: 0.00 Available: 465.76 GB #ls -la /dev/sdbbrw-rw----. 1 root disk 8, 16 May 30 14:08 /dev/sdb #virsh vol-list guest_images_diskName Path -----------------------------------------オプション: 一時設定ファイルを削除します。
不要な場合は、一時的なストレージプール XML 設定ファイルを削除します。#
rm ~/guest_images_disk.xml
13.1.2. virsh を使用したストレージプールの削除
- 同じプールを使用する他のゲスト仮想マシンに関連した問題を避けるには、ストレージプールを停止し、そのストレージプールで使用中のリソースすべてを解放するのが最良の方法です。
#
virsh pool-destroy guest_images_disk - ストレージプールの定義を削除します。
#
virsh pool-undefine guest_images_disk

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.