2010年01月12日 21:00 [Edit]

tips - Ubuntu 9.10 + ドライブドア で 8TB RAID-5 をこさえてみた

体調が悪くてあまり難しいことを考えられない時には、こういう単純作業にもってこい。というわけで、 Ubuntu 9.10 とドライブドアで、型落ちの MacBook Pro 2,2 を 8TB RAID-5 Serverに仕立てたので備忘録。


理由

2TBのHDDが15kで売ってたらいつの魔に買っていたので。

ここではなりゆき上お古の MacBook Pro 2,2 を使っているが、port multiplier 対応の e-SATA 付きの Ubuntu BOX ならなんでも使えるはず。

DSCF5311

材料


HDS722020ALA330 x 6
Amazonでは2万円ちょっと超えてますが、私はビックカメラで買って1万5000円台。1本は予備
EX35ES5 x 1
これに HDS722020ALA330 を詰め込みます
34REX-EX30S x 1
現時点において、Mac Pro以外のMacにeSataを持たせる唯一の手段が ExpressCard/34 経由。そのこともあってかちょっと高め。でも1万円しない

OSの選択 - Ubuntuな理由

Mac OS X
残念ながら、Software RAID 5 がない。 RAID 0/1/10 であればこれが一番楽だと思う
FreeBSD
実は一番使いたかったのがこれ。本当は RAIDZ にしたかったのだけど、ExpressCard を指すと MacBook 内蔵HDDが ad5 から ad9 になり、そしてドライブドア(ベタな名前だなあ)の HDD が ad6 から ad10 と認識され、内蔵HDD が見えなくなるというのでは実用にはならない。
一応 PXE Boot でなんとかと動くようにもしてみたが、ファイルサーバーのために NetBoot サーバーが必要なんてわけわかんないし。
Ubuntu
mdadm が RAID 5 対応している。 Kernel の remake は不要
Windows
論外

というわけであっさり Ubuntu に決定。余談であるが、蓋を閉じたまま運用できるのもうれしい。OS Xでは外部ディスプレイとキーボードにつないでない限り問答無用でsleepしてしまうので。

レシピ

  1. ふつうに Ubuntu-9.10-desktop-amd64 をインストール

    いちおうdual bootにしてみたが、シングルでもよかったかも。

  2. mdadmを以下のとおりインストール
    sudo apt-get install mdadm
    
  3. RAID 5を構築
    sudo mdadm --create --verbose --assume-clean /dev/md0 \
      --level=5 --raid-devices=5 \
      /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf 
    

    よほどのことがない限り、--assume-cleanを指定すること。さもないと必要もないのにRAIDを再構築しようとしやがります。

           When creating a RAID5 array, mdadm will automatically create a degraded
           array  with  an  extra spare drive.  This is because building the spare
           into a degraded array is in general faster than resyncing the parity on
           a  non-degraded,  but not clean, array.  This feature can be overridden
           with the --force option.
    

    なんでこんな仕様になっているか、謎。そして--forceも間違い。これまたresyncしようとしやがります。

  4. 以下のようにして様子を確認
    sudo mdadm --detail /dev/md0

    こんな感じになっていればおK

    /dev/md0:
            Version : 00.90
      Creation Time : Thu Jan  7 01:11:48 2010
         Raid Level : raid5
         Array Size : 7814057984 (7452.07 GiB 8001.60 GB)
      Used Dev Size : 1953514496 (1863.02 GiB 2000.40 GB)
       Raid Devices : 5
      Total Devices : 5
    Preferred Minor : 0
        Persistence : Superblock is persistent
    
        Update Time : Sun Jan 10 01:44:50 2010
              State : clean
     Active Devices : 5
    Working Devices : 5
     Failed Devices : 0
      Spare Devices : 0
    
             Layout : left-symmetric
         Chunk Size : 64K
    
               UUID : deadbeef...
             Events : 0.213283
    
        Number   Major   Minor   RaidDevice State
           0       8       16        0      active sync   /dev/sdb
           1       8       32        1      active sync   /dev/sdc
           2       8       48        2      active sync   /dev/sdd
           3       8       64        3      active sync   /dev/sde
           4       8       80        4      active sync   /dev/sdf
    
  5. 設定ファイルの作成
    sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf

    とした後、適当に編集。metadata=の下りは削除した方がよい。私は以下のようにした。

    DEVICE /dev/sd[bcdef]
    ARRAY /dev/md0 level=raid5 num-devices=5 UUID=deadbeef...
    
  6. newfs
    newfs -t ext4 /dev/md4

    ZFSと違って、こちらは newfs が必要。むちゃくちゃ時間がかかる。10分以上

    ext4 で本当によかったのかな、ま、いっか。

  7. テスト
  8. mkdir /drivedoor
    mount -t ext4 /dev/md0 /drivedoor
    
  9. /etc/fstabに登録
  10. /dev/md0 /drivedoor ext4 defaults 0 0

