XEN VM のブロック デバイスとしての DRBD (Centos 5.3)

XEN VM のブロック デバイスとしての DRBD (Centos 5.3)

2 つのサーバー ノード間に drbd リソースを設定しました。2 つのノード間で同期テストを実行すると、すべてが正常に動作します。(drbd、xen、ハートビートを使用して HA クラスターを作成したいです)

ただし、ゲスト オペレーティング システムとして Centos を使用して XEN VM を作成しようとすると、インストール時にパーティション分割画面まで進むことができますが、パーティション分割タイプを選択すると、次の画面で次のエラーが表示されます。

「エラーが発生しました - 新しいファイル システムを作成するための有効なデバイスが見つかりませんでした。この問題の原因についてはハードウェアを確認してください。」

このような設定を作成するのは初めてで、Google で検索してもあまり役に立ちません...

DRBD と XEN の設定ファイルです。

DRBD (関連するセクションのみ)

xennode0 上 { デバイス /dev/drbd0; ディスク /dev/sda5; アドレス XXXX:7788; フレキシブルメタディスク 内部; }

xennode1 上 { デバイス /dev/drbd0; ディスク /dev/sda5; アドレス XXXX:7788; メタディスク 内部; }

ゼーン

kernel = "/boot/xeninstall/vmlinuz" ramdisk = "/boot/xeninstall/initrd.img" extra = "text" name = "VM" maxmem = 3000 memory = 3000 vcpus = 4 on_poweroff = "destroy" on_reboot = "restart" on_crash = "restart" vfb = [ ] disk = [ "phy:/dev/drbd0,sda1,w", "tap:aio:/srv/xen/xenswap.img,sda2,w" ] vif = [ "mac=00:16:3e:11:67:ae,bridge=xenbr0" ] root = "/dev/sda1 ro"

前もって感謝します!

答え1

さて、私がこの問題を解決するのに苦労したので、私の質問に答えて、他の人が苦労するのを防いであげましょう :)

解決:

いろいろ試したり、グーグルで検索したり、パーティションを再設定したりした後、うまく機能するセットアップにたどり着きました。

おそらくもっと速い方法があるだろうが、この答えを複雑にしすぎるつもりはない。

私は次のようなパーティションで標準インストールを実行しました (500g のハード ドライブがあります)。

/boot 100mb 
/swap 4gb 
/     40gb 

ディスク領域の残りはパーティション化されていない領域として残されます。

次に、次の手順に従って、/dev/sda4 というプライマリ パーティションを作成しました。

~: fdisk /dev/sda
~: (fdisk shell) p4   (for primary partition # 4)
~: (fdisk shell) t    (hit t and enter to edit the partition type)
~: (fdisk shell) 08e  (Linux LVM)

新しいパーティションが有効になるようにサーバーを再起動します。

次の手順で論理ボリュームを作成します。

~: pvcreate /dev/sda4
~: vgcreate xenvg -s 4M /dev/sda4    # (xenvg is the name of my virtual group, you can rename it)
~: lvcreate -L400G -n xenroot xenvg  # (xenroot is going to be my drbd  resource and root partition for my DomU)
~: lvcreate -L4G  -n xenswap xenvg   # (xenswap is my swap file for my DomU)

正しいパーティションが作成されたので、次の設定ファイルディレクティブ(drbd.conf)を使用してDRBDをインストールできます。

ここでは 2 つの重要な指示を表示するだけです...

{
device  /dev/drbd0;
disk    /dev/xenvg/xenroot;
}

XEN VM 構成ファイルは次のようになります (繰り返しますが、重要な部分だけです)

{
disk = [ "drbd:xenvm,xvda,w","phy:xenvg/xenswap,xvdb,w" ]
}

これが誰かの役に立つことを願います...

答え2

ここで重要な点は 2 つあります。

  1. DomUが認識するデバイスには、パーティションではなくディスク全体を使用する方が良いでしょう。
  2. DomU 内で標準デバイス名を使用する (xvd*)

私は最新の SLES SP3 カーネル パッチで後者に遭遇しました。それまでは、DomU 内でデバイス名として「sda」を使用していました。

カーネル パッチの適用中に、準仮想化 DomUs がハングアップしてしまいました。パッチ プロセスの strace で、何かが sda を物理ディスクのようにアクセスしようとしていることがわかりました。sda を xvda に変更した後は、問題はなくなりました。

CentOS 4 を準仮想化 DomU として使用した場合も、「sda」を使用するのは非常に困難でした。そのデバイスに対して scsi ドライバーではなく、代わりに xenblock ドライバーを使用するようにシステムを説得する必要がありました。基本的に同じ問題です。

関連情報