NFSの書込み速度 (Ethernet 10GBase)

■テスト環境
NFSサーバおよびNFSクライアント
MB: Supermicro X8DTi
Chipset: INTEL 5520
CPU: Xeon L5530 x2
MEM: 24GB (4GB DDR3-1333 Reg x 6)

インターコネクト
10GBase: NETXEN NXB-10GCX4

OS: CentOS 5.3 x86_64

■環境設定
NFSサーバ
kernelパラメータ ramdisk_size=20971520 で起動し、20GBのramdiskにext3ファイルシステムを構築して /mnt にマウントする。
/etc/exports 設定は以下とする。
/mnt   *(rw,sync,no_root_squash)

NFSクライアント
kernelパラメータ mem=1024m で起動し、OS上のメモリ容量を1GBとする。 (クライアント側のpagecache効果を少なくするため)

■テスト方法
200MBファイルを連続50回書出しをするスクリプトを用意する。

#!/bin/sh
LOOP=50
DIR=/mnt

COUNT=0
while [ $COUNT -lt $LOOP ]
do
dd if=/dev/zero of=$DIR/$COUNT bs=32768 count=6400
let COUNT=COUNT+1
done

このスクリプトをtimeコマンドの引数として実行しreal値から速度を算出する。

■事前テスト
NFSサーバ上でramdiskの書込み速度を計測する。
計測方法は同じスクリプトを使う。
[TABLE=3]
ディスク側の律速がこの値まではないことを前提とする。

■結果
[TABLE=6]

■評価
ネットワーク性能測定ツール iperf では、MTU=1500で6.69Gbps MTU=3000で8.23Gbps MTU=6000で8.48Gbps MTU=8000(設定可能最大値)で8.42Gbps でした。
iperfでの値が高いにもかかわらず、実際の転送速度が175MB/s程度であった。
以前より10GBase EthernetはInfiniband (IPoIB)より実際のデータ転送速度で劣るといった話があったが、今回の検証でそれを裏付ける結果となりました。しかし、これだけで10GBase Ethernetがすべてにおいて劣っているわけではありません。
例えばInfinibandはEthernetではないため、スイッチを使ってEthernet環境と接続することが不可能です。アプリケーションによって10GBase EthernetとInfinibandを使い分けることが重要と思います。

今回はCX4ポートのNICを使ったが、10GBase-CX4のNICはポート単価が低く導入しやすいです。しかし、10GBaseスイッチは未だに高額な商品となっております。
いずれ導入しやすい価格になってくれることを期待したいです。

NFSの書込み速度 (Infiniband SDR/DDR)

■テスト環境
NFSサーバおよびNFSクライアント
MB: Supermicro X8DTi
Chipset: INTEL 5520
CPU: Xeon L5530 x2
MEM: 24GB (4GB DDR3-1333 Reg x 6)

インターコネクト
Infiniband SDR (10GBase): Mellanox MHES18-XTC
Infiniband DDR (20GBase): Mellanox MHGS18-XTC
(IPoIBにてHCAポートにIPアドレスを設定)

OS: CentOS 5.3 x86_64
ホストスタック: Mellanox OFED 1.4

■環境設定
NFSサーバ
kernelパラメータ ramdisk_size=20971520 で起動し、20GBのramdiskにext3ファイルシステムを構築して /mnt にマウントする。
/etc/exports 設定は以下とする。
/mnt   *(rw,sync,no_root_squash)

NFSクライアント
kernelパラメータ mem=1024m で起動し、OS上のメモリ容量を1GBとする。 (クライアント側のpagecache効果を少なくするため)

■テスト方法
200MBファイルを連続50回書出しをするスクリプトを用意する。

#!/bin/sh
LOOP=50
DIR=/mnt

COUNT=0
while [ $COUNT -lt $LOOP ]
do
dd if=/dev/zero of=$DIR/$COUNT bs=32768 count=6400
let COUNT=COUNT+1
done

このスクリプトをtimeコマンドの引数として実行しreal値から速度を算出する。

■事前テスト
NFSサーバ上でramdiskの書込み速度を計測する。
計測方法は同じスクリプトを使う。
[TABLE=3]
ディスク側の律速がこの値まではないことを前提とする。

■結果
[TABLE=5]
IPoIBでのMTUは65520がDefault値

■評価
ネットワーク性能測定ツール iperf では、SDRで7.86Gbps程度 DDRで9.54Gbps程度となっている。
いずれもリモートからのNFS書込みが270MB/s程度となっていることから、CentOS 5.3標準設定での律速の可能性がある。
今回はCentOS 5.3の標準パラメータで比較しているが、さらに調整することで速度向上するかもしれない。

iSCSI Remote Bootによるディスクレスサーバの構築と書込み速度の検証

SAN (Storage Area Network)を簡単に構築できるiSCSIストレージは、仮想化分野の発展とともに注目度が高まってきています。

今回は、iSCSIストレージを使ったディスクレスサーバの構築と簡単な書込み速度の検証を行いました。

