2014年7月7日月曜日

XFSv5 はkernel3.15 + xfs_progs 3.2.0以上で対応

[ANNOUNCE] xfsprogs: v3.2.0 released!
http://article.gmane.org/gmane.comp.file-systems.xfs.general/62552

きっかけはこのMLのあるスレッドから。
[samba-jp:22289] Re: ディストリビューション選択とファイルサーバー運営形態

XATTR_SIZE_MAXが64kと定義されていて構造体の大きさがまぁそんな感じなので数千個かなぁとざっくり。

小田切さんが調べてくださって5千個以上設定できました。とのこと

出来るはずだ!で思い込まずにもう一歩確認作業をするっていうのはホントに大事ですね。
SambaのMLでファイルシステムの話になっちまったぜ。

調べたメモ
------------------
xfs: increase number of ACL entries for V5 superblocks
http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=0a8aa1939777dd114479677f0044652c1fd72398
% git describe --contains 0a8aa1
v3.10-rc6~6^2~4

Ubuntu14.04 Desktop(64bit)
% uname -r
3.13.0-30-generic
dd if=/dev/zero of=xfs.box bs=1M count=512
mkfs.xfs xfs.box
xfs_db> version
versionnum [0xb4b4+0xa] =
V4,ATTR,NLINK,ALIGN,DIRV2,LOGV2,EXTFLG,MOREBITS,ATTR2,LAZYSBCOUNT

#define XFS_ACL_MAX_ENTRIES(mp)はv5かジャッジしていて、それ以外だったらば25個、つまり従来通りのエントリー数です。
(v5とはXFSの内部バージョンのことです)

3.2.0以上でmkfs.xfs -m crc=1とすればv5になる。ソースにはそう書いてあるんだ。




追記(2014/07/09):

http://linuxjm.sourceforge.jp/html/GNU_coreutils/man1/truncate.1.html
core-utilsに入ってるコマンドですねー。busyboxには入っていません。

追記(2014/07/10):

スパースファイルの方がいいよ。というTLをキャッチした。
確かゼロ埋めされているように見えたはずなのでスーパブロック(4k)を読んで爆死するとかは無さそう。

% dd if=/dev/zero of=box.img bs=1G seek=10 count=0
0+0 レコード入力
0+0 レコード出力
0 バイト (0 B) コピーされました、 0.000259997 秒、 0.0 kB/秒
% ls -lh box.img
-rw-rw-r-- 1 nekomatu nekomatu 10G 7月 10 08:13 box.img

ところで、スパースファイル作るならシェルからアロケーションしたファイル作りたくね?となるものである。
そんで、調べたらfallocate(1)コマンドが普通にあった。util-linuxに入ってる模様
% fallocate -l 10G box.img
% ls -lh box.img
-rw-r--r-- 1 nekomatu nekomatu 10G 7月 10 08:18 box.img
というわけでちょっと試すならfallocateを使っていきたいと思う。busyboxには入っていません。(オチ

0 件のコメント:

コメントを投稿