墜落日記 - 2010年8月30日の墜落
仮想ホスト構築開始
ストレージサーバの構築で長いこと足踏みしていたので、そろそろ仮想ホストの構築に移行したい。
早いところ仮想ホストを構築して環境を再構築しなければ、現行のサーバを回しっぱなしにしなければならなくなってしまう。
ま~現在のトコロは現行のサーバに故障する予兆は出ていないけど、流石にもう古いし………
ということで、まずは電源配線工事から(爆)
今まで電源配線はあまり計画的に行っていなかったので、UPS に唐突に無線 LAN のアクセスポイントがぶら下がって電源コネクタを一個塞いでしまっていたりと無駄が多い。
消費電力が小さい物と、サーバ仮想化により将来的に無くなってしまうマシンの電源をマルチタップに集約し、UPS 本体の電源コネクタに余裕を作り、仮想ホストとストレージサーバの電源を差す余裕を作る………のに、2時間(爆)
なにげにもう今夜はダメだと力尽きる重労働(汗々)
で、ルータだのファイルサーバだの小型サーバが群がっているラックに、組んだまましばらく眠っていた仮想ホストを設置、KVM スイッチに繋いで LAN ケーブルをぶっさして VMware ESXi をインストール。
インストール自体は全く問題なく進行し、NFS ストレージと iSCSI ストレージを接続、それぞれの環境のインベントリへの登録が完了した。
で、仮想マシンの起動試験………こちらも問題なし。
ちなみに1台目の仮想ホストの名前は『ブリュンヒルデ(brunnhilde)』と命名した。
ワーグナーの『ニーベルングの指輪』に登場するワルキューレ姉妹の長女の名前で、仮想ホストが増えていった場合には同様にワルキューレ姉妹の名前を付けていくつもり。
ただ、ブリュンヒルデ以外の姉妹の順番はイマイチ分からなかったので、語感の好みにより以下の順番で命名する予定。
- ブリュンヒルデ - brunnhilde
- オルトリンデ - ortlinde
- ロスヴァイセ - rossweisse
- ヘルムヴィーゲ - helmwige
- シヴェルトライテ - schwertleite
- ヴァルトラウテ - waltraute
- ジークルーネ - siegrune
- グリムゲルデ - grimgerde
- ゲルヒルデ - gerhilde
とは言っても、実際には増えたとしても精々ロスヴァイセまでだと思うのだけど(汗々)
で、早速ディスク I/O のベンチマーク。
まずは NFS ストレージ。
NFS に限らず VMware ESXi のマルチパス構成ではパケット単位でのラウンドロビンは行わないため、仮想マシンごとにパス構成が分離できたとしても、P2P での帯域拡張は望めない。
従って、1.0Gbps という物理的な上限がある中でのベンチマークとなる。
なお、SAN を構成するネットワークは L2 スイッチ NETGEAR GS108Tv2 を核にして、ストレージの I/O 以外のトラフィックは流れない閉鎖系を構成した。
- NFS Datastore (async), 1.0Gbps, NETGEAR GS108Tv2 (L2), 3ware SAS 9750-8i & CHENBRO CK13601H0C03, Seagate Constellation ES ST32000644NS×4 (RAID-10)
-
Sequential Read : 109.011 MB/s
Sequential Write : 108.661 MB/s
Random Read 512KB : 105.567 MB/s
Random Write 512KB : 104.022 MB/s
Random Read 4KB (QD=1) : 12.020 MB/s [ 2934.6 IOPS]
Random Write 4KB (QD=1) : 11.888 MB/s [ 2902.3 IOPS]
Random Read 4KB (QD=32) : 113.495 MB/s [ 27708.6 IOPS]
Random Write 4KB (QD=32) : 53.425 MB/s [ 13043.1 IOPS]
なんか順当に落ちたなぁ~
仮想スイッチしか通っていない時と比較するのは流石に可哀相だけど、なかなかに切ないスコアになってしまった。
大凡の性能は 7200rpm の SATA ハードディスク 1 本分くらいと言ったところか。
ランダムアクセス性能が SATA ハードディスク 1 本分よりも総じて高いので、実際の体感速度はそれよりも勝るかもしれないけど。
続いて、同環境で iSCSI ストレージ。
こちらは同一の iSCSI ターゲットに2つの IP アドレスでマルチパスを構築しているが、諸事情から仮想スイッチを通ってしまっているため、ちと微妙かも知れぬ。
(PCI パススルーだと Intel 82574L が使えなかった)
- iSCSI Datastore (iSCSI Enterprise Target), 1.0Gbps, NETGEAR GS108Tv2 (L2), 3ware SAS 9750-8i & CHENBRO CK13601H0C03, Seagate Constellation ES ST32000644NS×4 (RAID-10)
-
Sequential Read : 110.808 MB/s
Sequential Write : 108.526 MB/s
Random Read 512KB : 107.386 MB/s
Random Write 512KB : 69.678 MB/s
Random Read 4KB (QD=1) : 11.890 MB/s [ 2902.8 IOPS]
Random Write 4KB (QD=1) : 2.476 MB/s [ 604.6 IOPS]
Random Read 4KB (QD=32) : 115.946 MB/s [ 28307.1 IOPS]
Random Write 4KB (QD=32) : 2.522 MB/s [ 615.7 IOPS]
やはりネットワーク帯域により性能が頭打ちになっているので、ピーク時性能は NFS と大して変わらず。
ただ、NFS は非同期機能により書き込み応答速度が平均して向上しているので、ダイレクトに書き込みを発生させて I/O 待ちを行う iSCSI が書き込みで平均して劣っている模様。
むむむ、これは微妙だ。
iSCSI だとマルチパス構成でラウンドロビンなどを利用すればある程度は VMware ESXi 側にマルチパスを任せておけると思う。
しかし NFS ではストレージサーバ側で明示的に複数の IP アドレスで NFS をエクスポートして、仮想ホスト側で NFS ストレージを複数設定する様にでもしない限りはマルチパスが出来ない。
しかも固定パスとなるので、ストレージパスの冗長性能は向上しないし、柔軟性もない。
だが書き込み性能は NFS の方が平均的に上だ。
さて、どうしてくれようか………?
ちなみに、iSCSI ターゲットへ向かうパスが仮想スイッチを通ってしまっている件に関して。
予定では 3ware 9750-8i と同様に PCI パススルーを利用して、4系統ある Intel 82574L の内の2系統をストレージサーバを担う仮想マシンに占有させてしまうつもりだった。
しかし VMware ESXi 上でパススルーして、仮想マシン上の Debian GNU/Linux Squeeze からも PCI デバイスが認識できたにもかかわらず(lspci でも列挙された)、利用できなかった。
ロードされているモジュールをリストアップすると e1000e もあったのでモジュール自体はロードされている様なのだけど、本来出現するべき eth2、eth3 が現れない。
Debian GNU/Linux Squeeze を直接インストールした際にはちゃんと認識していたのだけど、どうにも理由が分からない。
dmesg をから該当する部分を 0b:00.0 をキーに抽出すると、こんな感じで出ていた。
[ 0.398328] pci 0000:0b:00.0: reg 10 32bit mmio: [0xd9e20000-0xd9e3ffff]
[ 0.398517] pci 0000:0b:00.0: reg 18 io port: [0x5000-0x501f]
[ 0.399810] pci 0000:0b:00.0: reg 1c 32bit mmio: [0xd9e04000-0xd9e07fff]
[ 1.418737] e1000e 0000:0b:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
[ 1.418963] 0000:0b:00.0: 0000:0b:00.0: Failed to initialize MSI-X interrupts. Falling back to MSI interrupts.
[ 1.419125] 0000:0b:00.0: 0000:0b:00.0: Failed to initialize MSI interrupts. Falling back to legacy interrupts.
[ 1.522167] e1000e 0000:0b:00.0: PCI INT A disabled
[ 1.527135] e1000e: probe of 0000:0b:00.0 failed with error -2
………すまん、俺には何のことかぜんっぜん、分からん。
取り敢えずハードウェアとしては認識しているのだけど、拡張 MSI でも MSI でも初期化できないから使わない………という意味だろう。
そもそも、MSI (Message Signaled Interrupts) って何だ?
こちらの記事によると割り込み関連の仕組みのようだが?
仮想スイッチを通っていたり VMware ESXi の NIC チーミングの管理下にあったりするとパスの挙動が分かりにくくなるから本音は避けたい。
これはフェイルオーバー順序を明示的に指定して、仮想 NIC と物理 NIC の対応を強制してしまおうか………?
うむ、なかなか上手く行かない物だ。
コメントは投稿されていません。