13.6. NFS ベースのストレージプール

このセクションでは、NFS マウントポイントを使ってストレージプールを作成および削除する方法について説明します。ここでは、NFS が既にホストマシンにマウントされていることを前提としています。NFS マウントポイント作成および追加の詳細については、『Red Hat Enterprise Linux 7 ストレージ管理ガイド』を参照してください。

13.6.1. virt-manager を使用した NFS ベースのストレージプールの作成

  1. ホスト物理マシンの「ストレージ」タブを開きます

    接続の詳細 ウィンドウ内の ストレージ タブを開きます。
    1. virt-manager を開きます。
    2. virt-manager のメインウィンドウからホスト物理マシンを選択します。編集 メニューをクリックして、接続の詳細 を選択します。
    3. ストレージ タブをクリックします。
      「ストレージ」タブ

      図13.20 「ストレージ」タブ

  2. 新規プールの作成 (パート 1)

    + ボタン (プールの追加ボタン) を押します。新規ストレージプールを追加 ウィザードが表示されます。
    NFS の名前と種類を追加

    図13.21 NFS の名前と種類を追加

    ストレージプールの名前を選択し、進む を押して次に進みます。
  3. 新規プールの作成 (パート 2)

    デバイスのターゲットパス、ホスト名、および NFS 共有パスを入力します。フォーマット オプションを NFS または auto (タイプを検出する) に設定します。ターゲットパスは移行のためにすべてのホスト物理マシン上で同一でなければなりません。
    NFS サーバーのホスト名または IP アドレスを入力します。この例では、server1.example.com を使用しています。
    NFS パスを入力します。この例では、/nfstrial を使用しています。
    NFS ストレージプールの作成

    図13.22 NFS ストレージプールの作成

    完了 を押すと、新規のストレージプールが作成されます。

13.6.2. virt-manager を使用したストレージプールの削除

以下の手順では、ストレージプールを削除する方法を説明します。
  1. 同じプールを使用する他のゲストに関連した問題を避けるには、ストレージプールを停止し、そのストレージプールで使用中のリソースをすべて解放するのが最良の方法です。これを実行するには、停止するストレージプールを選択して、 をクリックします。
    停止アイコン

    図13.23 停止アイコン

  2. ゴミ箱アイコンをクリックしてストレージプールを削除します。ストレージプールを停止しておかないとこのアイコンは使用できません。

13.6.3. virsh を使用した NFS ベースのストレージプールの作成

