centOS6.3インストール時にRAID10設定


RAIDの学習のためにvm環境に構築したソフトウェアRAID10の設定方法メモ。
samba用途として構築してみる。

bootディスクとsambaでマウントするディスクは分ける事とする。
なのでHDD5台で構築。

## vm 設定

vm、virtualBoxの設定は以下
![vbconf](https://lh4.googleusercontent.com/-UiJlGo_faZY/UP9a2q6--tI/AAAAAAAAEnE/XgJCgU5gZw4/s512/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25202013-01-23%252012.05.22.png)

ほとんどが標準状態だが若干の変更部分がある。
変更点は

- メインメモリーを1024MBに
- ストレージでのディスク追加
- ネットワークアダプターに「ホストオンリーアダプター」の追加

メインメモリーが標準の512MBだとCUIインストールになり、RAID設定やパーティションの設定がインストールが終わった後に変更しなくては行けなくなるので、正直面倒くさかったのでGUIインストールモードに変更になる1024MBで。
ストレージ項目のディスクではboot用のディスクとRAID10の最小必要個数のHDD4台を割り当てておく。
ネットワークアダプターはローカルのPCからSSH接続するため。

ちなみにcentOS6.3のminimalディスクでインストールを行う。
ネットワークインストールディスクだとURLを入力するのが面倒なので選択、代わりにインストール後にネットワークを立ち上げる必要があるが。そこは好みなので別途選択。

## インストール
![welcome](https://lh3.googleusercontent.com/-wlSTk_csnyw/UP9a71HEj8I/AAAAAAAAEnU/YgXFYgUURpg/s576/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25202013-01-23%252012.07.10.png)

起動してインストールを行う。
ディスク選択まで流れで設定。

## ディスク
![カスタムレイアウト](https://lh5.googleusercontent.com/-dZqR4wyMRdc/UP9a782G6aI/AAAAAAAAEnQ/MJcZ25D71_0/s576/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25202013-01-23%252012.13.40.png)

ディスクの設定まで来たらカスタムレイアウトを選択

## パーティション設定
こうなってるのを
![デバイスbefore](https://lh3.googleusercontent.com/-VEUSvKR7BoM/UP9a7po1GJI/AAAAAAAAEnM/EI2ByfMxAdE/s576/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25202013-01-23%252012.14.10.png)

こう
![デバイスafter](https://lh5.googleusercontent.com/-N_YEJyecCjg/UP9a8vQ_jtI/AAAAAAAAEnc/ZRlJXNUFPKA/s576/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25202013-01-23%252012.29.49.png)

sdaディスクをboot用にするのでパーティションを切る必要は無かったが適当に設定。
/bootディレクトリが500あれば良い
swapパーティションはメモリの２倍が目安
残り容量すべてを/ディレクトリに設定。

RAIDに設定するディスクは
![RAIDパーティション](https://lh5.googleusercontent.com/-KLXoEovaq6o/UP9a8vPPFWI/AAAAAAAAEnY/kWG6Ezzq7ow/s576/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25202013-01-23%252012.14.38.png)
RAIDパーティションを選択して「最大許容量まで使用」にチェックを付ける。


その後、RAIDデバイスを選択、タイプをRAID10にして`/home/samba`にマウント設定


これでディスク設定は完了。次へを押してフォーマットを行い後は流れでポチポチすれば良い。

どうぶつの森でもやってましょう。

## インストール完了

![完了](https://public.blu.livefilestore.com/y1pCCAsq41p9if5_2L3h83MCFi690G3eacjm9T-DJKb8x1Cgv1TAAYky94cTJ3M1cOWaLsoPlzympve-O8-svzWMQ/c6i49.png?psid=1)

## 番外:ネットワークの設定

minimalインストールなのでインストールが終わってもネットワークが立ち上がっていません。
rootでログインして

```
$ ifup eth0
```
でeth0が立ち上がります。

ONBOOTをyesに変更しておけば次回から自動で立ち上がります。

```
$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
[…]
ONBOOT="no"
⬇
ONBOOT="yes"
[…]
```

今回はホストオンリーアダプターを設定してあるのでeth1も立ち上げればssh接続が可能

## RAID確認

```
[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid10] 
md0 : active raid10 sdd1[2] sde1[3] sdc1[1] sdb1[0]
      16772096 blocks super 1.1 512K chunks 2 near-copies [4/4] [UUUU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

unused devices: <none>
```

md0でRAID10が設定できている事がわかる。


`mdadm --detail`でRAIDデバイスを閲覧

```
[root@localhost ~]# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.1
  Creation Time : Wed Jan 23 12:30:49 2013
     Raid Level : raid10
     Array Size : 16772096 (16.00 GiB 17.17 GB)
  Used Dev Size : 8386048 (8.00 GiB 8.59 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Wed Jan 23 13:20:19 2013
          State : active 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 512K

           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : f2a6b581:3ee58ef9:13ccf13b:5bbf7378
         Events : 321

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
       3       8       65        3      active sync   /dev/sde1
```

```
[root@localhost ~]# mount
[…]
/dev/md0 on /home/samba type ext4 (rw)
[…]
```

問題なさそう。

## 復旧手順
これだけだとあっけない、というか不安なのでHDDが壊れたときのっ復旧手順も試してみる。

## HDDの割当を解除
確認用にファイル作成

```
[root@localhost samba]# pwd
/home/samba
[root@localhost samba]# ll
合計 20
-rw-r--r--. 1 root root     0  1月 23 13:43 2013 hi
drwxr-xr-x. 2 root root  4096  1月 23 13:43 2013 huge
drwx------. 2 root root 16384  1月 23 12:31 2013 lost+found
```

確認用ファイルを作成したら一旦パワーオフ、HDDの割当を解除(cent-raid3)してみる。そして新しく「cent-raid5」のHDDを割り当てる。
![割当解除](https://lh6.googleusercontent.com/-XCw5_oDrFiA/UP-AeJIatII/AAAAAAAAEoE/61jQ2H_vtQE/s512/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25202013-01-23%252015.17.04.png)


起動

確認

```
[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid10] 
md0 : active raid10 sde1[3] sdb1[0] sdc1[1]
      16772096 blocks super 1.1 512K chunks 2 near-copies [4/3] [UU_U]
      bitmap: 0/1 pages [0KB], 65536KB chunk

unused devices: <none>
```

`[4/3] [UU_U]`の表示で3台でRAIDしている事がわかる。

より詳しい内容

```
[root@localhost ~]# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.1
  Creation Time : Wed Jan 23 12:30:49 2013
     Raid Level : raid10
     Array Size : 16772096 (16.00 GiB 17.17 GB)
  Used Dev Size : 8386048 (8.00 GiB 8.59 GB)
   Raid Devices : 4
  Total Devices : 3
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Wed Jan 23 15:22:54 2013
          State : active, degraded 
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 512K

           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : f2a6b581:3ee58ef9:13ccf13b:5bbf7378
         Events : 329

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       2       0        0        2      removed
       3       8       65        3      active sync   /dev/sde1
```

RaidDevice 2のディスクがなくなっている。 `/dev/sdd1`

ディスクが１つなくなっているのにファイルは無事なのが確認できる

```
[root@localhost ~]# ll /home/samba/
合計 20
-rw-r--r--. 1 root root     0  1月 23 13:43 2013 hi
drwxr-xr-x. 2 root root  4096  1月 23 13:43 2013 huge
drwx------. 2 root root 16384  1月 23 12:31 2013 lost+found
```

## RAIDデバイスに新しいディスクを追加
新しく追加した「cent-raid5」ディスクをRAIDデバイスに追加してやる

まずはRAID用にフォーマットを行う

```
$ fdisk /dev/sdd

# パーティションの作成(今回は全領域を使用)
n (新規パーティション作成) → p (基本パーティション) 
　→ 1 → 空エンター (開始シリンダ) → 空エンター (終了シリンダ)

# フォーマットタイプ指定
　t (パーティションID変更) → fd (Software RAID用ID)

w (ディスクに書き込んでfdiskを終了)
```

追加

```
$ mdadm -a /dev/md0 /dev/sdd
```

確認

```
[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid10] 
md0 : active raid10 sdd[4] sde1[3] sdb1[0] sdc1[1]
      16772096 blocks super 1.1 512K chunks 2 near-copies [4/3] [UU_U]
      [>....................]  recovery =  4.8% (409984/8386048) finish=6.4min speed=20499K/sec
      bitmap: 0/1 pages [0KB], 65536KB chunk

unused devices: <none>
```

現在同期中のようだ。

`watch`コマンドで同期されるのをだら見できる

```
$ watch -d "cat /proc/mdstat " 
```

同期が完了すれば作業は完了。
これでHDDが壊れても復旧作業ができるであろう。