web-dev-qa-db-ja.com

どうすれば論理ボリュームを縮小し、解放されたスペースを同じドライブの新しいパーティションに再割り当てできますか?

ドライブがあります、sda。 2つのパーティションがあります。

sda1: /boot
sda2: LVM managed in Volume Group volgrp01

volgrp01には、次の論理ボリュームが含まれています。

lv_root (30 GB)
lv_swap (8 GB)
lv_scratch (430 GB)

私がやりたいことは、lv_scratchを50 GBに減らし、新しく解放された380 GBを新しいパーティションsda3(次に、別のボリュームグループに追加する)に再割り当てすることです。

希望の前後の画像を添付しました。私はLVMについて学んでいる最中です。ボリュームグループ内の論理ボリュームのサイズを変更するアイデアは理解できますが、そのスペースを新しいパーティションにどのように再割り当てするかはわかりません。

RHEL6を使用しています。

enter image description here

7
CptSupermrkt

ステップ1:バックアップを作成します。

ほとんどの人はこの手順をスキップしますが、変更すると、失敗すると重大なデータ損失が発生する可能性があり、インターネット上のランダムな見知らぬ人からガイダンスを受けています。あなたはデータの安全性に責任があります。私は違います。

ステップ2:lv_scratchでファイルシステムを縮小します。 ext2/3/4ファイルシステムの場合は、アンマウントしてresize2fsを使用します。それ以外の場合は、そのタイプのファイルシステムのサイズ変更に関するドキュメントを検索する必要があります。

例えば:

resize2fs /dev/volgrp01/lv_scratch 50G

これが完了すると(resize2fsを使用していると仮定して)、ファイルシステムの新しいサイズ(バイト単位)が通知されます。次のステップの安全チェックに使用できるので、その番号を書き留めてください。

ステップ3:lvreduceを使用して論理ボリュームを縮小します。

  • 単純にしたい場合は、lvreduce --size 50G volgrp01/lv_scratchを使用します。
  • LVが含まれているファイルシステムよりも小さいサイズにLVを縮小しないように特に注意したい場合は、vgdisplay volgrp01を使用してボリュームグループの物理エクステントサイズを確認し、ファイルシステムのバイトサイズを保持するために必要な物理エクステントの数を計算します(1MBを使用= 1048576バイト )。次に、--extentsの代わりに--size 50Gオプションを使用してその番号を指定します。

または、ステップ1をスキップして、代わりにlvreduce-rオプションを使用して、ファイルシステムのサイズを自動的に変更することができます。それは簡単かもしれませんが、私はそれがどれほど信頼できるかを知る個人的な経験はありません。

この時点で、fsck -f/dev/volgrp01/vg_scratchを実行して、完全であることを確認することをお勧めします。 「デバイスの端を超えたアクセス」に関するエラーが発生した場合は、LVを縮小しすぎており、続行する前にlvextendする必要があることを意味します。

ステップ4:pvresizeを使用して物理ボリュームを縮小します。

pvresize --setphysicalvolumesize 88G /dev/sda2

pvresizeは物理ボリュームを既存の論理ボリュームには小さすぎるサイズに縮小することを拒否するため、ここで追加の安全性チェックは必要ありません。ただし、他のLVのサイズが1GBの正確な倍数でない場合、88Gは小さすぎる可能性があり、別の値を使用する必要があります。

ステップ5:fdiskを使用してsda2パーティションを縮小します。

fdisk /dev/sdaを実行し、そのプロンプトでpを実行して、既存のパーティションを確認します。 sda2パーティションの開始セクター番号に注意してください。次に、sda2パーティションを削除します。これは実際のデータには影響せず、開始と終了の場所のレコードを削除するだけです。そして、同じ開始セクターで新しいsda2を作成します。 (これは非常に重要です)、88Gのサイズです。パーティションのタイプコードは8e、「Linux LVM」である必要があります。

さらに慎重にしたい場合、特にpvresizeに別のサイズを指定する必要がある場合は特にお勧めします— pvdisplay /dev/sda2を使用して物理ボリュームのPEサイズと合計PEを確認し、乗算しますそれらを一緒に使用して、物理ボリュームのサイズをバイト単位で見つけます(ここでも1MB = 1048576バイトを使用しています)。次に、新しいsda2パーティションの開始セクター番号をその終了セクター番号から減算し、1を加えて最後のセクターをカウントし、ディスクのセクターサイズ(512または4096バイトのいずれか)を掛けます。 2つの結果が一致することを確認してください。

次に、新しいsda3パーティションを作成し、変更を保存して、fdiskを終了します。変更を有効にするために再起動する必要があるというメッセージが表示された場合は、再起動します。

11
Wyzard

それが機能するかどうかわからない-私はpvを増やしただけです。また、読み取り可能なバックアップがない限り、貴重なデータを試さないでください。

  1. FS固有のツール(存在する場合)を使用して、lv_scratchのサイズ変更FS

  2. lvresize -L 50G /dev/volgrp01/lv_scratch

  3. pvresize --setphysicalvolumesize 88G /dev/sda2

  4. / dev/sda2のサイズを変更します(parted/cfdiskなどで可能かどうかわからない場合は、他のパーティションエディターが必要になる場合があります)

  5. 新しいパーティションの作成、新しいpvの作成、ボリュームグループの作成など。

FS壊れたFSになり、データが失われる可能性があります。通常はそれよりも優れています。)混乱した場合に備えて、未使用のスペースを残しておきます。

1
F2nd