1SSD+5HDD

パーツが揃ったので、早速ML115に組み込んで動かしてみました。

atacontrol list で見るとこんな感じ。

  Master: acd0 <TSSTcorp CD-ROM TS-H192C/B504> ATA/ATAPI revision 0
  Master:  ad4 <INTEL SSDSA2M040G2GC/2CV102HD> SATA revision 2.x
  Master:  ad6 <WDC WD20EARS-00MVWB0/50.0AB50> SATA revision 2.x
  Master:  ad8 <WDC WD20EARS-00MVWB0/51.0AB51> SATA revision 2.x
  Master: ad10 <WDC WD20EARS-00MVWB0/51.0AB51> SATA revision 2.x
  Master: ad16 <WDC WD20EARS-00MVWB0/51.0AB51> SATA revision 2.x
  Master: ad18 <WDC WD20EARS-00MVWB0/51.0AB51> SATA revision 2.x

gpart show で見るとこんな感じ。WD20EARSからはブートさせないので、パーティションタイプはMBRではなく、AFTに合わせるのに都合のいいGPTにしています。

いわゆるAFTを採用しているHDDは、従来の8倍にあたる4096byte単位でアクセスしないと本来の性能が出せないようです。従来通りの512byte単位でのアクセス要求が来た場合は、実際には4096byte単位で行うアクセスを、コントローラが疑似的に512byte単位に見せかける処理を行っているのですね。これが性能が出せない原因になっています。

ファイルシステムのinodeあたりの大きさは、最近の大容量HDDを使う場合は4096byteもしくはその倍数を使うことが多いので、ファイルシステムとしては4096byte単位で使われているように見えます。なのですが、パーティションの切れ目が4096byteの切れ目と合っていないと、常に「疑似的に合わせる処理」が動いてしまいます。

一般的に、HDDの先頭部分には、ファイルシステムとしては使えない予約領域があり、MBRスキームの場合はこれが63ブロック、GPTの場合は34ブロックであることが多いです。ここでいう「ブロック」は「セクタ」と同義で、1個のサイズが512byteであるため、512byte単位のアクセスなら気にしなくていいのですが、4096byte単位の場合は、パーティションを4096byteの切れ目、つまり8の倍数のブロックから始まるように切らないと、性能が出ないことになります。

このため、最初の数ブロックは未使用領域としてスキップして、MBRの場合は64、GPTの場合は40からパーティションを切り始めれば良さそうです。今回はGPTなので、スタートブロックとして40を指定し、実際にそのようになっています。

今回はGPTにしたので、以下はやや蛇足気味ですが、MBRの場合は、パーティション設定ツール(gpartやfdisk)が、パーティションの切れ目(スタートブロック)を、自動的に63の倍数に合わせてしまうようで、64を指定しても126(64より大きい最小の63の倍数)になってしまいます。これはおそらく、HDDの物理的な構成(63sectors/track)に影響を受けているのだと思われます。ですので、MBRの場合は最初のパーティションのスタートブロックを504(63と8の最小公倍数)にする形が良さそうです。

=>        34  3907029101  ad6  GPT  (1.8T)
          34           6       - free -  (3.0K)
          40  3907028992    1  freebsd-zfs  (1.8T)
  3907029032         103       - free -  (52K)

=>        34  3907029101  ad8  GPT  (1.8T)
          34           6       - free -  (3.0K)
          40  3907028992    1  freebsd-zfs  (1.8T)
  3907029032         103       - free -  (52K)

=>        34  3907029101  ad10  GPT  (1.8T)
          34           6        - free -  (3.0K)
          40  3907028992     1  freebsd-zfs  (1.8T)
  3907029032         103        - free -  (52K)

=>        34  3907029101  ad16  GPT  (1.8T)
          34           6        - free -  (3.0K)
          40  3907028992     1  freebsd-zfs  (1.8T)
  3907029032         103        - free -  (52K)

=>        34  3907029101  ad18  GPT  (1.8T)
          34           6        - free -  (3.0K)
          40  3907028992     1  freebsd-zfs  (1.8T)
  3907029032         103        - free -  (52K)

