ZFSに期待していた機能がなかったので結局ファイル置き場には使い慣れたDebian GNU/Linuxを採用した。家に余っていた120GBのハードディスクを3台使って360GBのボリュームグループを作成し、ここにファイルを貯めていこうという算段だ。
さて、oshikojiはハードディスクをRatocのリムーバブルケースに入れて、必要に応じて交換できるようにしている。古いものは容量が200GBクラスなので、順次500GBを買ってきて2個の200GBを1個にまとめる、といった作業をやっている。これをファイル置き場を使って行おうと考えた。
まず、200GBのハードディスクからファイル置き場に内容を移動する。
次に、空になった200GBをファイル置き場に結合する。
# pvscan PV /dev/hde1 VG lvmpool0 lvm2 [111.79 GB / 0 free] PV /dev/hdf1 VG lvmpool0 lvm2 [111.79 GB / 0 free] PV /dev/hdg1 VG lvmpool0 lvm2 [111.79 GB / 0 free] Total: 3 [335.36 GB] / in use: 3 [335.36 GB] / in no VG: 0 [0 ] # pvcreate /dev/hdh1 Physical volume "/dev/hdh1" successfully created # vgextend -v lvmpool0 /dev/hdh1 Checking for volume group "lvmpool0" Archiving volume group "lvmpool0" metadata (seqno 4). Adding physical volume '/dev/hdh1' to volume group 'lvmpool0' Wiping cache of LVM-capable devices Volume group "lvmpool0" will be extended by 1 new physical volumes Creating volume group backup "/etc/lvm/backup/lvmpool0" (seqno 5). Volume group "lvmpool0" successfully extended # pvscan PV /dev/hde1 VG lvmpool0 lvm2 [111.79 GB / 0 free] PV /dev/hdf1 VG lvmpool0 lvm2 [111.79 GB / 0 free] PV /dev/hdg1 VG lvmpool0 lvm2 [111.79 GB / 0 free] PV /dev/hdh1 VG lvmpool0 lvm2 [186.30 GB / 186.30 GB free] Total: 4 [521.66 GB] / in use: 4 [521.66 GB] / in no VG: 0 [0 ]
取り外すハードディスクの中身を移動する。
# pvmove -v /dev/hdg1 Wiping cache of LVM-capable devices Finding volume group "lvmpool0" Archiving volume group "lvmpool0" metadata (seqno 5). Creating logical volume pvmove0 Moving 28617 extents of logical volume lvmpool0/LV_monooki Found volume group "lvmpool0" Updating volume group metadata Creating volume group backup "/etc/lvm/backup/lvmpool0" (seqno 6). Found volume group "lvmpool0" Found volume group "lvmpool0" Suspending lvmpool0-LV_monooki (254:0) Found volume group "lvmpool0" Creating lvmpool0-pvmove0 Loading lvmpool0-pvmove0 table Resuming lvmpool0-pvmove0 (254:1) Found volume group "lvmpool0" Loading lvmpool0-pvmove0 table Resuming lvmpool0-pvmove0 (254:1) Loading lvmpool0-LV_monooki table Resuming lvmpool0-LV_monooki (254:0) Checking progress every 15 seconds /dev/hdg1: Moved: 0.2% /dev/hdg1: Moved: 0.4%
ハードディスクにがりがりアクセスがある。ムーブ作業をやっているのだろう。
終了したらボリュームグループから取り外す。
# vgreduce -v lvmpool0 /dev/hdg1 Finding volume group "lvmpool0" Using physical volume(s) on command line Archiving volume group "lvmpool0" metadata (seqno 8). Removing "/dev/hdg1" from volume group "lvmpool0" Creating volume group backup "/etc/lvm/backup/lvmpool0" (seqno 9). Removed "/dev/hdg1" from volume group "lvmpool0" # pvscan PV /dev/hde1 VG lvmpool0 lvm2 [111.79 GB / 0 free] PV /dev/hdf1 VG lvmpool0 lvm2 [111.79 GB / 0 free] PV /dev/hdh1 VG lvmpool0 lvm2 [186.30 GB / 74.52 GB free] PV /dev/hdg1 lvm2 [111.79 GB] Total: 4 [521.66 GB] / in use: 3 [409.88 GB] / in no VG: 1 [111.79 GB] # pvremove /dev/hdg1 Labels on physical volume "/dev/hdg1" successfully wiped
論理ボリュームを拡張する。ハードディスクを交換して増えた容量を使えるようにしておこう。
# lvextend -L+74G -v /dev/lvmpool0/LV_monooki Finding volume group lvmpool0 Archiving volume group "lvmpool0" metadata (seqno 9). Extending logical volume LV_monooki to 409.36 GB Creating volume group backup "/etc/lvm/backup/lvmpool0" (seqno 10). Found volume group "lvmpool0" Found volume group "lvmpool0" Loading lvmpool0-LV_monooki table Suspending lvmpool0-LV_monooki (254:0) Found volume group "lvmpool0" Resuming lvmpool0-LV_monooki (254:0) Logical volume LV_monooki successfully resized # umount /monooki
ちなみに、ここまでファイルシステムをうっかりマウントしたまま行っていた。
# ext2resize -v /dev/lvmpool0/LV_monooki 409G
あとは電源を切ってハードウェア的に取り外したらおしまい。