PCクラスタ」カテゴリーアーカイブ

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

NFSの書込み速度 (Ethernet 1000Base)

NFSは、Linuxでは標準的な共有ファイルシステムとなっています。
今回から数回に渡り、インターコネクトがNFSのパフォーマンスにどう影響が出るのか検証することにします。

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

インターコネクト
1000Base: オンボード (Intel 82576)

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=2]

■評価
1000Base Ethernetは、ネットワーク性能測定ツール iperf では940Mbps程度となりbyteでは117.5MB/sとなる。
1000Base Ethernetでは、今回の結果は妥当と思われます。
次回は、IPoIB (infiniband) でテストをする予定です。

Infiniband の優位性

InfinibandがEthernetと比べてパフォーマンス向上には大変有利であることは以前の検証結果からも言えることです。
今回は、ホスト数が増えた場合にどの程度のシステムプロセス値の差が出るかを検証することにしました。

Intel Core i7は、Quad CoreですがIntel Hyper-Threading TechnologyによりOS上からは倍のCPUが認識できます。
今回のテストでは、分割数を多くすることでネットワーク負荷を高くすることを目的とするために、Intel Hyper-Threading Technologyで認識された論理CPUにもジョブを配分することにしました。

■テスト環境
計算ノード 10台
MB: Supermicro X8STi
Chipset: INTEL X58
CPU: Intel Core i7 920
MEM: 12GB (2GB DDR3-1066 x 6)

インターコネクト
1000Base: オンボード (Intel 82574L)
Infiniband: Mellanox MHGS18-XTC (DDR)

ベンチマーク
MPI: openMPI
Compiler: gcc 4.1.2
Benchmark: himenoBMTxp
Size: XL

■テスト方法
N=80で姫野ベンチを実行し、投入ホストにてtopコマンドでシステムプロセス値を比較

■結果
1000Base: 23-25%程度

Infiniband: 0-0.3%程度

評価
1000Base Ethernetでは、おおよそ23%のCPUリソースがシステムプロセスとして消費してしまう。
特に多計算ノードによるMPIな流体計算では、このCPUリソースを計算に使えることができるinfinibandを選択することは必須と感じた。