プラスα空間

ブログ in お市 のーと

FreeBSD 9.1にnetatalk 3.0.4をインストール[追記あり]

FreeBSD 9.1を搭載したサーバを立てました。Full ZFSシステムです。まだ仮運用中で、ユーザ用ディスクは1台しか積んでいません。最終的には、2台mirrorを2セットの構成にする予定です。

ちなみに、Full ZFSシステムになっています。実際の構成は、若干違います。

私にとって必須な、netatalkをインストールしました。既に、先人が立ち上げて下さっているので、私はその真似をして実行するだけです。

参考にした所は、次のウェブページです。ありがとうございます。

ここから、リンクをたどって行きました。

私は、次の様にして、インストールしました。

  1. portsnap update
  2. /usr/port/net/netatalk3でビルド
  3. 設定ファイル(/usr/local/etc/afp.conf)作成
  4. 設定ファイル(/etc/rc.conf)追加
  5. ZFS設定
  6. 再起動

ちょっと時間がかかりましたが、ほぼ、何も考えずにインストールできました。楽チン。

1. portsnap update

FreeBSD 9.1をインストールした状態だと、netatalkのパッケージが古いです。他のパッケージも古かったので、一気に全部新しくしました。

$ sudo portsnap extract
$ cd /usr/port/net/netatalk3
$ sudo make patch

2. /usr/port/net/netatalk3でビルド

私がやった実際の手順とは違うのですが、次の方法が効率が良いはずです。

$ cd /usr/port/net/netatalk3
$ sudo make config-recursive
$ sudo make install clean

“make config-recursive”は、設定だけを先に終わらせる方法です。これをしておかないと、途中で色々質問をされるので、煩わしいです。

このオプションは、次の記事で知りました。ありがとうございます。

これが終われば、後は、”make install clean”で一発です。かなりのパッケージをインストールしますので、時間がかかります。

3. 設定ファイル(/usr/local/etc/afp.conf)作成

netatalkの設定ファイルは、/usr/local/etc/afp.confにおかれています。これを設定します。私は、次の様に設定しています。

;
; Netatalk 3.x configuration file
;

[Global]
    mac charset = MAC_JAPANESE
    afpstats = yes
    log file = /var/log/netatalk.log

[Homes]
    basedir regex = /usr/home

[disk1]
    path = /exports/disk1
    file perm = 0660
    directory perm = 0770

[My Time Machine Volume]
    path = /exports/tm
    time machine = yes

Time Machieのボリュームサイズは、ここでは指定せずに、ZFSのQuotaに任せています。

4. 設定ファイル(/etc/rc.conf)追加

/etc/rc.confに、次の設定を追加します。

dbus_enable="YES"
avahi_daemon_enable="YES"
avahi_dnsconfd_enable="YES"
netatalk_enable="YES"

次のページの設定をそのまま利用させていただきました。ありがとうございます。

ZFS設定

上記、afp.conf内の設定で、disk1とTimeMachineを設定しています。

disk1の設定。

$ sudo zfs create upool/exports
$ sudo zfs set mountpoint=/exports upool/export
$ sudo zfs create upool/exports/disk1

TimeMachineの設定。

$ sudo zfs create upool/exports/tm
$ sudo zfs set quota=200G upool/exports/tm

こちらも、ほぼ次のページの記事を利用させていただいております。ありがとうございます。

5. 再起動

手動でも、それぞれのサービスを起動できますが、面倒なので、再起動しました。

接続試験

次の項目の接続試験をしています。

テスト項目OS X 10.8.4
サーバーを見つけられるか?OK
フォルダを作れるか?OK
MacからFreeBSDにコピーできるか?OK
FreeBSDからMacにコピーできるか?OK
コピーされたファイルのパーミッションはどうか?OK
コピーされたファイルのタイムスタンプはどうか?OK
ファイルの拡張属性はどうか?OK
“:”の様な特殊文字はどうか?OK
長いファイル名はどうか?OK
TimeMachineでバックアップできるか?OK

FreeBSDは、次のコマンドで、拡張属性が付いているかどうかを確認できる様です。

$ /usr/sbin/lsextattr user {ファイル名}

TimeMachineでのバックアップも、Quotaの制限を守ってくれました。

性能比較

FIOを使って、性能を調査しました。GbE環境です。MacBook Pro 15 (Early 2011)でそれぞれのディスクをAFPでマウントして、計測しています。

NAS性能比較

左から、1. シーケンシャルread、2. シーケンシャルwrite、3. ランダムread (512k)、4. ランダムwrite (512k)、5. ランダムread (4k)、6. ランダムwrite (4k)の、LANDISK HDL4-G2 (netatalk 2.0.2)、PowerMac MDD (netatalk 3.0.4)、QNAP TS412 (netatalk 3.0.2)、FreeBSD (netatalk 3.0.4)の結果です。縦軸の単位は、MB/sです。

それぞれのハードウェアとソフトウェアの簡単な比較表は、次の通りです。

CPUMemoryOSnetatalk
LANDISK HDL4-G2.0ARM 400MHz64MBDebian 3.12.0.2
PowerMac MDDPowerPC 1.25GHz2GBUbuntu 10.043.0.4
QNAP TS-412Marvell 1.2GHz256MB専用Linux 4.0.23.0.2
自作FreeBSDPentium 2.3GHz16GBFreeBSD 9.13.0.4

う〜ん、CPU/Memoryのリッチさに比べて、FreeBSD機のリードのパフォーマンスが低いな。PowerMac MDDは、ハードウェアが古い割りに頑張っています。一番、バランスが取れていそうです。

QNAPは古いファームウェアだと、それなりの性能を出していたのに、最新のファームウェア(4.0.2)にしたら、遅くなってしまいました。

FIOによるディスクパフォーマンス測定方法は、次のウェブページを参考にさせていただきました。ありがとうございます。

(追記 2013-08-12 22:49)

ZFSで作るファイルシステムを変更しました。より、自然な形となったと思います。

「もう、データを作っちゃったよ〜。」と言う場合でも、同じpool内なら、簡単に引っ越しができます。そう、ZFSならね。

だいたい、次の様な感じでした。rootでのコマンドが多いので、rootで作業しました。

# zfs snapshot upool/tm@snap0
# zfs clone upool/tm@snap0 upool/exports/tm
# zfs promote upool/exports/tm
# zfs destroy upool/tm
# zfs set quota=200G upool/exports/tm
# zfs list

間違って消してしまっても良い様に、練習用のファイルシステムで試した方が良いかもしれません。

(追記 2013-08-13 09:28)

/exportから/exportsに変更しました。

# zfs rename upool/export upool/exports
# zfs set mountpoint=/exports upool/exports

コメントを残す