FreeBSD 9.1にnetatalk 3.0.4をインストール[追記あり]
FreeBSD 9.1を搭載したサーバを立てました。Full ZFSシステムです。まだ仮運用中で、ユーザ用ディスクは1台しか積んでいません。最終的には、2台mirrorを2セットの構成にする予定です。
- サーバー用PCを組み立てました[追記あり]: プラスα空間 (2013年8月4日)
ちなみに、Full ZFSシステムになっています。実際の構成は、若干違います。
- FreeBSDでFull ZFSシステム作成の実験[追記あり]: プラスα空間 (2013年4月29日)
私にとって必須な、netatalkをインストールしました。既に、先人が立ち上げて下さっているので、私はその真似をして実行するだけです。
参考にした所は、次のウェブページです。ありがとうございます。
ここから、リンクをたどって行きました。
- 希望的観測 » ブログアーカイブ » Netatalk
- FreeBSD 9.1-RELEASEとZFSとnetatalk 3.0.1で作るTime Machineサーバ – mteramotoの日記
- TimeMachine::netatalk3 | chappy::lol
- netatalk3 でハマった。 – 弧月いうの FreeBSD 的な何か – freebsdグループ
- Portsにnetatalk 3.0.3がキタ━━━(゚∀゚)━━━ !!!!! [クソゲ〜製作所]
私は、次の様にして、インストールしました。
- portsnap update
- /usr/port/net/netatalk3でビルド
- 設定ファイル(/usr/local/etc/afp.conf)作成
- 設定ファイル(/etc/rc.conf)追加
- ZFS設定
- 再起動
ちょっと時間がかかりましたが、ほぼ、何も考えずにインストールできました。楽チン。
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
こちらも、ほぼ次のページの記事を利用させていただいております。ありがとうございます。
- 希望的観測 » ブログアーカイブ » Netatalk
(追記 2013-08-12 22:49 その後、変更させていただきました。)
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でマウントして、計測しています。
左から、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です。
それぞれのハードウェアとソフトウェアの簡単な比較表は、次の通りです。
CPU | Memory | OS | netatalk | |
---|---|---|---|---|
LANDISK HDL4-G2.0 | ARM 400MHz | 64MB | Debian 3.1 | 2.0.2 |
PowerMac MDD | PowerPC 1.25GHz | 2GB | Ubuntu 10.04 | 3.0.4 |
QNAP TS-412 | Marvell 1.2GHz | 256MB | 専用Linux 4.0.2 | 3.0.2 |
自作FreeBSD | Pentium 2.3GHz | 16GB | FreeBSD 9.1 | 3.0.4 |
う〜ん、CPU/Memoryのリッチさに比べて、FreeBSD機のリードのパフォーマンスが低いな。PowerMac MDDは、ハードウェアが古い割りに頑張っています。一番、バランスが取れていそうです。
QNAPは古いファームウェアだと、それなりの性能を出していたのに、最新のファームウェア(4.0.2)にしたら、遅くなってしまいました。
- QNAP TS-412のnetatalk(Firmware 4.0.X) 2013年8月6日
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
ディスカッション
コメント一覧
まだ、コメントがありません