アットウィキロゴ

mdadm による Linux RAID の構築


mdadm による RAID の構築

参考ページ > Linux Raid (wiki)
man ページはこことか。日本語の man ページは古いのしかないようだ。

1. ディスクのパーティション


構成するディスクのパーティションを切る。パーティションテーブルは MBR にする。パーティションタイプは0xDA で non-FS data。これは mdadm のマニュアルでそうするべきとされている。

2. RAID の作成(create)


chunk は 64KB、レベルは6にした。ディスクがたくさんあるので...。なお # はルートでのコマンド入力を意味する。
# mdadm --create --verbose /dev/md0 --chunk=64 --level=6 --raid-devices=6 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sda3 /dev/sdb3
これで resync が始まる。大きいと時間がかかるので寝る。

3. ファイルシステム


パーティションを切る。パーティションテーブルは MBR、パーティションタイプは 0x83 で Linux Ext4。
  • reserved-blocks-percentage はパーティションが大きいので 1% で十分。
  • ブロックサイズは 4ストライドとストライプは参考ページから算出。計算は以下の通り。
    • stride = chunk / block = 64 / 4 = 16
    • strippe-width = stride * (( n disks in raid6 ) - 2 ) = 16 * 4 = 64
# mke2fs -t ext4 -v -m 1 -b 4096 -E stride=16,stripe-width=64 /dev/md0
次にチェックの頻度を指定する。マウント100回か一週間おき。
# tune2fs -c 100 -i 1w /dev/md0
後で変更する時は
# tune2fs -E stride=n,stripe-width=m /dev/mdx

4. UUID


# mdadm --detail --scan >> /etc/mdadm.conf
で UUID を得る。

5. マウント


# mount /dev/md0 /raid6

6. fstab


次の行を /etc/fstab に追加。
/dev/md0 /raid6 ext4 defaults 1 2

7. ディレクトリ


afp 向けにルートディレクトリを作り、公開する。
#cd
/raid6
# mkdir afproot
# chown user:user afproot

8. netatalk の設定


Mac OS X から使うので netatalk を導入。ftp でもいいんだけど、何となく。
AppleVolumes.default に以下を追加。
/raid6/afproot "RAID6"

9. avahi の設定

avahi は Linux での mDNS の実装。これをやると、Mac OS X のファインダから見えるようになる。もちろんシステムで avahi-daemon がちゃんと動いていないとだめ。
/etc/avahi/services に以下の内容でファイルを追加する。
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">%h</name>
  <service>
    <type>_afpovertcp._tcp</type>
    <port>548</port>
  </service>
</service-group>
 
これでできたんじゃないかな? なお、Linux のディストリは Fedora 14 を使用。Ubuntu 11.04 でも同じようにできた。
最終更新:2011年05月22日 19:39