FreeBSDでファイルサーバーを作る(再生編)

仕事でシステム関連のお守りをすることになりまして、慣れないWindows Serverを触ったりバックアップ用のNASを触ったりしていたら、自宅にもNASが欲しくなっちゃった。

会社で使っているNASがSynologyでOSもまぁ悪くなさそうだし、メジャーどころっぽいからこれにしようとAmazonを見たらめちゃ高かった。ガワだけで5万円とかするのね。

10数年ぶりに自作PCでもしちゃうか?と思ったけど、やっぱりなんだかんだ部品を揃えると数万円はするよね。

HP MediaSmart Server EX490を使う

2010年頃Windows Home Serverっていう自宅用のWindows Serverがありました。これを搭載したHPのMediaSmartServer EX490というのががウチにあります。もう長いこと使っていませんが、筐体が綺麗なので捨てずにとっておいたのです。

Windows Home Serverもディスコンだし、クライアントソフトもどうやって手に入れればいいのかわからないので、Unixマシンにするのがよいのではなかろうかと。

スペックはこんな感じ。

  • CPU:Celeron 450 Single-Core Processor, 2.2GHz
  • メモリ:2GB DDR2 RAM
  • ストレージ:SATA x 4(うちひとつは1TBシステムディスク)
  • 外部ポート:USB 2.0 x 4, eSATA x 1, 1000BASE-T x1
  • サイズ:幅140 x 高さ250 x 奥行き250
  • 質量:5kg

筐体の半分以上はHDD格納スペースになっていて、残りがマザーボードと電源という構成。まぁサイズ的にNASと大差ない感じ。

めちゃめちゃ埃を被っていて、中も汚かったので分解清掃しました。天板の外し方にコツがあるのだけれど、A Closer Look at the EX490 and EX495 Hardware | MediaSmartServer.netというサイトを参照して分解しました。

2万円でRAID1の2TBサーバーができた

元から入っていたディスクは読み込めなかったのでストレージを新調。その他ハードウェアは問題なかったので、20,030円で2TBのRAID構成NAS相当が完成しました。

部位品名金額
システムドライブTranscend 2.5″ SSD 120GB TS120GSSD220S-E2,480円
データドライブWestern Digital 3.5″ HDD 2TB(RED)2台セット16,850円
変換マウンタ2.5″ SSD/HDD変換マウンタ700円

CMOSバックアップ電池も空になっていたけれど、これはたまたまCR2032の手持ちがあったのでタダ。

ただしこのマシン、ディスプレイ出力がないヘッドレスなのでOSインストール用にいくつか道具が必要です。

  • Intel PC(今回はThinkPad E590を使用)
  • SATA/USB変換アダプタ(今回は玄人志向のGW2.5OR-U3を使用)

いろいろ調べるとマザーボード上のコネクタからVGA信号が取り出せるVGAケーブルもあるのだけれど、インストール時しか使わないので上記で対応しました。

FreeBSDの設定をする

FreeBSDはインストールイメージ以外に仮想マシンイメージのrawフォーマットが提供されています。Intel PCを使ってこれをHDDに展開後起動します。rawイメージファイルは5GBしかないけれど、growfsが設定されているのでディスク一杯までパーティションが拡張されます。

$ gpart show /dev/da0 => 3 234441637 da0 GPT (112G) 3 123 1 freebsd-boot (62K) 126 66584 2 efi (33M) 66710 2097152 3 freebsd-swap (1.0G) 2163862 232277778 4 freebsd-ufs (111G)
Code language: Shell Session (shell)

まずはssh接続ができるように最低限の設定だけ実施。/etc/rc.confで固定IPアドレスを振って、sshdを起動させます。re0の部分は実際のネットワークアダプタに合わせましょう。EX490はre0でした。

ifconfig_re0="inet 192.168.10.2/24" defaultrouter="192.168.10.1" sshd_enable="YES"
Code language: Bash (bash)

passwdでrootにパスワードを与えたら、念のため/etc/ssh/sshd_configでrootがパスワードログインできるようにしておきます。

PermitRootLogin yes PasswordAuthentication yes
Code language: Bash (bash)

ここまで設定したらシステムドライブとデータドライブをEX490に組み込みます。電源を入れてしばらく待つと、ssh接続できました。

SSDのTrimをONにする

たまたま500GBの2.5インチHDDがあったので、こちらにもFreeBSDを入れてみます。というのもSSDのTrimを設定したくてもシステムドライブでマウント中では設定ができないから。

SSD同様に設定したHDDを起動ドライブ、SSDをada3あたりに接続してtunefsコマンドで設定。Trim設定できるのはufsだけです。

# tunefs -t enable /dev/ada3p4
Code language: Shell Session (shell)

設定できたかどうかの確認はdumpfsコマンドで。

# dumpfs /dev/ada3p4 | grep -e '^flags' flags soft-updates trim
Code language: Shell Session (shell)

次回はこれを使って実際にRAIDを組んでいきます!