今回は,Nutanix CEの検証を一休みして,前回のNutanix Community Edition(ce-2015.06.08-beta)上にVMをセットアップまでに利用したハードウェアやネットワーク環境についてです。
検証に利用したハードウェア環境
Nutanix CEを試すにあたって利用したハードウェア環境について少し書いておきます。
Nutanix Community Meetup #1や#2で紹介された動作要件は,かなりざっくり(本家のサイトでも同様の記載)とした印象でした。
Nutanix Community Meetup #1/Nutanix Community Editionのご紹介より抜粋
しかし,実際に動作させてみると最小システム要件に掲載された条件に適合しているされていたものでも,構成によって問題が生じたケースもあったことから,「Nutanix Community Edition(ce-2015.06.08-beta)」に関連する一連の投稿の中で実際に使用して動作した各ハードウェア要素ごとのサマリと言うか所感をざっくり書いておきます。
- CPU
この検証では,敢えてCPUの世代が異なる機種(Xeon 5500/Xeon 5600/Xeon E3-1200/Xeon E5-2600)を選んでいます。当初,異なる世代間でのLive Migrationはどうなるのかを期待して構成しましたが,VMware等と異なりKVMの場合は特にその辺気にする必要がなかったのであまり意味なかったかもです。
HyperThreadingでの論理CPU数ではなく物理のコア数が4以上が要件であるため,CeleronやPentium G搭載の各種鼻毛鯖に厳しい条件ですが,デスクトップ向けのCore i5及びCore i7は基本4コアCPUなので,一部のVT-d,VT-x非対応モデルを除けば試しやすいのではないでしょうか。
- メモリ
最小要件が16GBとのことでしたが本当に最小要件でした。16GBメモリ搭載のノードでは,CVMがメモリを12GB利用してしまうため,User VMが何も動作していない状態で既にそのサーバーのメモリ使用量が85%に達しています。また,重複排除の機能をフルに利用するには32GB以上必要等の要件もあり,最小要件では,実際にUser VMを何台か動作させるには正直心許ない容量です。
推奨要件は調べていませんが,商用のアプライアンス製品を見ると,ローエンドモデルで64GB~,ミッドレンジ及びハイエンドでで128GB~となっており,メモリを大量に搭載されていることを前提しているようです。
- Storage SubSystem
今回のハマりどころでした。DELL,Fujitsu,IBM,NEC,SuperMicro等のベンダーは,基本的にLSIのRAIDコントローラーを搭載したモデルがほとんどでHPだけがAdaptecのRAIDコントローラーを搭載しています。要件にLSIのRAIDコントローラーとあったので,必然的にProLiant以外のサーバを選択しましたが,ce-2015.06.08-betaでは,不具合によりSSDを認識しない場合があり,インストールに失敗する問題に苦しみました。
HPのSmart Array B110iのようにICH 10Rをストレージコントローラーにしたような場合は,すんなり問題なく動いているので,コンシューマーPC等のICHコントローラーで試した方々には発生しない問題だったのではないでしょうか。
- SSD/HDD
SATAのHDD,SSD,SASのHDD,SSDともに問題が出たものはありません。Storage SubSystemのレイヤーでの問題はありましたが,HDDとSSDと言ったストレージデバイスそのものについて,Nutanix CEの要件に合わないようなものはないと思います(ただし,Fusion-ioのioDrive,ioMemoryのようなSSDデバイスは,このバージョンのNutanix CEには対応していませんでした)。
いわゆるSSHDと呼ばれるストレージデバイスはどうなのかなーと興味がありますが,やはりHDD扱いなのでしょうか。なおPCIe SSD,NVMeはサポートされていませんでした。
- NIC
NICは,想像以上に動いた印象で,結果的にIntel,Broadcom,Emulex,Mellanoxが動作しています。実際には,ベンダーレベルではなくNICに搭載されているチップレベルで対応・非対応が決定されると思われるため,上記のベンダーNICがすべて動作するか否かは不明です。
試していませんが,Realtek RTLあたりはどうなんでしょうか。最近は自作用マザーボードでもIntelコントローラーが増えている印象を受けますが,Realtek RTL8xシリーズが動作すれば,かなり検証の敷居が下がる(メモリ容量除く)のではないでしょうか。
検証で主に使用し動作したハードウェア
CPUとメモリについては,環境や構成によって動作する,しないの違いは出ないと思うので詳細な記載を割愛しています。
HP ProLiant ML110 G7
要件 | 使用機材 | 備考 |
---|---|---|
SSD | Samsung 850 EVO 256GB SATA | 普通のコンシューマーSSDを選択してみました。Nutanix Next Forumを見ても利用人口が多いです。 |
HDD | Seagate ST2000DM001 2TB SATA | 他のサーバーはHDDが2台以上で要件をクリアしていたので,こちらは1台でクリアできる構成にしました。 |
Storage SubSystem | SmartArray B110i(ICH 10R) | 当初,MegaRAIDを搭載していましたが問題が生じたため,オンボードのSmartArrayにしました。 |
NIC | Intel X520-DA2 DualPort 10GbE | Intel 82599EN搭載の10GbE NICです。上記の82599ESも問題無く使えているので82599系列は大丈夫そうです。 |
DELL PowerEdge R610
要件 | 使用機材 | 備考 |
---|---|---|
SSD | Seagate Pulsar.2 400GB SAS | MegaRAIDがSSDとHDDを混在させるとSSDを認識できない問題に当たっためSASのSSDにするハメに。 |
HDD | Toshiba MK3001GRRB 300GB SAS | マウンタの取り付けが面倒だったので,Fujitsuのマウンタのまま挿したら動いたのでびっくり。 |
Storage SubSystem | PERC H700 SAS/SATA RAID | FujitsuのD2616と同様にLSI 2108なMegaRAID OEMで,こちらもSASに統一しないと動作しませんでした。 |
NIC | Emulex OCe11102 DualPort 10GbE | 聞いていたHCL上には全然登場してませんでしたが,試したところちゃんと動作しました。 |
DELL PowerEdge R710
要件 | 使用機材 | 備考 |
---|---|---|
SSD | Samsung 850 EVO 256GB SATA | 普通のコンシューマーSSDを選択してみました。Nutanix Next Forumを見ても利用人口が多いです。 |
HDD | Seagate Savvio 10K.3 300GB SAS | HDDは500GB以上が要件ですが,300GBを2個載せても500GBをクリアと判定してくれます。 |
Storage SubSystem | AOC-S2308L-L8i | SuperMicro型番のLSI 2308搭載SAS HBAで,HBAは,SAS,SATA,SSD,HDD混在でも問題ありませんでした。 |
NIC | Mellanox MNPH29C-XTR DualPort 10GbE | 聞いていたHCL上には全然登場してませんでしたが,試したところちゃんと動作しました。 |
Fujitsu PRIMERGY RX200 S7
要件 | 使用機材 | 備考 |
---|---|---|
SSD | Seagate Pulsar.2 400GB SAS | MegaRAIDがSSDとHDDを混在させるとSSDを認識できない問題に当たっためSASのSSDにするハメに。 |
SSD | Samsung XP941 512GB M.2 SSD | NVMeではなくAHCIで動作するので,認識するかな?と試したところ普通に認識してくれました。 |
HDD | Toshiba MK3001GRRB 300GB SAS | HDDは500GB以上が要件ですが,300GBを2個載せても500GBをクリアと判定してくれます。 |
Storage SubSystem | Fujitsu D2616 SAS/SATA RAID | LSI 2108搭載のLSI MegaRAIDですが,HBAは問題ないですが,RAIDコントローラーは厳しい感じです。 |
NIC | Fujitsu PYBLA242L DualPort 10GbE | Intel 82599ES搭載の10GbE NICです。82599ESなので,IntelのX520-SR2相当になります。 |
その他,検証で動作したハードウェア
Broadcom NetXtreme II BCM5709
Nutanix community Meetup時点では,Intel NICのみ対応とのことでしたが,Nutanix Community Edition(ce-2015.06.08-beta)のバージョンでは,Intel NICだけでなくBroadcomのNICにも対応したようで,PowerEdge R610やR710等のマシンにオンボードのBroadcom BCM5709でも問題なく認識していました。
検証で動作しなかったハードウェア
逆に検証で動作しなかったハードウェアはそれほど多くはありませんが,以下のハードウェアが動作しませんでした。
× ioDrive Duo 640GB及びioDrive II 1.2TB
SSDとしてioDrive使えたりするかなーと試してみました。ドライバー及びVSLのインストールを考えるとムリかなーと思いながら試してみましたがやはりダメでした。
なお,ioDriveとは異なりますが,PCIe絡みのSSD繋がり言うことでIntelの750シリーズ等のNVMe接続のSSDについてもNutanix Community Edition(ce-2015.06.08-beta)のバージョンでは対応してないようです。ただし,こちらは将来的に対応することを検討しているようです。
NVMe drives are not supported today but it's something we're actively looking at.
参考:Intel NVMe support?(要Nutanix CE Discussion Forumログイン)
× HP NC522SFP
ちょっと古めで,Netxen NX3031チップ搭載のQlogic OEM,HPの10GbE NIC,NC522 SFPは,lspci上では見えていましたが,残念ながら認識せず。Emulexより動作する可能性があるかな?と思いましたが結果は逆になりました。
× HP Smart Array P410
Nutanix CE検証のオープニングは,HCLに掲載されていないSmart Array P410を載せたML110 G7で始めていますが,ディスクが見えずインストールすることができませんでした。
検証に利用した環境のシステム構成やネットワーク構成
システム構成図
相当,ざっくりとした絵になっていますが,検証に利用した環境のシステム構成です。
特に捻ったところや特殊なものはないと思います。10GbEスイッチの上にルーターが接続されていているほかは,同一のネットワーク内にDHCPサーバーとして動作しているWindows Server 2012 R2がいます。
VMへのDHCP払い出しのみを考えるとNutanix CE側でENABLE IP ADDRESS MANAGEMENTを有効にしてIP ADDRESS POOLSを設定すれば済む話しですが,なぜ,わざわざWindows ServerにDHCP機能を持たせて配置したかの理由は,Windows ServerのWDS機能でAcropolis上のPXEでWindows系OSをインストールしようとしていたためでした(結局,WDSでのWindowsインストールはできませんでしたが…)。
ネットワーク構成図
こちらもざっくりとしたネットワーク構成図です。
Acropolis(≒KVM)上のネットワークにbr0とvirbr0しか書いていませんが,実際にはCVMやUser VMと繋がっているTapがいます。また,以下の図は一部正確でないところ(192.168.5.2/25が設定されていて,セカンダリIPに192.168.5.254/24が設定されている)がありますが,便宜上そう描いてます。
Acropolis Hypervisor,CVM,User VMのNIC等の設定値
実際のAcropolis(≒KVM)のifconfigとCVMのifconfigをそれぞれ見てみます。また,User VMであるNutanix CEのAcropolis上にインストールしたUbuntu 14.04のifconfigも併せて載せておきます。
Acropolis
ifconfig時,Acropolis上では,4台のVMが動作しているため,tapが多数並んでいてちょっと長いです。virbr0を見ると,192.168.5.1が設定されています。こちらは,CVMとNutanix CEが内部的な管理用の通信を行うためのネットワークで,192.168.5.0/24を固定で利用するようです。これがあるため,Nutanix CEを動作させる環境は,192.168.5.0/24のネットワークまたは192.168.5.0/24のネットワークに隣接してはいけないとのことです。
[root@NTNX-fafb6ede-A ~]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.100 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::a6ba:dbff:fe34:1dd1 prefixlen 64 scopeid 0x20<link>
ether a4:ba:db:34:1d:d1 txqueuelen 0 (Ethernet)
RX packets 12021001 bytes 41862519954 (38.9 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11399148 bytes 44453231799 (41.4 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
em1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether a4:ba:db:34:1d:d1 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
em2: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether a4:ba:db:34:1d:d3 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
em3: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether a4:ba:db:34:1d:d5 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
em4: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether a4:ba:db:34:1d:d7 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 592073 bytes 215145423 (205.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 592073 bytes 215145423 (205.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
p3p1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::202:c9ff:fe06:5fac prefixlen 64 scopeid 0x20<link>
ether 00:02:c9:06:5f:ac txqueuelen 1000 (Ethernet)
RX packets 119426511 bytes 84866832946 (79.0 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 121350693 bytes 84733657157 (78.9 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
p3p2: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 00:02:c9:06:5f:ad txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
tap0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::c04f:d6ff:fe0f:1bef prefixlen 64 scopeid 0x20<link>
ether c2:4f:d6:0f:1b:ef txqueuelen 500 (Ethernet)
RX packets 688551 bytes 32373320 (30.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 691371 bytes 1031191661 (983.4 MiB)
TX errors 0 dropped 95824 overruns 0 carrier 0 collisions 0
tap1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::107f:39ff:fedd:46d5 prefixlen 64 scopeid 0x20<link>
ether 12:7f:39:dd:46:d5 txqueuelen 500 (Ethernet)
RX packets 232646 bytes 16846203 (16.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 499454 bytes 639332474 (609.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
tap2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::9cec:eff:fe0c:f915 prefixlen 64 scopeid 0x20<link>
ether 9e:ec:0e:0c:f9:15 txqueuelen 500 (Ethernet)
RX packets 3403 bytes 462139 (451.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 43840 bytes 10755686 (10.2 MiB)
TX errors 0 dropped 38011 overruns 0 carrier 0 collisions 0
tap3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::5cdb:29ff:fe62:78f2 prefixlen 64 scopeid 0x20<link>
ether 5e:db:29:62:78:f2 txqueuelen 500 (Ethernet)
RX packets 18656 bytes 8324199 (7.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 89955 bytes 29706507 (28.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.5.1 netmask 255.255.255.0 broadcast 192.168.5.255
ether 52:54:00:55:0f:1c txqueuelen 0 (Ethernet)
RX packets 1813343 bytes 299263012 (285.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2166692 bytes 1715837170 (1.5 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::fc54:ff:fe52:abd4 prefixlen 64 scopeid 0x20<link>
ether fe:54:00:52:ab:d4 txqueuelen 500 (Ethernet)
RX packets 84878502 bytes 121084810160 (112.7 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 80593379 bytes 120751870865 (112.4 GiB)
TX errors 0 dropped 1091 overruns 0 carrier 0 collisions 0
vnet1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::fc54:ff:fe23:1e3a prefixlen 64 scopeid 0x20<link>
ether fe:54:00:23:1e:3a txqueuelen 500 (Ethernet)
RX packets 1813343 bytes 324649814 (309.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2166700 bytes 1715837818 (1.5 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@NTNX-fafb6ede-A ~]#
CVM
CVM上のネットワークはシンプルです。CVMはAcropolis(≒KVM)上で動作するVMの1つで,Nutanixの制御を行うための専用の役割を与えられたVMとなるため,Acropolisのbr0(192.168.100.0/24)とだけでなくvirbr0(192.168.5.0/24)とも接続されています。
nutanix@NTNX-fafb6ede-A-CVM:192.168.100.101:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 52:54:00:52:AB:D4
inet addr:192.168.100.101 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::5054:ff:fe52:abd4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:80604758 errors:0 dropped:0 overruns:0 frame:0
TX packets:84890399 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:120756209749 (112.4 GiB) TX bytes:121090893534 (112.7 GiB)
eth1 Link encap:Ethernet HWaddr 52:54:00:23:1E:3A
inet addr:192.168.5.2 Bcast:192.168.5.127 Mask:255.255.255.128
inet6 addr: fe80::5054:ff:fe23:1e3a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2166932 errors:0 dropped:0 overruns:0 frame:0
TX packets:1813531 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1716035999 (1.5 GiB) TX bytes:324682729 (309.6 MiB)
eth1:1 Link encap:Ethernet HWaddr 52:54:00:23:1E:3A
inet addr:192.168.5.254 Bcast:192.168.5.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:67136047 errors:0 dropped:0 overruns:0 frame:0
TX packets:67136047 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:17245938008 (16.0 GiB) TX bytes:17245938008 (16.0 GiB)
User VM(Ubuntu 14.04)
CVMと同様にAcropolis(≒KVM)上で動作するVMの1つとして比較用にUbuntu 14.04のifconfigです。こちらは純粋なUser VMなので,192.168.100.0/24にのみ接続しています。
detteiu@ubuntu1404:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 52:54:00:e2:8b:6d
inet addr:192.168.100.52 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::5054:ff:fee2:8b6d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:67277 errors:0 dropped:0 overruns:0 frame:0
TX packets:12427 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:44476643 (44.4 MB) TX bytes:899226 (899.2 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:84 errors:0 dropped:0 overruns:0 frame:0
TX packets:84 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:7188 (7.1 KB) TX bytes:7188 (7.1 KB)
detteiu@ubuntu1404:~$