Friday, February 11, 2011

Linux の loop device

去年くらいから、どこにいってもクラウド!クラウド!…と、騒ぎがおさまらないわけだが、インフラレベルのクラウドを仕事にしていると、どうしても避けて通れないのが仮想化、というかVM。
まあ、個人的には別にVMが必須だとは思わないのだが、それはおいておいて、KVMでもXenでも、VMを使う時にしょっちゅうでてくるのが loop device。

これが、デフォルトだとつくれる loop device (/dev/loopX等)が 8 個ととても少ないので、max_loop なんていうパラメータをよく使う。

これまで、この最大値って 255だと思い込んでいたのだが、別コンテキストで drivers/block/loop.c とか読んでいたら1Mまで行けることが判明。
ま、minor device の数に対応…というわけで、20bit でそらそうだわな…と、今更ながら思ったのだった。

なお、max_loop 以外に max_partを使い、これに 0 以外を指定した場合は、max_part で割った数になるので注意。 

また、指定値ぶんだけ内部管理構造体(struct gendisk)が作られるので、そこも注意のこと。

火曜日に M本くんとかT田くんにおしえてあげなくちゃ。

No comments:

Post a Comment