s3fs で du の出力が正しくない (s3fs-1.74)
- 2015年01月13日
- Linux
- AWS, GoogleCode, s3fs
Linux 上で s3fs を使いマウントしたディレクトリで du すると、デタラメな値が表示されます。どうやら、全ファイルについて、使用しているブロックを 1 と数えています。
1 2 3 |
# du logs/2014-12-25-20-17-57-89D045AC4B6883B01 logs/2014-12-25-20-17-57-89D045AC4B6883B0 # ls -l logs/2014-12-25-20-17-57-89D045AC4B6883B0 ---------- 1 root root 4137216 Dec 25 20:17 logs/2014-12-25-20-17-57-89D045AC4B6883B0 |
(パーミッションが奇妙なのは s3fs のオプションによります)
du shows incorrect usage stats #5 で報告されていますが、これは s3fs-1.76 で修正された不具合であり、s3fs-1.74 でのとりあえずの回避策としては du --apparent-size
を使ってみろとのこと。
1 2 |
# du --apparent-size logs/2014-12-25-20-17-57-89D045AC4B6883B0 4041 logs/2014-12-25-20-17-57-89D045AC4B6883B0 |
これならだいたい合っています。
--apparent-size
だと du 本来の使用ブロック数 (st_blocks) ではなく、ファイルの実際のサイズ (st_size) を合算してしまうためかなり差が出る場合もありそうですが、データ量の概算程度であれば同様に使えるかもしれません。
最新の s3fs を使えば問題ないのですが、Google Code にあるs3fs の古い Web サイトでは、1.74 までしかホストされていないので注意が必要です。しかし s3fs プロジェクトは、2013-12-15 に Google Code から GitHub に移転しています。旧サイトにはきちんと書いてあるのですが、見落としやすいです。
- 旧サイト
- https://code.google.com/p/s3fs/wiki/FuseOverAmazon
- 移転先サイト
- https://github.com/s3fs-fuse/s3fs-fuse
参考:
ITエンジニア募集中!
キュアコード株式会社はITエンジニアを募集しております。少人数の職場なので、上流・下流やサーバー・クライアント対応の垣根なく、あなたの強みを活かしながら いろいろなことにチャレンジ可能です。エンジニアとしての未経験の方、経験が少ない方も歓迎しています。
下記よりITエンジニア募集の採用情報をご覧いただけます。