4.3. 論理ボリュームのサイズ変更
論理ボリュームマネージャー (LVM) を使用すると、論理ボリューム (LV) に保存されているデータに影響を与えることなく、必要に応じて LV のサイズを変更できます。
4.3.1. リニア論理ボリュームの拡張
lvextend
コマンドを使用して、リニア (シック) LV とそのスナップショットを拡張できます。
前提条件
- 管理アクセスがある。
手順
ボリュームグループに、LV を拡張するのに十分な容量があることを確認します。
# lvs -o lv_name,lv_size,vg_name,vg_size,vg_free LV LSize VG VSize VFree LogicalVolumeName 1.49g VolumeGroupName 30.75g 29.11g
リニア LV を拡張し、ファイルシステムのサイズを変更します。
# lvextend --size +AdditionalSize --resizefs VolumeGroupName/LogicalVolumeName
AdditionalSize は、LV に追加する容量に置き換えます。デフォルトの測定単位はメガバイトですが、他の単位を指定することもできます。VolumeGroupName は、ボリュームグループの名前に置き換えます。LogicalVolumeName は、シンボリュームの名前に置き換えます。
検証
リニア LV が拡張されたことを確認します。
# lvs -o lv_name,lv_size LV LSize NewLogicalVolumeName 6.49g
4.3.2. シン論理ボリュームの拡張
lvextend
コマンドを使用して、シン論理ボリューム (LV) を拡張できます。
前提条件
- 管理アクセスがある。
手順
追加する予定のデータに対して、シンプールに十分な容量があることを確認します。
# lvs -o lv_name,lv_size,data_percent LV LSize Data% MyThinPool 20.10g 3.21 ThinVolumeName 1.10g 4.88
シン LV を拡張し、ファイルシステムのサイズを変更します。
# lvextend --size +AdditionalSize --resizefs VolumeGroupName/ThinVolumeName
AdditionalSize は、LV に追加する容量に置き換えます。デフォルトの測定単位はメガバイトですが、他の単位を指定することもできます。VolumeGroupName は、ボリュームグループの名前に置き換えます。ThinVolumeName は、シンボリュームの名前に置き換えます。
検証
シン LV が拡張されたことを確認します。
# lvs -o lv_name,lv_size,data_percent LV LSize Data% MyThinPool 20.10g 3.21 ThinVolumeName 6.10g 0.43
4.3.3. シンプールの拡張
シン論理ボリュームの仮想サイズがシンプールの物理容量を超え、オーバープロビジョニングが発生する可能性があります。容量不足を防ぐために、シンプールの容量を監視し、定期的に拡張する必要があります。
data_percent
メトリクスは、シンプールが現在使用している割り当て済みのデータ領域の割合を示します。metadata_percent
メトリクスは、シンプール内のマッピングを管理するために不可欠なメタデータの保存に使用される領域の割合を示します。
効率的なストレージ管理を実現し、容量の問題を回避するには、これらのメトリクスを監視することが不可欠です。
LVM には、必要に応じてデータまたはメタデータの容量を手動で拡張するオプションが用意されています。または、監視を有効にして、シンプールの拡張を自動化することもできます。
4.3.3.1. シンプールの手動拡張
論理ボリュームマネージャー (LVM) には、データセグメント、メタデータセグメント、またはシンプールを手動で拡張するオプションが用意されています。
4.3.3.1.1. シンプールの拡張
lvextend
コマンドを使用してシンプールを拡張できます。
前提条件
- 管理アクセスがある。
手順
データとメタデータの使用中の領域を表示します。
# lvs -o lv_name,seg_type,data_percent,metadata_percent LV Type Data% Meta% ThinPoolName thin-pool 97.66 26.86 ThinVolumeName thin 48.80
シンプールを拡張します。
# lvextend -L Size VolumeGroupName/ThinPoolName
Size は、シンプールの新しいサイズに置き換えます。VolumeGroupName は、ボリュームグループの名前に置き換えます。ThinPoolName は、シンプールの名前に置き換えます。
データサイズが拡張されます。必要に応じてメタデータのサイズが拡張されます。
検証
シンプールが拡張されたことを確認します。
# lvs -o lv_name,seg_type,data_percent,metadata_percent LV Type Data% Meta% ThinPoolName thin-pool 24.41 16.93 ThinVolumeName thin 24.41
関連情報
-
lvs(8)
、lvextend(8)
man ページ -
lvs -o help
4.3.3.1.2. シンプールのデータセグメントの拡張
lvextend
コマンドを使用して、data_percent
セグメントを拡張できます。
前提条件
- 管理アクセスがある。
手順
data_percent
セグメントを表示します。# lvs -o lv_name,seg_type,data_percent LV Type Data% ThinPoolName thin-pool 93.87
data_percent
セグメントを拡張します。# lvextend -L Size VolumeGroupName/ThinPoolName_tdata
Size は、データセグメントのサイズに置き換えます。VolumeGroupName は、ボリュームグループの名前に置き換えます。ThinPoolName は、シンプールの名前に置き換えます。
検証
data_percent
セグメントが拡張されたことを確認します。# lvs -o lv_name,seg_type,data_percent LV Type Data% ThinPoolName thin-pool 40.23
関連情報
-
lvs(8)
、lvextend(8)
man ページ -
lvs -o help
4.3.3.1.3. シンプールのメタデータセグメントの拡張
lvextend
コマンドを使用して、metadata_percent
セグメントを拡張できます。
前提条件
- 管理アクセスがある。
手順
metadata_percent
セグメントを表示します。# lvs -o lv_name,seg_type,metadata_percent LV Type Meta% ThinPoolName thin-pool 75.00
metadata_percent
セグメントを拡張します。# lvextend -L Size VolumeGroupName/ThinPoolName_tmeta
Size は、メタデータセグメントのサイズに置き換えます。VolumeGroupName は、ボリュームグループの名前に置き換えます。ThinPoolName は、シンプールの名前に置き換えます。
検証
metadata_percent
セグメントが拡張されたことを確認します。# lvs -o lv_name,seg_type,metadata_percent LV Type Meta% ThinPoolName thin-pool 0.19
関連情報
-
lvs(8)
、lvextend(8)
man ページ -
lvs -o help
4.3.3.2. シンプールの自動拡張
監視を有効にして、thin_pool_autoextend_threshold
および thin_pool_autoextend_percent
設定パラメーターを設定することで、シンプールの拡張を自動化できます。
前提条件
- 管理アクセスがある。
手順
シンプールが監視されているかどうかを確認します。
# lvs -o lv_name,vg_name,seg_monitor LV VG Monitor ThinPoolName VolumeGroupName not monitored
dmeventd
デーモンを使用してシンプールの監視を有効にします。# lvchange --monitor y VolumeGroupName/ThinPoolName
VolumeGroupName は、ボリュームグループの名前に置き換えます。ThinPoolName は、シンプールの名前に置き換えます。
-
root
ユーザーとして、任意のエディターで/etc/lvm/lvm.conf
ファイルを開きます。 thin_pool_autoextend_threshold
行とthin_pool_autoextend_percent
行のコメントを解除し、各パラメーターを必要な値に設定します。thin_pool_autoextend_threshold = 70 thin_pool_autoextend_percent = 20
thin_pool_autoextend_threshold
は、LVM がシンプールの自動拡張を開始するパーセンテージを指定します。たとえば、これを 70 に設定すると、容量の 70% に達したときに LVM がシンプールの拡張を試みます。thin_pool_autoextend_percent
は、しきい値に達したときにシンプールを何パーセント拡張するかを指定します。たとえば、これを 20 に設定すると、シンプールのサイズが現在のサイズの 20% 増加します。- 変更を保存し、エディターを終了します。
lvm2-monitor
を再起動します。# systemctl restart lvm2-monitor
関連情報
-
lvs(8)
、lvchange(8)
、dmeventd(8)
man ページ
4.3.4. VDO プールの拡張
容量不足を防ぐために、VDO プールの容量を監視し、定期的に拡張することが重要です。
論理ボリュームマネージャー (LVM) には、必要に応じて VDO プールの容量を手動で拡張するオプションが用意されています。または、監視を有効にして、VDO プールの拡張を自動化することもできます。
4.3.4.1. VDO プールの手動拡張
lvextend
コマンドを使用して VDO プールを拡張します。
前提条件
- 管理アクセスがある。
手順
現在の VDO の使用率を表示します。
# lvs -o lv_name,vg_name,lv_size,data_percent VolumeGroupName/VDOPoolName LV VG LSize Data% VDOPoolName VolumeGroupName 5.00g 60.03
VolumeGroupName は、ボリュームグループの名前に置き換えます。VDOPoolName は、VDO プールの名前に置き換えます。
VDO プールを拡張します。
# lvextend --size PhysicalSize VolumeGroupName/VDOPoolName
PhysicalSize は、新しい物理サイズに置き換えます。VolumeGroupName は、ボリュームグループの名前に置き換えます。VDOPoolName は、VDO プールの名前に置き換えます。
検証
VDO プールが拡張されたことを確認します。
# lvs -o lv_name,vg_name,lv_size,data_percent VolumeGroupName/VDOPoolName LV VG LSize Data% VDOPoolName VolumeGroupName 10.00g 30.02
関連情報
-
lvs(8)
、lvextend(8)
man ページ
4.3.4.2. VDO プールの自動拡張
監視を有効にして、vdo_pool_autoextend_threshold
および vdo_pool_autoextend_percent
パラメーターを設定することで、Virtual Data Optimizer (VDO) プールの拡張を自動化できます。
前提条件
- 管理アクセスがある。
手順
VDO プールが監視されているかどうかを確認します。
# lvs -o name,seg_monitor VolumeGroupName/VDOPoolName LV VG Monitor VDOPoolName VolumeGroupName not monitored
VolumeGroupName は、ボリュームグループの名前に置き換えます。VDOPoolName は、VDO プールの名前に置き換えます。
dmeventd
デーモンを使用して VDO プールの監視を有効にします。# lvchange --monitor y VolumeGroupName/VDOPoolName
VolumeGroupName は、ボリュームグループの名前に置き換えます。VDOPoolName は、VDO プールの名前に置き換えます。
-
root
ユーザーとして、任意のエディターで/etc/lvm/lvm.conf
ファイルを開きます。 vdo_pool_autoextend_percent
行とvdo_pool_autoextend_threshold
行のコメントを解除し、各パラメーターを必要な値に設定します。vdo_pool_autoextend_threshold = 70 vdo_pool_autoextend_percent = 20
vdo_pool_autoextend_threshold
は、LVM が VDO プールの自動拡張を開始するパーセンテージを指定します。たとえば、これを 70 に設定すると、容量の 70% に達したときに LVM が VDO プールの拡張を試みます。vdo_pool_autoextend_percent
は、しきい値に達したときに VDO プールを何パーセント拡張するかを指定します。たとえば、これを 20 に設定すると、VDO プールが現在のサイズの 20% 増加します。- 変更を保存し、エディターを終了します。
lvm2-monitor
を再起動します。# systemctl restart lvm2-monitor
関連情報
-
lvs(8)
、lvchange(8)
、dmeventd(8)
man ページ
4.3.5. 論理ボリュームの縮小
LV のサイズを縮小すると、解放された論理エクステントがボリュームグループに戻され、他の LV で使用できるようになります。
縮小される領域に保存されているデータが失われます。続行する前に必ずデータをバックアップし、ファイルシステムのサイズを変更してください。
前提条件
- 管理アクセスがある。
手順
論理ボリュームとそのボリュームグループをリスト表示します。
# lvs -o lv_name,vg_name,lv_size LV VG LSize LogicalVolumeName VolumeGroupName 6.49g
論理ボリュームがマウントされている場所を確認します。
# findmnt -o SOURCE,TARGET /dev/VolumeGroupName/LogicalVolumeName SOURCE TARGET /dev/mapper/VolumeGroupName-NewLogicalVolumeName /MountPoint
/dev/VolumeGroupName/LogicalVolumeName は、論理ボリュームへのパスに置き換えます。
論理ボリュームをアンマウントします。
# umount /MountPoint
/MountPoint は、論理ボリュームのマウントポイントに置き換えます。
ファイルシステムエラーをチェックして修復します。
# e2fsck -f /dev/VolumeGroupName/LogicalVolumeName
LV とファイルシステムのサイズを変更します。
# lvreduce --size TargetSize --resizefs VolumeGroupName/LogicalVolumeName
TargetSize は、LV の新しいサイズに置き換えます。VolumeGroupName/LogicalVolumeName は、論理ボリュームへのパスに置き換えます。
ファイルシステムを再マウントします。
# mount -o remount /MountPoint
/MountPoint は、ファイルシステムのマウントポイントに置き換えます。
検証
ファイルシステムの領域使用率を確認します。
# df -hT /MountPoint/ Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/VolumeGroupName-NewLogicalVolumeName ext4 2.9G 139K 2.7G 1% /MountPoint
/MountPoint は、論理ボリュームのマウントポイントに置き換えます。
LV のサイズを確認します。
# lvs -o lv_name,lv_size LV LSize NewLogicalVolumeName 4.00g