« Domain0に割り当てるCPU数に関して | Main | 特許法大幅改正 »

2009.01.04

XenのDomainUのディスク領域にDomain0からアクセスする

 仮想ハードディスクイメージファイルをDomainUで利用している場合に、Domain0から直接(DomainUのファイルシステムに)アクセスする方法はいろいろと見受けられますが、パーティション丸ごとをDomainUに割り当てている場合の方法がどうにも見つからない。
 試しに、

mount -t ext3 /dev/sda9 /mnt/domu

なんて感じで直接マウントしようとしても(/dev/sda9内にはDomainUにおいてはパーティションは1つしか作成していません)、
mount: wrong fs type, bad option, bad superblock on /dev/sda9,
      missing codepage or helper program, or other error
      In some cases useful info is found in syslog - try
      dmesg | tail or so

というメッセージがマウントできず。

 ダメ元で、
Xenの仮想マシンのハードディスクとして使用しているイメージファイルのマウント
ゲストOSイメージファイルのマウント
Dom0からDomUのイメージファイルをディスクデバイスとして扱う
[users 6724] Re: HDD のイメージファイルの mount(Xen のイメージファイル )
を参考に、「イメージファイルを指定」している部分を、「/dev/sda9」のようにパーティションを直接指定してみて実行。

・・・問題なく、アクセスできるようになりました。注意すべき点は、オフセット値の計算を行うところでしょうか。

fdisk -l -u /dev/loop0
の結果の中の、
Disk /dev/loop0: 40.7 GB, 40797356544 bytes
255 heads, 63 sectors/track, 4959 cylinders, total 79682337 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x00021432

      Device Boot      Start          End       Blocks    Id   System
/dev/loop0p1   *       16065     79666334    39825135   83   Linux


UnitsとマウントしたいパーティションのStartの値を乗じたもの(上記の場合、512×16065=8225280)をオフセット値として指定することになります(計算方法そのものはイメージファイルを使用した場合と同様)。

 ただ、気になるのは、インストール手順の資料などによると、パーティションを作成し、まずDomain0でそのパーティションをマウントしてOSのインストールを行う方法(第4回●Xen構築方法(その3:サーバー用ゲストOS構築) など)もあるっぽいことなんですよね。Xen徹底入門においても、「3.3 パーティションを単体でDomain-Uから使用する」のところの記述はそれっぽいのですが・・・。
 VirtualMachineManagerを用いてGUI環境から仮想マシンを追加した場合と、コマンドで仮想マシンを追加した場合とでまた挙動が違ってくるんですかね??


【補足】  稼働中のDomainUのディスクをマウントした場合、ファイルシステムに影響が出うるのかどうかは不明です。以下、試してみた範囲でのメモですが、必ずしも全ての環境で同じ挙動を示すとは限りません。

1.DomainUが稼働中にDomainU用のパーティションをDomain0側にマウント。DomainU側でファイルを追加。
 ⇒追加されたファイルはDomain0側では認識されない場合あり(というか、認識されないことがほとんど?)。ls -lで表示しても、追加されたファイルはリストに上がってきませんでした。

2.上記の状態で、Domain0側からファイルを追加(touchで空ファイルを作成)。
 ⇒DomainU側では認識されず。また、DomainUを再起動した場合、前回DomainUで追加されたファイルは行方不明になると同時に、Domain0側から追加したファイルも正しく表示できない状態に・・・というか、そのままでは削除すらできない状態に。

 以上のことから推測すると、稼働中の仮想マシンのパーティションをマウントすることは避けた方が無難ではないかと思われます(readonlyでマウントした場合、おそらく2番目のような現象が発生することはないと思いますが、それでも追加されたファイルが認識されない状態では使い物にならないのでは)。

 結果として、DomainUを稼働させた状態においてファイルのコピーを行うだけであればscpを、ファイルの存在チェックや書込等も行うのであればnfsあるいはsshfsあたりを使うのが無難?(ただ、nfsの場合、Xenでdom0とdomUの間でNFSを使うとフリーズする問題 という現象も発生するようですが・・・)

|

« Domain0に割り当てるCPU数に関して | Main | 特許法大幅改正 »

Linux」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/43621766

Listed below are links to weblogs that reference XenのDomainUのディスク領域にDomain0からアクセスする:

« Domain0に割り当てるCPU数に関して | Main | 特許法大幅改正 »