この5台でRAID-Zを組みます。せっかくSSDがあるので、その一部を ZIL(logs) の領域として使うようにしました。
zpool status で見るとこんな感じ。

  pool: tank
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            ad6p1   ONLINE       0     0     0
            ad8p1   ONLINE       0     0     0
            ad10p1  ONLINE       0     0     0
            ad16p1  ONLINE       0     0     0
            ad18p1  ONLINE       0     0     0
        logs        ONLINE       0     0     0
          ad4s2     ONLINE       0     0     0

errors: No known data errors

SSDなad4を、2スライス+意図的な未使用領域に分けて、ad4s1はFreeBSDのシステム領域、ad4s2はZILのログ領域にしています。未使用領域を残しているのは、Trimが使えるようになるまで(正確にはFreeBSDのAHCIドライバがMCP55をサポートするまで)の対策のためです。

=>      63  78165297  ad4  MBR  (37G)
        63  58719969    1  freebsd  [active]  (28G)
  58720032   8388576    2  freebsd  [active]  (4.0G)
  67108608  11056752       - free -  (5.3G)

=>       0  58719969  ad4s1  BSD  (28G)
         0   1048576      2  freebsd-swap  (512M)
   1048576   4194304      1  freebsd-ufs  (2.0G)
   5242880  16777216      4  freebsd-ufs  (8.0G)
  22020096   8388608      5  freebsd-ufs  (4.0G)
  30408704   2097152      6  freebsd-ufs  (1.0G)
  32505856  26214113      7  freebsd-ufs  (12G)

WD20EARS は 2TB(≒1.8TiB) なので、この RAID-Z 全体としては 8TB(≒7.2TiB) ということになります。この zpool を、zfs でファイルシステムとして切り分けます。

REGZAから認識できるLANストレージは8つまでで、1つにつき4TiBとのことですので、まずここに4TiB。次にMySQLのDB領域に1TiB。私のHOME配下の作業領域に2TiBという感じで割り当てました。あと0.2TiBぐらい余っていますが、そもそもzfs/zpoolはそのあたりを上手に制御していて、はじめからきっちり分けておく必要はない(あとからの増減も簡単)ので、このへんはわりと適当です。

藝術の秋

やっと涼しくなりました。もはや寒いレベル?

今年の9月はまったく暑くて、およそ芸術とは結びつかない感じでしたが、秦野高校吹奏楽部は9月の本番が3件ありました。それに加えて、11月のアンサンブルコンテストにエントリーするチームを決める選考会も。全教室にクーラー(≠エアコン)が設置されたのは、心底ありがたいです。

今年から母校の中学校にも指導に行き始めたのですが、定期演奏会に卒業生が助っ人参加するのが恒例なのだそうで、私も参加することに(笑)。これが10/11(祝)@伊勢原市民文化会館

地元で新しく立ち上げられたアマチュアオーケストラの第一回の演奏会に賛助出演することになっていて、これが11/7(日)@秦野市文化会館

職場の楽団が、社内向けの演奏会と、地域住民の皆様向けの演奏会を開催する予定になっていて、これが11/17(水)と11/28(日)@会社のホール

あと、その合間を縫って、会社の制度で貰える平日7日間の連続休暇が10月後半の予定。ゆっくり温泉にでも行こうかと。

いろいろ楽しみです。

レイトン教授

発売日が推測できるつぶやきがTwitterに流れたことで話題の Nintendo 3DS ですが、現行世代の DSi も一時の品薄状態は解消されて、値段もややこなれてきたので、敢えて一つ押さえておくのもアリかもしれません(笑)

Error: Failed to retrieve data for this request.

こんなカバーもあるのですね。

Error: Failed to retrieve data for this request.

80%

先週、2SSD+4HDDで6TB RAID-Zという構成を考えたのですが、発注前にZIL向けのSSDは単独HWにするほどでもないことに気付いたので、1SSD+5HDDの8TB構成に変更しようかと。これで容量効率が3/4から4/5に向上。(せこい)

ということでそれ用のマウンタ。

Error: Failed to retrieve data for this request.