性能

すばらしい。Software RAID とは思えない。

Write
dankogai@mbp22-ubuntu:~$ dd if=/dev/zero of=/drivedoor/8tb/4gb.img bs=1M count=4096
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB) copied, 43.5056 s, 98.7 MB/s
Read
dankogai@mbp22-ubuntu:~$ dd if=/drivedoor/8tb/4gb.img of=/dev/null bs=1M
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB) copied, 38.4559 s, 112 MB/s

NASとして使う場合、これ以上の性能は望んでも仕方がない。なにせGbEが真っ黒になるのだから。

ファイル共有

いろいろ試してみたのだが、結局 netatalk で AFP に落ち着いた。

SMB
Ubuntu、というか Gnome ではこれが標準のようで、GUIで設定できたりもするのだが、いかんせん smbd が重い。これがCPUを食いつぶす。
SFTP
openssh-serverさえ入れておけばSFTPが使えるので実は一番楽ではあるが、OS XはGUI未対応(sftpコマンドは標準である)。逆に Ubuntu から OS X のファイルにアクセスするには、これが Protocol of Choice
AFP
軽い。速い。ファイル名問題も皆無

というわけで netatalk を

apt-get install netatalk

した後、AppleTalkを殺す。欲しいのはAFPというファイル共有プロトコルであって、AppleTalkというネットワークプロトコルではないのだし。

--- /etc/default/netatalk.dist	2010-01-09 09:19:29.957065966 +0900
+++ /etc/default/netatalk	2010-01-09 09:20:07.117079593 +0900
@@ -29,8 +29,8 @@
 AFPD_GUEST=nobody
 
 # Set which daemons to run (papd is dependent upon atalkd):
-ATALKD_RUN=yes
-PAPD_RUN=yes
+#ATALKD_RUN=yes
+#PAPD_RUN=yes
 CNID_METAD_RUN=no
 AFPD_RUN=yes
 TIMELORD_RUN=no

としてから、

sudo sh /etc/init.d/netatalk restart

で、性能だが、Ubuntuでローカルに試したときとほとんど同じ性能が出ている。

Write
% dd if=/dev/zero of=/Volumes/8tb@mbp22-ubuntu/4gb.img bs=1048576 count=4096
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 54.775344 secs (78410595 bytes/sec)
Read
% dd if=/Volumes/8tb@mbp22-ubuntu/4gb.img of=/dev/null bs=1048576 count=4096
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 49.609720 secs (86575117 bytes/sec)

ちなみに iMac 27インチの内蔵HDD はローカルでこう。

Write
% dd if=/dev/zero of=4gb.img bs=1048576 count=4096
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 39.975188 secs (107440828 bytes/sec)
Read
% dd if=4gb.img of=/dev/null bs=1048576
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 37.424465 secs (114763626 bytes/sec)

ほとんど変わらない。そして MacBook の内蔵HDDより確実に高速。

まとめ

10万円ちょっとで 8TB の RAID5 Server を持てるとは、おそろしい時代になったものである。しかしふと自分のファイルを見ていると、 iPhone の母艦であり、 iPhoto のマスターでもある私の MacBook に入っているファイルはせいぜい 40GB ほど。「なくしてはならない」データはこれくらいしかない。後は仮想マシンの仮想ディスクだの、過去のマシンたちのフルバックアップだの、なくしたらなくしたで何とかなるものばかり。

そして、パソコンの性能はすでに「使いこなす」という点では型落ちの MacBook Pro、すなわち3年以上前から飽和しているといってもいい。NICはGbEで足りてしまう、というかUSB 2.0よりずっと高速で、それすら「火を噴く」のはバックアップの時ぐらいで、ネットサーフィンなら1080pの動画を見る時ですら100Mbpsでおつりがどっさり来る。そして4GiBというのがCPUの32/64bit境界であるように、2TiB というのは 512 Byte/Sector で 32bit Addressing する場合の限界でもある(29 * 232 = 241 = 2 * (210)4)。

そう考えると、単独容量 2TB の時代というのは、相当長く続くのではないだろうか。2.5インチまで2TBになっても、3.5インチが容量を増やすのではなく、むしろ3.5インチがフェーズアウトしていくのかも知れない。それより容量が欲しい人はRAIDでも組め、と。

