タグ別アーカイブ: resize2fs

LVMで割り当てたPVを縮小させたい

2TのHDDのPVを縮小させたい。
ということでメモ。

まずは論理ボリュームの縮小。
論理ボリュームを縮小するときは、ファイルシステムを縮小してから論理ボリュームを縮小する。(拡大するときは逆)

縮小させたい論理ボリュームを縮小。
e2fsck -fyv /dev/ms09/file
resize2fs /dev/ms09/file 16G
lvresize -L 16G /dev/ms09/file
警告でるのでちゃんとサイズがあってるか確認して実行
resize2fs /dev/ms09/file
サイズがあってるか確認

ほかも同じ感じで論理ボリュームの縮小を行う。
システムのルートパーティションの場合はレスキューCDからブートしてやりましょう。

で、PVの縮小。
pvresize –setphysicalvolumesize 500G /dev/sda1
このとき、切り詰めた物理ボリュームの終端よりあとに論理ボリュームっていうかPEがあったりする場合、失敗する。
自動で再配置なんて気の利いたことはしてくれない。
なので、そういう場合は一旦論理ボリュームのバックアップをとって削除してから行うとか、pvmoveで別の物理ボリュームにデータを移してから行わなければならない。

PVが縮小できたらパーティションをPVにあわせて切り直す。
fdiskだと単位がシリンダとかで計算がいやだったのでcfdiskでやった。

パーティション切り直したら再起動して終わり。

ファイルサーバのHDD交換

ファイルサーバのHDDが一本いってたので、lvreduceやらvgremoveやらpvremoveやらを使って引っこ抜いて修理に出してたのがようやく届いた。
修理っていっても当然ながら交換対応だけど。

ということでLVMでHDDを引っこ抜いたり追加したりするやり方をメモしておく。
というかLVMおさらいってことで簡単に全体メモっておく。

LVMはPV(物理ボリューム)を一つないし複数用いてVG(ボリュームグループ)を作成し、VGを仮想的な一つのディスクとして取り扱い、LV(論理ボリューム)をパーティションのごとく扱う。
一つのPVは一のディスクあるいは一パーティションで対応する。

ということで、pvcreateしてvgcreateしてlvcreateすればLVMで運用できる。

LVMで扱っているPVの一つがやばくなったりした場合はそれを引っこ抜かなくてはならない。
今回みたいにHDDが死にかけた場合とか。
その場合、手順は以下のようになる。

  1. 引っこ抜きたいHDDの容量分の空き容量を作る
  2. 引っこ抜きたいHDD上にあるデータをほかのHDDにうつす
  3. 引っこ抜く

まず、空き容量の作成だが、たとえばLVMで1.5T*3で構成していて、1Tと3.5TのLVを作っていて、HDDのうち一本が死にそうな場合。
データで埋まっている場合は削除するなりなんなりしてまずあける。
そして、次に、ファイルシステムを縮小する。
この場合は1.5Tの削減が必要。
1Tと3.5Tの両方あわせて合計1.5T削減できればいい。
ファイルシステムの縮小はext3の場合はfsckしてからresize2fsする。
アンマウントは事前にしておく。

# e2fsck -yfv /dev/fileserver/fileserver
# resize2fs -f /dev/fileserver/fileserver 1500G

ファイルシステムの縮小が終わったら、次にLVの縮小を行う。

# lvreduce -L -1.5T /dev/fileserver/fileserver

死にかけのディスク上にあるデータをほかのディスクに移す。

# pvmove /dev/sde1
 PV Name               /dev/sde1
 PV UUID               3Hgl3d-0EO6-QOXa-NnrX-2h8X-1fk8-c4b7AL
 PV Status             allocatable
 Total PE / Free PE    357699 / 357699

Total PE / Free PEが等しくなったら移し残しはない状況だ。
あとはVGから切り離してPVを削除する。

# vgreduce fileserver /dev/sde1
# pvremove /dev/sde1

これで完全にLVMからHDDが切り離された状態になった。
ということで修理持ち込みして帰ってくるのを待つと。

で、帰ってきた。
取り付ける。
LVMへの追加の方は既存のデータ移行などを気にしないでいいので楽だ。

PVを作成してVGへ追加して拡張したいLVを拡張するなり新規のLVを作るなり。

# fdisk /dev/sde
(sde1をLVMパーティションとして作成)
# pvcreate /dev/sde1
# vgextend fileserver /dev/sde1
# lvextend -L +1.5T /dev/fileserver/fileserver

LVを拡張した場合は最後にファイルシステムの拡張を行う。

# resize2fs /dev/fileserver/fileserver

これにて完了。

-L -1.5T /dev/fileserver/fileserver

LVMのLVのresize

結構水青が再稼動してから時間がたっているんだけども、バックアップ環境を整備していないっていう。
まあミラーリングはしてるからあれだけど。
で、今回、RAID1でLVMな構成にするのにはまりまくって涙目になったけども、LVMを使いたい最大の目的がこのスナップショット機能なわけで、つかわないわけにはいかない。

続きを読む LVMのLVのresize