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
など) に置き換えます。
- 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 ボリュームの作成中に問題が発生した場合は、ボリュームを削除します。詳細は 「作成に失敗したボリュームの削除」 を参照してください。 - ファイルシステムを作成します。
- XFS ファイルシステムの場合:
#
mkfs.xfs -K /dev/mapper/vdo_name - ext4 ファイルシステムの場合:
#
mkfs.ext4 -E nodiscard /dev/mapper/vdo_name
- ファイルシステムをマウントします。
#
mkdir -m 1777 /mnt/vdo_name#
mount /dev/mapper/vdo_name /mnt/vdo_name - ファイルシステムが自動的にマウントされるように設定するには、
/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
にもインストールされています。
- VDO デバイスのファイルシステムで
discard
機能を有効にします。バッチ操作とオンライン操作の両方が VDO で機能します。discard
機能の設定方法の詳細は、「未使用ブロックの破棄」 を参照してください。