[Eucalyptus-Users 0490] Re: Xenベースのゲスト内部でiSCSI LUNをアタッチする際の問題

Osamu Habuka habukao @ intellilink.co.jp
2011年 6月 27日 (月) 23:07:32 JST


呼ばれてやっと出てきた羽深です。 f^^;

えーと、実は最近は Eucalyptus + KVM な環境を手元に持っていないため、
記憶(と過去のメモ)を頼りに書きます。

○ Eucalyptus + Xen の場合
インスタンスは
/dev/sda1 → root (EMI)
/dev/sda2 → ephemeral
/dev/sda3 → swap
という構成になっていますが、伊藤さんのメールにもあったように
これは NC 上に root ファイル ephemeral ファイル swap ファイル
があってそれらを /dev/sda としてではなく、別個のデバイスとして
Xen でアタッチしています。ここらへんはインスタンスの libvirt.xml
か gen_libvirt_xml を見て頂いたほうが、言葉で説明するより早い
かもしれません。
〜 gen_libvirt_xml 超手抜き抜粋 〜
<source file='BASEPATH/root'/>
<target dev='sda1'/>
<source file='BASEPATH/ephemeral'/>
<target dev='sda2'/>
<source file='BASEPATH/swap'/>
<target dev='sda3'/>

よって、インスタンスにとっては /dev/sda なんていうデバイスは
認識しておらず、実際に /dev/sda もありませんが、/dev/sda{1,2,3}
という3つのデバイスは認識していますし、存在しています。


○ Eucalyptus + KVM の場合
一方で Eucalyptus + KVM の場合は、インスタンスはやはり
/dev/sda1 → root (EMI)
/dev/sda2 → ephemeral
/dev/sda3 → swap
という構成(だったような気がします)です。
# もしかしたらバージョンによっては ephemeral が無効かも
しかし、こちらの場合はインスタンスが起動する前に parted 経由で
上記のファイルを1つの disk という名前のファイルに結合しています。
# 詳しくは /usr/share/eucalyptus/partition2disk を読んでください。
で、gen_kvm_libvirt_xml では以下のようになっています。
〜 gen_kvm_libvirt_xml 超手抜き抜粋 〜
# virtio 使用時
<source file='BASEPATH/disk'/>
<target dev='vda' bus='virtio'/>
# virtio 未使用時
<source file='BASEPATH/disk'/>
<target dev='sda'/>

よって、インスタンスにとっては /dev/sda 自体がちゃんと存在するし、
それらのパーティションとして上記が認識されます。
# いや、本当に ephemeral のところだけ記憶が怪しいです

ってな感じで、Xen には /dev/sda がないので、何か sd* 系な
デバイス名を使用する場合には /dev/sda からとなりますが、
KVM では virtio 未使用時は /dev/sda は既に使用されている
から /dev/sdb からとなります。
# もちろん virtio 未使用時には /dev/sda から使われますが、
# 今回のような競合状態にはならないですし

で、「何で Xen だけ disk にまとめないの?」と言われると「ハテ?
何ででしょうね?」としか言いようがないんですが、まぁ、今以上に
Xen 版での起動時間を増やしたくなかったんじゃないでしょうか。
# KVM 版のようにスパースファイルを作ればいいような気がしますが…
# きっと Xen に詳しい方が通りすがって教えてくれるんじゃないかと期待

あ、あとちなみに AttachVolume でデバイスを取り付けるときに
引数に /dev/sda を指定しても、明示的にリジェクトしていたハズなので、
EBSボリュームを使う場合は本件に遭遇せずにすみます。
今回の中井さんのような Eucalyptus の管理外の iSCSI ターゲットを
利用した場合のみ遭遇します。

ついでに、これらを「Eucalyptus のバグ?」と言われてしまうと、
「う〜ん、製造バグじゃないけど、強いて言うなら仕様バグかな?」
って感じですが、どっちかっていうと単にインスタンスが外部ストレージ
を直接掴みに行くことを考慮していないだけのような気がします。
まぁ、「それはそれでどうよ?」っても思わなくもないですが、
きっと「まぁまぁ、外部ストレージを直接使う前に、ここはひとつ
ちょいとEBSボリュームでもどうです?」と言っているのかもしれません。
# あぁ、段々弁護が苦しくなってくるので余計なことは言うのやめます X-(

ってな感じで。

(snip)

-- 
+-                                               -+
| Osamu Habuka                                    |
  Expert
  Open Source Business Unit
  Solution Business Division
  NTT Data Intellilink Corp.
  
  E-mail: habukao @ intellilink.co.jp
  Address: Pacific Marks Tsukishima, 1-15-7,
       Tsukishima, Chuo-ku, Tokyo 104-0052, Japan
| Tel: +81-3-5843-6810       Fax: +81-3-5843-6811 |
+-                                               -+



Eucalyptus-Users メーリングリストの案内