となると、RAIDを組むという作業が「普通化」する可能性はかなりあるかも知れない。そんな時こんな記事が役に立ってくれたら幸い、という落ちがついたところで本entryのまとめとしましょう。

Dan the Man with Too Many Platforms to Babysit

追記:2010.07.27

http://ht.ly/2gEvG の鯖を #ubuntu 10.04 LTS にうpぐれーどだん。留意点二カ所。最初の再起動で mdadm が停止状態→一度だけ手動で mdadm --runする;netatalkがへくる→.AppleDBと.AppleDesktopを削除less than a minute ago via HootSuite


この記事へのトラックバックURL

この記事へのトラックバック
待たされるのが嫌とか 特に理由なしとか よほどのことがない限り、--assume-cleanを指定することなんて他人に勧めたり いざって時に死ぬのは自分だけにしてよ 縮退してないRAID5アレイに冗長性を求めるのは"よほどのこと"? 書き込みが起きれば該当ストライプのパリティ
冗長性のないRAID5を望む者たち【ゴミ捨て場】at 2011年06月02日 06:24
今回の目玉であるRAIDの構成をします 地雷だらけなので気をつけてください sd...
Ubuntu9.10 で NAS on RAID1(4/?)【♪RHYME-BEAT|l・_・】ノ】at 2010年08月31日 14:58
参考にするため、小飼弾さんによる、以下の実践記録をメモしておく。 404 Blog Not Found:tips - Ubuntu 9.10 + ドライブドア で 8TB RAID-5 をこさえてみた 上記で小飼さんは Ubuntu-9.10-desktop-amd64 を選択し...
over 2TB problem【antiperspective】at 2010年02月26日 17:43
Webサーバのデータバックアップのため、ストレージを追加したい。 HDDにするか、SSDにするか? Last.fmがサーバにSSDを導入、分散ファイルシステ??.
SSDでファイルシステムを高速化【浜村拓夫の世界】at 2010年01月14日 23:34
tips – Ubuntu 9.10 + ドライブドア で 8TB RAID-5 をこさえてみた なるほど、Linuxはこうやってやるのか って事で最強NASも測ってみました。(←つか、今まで測ってなかったのかよ) RAIDなしとRAID1なので、なんでもないですが、一応載せときます。 [root@pt2nas ~]...
最強NASのディスク性能を測ってみました【Do I like programming?】at 2010年01月13日 22:02
この記事へのコメント
>>むしろ3.5インチがフェーズアウトしていくのかも知れない。

これはそうかもしれんなー 2.5HDDって、昔はもっと高かったいうか
眼中になかったいうか、3.5と差あった思うのですが。
アルミ等の素材は相変わらず高いようだし。
モーターはネオジムとか使ってんだっけ? 小さい方が原価安いからなー。
究極は、半導体でのHDDと、どっちが安いのかな?

>>めっきり更新がなくなったような気がするけれども

コメントは、12/11のOpenID以降は、減ってるかなー
書籍は最近良い本ないかなー。昨年買った本が、もう時代に合ってない。
世の変遷が速い。予想超えた速度で悪化してるかな?

企画立て、書いて出版でしょ?  出版する頃には世間が変化している
Posted by jj_ishii at 2010年01月14日 10:05
>--assume-cleanを指定すること
理由を理解もせずにデフォルトと違うことを勧めるってすごいね
Posted by https://me.yahoo.co.jp/a/lqsrCocfM5sLpvlHrQ12TQOtXfg-#9192e at 2010年01月13日 20:41
オタッキーな内容で、私はシェル乱立ディストリ入乱れの
LinuxやUnixは、思想志向があまり好きでないナー
邪魔臭がりだからかな?
Raidも好きでないなー、単品の2TBで十分過ぎで Raid-5なんてウーム
Posted by jj_ishii at 2010年01月13日 10:41
めっきり更新がなくなったような気がするけれども、彼に執着しなければならないほどの中毒性はなくなったような気がする。でも編集がよくなっている。
Posted by yatugami at 2010年01月13日 08:57
近頃めっきりblogの更新が減ってますね、小飼節を聞く機会が減ってさみしいです。内容もちょんがり感が減ってるし。 danさんに限らずRSSしてるほかのblogもしぼんできてるように感じるのは気のせい? 皆さんツイットするのに忙しいのだろか。 dankogaiといえばやはり"404 Blog Not Found"が一番なんだけどな〜
Posted by immrmkt at 2010年01月12日 23:18