"POSIX Access Control Lists on Linux"というページでちょっと面白いデータを見つけたので、へたれ(つか、ちょーいいかげん)訳を残しておくことに。
ひょっとしたらこれって常識で、いままで知らなかった方が無知なのかもだけれど(恥。
さて、本題ですが、上記ページの"EA and ACL Performance"の項に、こんな記述が。
“……
XFSについては、EAがinodeに保存される場合と外部に保存される場合とを比較するため、inodeのサイズが256byteのファイルシステムと512byteのファイルシステムを1)使用しています。これらのファイルシステムをそれぞれ、XFS-256およびXFS-512と呼ぶことにします。
表4では、システム再起動後にあるファイルに最初にアクセスしたさいに要する時間を、ACLありの場合となしの場合で比較しています。ファイル自身のinodeがキャッシュに読み込まれるのにかかる時間を除去するため、アクセスをチェックする前にstatシステムコールを実行しています。statシステムコールの実行にかかった時間は示されません。ファイルのアクセスACLへの最初のアクセスには1回ないしそれ以上の回数のディスクアクセスが必要になるかもしれず、それはキャッシュへのアクセスより数桁遅いものになります。実際にこれらのディスクアクセスにかかる時間はディスクのスピードとアクセスされるディスクのブロックの相対位置によって大きく変化します。時間測定に使用した関数の分解能は1マイクロ秒です。ACLありの場合、チェックされるファイルはアクセスACLを5エントリー保持しています。
表: システム再起動後にあるファイルに最初にアクセスするのにかかった時間を、ACLありの場合となしの場合について、マイクロ秒単位で示す
| ACLなし | ACLあり | |
| Ext2 | 9 | 1743 |
| Ext3 | 10 | 3804 |
| ReiserFS | 9 | 6165 |
| XFS-256 | 14 | 7531 |
| XFS-512 | 14 | 14 |
| JFS | 13 | 13 |
512byte(あるいはそれより多い)inodeを持つXFSおよびJFSは、inodeに直接ACLを格納します。したがって、ACLの回収に追加のディスクアクセスは不要です。
……”
要は、LinuxのXFSでACLを利用するのであれば、ファイルシステム作成時にinodeを(デフォルトの256byteではなく)512byte以上確保しないと、ひどい目を見る、と。
以前から”XFSを使うときはinodeを512byte確保すべし”ってのは聞きかじってはいたのですが、それがなぜなのか、当時はさっぱりだったので。その疑問に(具体的なデータつきで)こたえてくれるドキュメントを見つけたので、覚え書き代わりに訳してみました。まぁひどいできだと、自分でも思いますが。
表紙に戻る