web-dev-qa-db-ja.com

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

2つのサーバーノード間にdrbdリソースをセットアップしました。2つのサーバーノード間で同期テストを実行すると、すべてが正しく機能します。 (drbd、xen、heartbeatを使用してHAクラスターを作成したい)

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

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

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

dRBDとXENの設定ファイル...

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

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

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

XEN

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
SaberTooth

さて、これを解決するために髪を抜いたように見えて、私の質問に答えて、他の誰かが髪を引っ張る手間を省きましょう:)

解決:

遊んだ後、グーグルや再パーティションなどをたっぷり使って…チャームのようなセットアップになりました。

これを行うにはおそらくもっと速い方法がありますが、私はこの答えを過度に複雑にするつもりはありません

私はこのようなパーティションで標準インストールを行いました(私は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" ]
}

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

5
SaberTooth

したがって、ここで重要な2つのポイントがあります。

  1. DomUが表示するデバイスには、パーティションではなくディスク全体を使用することをお勧めします
  2. DomU(xvd *)内で標準デバイス名を使用する

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

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

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

0
Nils