このお店だとHDDは、はい、このお値段。

Error: Failed to retrieve data for this request.

これも同様のマウンタ。

Error: Failed to retrieve data for this request.

一番人気 Crucial の SSD も値下がりしてきました。

Error: Failed to retrieve data for this request.

これも128GBにしてはお買い得かも。

Error: Failed to retrieve data for this request.

96.6%

今年の8月は日差しが強かったのでよく発電しました。

太陽の軌道でいえば、夏至の6月が最大、冬至の12月が最小の発電量になるわけですが、我が家の瞬間最大記録としては、今のところ9月9日に出た4,115Wだそうです。システムの容量(カタログ値)が4,260Wなので、効率96.6%…。ほんとかなー(笑)

レグザでサンバ

6TBのRAID-Zを設定する前に(正確にはHDDを発注する前に)、REGZA 37Z9000 からSamba/FreeBSD に接続テストをしてみたときのメモです。

  • FreeBSD amd64/8.1-RELEASE
  • ML115(G1)にメモリ8GB搭載済。まったく無改造。当時は PC2-6400 2GB x2 が4000円弱、要するに今の半額だったのでまとめ買いできましたが、もうあの水準までは下がらないかな…(懐古)

  • Samba-3.4.8 (/usr/ports/net/samba34)
  • smb.conf の変更・追加内容(Privateなので甘々)

    [global]
    workgroup = WORKGROUP
    null password = yes
    map to guest = Bad User
    
    [REGZA_DRIVE]
    comment = REGZA_DRIVE
    path = /work/regza
    guest ok = yes
    writable = yes
    printable = no

    これで認識および動作確認OKでした。

    Error: Failed to retrieve data for this request.

    ブルーベリー

    職場ではほとんどPCの画面を見ているので、どうしても目を酷使してしまいます。ブルーベリーの成分がそれを緩和してくれるそうで、私も時々利用しています。

    Error: Failed to retrieve data for this request.

    お疲れ目の方はぜひお試しを。

    RAID-Z

    やっと時間がとれたのでML115でZFSをごにょごにょ(というメモ)。

    ZFSbootはまだ手順が複雑なので、OS部分はUFS2/SSD、できれば2TBの3.5インチHDDを4台入れてRAID-Z(6TB)、さらにZIL用にSSDをもう一つ入れたい。5インチベイが1つ空いているので設置スペースはなんとかなるけど、SATAポートが2つ足らない。PCIバスにSATAカードを増設しよう。

    ということで、まずは2TB玉の候補(いつもの)。

    Error: Failed to retrieve data for this request.

    SSDは敢えてintelのこれを。システム領域としてもZILとしても40GBもあればOK。

    Error: Failed to retrieve data for this request.

    PCI-ExpressなSATA2カード。(流行りのU3S6はまだFreeBSD/ML115には時期尚早な悪寒がするので)

    Error: Failed to retrieve data for this request.

    2.5インチSSDを2台、5インチベイにマウントするためのアダプタ。(これは3台まで可)

    Error: Failed to retrieve data for this request.

    ついでに(笑)

    Error: Failed to retrieve data for this request.

    6TBも何に使うかというと、主にREGZAのストレージです。主に「おかあさんといっしょ」です。HD動画データ大きすぎ…orz

    WD20EARS

    安価に買えるようになってきた2TB玉、その代表格のWD20EARSはAFTを採用しているので、FreeBSDで使う際にもちょっと工夫が必要というメモを。

    1. しののの さん
    2. 徒然ちょっとメモ さん
    3. じんそんのぶにっき さん
    4. fujitaka’s lifelog さん

    間取り

    住宅情報誌などの間取り図を眺めるのが楽しいと思っている人は、どうやらたくさんいるみたいで、間取り図ナイトなるイベントがあるらしいです。しかももう6回目。ちょっと面白そうです。

    そんな変な間取り図を集めた本がいくつか出ています。いつも立ち寄る駅ナカの書店に平積みされていましたが、単なる作図ミスと思われるものも結構入っているので、抱腹絶倒とまではいかないのが残念です。