Menu Close
Settings Close

Language and Page Formatting Options

14.2.4. CLI でファイルシステムベースのストレージプールの作成

マウントされていないファイルシステムにストレージプールを作成する場合は、ファイルシステムベースのストレージプールを使用します。このストレージプールは、指定のファイルシステムのマウントポイントを基にしています。virsh ユーティリティーを使用すると、ファイルシステムベースのストレージプールを作成できます。

前提条件

  • ハイパーバイザーがファイルシステムベースのストレージプールをサポートしていることを確認します。

    # virsh pool-capabilities | grep "'fs' 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"

手順

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

    virsh pool-define-as コマンドを使用し、ファイルシステムタイプのストレージプールを定義して作成します。たとえば、/dev/sdc1 パーティションを使用し、/guest_images ディレクトリーにマウントされるストレージプールに guest_images_fs という名前を指定して作成するには以下を実行します。

    # virsh pool-define-as guest_images_fs fs --source-dev /dev/sdc1 --target /guest_images
    Pool guest_images_fs defined

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

  2. ストレージプールのターゲットパスの定義

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

    # virsh pool-build guest_images_fs
      Pool guest_images_fs built
    
    # ls -la /guest_images
      total 8
      drwx------.  2 root root 4096 May 31 19:38 .
      dr-xr-xr-x. 25 root root 4096 May 31 19:38 ..
  3. プールが作成されたことを確認します。

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

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

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

    # virsh pool-start guest_images_fs
      Pool guest_images_fs started
    注記

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

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

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

    # virsh pool-autostart guest_images_fs
      Pool guest_images_fs marked as autostarted

検証

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

    # virsh pool-info guest_images_fs
      Name:           guest_images_fs
      UUID:           c7466869-e82a-a66c-2187-dc9d6f0877d0
      State:          running
      Persistent:     yes
      Autostart:      yes
      Capacity:       458.39 GB
      Allocation:     197.91 MB
      Available:      458.20 GB
  2. ファイルシステムのターゲットパスに lost+found ディレクトリーがあることを確認します。これは、デバイスがマウントされていることを示しています。

    # mount | grep /guest_images
      /dev/sdc1 on /guest_images type ext4 (rw)
    
    # ls -la /guest_images
      total 24
      drwxr-xr-x.  3 root root  4096 May 31 19:47 .
      dr-xr-xr-x. 25 root root  4096 May 31 19:38 ..
      drwx------.  2 root root 16384 May 31 14:18 lost+found