HDD容量増強の顛末

ちょうど1か月前に、メインサーバのHDDを増強したのですが、その際のメモを残すのを忘れてました。

概要

古いハードディスクにあるOSが入ってるシステムの領域はそのまま残し、ヤマレコが入ってるデータ領域を新しいHDDに移します。
古いHDDはRAID1構成になってましたが、新HDDはもっと増やせるように、RAID5構成にしました。

手順

  • 旧HDDx1に新HDDx1でRAID構成にしてコピー
  • 新HDDx2でRAID構成に、旧HDDx2もRAID構成に
  • 新HDDの容量を増やす


手順1:旧HDDx1に新HDDx1でRAID構成にしてコピー


新HDDの追加

まず、サーバに新HDD(1TB)x2を刺してしまいます。
起動して、認識されているデバイスを確認します。

# fdisk -l

sdc, sddとして認識されていました。

パーティションを切ります。

# fdisk /dev/sdc
# fdisk /dev/sdd

旧HDDと同じ構成にして、type=fd(Linux RAID)で領域を作ります。
今回は、sdc3, sdd3を追加領域として使います。(sdc1,sdc2は未使用)

次に、新HDDをフォーマットします。

# mke2fs -j /dev/sdc3
# mke2fs -j /dev/sdd3
RAIDの組み直し

旧HDDのRAIDは、ソフトウェアRAIDで構成していて、/dev/md2として認識されています。

まず、デバイスを外すために片方のHDDを止めます。
疑似的にFail状態にしないと外せないみたいです。

# mdadm --fail /dev/md2 /dev/sda3
# mdadm --remove /dev/md2 /dev/sda3

そして、新HDD#3をRAIDに追加します。

# mdadm /dev/md2 -a /dev/sdd3

これで、自動的にコピーされます。1日ぐらい待ちました。
コピー中のステータスは

# cat /proc/mdstat

で確認できます。

手順2:新HDDx2でRAID構成に、旧HDDx2もRAID構成に

新HDD(sdd)をRAID1(/dev/md2)から外し、旧HDDx2(sdb,sda)の構成に戻します。

# mdadm --fail /dev/md2 /dev/sdd3
# mdadm --remove /dev/md2 /dev/sdd3
# mdadm /dev/md2 -a /dev/sda3

新HDD#3(sdd)と#4(sdc)で新たにRAID5(/dev/md3)を組みます。

# mdadm --create /dev/md3 level=5 --raid-devices=2 /dev/sdd3 missing
# mdadm --detail --scan

ここで表示された、/dev/md3の行をmdadm.confに追加します。

# vi /etc/mdadm.conf
ARRAY /dev/md3 level=raid5 num-devices=2 UUID=1044cb0d:e611b637:ba2e68b8:4fbc99cd

追加できたら、新HDD#4をRAIDに追加します。

# mdadm /dev/md3 -a /dev/sdc3

これで、またコピーが終わるまで、1日ぐらい待ちます。

手順3:新HDDの容量を増やす

新HDD側のRAID容量は、RAID1(/dev/md2)を引き継いでいるので、500GBのままになっています。

コマンドを打って、RAIDの容量をHDDの最大容量(1TB)まで増やします。

# mdadm /dev/md3 --grow --size=max

ファイルシステムとして、拡張したものを認識させます。

(# e2fsck -f /dev/md3) ※このコマンドが必要なことがあるらしいですが、今回はやってません。
# resize2fs /dev/md3

最後に、不要になったファイルを消して完了です。
HDD利用率94%が、41%まで減少しました。

作業後のステータス

# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4] [raid0]
md3 : active raid5 sdc3[1] sdd3[0]
      974559040 blocks level 5, 64k chunk, algorithm 2 [2/2] [UU]

md2 : active raid1 sdb3[0] sda3[1]
      486183040 blocks [2/2] [UU]

unused devices: <none>

おまけ

作業途中、RAID構成を切り替えた瞬間に電源が落ちて、反応がなくなりました。その後、電源を入れ直しても反応しない/少しするとまた落ちるの繰り返しになったので、電源を交換しました。

すると、電源は入ったのですが、grubプロンプトになって起動しません。

grub >

仕方がないので、起動用のコマンドを手打ち

> root (hd0,2)
> cat /boot/grub/grub.conf

この内容に従ってコマンドを打ってみると、起動しました!!

起動後、GRUBを入れ直します。

# grub-install
end_request: I/O error, dev fd0. sector 0

と出るので、/boot/grub/device.map 内の

(fd0)	/dev/fd0

を削除して

# grub-install --no-floppy /dev/md2

でインストール。

起動するようになったが、途中でswaponでFAILEDが出るようになってしまいました。起動後に/dev/md1(swap領域)のRAIDを再構築したらFAILEDがなくなって問題解決。

電源のON/OFFが何度もあったので、負荷がかかってたんでしょうか。突然落ちた時にはかなり焦りました。