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田くんにおしえてあげなくちゃ。

Thursday, February 10, 2011

いけない Live Migration

今日、知り合いと飲んでいて、以下のような話を聞いた。(やや意訳)
「共有ストレージを使わずに Live Migration していると、VMのディスクサイズがでかくなると(20Gとか) Live Migration の処理が途中でとまっちゃう。なんで?」
それって、そもそも、VMのディスクイメージを共有ストレージにおかなきゃ壊れちゃうしだめぢゃん…というのはおいておいて、不思議だったのは、Live Migration の処理自体が止まるという話。
なんでだろう?
ちなみに、仮想化層は Xen だったとのこと。バージョンは不明だが、時期からするとおそらくRHEL5のU0とかの初期版だと思われる。出したつもりのI/Oがすっぽ抜けた…のなら、domUでエラーになるかI/O無限待ちじゃねーの?とか、つらつら考えたのだが、まあ酒の席の話だったし忘れることにしよう。

どこにポストするか

しかし、日本語でものを書き散らすスペースを作ったはいいけれど、
書きたい内容的には本質的に英語で書くべき内容が多いので、はたしてここと英語用のスペースのどちらに書き散らすべきか、それが問題だなぁ。どっちかに書いてリンクってのは事情により望ましくないしなぁ。悩ましい。つーか、そもそもそんな事情があるのが問題なのか。履歴書書くかねぇ…

初回ポスト

今日は某OSSのユーザ会の幹事会に出席し、そのあと飲んで帰ってきたのだった。
職場では年度末のすさんだ空気で疲れた中、めちゃくちゃ楽しかった。:)
しかも、出席者の一人と3年前(だったかな?)にNew Yorkで同じホテルに宿泊して同じイベントに出席して同じ箱に興味をひかれる…なんていうニアミスしていたことが発覚したりとか。