私はもともと、ボリュームグループに2つの論理ボリュームを作成しました。 2つの論理ボリュームはボリュームグループ全体を占め、隣接する物理エクステントに配置されます。
ただし、最初の論理ボリューム(LV_root)を縮小した後、それは小さくなり、2つの論理ボリュームの間に空の物理エクステントが表示されます。 「pvdisplay」コマンドの出力は次のとおりです。
$ Sudo pvdisplay --maps
--- Physical volume ---
PV Name /dev/sda5
VG Name VG_i5_2500
PV Size 99.65 GiB / not usable 2.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 25510
Free PE 3025
Allocated PE 22485
PV UUID 3nRvBS-qq10-8XZZ-n3x9-gfHx-hrxN-AouB3q
--- Physical Segments ---
Physical extent 0 to 18431:
Logical volume /dev/VG_i5_2500/LV_root
Logical extents 0 to 18431
Physical extent 18432 to 21456:
FREE
Physical extent 21457 to 25509:
Logical volume /dev/VG_i5_2500/LV_swap
Logical extents 0 to 4052
LV_swapをLV_rootに向かって移動して、それらの間に空の物理エクステントがないようにする方法があることを知りたい(つまり、一般に、同じボリュームグループ内で論理ボリュームを移動して連続した空き物理エクステント用のスペースを増やす方法。)?
さらに、ボリュームグループに新しい論理ボリュームを作成する場合、連続した空き物理エクステントが必要ですか?
標準のLVMにはlvmove
コマンドはありません(ただし、HPにはカスタムバージョンのコマンドがある場合があります)。
これを行う方法は、ボリュームの内容を別の場所に移動し、それを削除して再作成してから、コピーして戻すことです。
ボリュームがスワップされているため、コンテンツを移動する必要はありません。 swapoff
、ボリュームを削除してから、新しいスワップボリュームとswapon
を作成できます。
ただし、LVMの目標は、これを気にする必要はないと言えます。ボリュームを作成するために連続した物理エクステントは必要ありません。ギャップに挿入されるだけです。パフォーマンスが低下する主な場合は、連続していないエクステントを超えたファイルがあるため、読み取るときに追加のシークが必要になる場合です。
pvmove
のマンページによると、同じデバイス上でエクステントを移動する可能性があります。
If the source and destination are on the same disk, the anywhere allocation policy would be needed, like this:
pvmove --alloc anywhere /dev/sdb1:1000-1999 /dev/sdb1:0-999
重複する領域は禁止されているかもしれませんが、2つのステップでボリュームを移動できます。
pvmove --alloc anywhere /dev/sda5:21457-24481 /dev/sda:18432-21456
pvmove --alloc anywhere /dev/sda5:24482-25509 /dev/sda:21457-22484