web-dev-qa-db-ja.com

論理ボリュームを隣接する物理エクステントに揃える方法は?

私はもともと、ボリュームグループに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に向かって移動して、それらの間に空の物理エクステントがないようにする方法があることを知りたい(つまり、一般に、同じボリュームグループ内で論理ボリュームを移動して連続した空き物理エクステント用のスペースを増やす方法。)?

さらに、ボリュームグループに新しい論理ボリュームを作成する場合、連続した空き物理エクステントが必要ですか?

7
user1129812

標準のLVMにはlvmoveコマンドはありません(ただし、HPにはカスタムバージョンのコマンドがある場合があります)。

これを行う方法は、ボリュームの内容を別の場所に移動し、それを削除して再作成してから、コピーして戻すことです。

ボリュームがスワップされているため、コンテンツを移動する必要はありません。 swapoff、ボリュームを削除してから、新しいスワップボリュームとswaponを作成できます。

ただし、LVMの目標は、これを気にする必要はないと言えます。ボリュームを作成するために連続した物理エクステントは必要ありません。ギャップに挿入されるだけです。パフォーマンスが低下する主な場合は、連続していないエクステントを超えたファイルがあるため、読み取るときに追加のシークが必要になる場合です。

1
Paul

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
12
Sunday