Xen on Debian GNU/Linux 5.0 with NFS root dom0

出典: 2502.net

2009年11月9日 (月) 09:43; WikiSysop (会話 | 投稿記録) による版
(差分) ←前の版 | 最新版を表示 (差分) | 次の版→ (差分)

目次

概要

Debian GNU/Linux 5.0 (lenny) amd64 で diskless boot + NFS root な Xen dom0 環境を作ってみたメモ。

以下の事ができるようになった。

  • Xen dom0 環境 の diskless boot
  • Xen の live migration
  • フツーの手順での Debian package の upgrade (各サーバで apt-get update && apt-get upgrade するだけでちゃんと更新される)

必要なハードウェア

  • NFSサーバ 1台
  • DHCPサーバ 1台
    • NFSサーバと兼用でも可
  • Xen dom0 のサーバ n台 (好きなだけ)
    • PXE boot 可能なネットワークインターフェイスが1つ必要
    • 更にもう1つネットワークインターフェイスが1つ必要(こっちはPXE bootのROMが載ってなくても大丈夫だと思う)
  • これらが接続できるスイッチとかケーブルとか

今時のPCサーバなら、ほとんどがPXE boot可能なEthernetポートを2つ以上載せてると思う。

もし追加でNICを買うなら、テキトーにIntelのヤツを買っておけばきっと大丈夫。


構築

まず、PXEを使ってnetbootできるようにする環境を作る。

DHCP

sudo apt-get install dhcp3-server

dhcpd.confに、以下の設定を適当なところに追加しておく。

filename "pxelinux.0";
next-server 192.168.1.2;  # tftpサーバのIP address
  • 事情により、DHCPサーバだけはetchのdhcp3-serverを使っているが、ISCのdhcpdなら大体どのバージョンでも同じ設定でいけると思う。知らんけど。
  • DHCP/bootpでは、MAC addressでIP addressを固定していない。それは、pxelinuxの設定に書いてある(後述)。各サーバに対する個別の設定は、なるべく集中させたかったので。

TFTP

(追記中)

NFS

NFSサーバ設定

NFSサーバのIPアドレスは固定、 192.168.1.23 とする。

/etc/exports

/export/xen             192.168.1.0/24(rw,fsid=0,insecure,no_subtree_check,async,no_root_squash)
/export/nfsroot         192.168.1.0/24(rw,fsid=0,insecure,no_subtree_check,async,no_root_squash)
/home                   192.168.1.0/24(rw,fsid=0,insecure,no_subtree_check,async,no_root_squash)
/boot                   192.168.1.0/24(rw,fsid=0,insecure,no_subtree_check,async,no_root_squash)

NFSv4使ったら、NFS rootなマシン(今回のdom0になるマシン)が起動できなかった。色々やったんだけど解決できず。まあそのうち使えるようになるだろう。

NFSサーバの冗長化は今後の課題。

NFSクライアント(dom0側)設定

dom0 の /etc/fstab は以下のようにした。

/dev/nfs                        /               nfs     defaults,tcp,nfsvers=3,intr,nolock,auto 0 0
tmpfs                           /tmp            tmpfs   rw,size=128M            0 0
tmpfs                           /var/run        tmpfs   rw,size=128M,mode=755   0 0
tmpfs                           /var/state      tmpfs   rw,size=128M,mode=755   0 0
tmpfs                           /var/lock       tmpfs   rw,size=128M            0 0
tmpfs                           /var/tmp        tmpfs   rw,size=128M            0 0
192.168.1.23:/home              /home           nfs     defaults,tcp,nfsvers=3,intr,nolock,auto 0 0
192.168.1.23:/export/xen        /export/xen     nfs     defaults,tcp,nfsvers=3,intr,nolock,auto 0 0
192.168.1.23:/boot              /domu-boot      nfs     ro,tcp,nfsvers=3,intr,nolock,auto       0 0
/dev/sda1                       none            swap    sw                                      0 0

/var とかは適当でいいと思う。

swapは、ローカルにSATA SSDが接続されている機種だったのでそれを使うことにした。

(追記中)

運用

kernelの更新

NFSサーバのkernel更新
NFSサーバ上で apt-get update && apt-get upgrade して再起動
dom0のkernel更新
dom0上で apt-get update && apt-get upgrade して再起動
domUのkernel更新
NFSサーバ上でapt-get update && apt-get upgrade して再起動 (つまりNFSサーバの/bootのkernelとinitrdを使うことになってる)
ナビゲーション