xenでdomainUからdomain0に繋がってる物理HDDを直接マウント

仮想マシン上でファイルサーバーを動かしたくて、
e-SATAで繋がってる6TBの外付けディスクを
domainUからマウントしたい。
disk.imgみたいな6TBの仮想ディスク用の
ファイルを外付けディスクに
作ってそれをdomainUに割り当てるのがxen的な
解決方法だと思うんだけど、それだと
今までのファイルを全部仮想ディスクにコピーしないと
いけないし、なんかあった時にデータ取り出すのが面倒そう。
domain0でnfsとかsamba動かしてdomainUで読むことも
考えたけど、ベンチ取ったらスピード糞遅くなるし
そもそもdomain0でサーバーあんま動かしたくない

てことで、domainUから直接HDDをマウントしたい!
PCIパススルーとか使うと出来そうだったけど
カーネルコンパイルとかしないといけないらしく
あんまやりたくない。

domain0で以下のコマンド打つと、物理HDDをそのまま
domainUに割り当てられました。

sudo xm block-attach 1 phy:/dev/sdb1 /dev/xvdc w

書き方は

sudo xm block-attach 仮想マシンのID phy:マウントしたいデバイス名 マウント先のデバイス名 モード
  • 仮想マシンのID
    • xm listで調べる
  • マウントしたいデバイス
    • fdisk -lとかで見た時のデバイスの名前
  • マウント先のデバイス
    • xvd*の形式で*は適当なアルファベット1文字を入れる。
    • xvdc1とかやりたかったけど、それだとdomainUに認識されなかった。
  • モード
    • r
      • 読み込み専用
    • w
      • 読み書きおk

割り当てた仮想マシンに入って↓みたいにすると
仮想マシン上から物理HDDをマウント出来る

sudo mount -t ${ファイルシステム名} /dev/xvdc

今までは仮想化しないでファイル鯖立ててたんだけどその時とほとんど
変わらない速度が出てる。仮想マシン上でsamba立てて
windowsで読み書き両方試したけど40〜50MB/sくらい
あとはwindowsをdomainUで動かしたいなぁ・・・