2004年11月21日

xfsで快適quota

Gentooを使ってみた理由の一つにxfsを使って見たいというのがあったので、インストール時から使ってますが

mkfs.xfs /dev/hda1
とかであっさりフォーマットできますし、ルートでも特に問題なくマウントできたりとごく普通(笑)

でも、電源ぶっち切りテストとかやるのも面白くないんで、前々からやりたかった大容量quotaができるかどうかやってみました。

というか調べて知ったんですが、XFSって強力なquota機能持ってるんですね。

  • XFS ファイルシステムは特殊なケースである - XFS は quota 情報をファイルシステムメタデータとして扱い、ジャーナルを用いて高レベルで一貫性を保証する。 XFS ディスク quota システムには、集計 (accounting) と制限の強制 (limit enforcement) を行う 2 つのコンポーネントがある。 XFS ファイルシステムは quota の集計をマウント時に有効にする必要がある。 quota 集計を有効にした後で、 XFS ファイルシステムの制限の強制を有効にしたり無効にしたりできる。デフォルトでは集計と強制の両方が有効にされる。
    XFS の quota の実装では、ユーザーから見えるファイルではなく (ファイルシステムの) 内部に quota 情報を格納する
普通はquotaを使おうと思ったら、まず現状を記録するために
$ quotacheck -avug

(オプションの意味)
-a NFS以外の全quota領域
-c 新規スキャン
-u ユーザ情報でのチェック
-g グループ情報でもチェック

なんて言う感じで先に情報を収集して専用のファイルに書いておかないといけないんですが、XFSはマウントオプションで「quota」を指定しておけば、ジャーナルレベルで集計するので実情と必ず一致するという便利設計なようです。

では、実際に使ってみます。

まず、対象のパーテーションのマウントオプションにquotaを指定します。

/dev/md0 /hoge xfs auto,quota 0 0
終わったらマウント(既にマウントしてある場合はアンマウントして再マウント)してください。

終わったらquotaonコマンドでquotaが有効になっているかどうか確認してみましょう

# quotaon -v /hoge
quotaon: Enable XFS group quota during mount
quotaon: Enforcing user quota already on /dev/md0
これで準備は完了です。

後は、edquotaコマンドで制限をしたいユーザについて設定を行えば完了です

Disk quotas for user foo (uid 500):
  Filesystem                   blocks       soft       hard     inodes     soft    hard
  /dev/md0                   20389149   31457280   41943040       3922        0       0

にしてもXFSってでかいファイルの削除が早かったりと細かい点で見てもReiserFSよりも良さそうな感じです。
枯れてるという意味ではReiserFSに一日の長がありますが、取って変わられる日も遠くない感じがします。

Posted by Takuchan at 2004年11月21日 14:42 | トラックバック(0)