Linux で、フォルダ単位で暗号化したいなと思ったときに、encfs を使えば良いんだけど、LUKS 使うと鍵の管理に柔軟性が出るので、どうにか出来ないかというのが発端。
LUSK 自体は dd で適当なサイズのファイル作って loop device として扱えば問題ないんだけど、ファイルシステムのサイズを使用中の容量に応じてフレキシブルかつ自動的に伸縮してもらいたい。
そこで、sparse file を discard (trim) 対応の状態で loop device としてぶら下げられれば良いんじゃね?と思った。
で、やってみると、sparse file にしとけば、とりあえず growable にはなるので、使用中の容量に応じて sparse file が成長する、つまり thin provisioning 的な運用は可能。
ところが、loop device が以下のような状態なので trim を受け付けてくれず、sparse file の shrink が出来ない。
で、loop device をどうにかして discard 対応に出来んのん?って思いググったところ以下のような記事を見つけた。
しかし、うちの環境は Linux 3.2 以降なのにそうならないのでしばらく悩んだ。
LUSK 自体は dd で適当なサイズのファイル作って loop device として扱えば問題ないんだけど、ファイルシステムのサイズを使用中の容量に応じてフレキシブルかつ自動的に伸縮してもらいたい。
そこで、sparse file を discard (trim) 対応の状態で loop device としてぶら下げられれば良いんじゃね?と思った。
で、やってみると、sparse file にしとけば、とりあえず growable にはなるので、使用中の容量に応じて sparse file が成長する、つまり thin provisioning 的な運用は可能。
ところが、loop device が以下のような状態なので trim を受け付けてくれず、sparse file の shrink が出来ない。
$ cat /sys/block/loop0/queue/discard_max_bytes 0
で、loop device をどうにかして discard 対応に出来んのん?って思いググったところ以下のような記事を見つけた。
- codeblog / 2012-02-15: discard, hole-punching, and TRIM
しかし、うちの環境は Linux 3.2 以降なのにそうならないのでしばらく悩んだ。
タグ
コメントをかく