#contents()
** RAID ディスクの交換、容量アップ(2G → 4G) [#ic9642fa]
- まず raid の構成を確認
munakata@mythen:~/repos/recurse.git$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Dec 11 23:04:19 2011
Raid Level : raid1
Array Size : 1953512400 (1863.01 GiB 2000.40 GB)
Used Dev Size : 1953512400 (1863.01 GiB 2000.40 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sun Dec 22 21:28:33 2013
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : mythen:0 (local to host mythen)
UUID : 4cd693e9:dd3ad1a9:3a5a23a9:62ce3a05
Events : 397
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
- まず /dev/sdb1 をアレイから切り離して、ディスクを交換する。
munakata@mythen:~/repos/recurse.git$ sudo mdadm /dev/md0 --manage --fail /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
munakata@mythen:~/repos/recurse.git$ sudo mdadm /dev/md0 --manage --remove /dev/sdb1
mdadm: hot removed /dev/sdb1 from /dev/md0
- /dev/sdb1 がアレイから切断された状態
munakata@mythen:~/repos/recurse.git$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Dec 11 23:04:19 2011
Raid Level : raid1
Array Size : 1953512400 (1863.01 GiB 2000.40 GB)
Used Dev Size : 1953512400 (1863.01 GiB 2000.40 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Sun Dec 22 21:32:45 2013
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Name : mythen:0 (local to host mythen)
UUID : 4cd693e9:dd3ad1a9:3a5a23a9:62ce3a05
Events : 413
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 0 0 1 removed
- マシンの電源を切り、 HDD を交換する。
- 再起動すると raid1 を縮退モードで起動するか聞かれるので Yes と応える。
- &color(red){この時 USB 接続拡張 HDD は認識されないが、復帰すれば問題なく再接続されるので、ここでは気にしない。};
- 起動して /dev/sdb が認識されたことを確認したら、 パーティションの作成を行う
-- 4T HDD のパーテション作成は fdisk ではできないので、 partd という GPT 形式のラベルに対応したツールを利用
server-admin@mythen:~$ sudo parted /dev/sdb
GNU Parted 2.3
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) mklabel gpt
(parted) unit TB
(parted) mkpart primary 0.0TB 4.0TB
(parted) print
モデル: ATA WDC WD40EZRX-00S (scsi)
ディスク /dev/sdb: 4001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 4001GB 4001GB ext4 primary
(parted) quit
- /dev/sdb1 を ext4 でフォーマットする
server-admin@mythen: sudo mkfs.ext4 -m 1 /dev/sd**
-- -m1 のオプションは、スーパーユーザのために別に確保する領域を % で指定するもの。 デフォルトは 5% だが、ディスク容量が大きな場合は必要以上に大きな領域が取られるし、データディスクなら実際には 0.0001 とかの小さな値でも良いかもしれない (というか、そもそも不要かも)
-- &color(red){raid にする場合、パーティションタイプを df(=RAID 自動認識) とか 83(=Linux) とかに指定しなくてよいのか ?};
- RAID1 に追加した /dev/sdb1 を認識させて、自動で再構築(同期)されるのを待つ、 5時間以上時間がかかる
server-admin@mythen: sudo mdadm /dev/md0 --manage --add /dev/sd**
- 翌朝、再同期が完了したところ
server-admin@mythen:~$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Dec 11 23:04:19 2011
Raid Level : raid1
Array Size : 1953512400 (1863.01 GiB 2000.40 GB)
Used Dev Size : 1953512400 (1863.01 GiB 2000.40 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Mon Dec 23 09:14:21 2013
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : mythen:0 (local to host mythen)
UUID : 4cd693e9:dd3ad1a9:3a5a23a9:62ce3a05
Events : 810
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
2 8 17 1 active sync /dev/sdb1
- /dev/sdb にも loader を書こうとしたが、GTP パーティションは boot ディスクにすることはできないらしい。
server-admin@mythen:~$ sudo grub-install /dev/sdb
/usr/sbin/grub-setup: warn: This GPT partition label has no BIOS Boot Partition; embedding won't be possible!.
/usr/sbin/grub-setup: エラー: embedding is not possible, but this is required for cross-disk install.
-- BIOS boot パーティションが無い.... と怒られているので、最初に作れば良いのかもしれないが SSD が基本 boot デバイスなので良しとする
- 正常に再起動できることを確認し、 次に /dev/sda1 を切断する。
server-admin@mythen:~$ sudo mdadm /dev/md0 --manage --fail /dev/sd**
mdadm: set /dev/sda1 faulty in /dev/md0
server-admin@mythen:~$ sudo mdadm /dev/md0 --manage --remove /dev/sda1
mdadm: hot removed /dev/sda1 from /dev/md0
server-admin@mythen:~$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Dec 11 23:04:19 2011
Raid Level : raid1
Array Size : 1953512400 (1863.01 GiB 2000.40 GB)
Used Dev Size : 1953512400 (1863.01 GiB 2000.40 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Mon Dec 23 09:43:41 2013
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Name : mythen:0 (local to host mythen)
UUID : 4cd693e9:dd3ad1a9:3a5a23a9:62ce3a05
Events : 812
Number Major Minor RaidDevice State
0 0 0 0 removed
2 8 17 1 active sync /dev/sdb1
- /dev/sda1 にパーティション作成(parted) と ext4 でのフォーマット(mkfs.ext4) ← 上と同じなので省略(&color(red){ドライブ名の指定に注意!};)
- 再起動しなくても、新たに作成した /dev/sda1 を認識させることができる
server-admin@mythen:~$ sudo partprobe /dev/sda
- /dev/sda1 を RAID1 に参加させ、再同期させる (また5時間かかる)
server-admin@mythen:~$ sudo mdadm /dev/md0 --manage --add /dev/sda1
mdadm: added /dev/sda1
server-admin@mythen:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sda1[3] sdb1[2]
1953512400 blocks super 1.2 [2/1] [_U]
[>....................] recovery = 0.0% (1338176/1953512400) finish=291.7min speed=111514K/sec
unused devices: <none>
- /dev/sda1 の同期が完了したら、アレイのサイズを変更後の HDD 容量である 4T バイトに拡張する。(6時間以上かかる)
munakata@mythen:~$ sudo mdadm --grow /dev/md0 --size=max
mdadm: component size of /dev/md0 has been set to 3906885632K
munakata@mythen:~$ sudo cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sda1[3] sdb1[2]
3906885632 blocks super 1.2 [2/2] [UU]
[==========>..........] resync = 50.0% (1954290576/3906885632) finish=334.5min speed=97272K/sec
unused devices: <none>
munakata@mythen:~$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Dec 11 23:04:19 2011
Raid Level : raid1
Array Size : 3906885632 (3725.90 GiB 4000.65 GB)
Used Dev Size : 3906885632 (3725.90 GiB 4000.65 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Mon Dec 23 16:30:59 2013
State : clean, resyncing
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Resync Status : 50% complete
Name : mythen:0 (local to host mythen)
UUID : 4cd693e9:dd3ad1a9:3a5a23a9:62ce3a05
Events : 1458
Number Major Minor RaidDevice State
3 8 1 0 active sync /dev/sda1
2 8 17 1 active sync /dev/sdb1
- 最後に /dev/md0 のファイルシステムのサイズを 4T に自動リサイズする (ここもマウントしたままのオンライン処理なのでとても時間かかる)
server-admin@mythen:~$ sudo resize2fs -p /dev/md0
resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/md0 is mounted on /raid_vol; on-line resizing required
old_desc_blocks = 117, new_desc_blocks = 233
Performing an on-line resize of /dev/md0 to 976721408 (4k) blocks.
The filesystem on /dev/md0 is now 976721408 blocks long.
- 参考サイト
-- http://d.hatena.ne.jp/h2onda/20080527/1211838066
** rsync (公開鍵をサーバーに登録してパスワード不要にした) [#a572716b]
- 公開鍵をサーバーの /.ssh/authorized_keys に登録
- authorized_key は 600 にする必要あり (でないと、自動ログイン出来ない)
- クライアント側は、スクリプト内で秘密鍵を登録する
#!/bin/sh
sudo cp /var/www/skin/pukiwiki.css.php /var/www/skin/pukiwiki.css.php_backup
#sudo rsync -avz -e "ssh -p 8822" server-admin@mythen.hmuna.com:/raid_vol/www/html/pukiwiki/ /var/www
sudo rsync -avz -e "ssh -p 8822 -i /home/munakata/.ssh/muna_E420" serveradmin@mythen.hmuna.com:/raid_vol/www/html/pukiwiki/ /var/www
sudo cp /var/www/skin/pukiwiki.css.php_backup /var/www/skin/pukiwiki.css.php