アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

Xen移行・・・ネットワークでハマる

お久しぶりです。門脇です。

最近、自宅サーバーをXenに統合しました。

旧環境は、Atomマシン + ノートPC + 玄箱 で構成していたので消費電力が低いのは嬉しいですが、性能は若干非力なため、新サーバー構築を決意。
一日中秋葉原をまわり、中古パーツをかき集めてきました。
(余談ですが、結局新サーバーの性能はML115の最低スペック+メモリとHDDを増設したものとほぼ同じとなったので、ぶっちゃけML115買った方がお得だったかもしれません)

Xenの構築自体は簡単で、



sudo apt-get install xen-tools linux-image-2.6.26-1-xen-amd64 xen-linux-system-2.6.26-1-xen-amd64 xen-utils-3.2-1 bridge-utils


あたりをインストールして、リブートしてxenを起動し、基本的な設定をすれば準備完了です。

Domain-Uの作成は


sudo xen-create-image --hostname hogehoge --dir=/var/lib/xend --memory 512Mb --size 2GB --dist lenny --ip 0.0.0.0

さくっとこんな感じで作成できます。
Debianは楽でいいですね。

早速起動します。


sudo xm create /etc/xen/hogehoge -c


実際の移行は、


old_machine# dpkg --get-selections > packages #リストを出力
old_machine# scp packages new_machine:        #リストをコピー
new_machine# dpkg --set-selections < packages #リストを入力
new_machine# apt-get dselect-upgrade          #インストール開始

とかすれば、パッケージをまるまるインストールできます。
その他は、rsyncかければ完成。


移行自体は楽にできましたが、ネットワークでハマりました。

旧構成では、

ルーター(172.16.0.1, 172.16.1.1)
ファイルサーバー(172.16.0.100, 172.16.1.100)
HTTPサーバー(172.16.1.10)
その他PCなど(172.16.0.10-100 DHCP)

になっており、
ルーターは 0x <-> 1x の通信は遮断。
1xと通信するときは、ファイルサーバーをルーターにしてアクセスしていました。

Xen構築後は、将来的には、XenにPPPoEをさせて完全にルーター化させるため、

0x -> 0.1(xen) -> 3.1(ルーター)
1x -> 1.1(xen) -> 3.1(ルーター)

とりあえずこんな構成に。


iptablesとrouteとbrctlを使用して、どうにか設定完了。

・・・がしかし。

外部から1xにsshで接続をして、ps aux など、多量に通信をするとフリーズ・・・。

ちなみに、
0x->1xは正常。
3x->1xは正常。

つまり、ルーター -> xen -> http
時だけ発生する模様。

現象の名前が分からないので、

debian パケット 多量 フリーズ
linux パケット フリーズ
ps aux フリーズ ssh

など、思いつく限りで検索をかけて見たところ、

PMTUD Black Hole

と言う言葉に当たる。

参考: http://www.infraexpert.com/info/5.2adsl.htm

要は、MTUの値が大きすぎると。

試しに、httpマシンにて、


sudo ifconfig eth0 mtu 1000

とすると・・・正常に動いた!

あとは、適当に値を設定して試してみると・・・ 1452 に落ち着く。

原因は調査中です。何か分かったら追加するかもしれません。


もし、一度に多量のパケットを扱う処理をしてフリーズするようなら、「PMTUD Black Hole」と言う言葉を思い出して見てください。なにか分かるかもしれません。