手順13.8 NFS ベースのストレージプールの作成

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

    新規の永続ストレージプールを定義するには、virsh pool-define-as コマンドを使用します。新規の非永続ストレージプールを定義するには、virsh pool-create-as コマンドを使用します。
    永続ストレージプールは、ゲスト仮想マシンが実行されていない場合でもアクセスが可能で、ホストの再起動後にも存在し続けます。非永続ストレージプールは、ゲスト仮想マシンが実行されている場合に限り利用可能で、ホストの再起動後には存在しません。
    この例では、永続ストレージプールが使われています。
    # virsh pool-define-as nfspool netfs --sourcehost localhost --source-path /home/path/to/mountpoint/directory --target /tmp/nfspool-client
    Pool nfspool defined
    NFS ベースのストレージプールを作成するには、以下のオプションが必要です。
    • ストレージプールの 名前
      この例では、名前に nfspool が使われています。この例で使用されているこれ以降の全ての virsh コマンドはこの名前を使用します。
    • ストレージプールの タイプ。NFS ベースのストレージプールの場合、タイプは netfs です。
    • ステップ 1 で作成したマウントポイントが存在する NFS サーバーの ホスト名。ホスト名または IP アドレスを指定することができます。この例では、ホスト名に localhost が使われています。
    • ソースパス は、配信されるファイルの NFS サーバー上の場所です。
      この例では、/home/path/to/mountpoint/directory ディレクトリーが使われています。
    • NFS クライアントがファイルの参照コピーを保管する ターゲット
      この例では、ターゲットに /tmp/nfspool-client が使われています。
    プールを定義せずに XML ファイルの設定結果を表示するには、コマンドに --print-xml オプションを追加します。上記のコマンドに --print-xml オプションを追加した例を以下に示します。
    # virsh pool-define-as nfspool netfs --sourcehost localhost --source-path /home/path/to/mountpoint/directory --target /tmp/nfspool-client --print-xml
    <pool type='netfs'>
      <name>nfspool</name>
      <source>
        <host name='localhost'/>
        <dir path='/home/path/to/mountpoint/directory'/>
      </source>
      <target>
        <path>/tmp/nfspool-client</path>
      </target>
    </pool>
  2. ストレージプールが一覧に表示されることを確認します。

    ストレージプールオブジェクトが正しく作成されていること、および状態が inactive として表示されていることを確認します。
    # virsh pool-list --all
    Name                 State      Autostart
    -----------------------------------------
    default              active     yes
    nfspool              inactive   no
    virsh pool-dumpxml コマンドを実行して、出力を表示することもできます。
    # virsh pool-dumpxml nfspool
    <pool type='netfs'>
    <name>nfspool</name>
    <uuid>ad9bca0f-977f-4fe1-90c6-cb44f676f1ce</uuid>
    <capacity unit='bytes'>0</capacity>
    <allocation unit='bytes'>0</allocation>
    <available unit='bytes'>0</available>
    <source>
      <host name='localhost'/>
      <dir path='/home/vm-storage/nfspool'/>
      <format type='auto'/>
    </source>
    <target>
      <path>/tmp/nfspool-client</path>
    </target>
    </pool>
  3. ローカルのディレクトリーを作成します。

    virsh pool-build コマンドを使用し、指定したディレクトリー (この例では nfspool) にディレクトリーベースのストレージプールをビルドします。
    # virsh pool-build guest_images
    Pool guest_images built
    # ls -la /nfspool
    total 8
    drwx------.  2 root root 4096 May 30 02:44 .
    dr-xr-xr-x. 26 root root 4096 May 30 02:44 ..
    # virsh pool-list --all
    Name                 State      Autostart
    -----------------------------------------
    default              active     yes
    nfspool              inactive   no
  4. ストレージプールを起動します。

    virsh pool-start コマンドを使ってディレクトリーストレージプールを有効にします。これにより、プールのボリュームがゲストのディスクイメージとして使用されます。
    # virsh pool-start nfspool
    Pool nfspool started
    # virsh pool-list --all
    Name                 State      Autostart
    -----------------------------------------
    default             active     yes
    nfspool             active     no

    注記

    1 つの手順で、ストレージプールをビルドして起動することができます。
    # virsh-pool start nfspool --build
  5. autostart をオンにします。

    ストレージプールの autostart をオンにします。

    注記

    このステップは必須ではありません。
    autostart が設定されていると、libvirtd サービスの起動時に、libvirtd サービスによりストレージプールが起動します。
    # virsh pool-autostart nfspool
    Pool nfspool marked as autostarted
    # virsh pool-list --all
    Name                 State      Autostart
    -----------------------------------------
    default              active     yes
    nfspool              active     yes
  6. ストレージプールの設定を確認します。

    ストレージプールが正しく作成されたこと、サイズが正しく表示されていること、状態が running と表示されていることなどを確認します。プールを永続化させたい場合には、Persistentyes が表示されているか確認します。サービスの起動時にプールを自動的に起動させたい場合は、Autostartyes が表示されているか確認します。
    # virsh pool-info nfspool
    Name:           nfspool
    UUID:           ad9bca0f-977f-4fe1-90c6-cb44f676f1ce
    State:          running
    Persistent:     yes
    Autostart:      yes
    Capacity:       123.63 GiB
    Allocation:     10.87 GiB
    Available:      112.76 GiB
    
    # ls -la /tmp/nfspool-client
    total 8
    total 4
    drwxr-xr-x.  2 root root 4096 Aug 28 15:59 .
    drwxrwxrwt. 26 root root  640 Aug 28 16:07 ..
    #
これで NFS ベースのストレージプールが使用できるようになりました。

13.6.4. virsh を使用したストレージプールの削除

以下では、virsh を使ってストレージプールを削除する方法を説明します。
  1. 同じプールを使用する他のゲスト仮想マシンとの問題を避けるには、ストレージプールを停止してから使用中のリソースをすべて解放するのが最良の方法です。
    # virsh pool-destroy nfspool
  2. 必要に応じて、ストレージプールが存在するディレクトリーを削除します (この操作は必須ではありません)。
    # virsh pool-delete nfspool
  3. ストレージプールの定義を削除します。
    # virsh pool-undefine nfspool
    Pool nfspool has been undefined