パフォーマンス上の理由から、1 つの大きな LVM ボリュームを使用する代わりに、複数の小さなストライプ (RAID0) ボリュームに置き換えることができます。単一ディスク論理ボリュームをストライプ論理ボリュームに直接変換するコマンドはありません。この投稿では、変換を実行する手順について説明します。
注意 :開始する前に、ボリュームまたはファイル システムの完全なバックアップを取ります。この手順は、再起動する必要なく、ライブ システムで実行できます。この手順では、元のボリュームと新しいストライプ ボリュームの間にミラーを作成します。ミラーリングが完了したら、元のボリュームをミラーから削除して、ストライプ ボリュームだけを残すことができます。
変換を実行できるようにするには、LVM 論理ボリューム (LV) 内の論理エクステント (LE) の数が、将来ストライプ化された LV で使用される物理ボリューム (PV) の数で割り切れる必要があります。
割り当てられた LE の数を確認してください:
# lvdisplay --- Logical volume --- LV Path /dev/<VOLUME_GROUP>/<LOGICAL_VOLUME> LV Name <LOGICAL_VOLUME> VG Name <VOLUME_GROUP> LV UUID <VOLUME_UUID> LV Write Access read/write LV Creation host, time <HOSTNAME>, 2020-12-10 08:38:44 +0000 LV Status available # open 1 LV Size <10.00 GiB Current LE 2559 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:0
この場合、LE の数は 2559 です。
必要な LE の数を知るには、
– le を使用できます。 =前のコマンドから割り当てられた LE の数 (この場合は 2559)
– pv =今後使用するストライプ PV の数 (例:5)
$ le=2559; pv=5; echo $((le%pv?(le/pv+1)*pv:le)) 2560
この場合、追加の LE が 1 つ必要です。 LVを拡張する例:
# lvresize --extents +1 /dev/<VOLUME_GROUP>/<LOGICAL_VOLUME> /dev/sdb Size of logical volume <VOLUME_GROUP>/<LOGICAL_VOLUME> changed from <10 GiB (2559 extents) to <10 giB (2560 extents). Logical volume <VOLUME_GROUP>/<LOGICAL_VOLUME> successfully resized.
LV の準備が完了したら、次に進みます。
1. 新しい PV を LV に追加して、ストライプ化されたミラーを作成します。ストライプの数は PV の数である必要があります:
# lvconvert --type mirror -m 1 --mirrorlog core --stripes 2 /dev/<VOLUME_GROUP>/<LOGICAL_VOLUME> /dev/<PV1> /dev/<PV2> ... /dev/<PV5>
2. LV から初期 PV を削除します:
# lvconvert -m0 <VOLUME_GROUP>/<LOGICAL_VOLUME> /dev/<INITIAL_PV>
3. LVM から PV を削除します:
# vgreduce <VOLUME_GROUP> /dev/<INITIAL_PV> # pvremove /dev/<INITIAL_PV>