#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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS