ZFSのquotaを使ってTime Machineで使う容量を制限する
FreeBSD 9.1-RELEASEとZFSとnetatalk 3.0.1で作るTime Machineサーバ - mteramotoの日記でZFSのquotaを使っている、と書いた内容の補足。
ZFSには、ファイルシステム単位で容量を制限するquotaと、ファイルシステム/ユーザ/グループ単位で容量を制限するuserquotaの2種類のquota機能がある。普通にquotaといって想像するのは後者の方だけど、前者の使いどころもあるのだぜ。
というのも、ZFSはあるプールから切り出したファイルシステムは、プールの容量を共用することになる。具体的に、tankという1TBのプールからa, b, cの3つのファイルシステムを切り出したとすると、aで500GB使うとb, cは空き容量が500GBになっちゃう。Time Machineは空き容量がある限りバックアップを作成する仕様だから、Time Machine用のファイルシステムは容量を制限しないと、同じプールから切り出した他のファイルシステムが使い物にならなくなってしまう。この制限は、ファイルシステム毎で十分だから、まさにZFS quotaの使いどころ。
さて、quotaの設定方法はとっても簡単。
# zfs set quota=600g tank/a
これで、tankプールのaファイルシステムに600GBのquotaが設定できた。