構築上で要点となるのは、iSCSI Initiator側のiSCSI HBAとなるNICです。
Intel NICは、ファームウェアを書き換えることでiSCSI HBAとして動作可能となる Intel iSCSI Remote Bootに対応しています。
以下がIntel iSCSI Remote Boot対応NICの一部です。

Intel Gigabit CT Desktop Adapter
Intel PRO/1000 PT Server Adapter
Intel 10 Gigabit CX4 Dual Port Server Adapter

その他の対応NICはこちらを参照してください。

そして、このNICをIntel iSCSI Remote Boot Setup Utilityにてファームウェア書き換えを行います。

以下がファームウェアの設定画面です。


ここでInitiator nameやIP AddressやTarget nameを登録

正常にiSCSI Targetに接続ができるとリモートディスクを認識して、以下のようにマザーボードBIOS上にディスクとして表示されます。


Network: Intel iSCSI Remote B…. が認識している

つまりiSCSI Target側に接続されたリモートディスクをマザーボードBIOS上ではローカルディスクとして認識していることになります。

iSCSI Initiator側の対応OSは以下です。
Microsoft Windows Server 2003 SP1, SP2, R2 x86
Microsoft Windows Server 2003 SP1, SP2, R2 x64
Microsoft Windows Server 2008 x86, SP2, R2
Microsoft Windows Server 2008 x64, SP2, R2
Novell SUSE Linux Enterprise 9 SP3, 10 or later x86
Novell SUSE Linux Enterprise 9 SP3, 10 or later x86_64
Red Hat Enterprise Linux 4 U3 x86
Red Hat Enterprise Linux 4 U3 x86_64
Red Hat Enterprise Linux 5.x x86
Red Hat Enterprise Linux 5.x x86_64

対応OSの詳細についてはIntel iSCSI Remote Boot Setup Utilityのドキュメントを参照します。

今回の構築検証では、CentOS 5.4 x86_64をクライアントOSとしました。
CentOS 5.4は、インストーラにてiSCSI Targetへのインストールが可能です。

■環境
・ストレージサーバ(iSCSI Target)
MB: TYAN Toledo i3210W
Chipset: INTEL 3200
CPU: Intel Core2Quad Q9450
MEM: 4GB (DDR2-800 2GB x 2)

ストレージ部
RAID: Areca ARC-1261ML
RAID HDD: HGST HDS721075KLA330 x 2 (RAID0 1.5TB)

NAS OS: Openfiler 2.3 x86_64

・クライアント(iSCSI Initiator)
MB: Supermicro X8STi
Chipset: INTEL X58
CPU: Intel Core i7 920
MEM: 3GB (1GB DDR3-1333 x 3)

NIC部
Intel PRO/1000 PT Server Adapter

OS: CentOS 5.4 x86_64

■ストレージ速度計測
200MBファイルを連続100回書出しをするスクリプトを用意する。

#!/bin/sh
LOOP=100
DIR=/mnt

COUNT=0
while [ $COUNT -lt $LOOP ]
do
dd if=/dev/zero of=$DIR/$COUNT bs=32768 count=6400
let COUNT=COUNT+1
done

このスクリプトをtimeコマンドの引数として実行しreal値から速度を算出する。

■結果
[TABLE=4]
■評価
1000Base NIC 1本でクライアント1台のみなら1000Baseの帯域は確保されているようです。
これがクライアントが複数台になれば、この帯域をシェアすることになりNIC律速が課題となるでしょう。
ストレージ部のNIC律速を考慮してDualコントローラを搭載したiSCSIストレージも有効なiSCSI Targetとなると思います。
このiSCSI Remote BootはPXE Bootと比較すると構築がより簡単であることがわかります。
ディスクレスクラスタ利用でも十分に対応できると思います。
なお、iSCSI Target側のNAS OSは、Openfiler 2.3以外にもFreeNAS 0.7.1 (5127)も動作しました。

Dualコントローラ対応iSCSIストレージ


POWER MASTER iSCSI E1311 (1000BASE NICモデル)
POWER MASTER iSCSI E1321 (10GBASE NICモデル)


POWER MASTER iSCSI E1291 (1000BASE NICモデル)
POWER MASTER iSCSI E1331 (10GBASE NICモデル)

上記製品は、2台のコントローラと4~8のNICポートにより効果的な負荷分散が可能です。
また、まだ高額であるものの10GBASEスイッチが用意できるのなら、10GBASE NICを搭載したモデルも有効でしょう。

Xeon (Nehalem EP) PCクラスタ 性能評価(姫野ベンチ)

計算サーバ 10台
CPU: Xeon L5530 (低電圧版/4 Core/2.40GHz/8MB/QPI5.86GT) x2
MB: Supermicro X8DTi
MEM: DDR3-1333 4GB ECC Reg x 6  Total 24GB
VGA: ELSA GLADIAC GT240 LP (1GB GDDR3/PCIe2.0)
NIC: Mellanox MHGS18-XTC (Infiniband 20Gbps DDR)
OS: CentOS 5.3 x86_64

MPI: Intel MPI 4.0
Compiler: Intel Compiler 11.1
Benchmark: himenoBMTxp
Size: XL

20CPU 80core: 129328MFLOPS