2014/06/14

データバックアップ⇒データ移行⇒HDD交換⇒LVM領域拡張

ファイルサーバの空き容量が5GBを割ってしまったので、やむなく交換。
もともと格安のNECサーバに付いていた180GBのSATAⅡをそのまま使っていたが、
500GBに交換することにした。
dumpとrestoreが良いようだが、イマイチ操作が良くわからないので、

ddコマンドと、LVMの拡張で何とかした。

まずは、ddコマンドを実行するため、KNOPPIX
(LIVEでターミナルでddコマンドが動くなら何でもいい)のDVDを作成し、
BIOS弄って、DVD優先起動にする。

$ sudo -s でroot化
コピー元を sda コピー先を sdbとする場合、
# dd if=/dev/sda of=/dev/sdb bs=1024
今回は、HDDにエラーが出た状態ではないので、
ブロックサイズはデフォルトの512Kごと送るよりは、倍の方が早いだろうということで、
オプションを追加。
ifとofを逆にしちゃうと、大変な事態に。もう二度とデータは帰ってこない・・・。
この作業、あんまりしたくない・・・。

結果、およそ2時間ほどでコピー完了
途中経過を確認する方法は別のターミナルを起動して
$ killall -USR1 dd
これで、その時点の作業量からおよその時間が割り出せる。

完了したら、シャットダウンして、その後HDDをつなぎかえて起動。

起動すると、外側は500GBなっているが、内側は180GBのままなので、
これを正しく直してあげる必要がある。

$ su -
# df -H
Filesystem             Size   Used  Avail Use% マウント位置
/dev/mapper/VolGroup00-LogVol00
                       168G   164G     4G  97% /
/dev/sda1              104M    64M    35M  65% /boot





現状、こんな感じ



ボリュームグループの構成を見て、割り当てられる領域を確認。
# /usr/sbin/vgdisplay -v
作業中に保存し忘れた・・・。
これは、最終形だが、
Total PEが上限値なので、その付近まで、領域を拡張すれば良い。

    Finding all volume groups
    Finding volume group "VolGroup00"
  --- Volume group ---
  VG Name               VolGroup00
  System ID           
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               168 GB
  PE Size               32.00 MB
  Total PE              14901
  Alloc PE / Size       14563 / 455.09 GB
  Free  PE / Size       338 / 10.56 GB
  VG UUID               Ys3H7T-UY61-MnKG-Ue0I-bMGI-mRHd-1oYDvm



# lvextend -l 14500 /dev/VolGroup00/LogVol00 

最初は、14500でなく、14901でコマンドを叩いたのだが、
他に使われている領域が有るらしく、エラーが出たので、
わりと近めのきれいな数値でコマンド実行した。

その結果が、上の状態。




# resize2fs /dev/VolGroup00/LogVol00
resize2fsでサイズを変更。










途中迷走し、fdiskで一端sda2を消して、Wで保存する前に、
再度、目一杯の領域でsda2を作り直してWして、
再起動したが、効果が有ったのか不明。

ほんとは、 resize2fsの前に、
#fsck -f /dev/VolGroup00/LogVol00 でディスクチェックすべきかも。
 
 
# df -H
Filesystem             Size   Used  Avail Use% マウント位置
/dev/mapper/VolGroup00-LogVol00
                       472G   164G   308G  34% /
/dev/sda1              104M    64M    35M  65% /boot

この形になれば、成功。