13.3. ゲストへのストレージデバイスの追加
このセクションでは、ゲストへのストレージデバイスの追加について説明します。追加のストレージは、必要な場合にのみ追加できます。
13.3.1. ゲストへのファイルベースストレージの追加 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ファイルベースのストレージは、ゲストの仮想化ハードドライブとして機能するホスト物理マシンのファイルシステムに保存されるファイルのコレクションです。ファイルベースのストレージを追加するには、次の手順を実行します。
手順13.1 ファイルベースのストレージの追加
- ストレージファイルを作成するか、既存のファイル (IMG ファイルなど) を使用します。次のコマンドは両方とも、ゲストの追加ストレージとして使用できる 4GB のファイルを作成することに注意してください。
- ファイルベースのストレージイメージには、事前に割り当てられたファイルをお勧めします。次に示すように、次の dd コマンドを使用して、事前に割り当てられたファイルを作成します。
dd if=/dev/zero of=/var/lib/libvirt/images/FileName.img bs=1M count=4096
# dd if=/dev/zero of=/var/lib/libvirt/images/FileName.img bs=1M count=4096Copy to Clipboard Copied! Toggle word wrap Toggle overflow - または、事前に割り当てられたファイルの代わりにスパースファイルを作成します。スパースファイルははるかに高速に作成され、テストに使用できますが、データの整合性とパフォーマンスの問題があるため、実稼働環境にはお勧めしません。
dd if=/dev/zero of=/var/lib/libvirt/images/FileName.img bs=1M seek=4096 count=0
# dd if=/dev/zero of=/var/lib/libvirt/images/FileName.img bs=1M seek=4096 count=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 新しいファイルに <disk> 要素を書き込んで、追加のストレージを作成します。この例では、このファイルは
NewStorage.xmlと呼ばれます。<disk>要素は、ディスクのソースと仮想ブロックデバイスのデバイス名を記述します。デバイス名は、ゲスト内のすべてのデバイスで一意である必要があり、ゲストが仮想ブロックデバイスを見つけるバスを識別します。次の例では、ソースがFileName.imgという名前のファイルベースのストレージコンテナーである virtio ブロックデバイスを定義しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow デバイス名は hd または sd で始めることもでき、それぞれ IDE と SCSI ディスクを識別します。設定ファイルには、新しいデバイスのバス上の位置を指定する<address>サブ要素を含めることもできます。virtio ブロックデバイスの場合、これは PCI アドレスである必要があります。<address>サブ要素を省略すると、libvirt は次に使用可能な PCI スロットを見つけて割り当てることができます。 - 次のように CD-ROM を接続します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NewStorage.xmlで定義されたデバイスをゲスト (Guest1) とともに追加します。virsh attach-device --config Guest1 ~/NewStorage.xml
# virsh attach-device --config Guest1 ~/NewStorage.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この変更は、ゲストが破棄されて再起動された後にのみ適用されます。さらに、永続デバイスは、永続ドメイン、つまり virsh define コマンドで設定が保存されたドメインにのみ追加できます。ゲストが実行中で、ゲストが破棄されるまで新しいデバイスを一時的に追加する場合は、-configオプションを省略します。virsh attach-device Guest1 ~/NewStorage.xml
# virsh attach-device Guest1 ~/NewStorage.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記virsh コマンドを使用すると、XML ファイルを作成しなくても、より単純な構文で限られた数のパラメーターを設定できる attach-disk コマンドを使用できます。attach-disk コマンドは、次に示すように、前述の attach-device コマンドと同様の方法で使用されます。virsh attach-disk Guest1 /var/lib/libvirt/images/FileName.img vdb --cache none --driver qemu --subdriver raw
# virsh attach-disk Guest1 /var/lib/libvirt/images/FileName.img vdb --cache none --driver qemu --subdriver rawCopy to Clipboard Copied! Toggle word wrap Toggle overflow virsh attach-disk コマンドは--configオプションも受け入れることに注意してください。- ゲストマシンを起動します (現在実行されていない場合)。
virsh start Guest1
# virsh start Guest1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記次の手順は Linux ゲスト固有です。他のオペレーティングシステムは、さまざまな方法で新しいストレージデバイスを処理します。その他のシステムについては、そのオペレーティングシステムのドキュメントを参照してください。 ディスクドライブのパーティション分割
これで、ゲストには/dev/vdbというハードディスクデバイスがあります。。必要に応じて、このディスクドライブをパーティションに分割し、パーティションをフォーマットします。追加したデバイスが表示されない場合は、ゲストのオペレーティングシステムのディスクホットプラグに問題があることを示しています。- 新しいデバイスの fdisk を起動します。
fdisk /dev/vdb
# fdisk /dev/vdb Command (m for help):Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 新しいパーティションのために、
nと入力します。 - 次のように表示されます。
Command action e extended p primary partition (1-4)
Command action e extended p primary partition (1-4)Copy to Clipboard Copied! Toggle word wrap Toggle overflow プライマリーパーティションには、pと入力します。 - 使用可能なパーティション番号を選択します。この例では、
1を入力して、最初のパーティションを選択します。Partition number (1-4): 1
Partition number (1-4): 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Enterを押して、デフォルトの最初のシリンダーを入力します。First cylinder (1-400, default 1):
First cylinder (1-400, default 1):Copy to Clipboard Copied! Toggle word wrap Toggle overflow - パーティションのサイズを選択します。この例では、Enter を押してディスク全体を割り当てます。
Last cylinder or +size or +sizeM or +sizeK (2-400, default 400):
Last cylinder or +size or +sizeM or +sizeK (2-400, default 400):Copy to Clipboard Copied! Toggle word wrap Toggle overflow - t を入力して、パーティションタイプを設定します。
Command (m for help): t
Command (m for help): tCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 前の手順で作成したパーティションを選択します。この例では、パーティションが 1 つしか作成されておらず、fdisk がパーティション 1 を自動的に選択したため、パーティション番号は 1 です。
Partition number (1-4): 1
Partition number (1-4): 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Linux パーティションの場合は 83 と入力します。
Hex code (type L to list codes): 83
Hex code (type L to list codes): 83Copy to Clipboard Copied! Toggle word wrap Toggle overflow - w と入力して変更を書き込み、終了します。
Command (m for help): w
Command (m for help): wCopy to Clipboard Copied! Toggle word wrap Toggle overflow ext3ファイルシステムで新しいパーティションをフォーマットします。mke2fs -j /dev/vdb1
# mke2fs -j /dev/vdb1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- マウントディレクトリーを作成し、ゲストにディスクをマウントします。この例では、ディレクトリーは myfiles にあります。
mkdir /myfiles mount /dev/vdb1 /myfiles
# mkdir /myfiles # mount /dev/vdb1 /myfilesCopy to Clipboard Copied! Toggle word wrap Toggle overflow これで、ゲストは追加の仮想化されたファイルベースのストレージデバイスを使用できます。ただし、ゲストの/etc/fstabファイルで定義されていない限り、このストレージは再起動後に永続的にマウントされないことに注意してください。/dev/vdb1 /myfiles ext3 defaults 0 0
/dev/vdb1 /myfiles ext3 defaults 0 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow