web-dev-qa-db-ja.com

LVM PVをディスクの先頭まで拡張するにはどうすればよいですか?

私は2TBディスクのサーバーを持っていますが、誰かが最初に次のようにパーティション分割しました:

  • オペレーティングシステムファイル用の300GBの標準プライマリパーティション(CentOS7)。
  • かなり大きな論理ボリュームを備えた1.7TBLVM-他のニーズに対応。

オペレーティングシステムファイルの実際のサイズは約400GBであることが判明したため、後でLVM上の独自の論理ボリュームに移動され、ディスクの先頭にあるこの300GBのパーティションは未使用になります。

そこで、このパーティションを削除し、PVの開始位置をディスクの先頭に移動して、ディスク領域全体を使用するようにします。しかし、そうするためのツールが見つかりません-pvextendは、PVをディスクの最初ではなく、最後までしか拡張できません。

はい、その古いパーティションを別のPVとしてVGに追加できることは知っていますが、1つのディスクに複数のPVがあると、かなり奇妙なように見えます。

また、パーティションを外部デバイスまたはクラウドストレージにコピーして、物理ディスクのパーティションを最初から再作成できることも知っています。しかし、サーバーのダウンタイムが長いため、これは望ましくありません。

では、PVをディスクの先頭まですばやく拡張する方法はありますか?

5
rufanov

既存のPVのデータが300GB未満の場合

既存のPVのデータが300GB未満の場合は、そのデータをディスクの前面に再配置してから、pvresizeを使用できます。まず、新しいpvを作成します。

pvcreate /dev/sda1

既存のpvから新しいpvにデータを再配置します。

pvmove /dev/sda2 /dev/sda1

古いpvを削除します。

vgreduce myvg /dev/sda2

ここで、partedまたはfdiskなどを使用して/dev/sda1のサイズを変更し、ディスク全体をカバーしてから、pvresizeを使用してpvを拡張してパーティションをカバーします。

ダウンタイムなしで外部デバイスを使用する

pvmoveを使用して、データを別のデバイスに再配置できますなしサーバーのダウンタイム。新しいpvを作成します。

pvcreate /dev/sdb

あなたのvgにそれを追加してください:

vgextend myvg /dev/sdb

既存のpvから新しいpvにデータを再配置します。

pvmove /dev/sda2 /dev/sdb

ボリュームから既存のpvを削除します。

pvremove /dev/myvg /dev/sda2

ここで、/ dev/sdaを再パーティション化し、新しいpvを作成して、上記のプロセスを逆にします。

10
larsks