Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

30.3.3. VDO ボリュームの作成

ブロックデバイスの VDO ボリュームを作成します。同じマシンで別々のデバイスに対して、複数の VDO ボリュームを作成できます。このアプローチを選択する場合は、システム上の VDO の各インスタンスに、異なる名前とデバイスを指定する必要があります。
重要
拡張可能なストレージをバッキングブロックデバイスとして使用している。詳細は、「システム要件」 を参照してください。
以下の手順では、vdo_name を、VDO ボリュームに使用する識別子( vdo1 など)に置き換えます。
  1. VDO Manager を使用して VDO ボリュームを作成します。
    # vdo create \
           --name=vdo_name \
           --device=block_device \
           --vdoLogicalSize=logical_size \
           [--vdoSlabSize=slab_size]
    • block_device を、VDO ボリュームを作成するブロックデバイスの永続名に置き換えます。たとえば、/dev/disk/by-id/scsi-3600508b1001c264ad2af21e903ad031f です
      重要
      永続的なデバイス名を使用します。永続的なデバイス名を使用しないと、今後デバイスの名前が変わった場合に、VDO が正しく起動しなくなることがあります。
      永続的な名前の詳細は、「永続的な命名」 を参照してください。
    • logical_size を、VDO ボリュームが含まれる論理ストレージのサイズに置き換えます。
      • アクティブな仮想マシンまたはコンテナーストレージの場合は、使用する論理のサイズを、ブロックデバイスの物理サイズの 10 倍になるようにします。たとえば、ブロックデバイスのサイズが 1 TB の場合は 、10T を使用します。
      • オブジェクトストレージの場合は、使用する論理サイズを、ブロックデバイスの物理サイズの 3 倍になるようにします。たとえば、ブロックデバイスのサイズが 1 TB の場合は 、3T を使用します。
    • ブロックデバイスが 16 TiB を超える場合は 、--vdoSlabSize=32G を追加して、ボリューム上のスラブサイズを 32 GiB に増やします。
      16 TiB を超えるブロックデバイスでデフォルトのスラブサイズ 2 GiB を使用すると、vdo create コマンドが以下のエラーで失敗します。
      vdo: ERROR - vdoformat: formatVDO failed on '/dev/device': VDO Status: Exceeds maximum number of slabs supported
      詳細は、「VDO ボリューム」 を参照してください。

    例30.1 コンテナーストレージ用の VDO の作成

    たとえば、1 TB ブロックデバイスでコンテナーストレージ用に VDO ボリュームを作成するには、次のコマンドを実行します。
    # vdo create \
           --name=vdo1 \
           --device=/dev/disk/by-id/scsi-3600508b1001c264ad2af21e903ad031f \
           --vdoLogicalSize=10T
    VDO ボリュームが作成されると、VDO はエントリーを /etc/vdoconf.yml 設定ファイルに追加します。次に、vdo.service systemd ユニットはエントリーを使用して、デフォルトでボリュームを起動します。
    重要
    VDO ボリュームの作成中に問題が発生した場合は、ボリュームを削除します。詳しくは、「正常に作成されたボリュームの削除」 を参照してください。
  2. ファイルシステムを作成します。
    • XFS ファイルシステムの場合:
      # mkfs.xfs -K /dev/mapper/vdo_name
    • ext4 ファイルシステムの場合:
      # mkfs.ext4 -E nodiscard /dev/mapper/vdo_name
  3. ファイルシステムをマウントします。
    # mkdir -m 1777 /mnt/vdo_name
    # mount /dev/mapper/vdo_name /mnt/vdo_name
  4. ファイルシステムが自動的にマウントするように設定するには、/etc/fstab ファイルまたは systemd マウントユニットを使用します。
    • /etc/fstab 設定ファイルを使用する場合は、次の行のいずれかをファイルに追加します。
      • XFS ファイルシステムの場合:
        /dev/mapper/vdo_name /mnt/vdo_name xfs defaults,_netdev,x-systemd.device-timeout=0,x-systemd.requires=vdo.service 0 0
      • ext4 ファイルシステムの場合:
        /dev/mapper/vdo_name /mnt/vdo_name ext4 defaults,_netdev,x-systemd.device-timeout=0,x-systemd.requires=vdo.service 0 0
    • systemd ユニットを使用する場合は、適切なファイル名で systemd マウントユニットファイルを作成します。VDO ボリュームのマウントポイントの場合は、以下の内容で /etc/systemd/system/mnt-vdo_name.mount ファイルを作成します。
      [Unit]
      Description = VDO unit file to mount file system
      name = vdo_name.mount
      Requires = vdo.service
      After = multi-user.target
      Conflicts = umount.target
      
      [Mount]
      What = /dev/mapper/vdo_name
      Where = /mnt/vdo_name
      Type = xfs
      
      [Install]
      WantedBy = multi-user.target
      
      systemd ユニットファイルの例も、/usr/share/doc/vdo/examples/systemd/VDO.mount.example にインストールされます。
  5. VDO デバイスのファイルシステムで discard 機能を有効にします。バッチとオンライン操作はいずれも、VDO で動作します。
    破棄 機能を設定する方法は、「未使用ブロックの破棄」 を参照してください。