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 倍の論理サイズを使用します。たとえば、ブロックデバイスのサイズが 1TB の場合は、ここで 10T を使用します。
      • オブジェクトのストレージには、ブロックデバイスの物理サイズの 3 倍の論理サイズを使用します。たとえば、ブロックデバイスのサイズが 1TB の場合は、ここで 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 の作成

    たとえば、1TB のブロックデバイスにコンテナーストレージ用の 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 で機能します。
    discard 機能の設定方法の詳細は、「未使用ブロックの破棄」 を参照してください。