Menu Close
Settings Close

Language and Page Formatting Options

14.2.3. CLI でディスクベースのストレージプールの作成

ディスクベースのストレージプールでは、プールはディスクパーティションに基づいています。これは、たとえば、ディスクパーティション全体を仮想マシン (VM) ストレージ専用にする場合に便利です。virsh ユーティリティーを使用して、ディスクベースのストレージプールを作成できます。

前提条件

  • ハイパーバイザーがディスクベースのストレージプールをサポートしていることを確認します。

    # virsh pool-capabilities | grep "'disk' supported='yes'"

    コマンドの出力が表示される場合には、ディスクベースのプールはサポートの対象です。

  • ストレージプールのベースとなるデバイスを準備します。この目的のために、パーティション (/dev/sdb1 など) または LVM ボリュームを優先します。ディスク全体またはブロックデバイス (/dev/sdb など) への書き込みアクセスを仮想マシンに提供すると、その仮想マシンはそれをパーティション分割するか、その上に独自の LVM グループを作成する可能性があります。これにより、ホストでシステムエラーが発生する可能性があります。

    ただし、ストレージプールにブロックデバイス全体を使用する必要がある場合、Red Hat は、デバイス上の重要なパーティションを GRUB の os-prober 機能から保護することをお勧めします。これを行うには、/etc/default/grub ファイルを編集して、次のいずれかの設定を適用します。

    • os-prober を無効にします。

      GRUB_DISABLE_OS_PROBER=true
    • os-prober が特定のパーティションを検出しないようにします。以下に例を示します。

      GRUB_OS_PROBER_SKIP_LIST="5ef6313a-257c-4d43@/dev/sdb1"
  • ストレージプールを作成する前に、選択したストレージデバイス上のデータをバックアップします。使用されている libvirt のバージョンに応じて、ディスクをストレージプール専用にすると、現在ディスクデバイスに格納されているすべてのデータが再フォーマットされて消去される可能性があります。

手順

  1. ストレージプールを作成します。

    virsh pool-define-as コマンドを使用し、ディスクタイプのストレージプールを定義して作成します。次の例では、/dev/sdb デバイスを使用する guest_images_disk という名前のストレージプールを作成します。

    # virsh pool-define-as guest_images_disk disk --source-format=gpt --source-dev=/dev/sdb --target /dev
    Pool guest_images_disk defined

    作成するストレージプールの XML 設定がすでにある場合は、XML を基にプールを定義することもできます。詳細は、Disk-based storage pool parameters を参照してください。

  2. ストレージプールのターゲットパスの作成

    virsh pool-build コマンドを使用して、フォーマット済みファイルシステムのストレージプール用のストレージプールターゲットパスを作成し、ストレージソースデバイスを初期化し、データのフォーマットを定義します。

    # virsh pool-build guest_images_disk
      Pool guest_images_disk built
    注記

    ターゲットパスの構築は、ディスクベース、ファイルシステムベース、論理ストレージプールにのみ必要です。libvirt は、overwrite オプションが指定されている場合を除き、ソースストレージデバイスのデータフォーマットが、選択したストレージプールタイプと異なることを検出すると、ビルドに失敗します。

  3. プールが作成されたことを確認します。

    virsh pool-list コマンドを使用して、プールが作成されたことを確認します。

    # virsh pool-list --all
    
      Name                 State      Autostart
      -----------------------------------------
      default              active     yes
      guest_images_disk    inactive   no
  4. ストレージプールを起動します。

    virsh pool-start コマンドを使用して、ストレージプールをマウントします。

    # virsh pool-start guest_images_disk
      Pool guest_images_disk started
    注記

    virsh pool-start コマンドは、永続ストレージプールにのみ必要です。一時的なストレージプールは、作成時に自動的に起動します。

  5. (必要に応じて) 自動起動をオンにします。

    デフォルトでは、virsh コマンドで定義されたストレージプールは、仮想化サービスが起動するたびに自動的に起動するようには設定されていません。virsh pool-autostart コマンドを使用して、ストレージプールが自動的に起動するように設定します。

    # virsh pool-autostart guest_images_disk
      Pool guest_images_disk marked as autostarted

検証

  • virsh pool-info コマンドを使用して、ストレージプールが running 状態であることを確認します。報告されるサイズが期待どおりであるか、また、自動開始が正しく設定されているかを確認してください。

    # virsh pool-info guest_images_disk
      Name:           guest_images_disk
      UUID:           c7466869-e82a-a66c-2187-dc9d6f0877d0
      State:          running
      Persistent:     yes
      Autostart:      yes
      Capacity:       458.39 GB
      Allocation:     197.91 MB
      Available:      458.20 GB