昨日の記事で、
http://d.hatena.ne.jp/ichikaway/20080723/1216806584
ベンチマークしてると書いてたので、その結果を載せます。
テスト環境
サーバ2台をクロスケーブルで直結(Gigabitイーサネット) iScsiサーバ Pentium Dual E2180 2.00GHz 1G Memory SATA 160G HDD(SATA1) 7200rpm NIC(Broadcom) CentOS5.1 linux iScsiサーバプログラム iScsi Enterprise Target http://sourceforge.net/project/showfiles.php?group_id=108475 iScsiクライアント Pentium Dual E2180 2.00GHz 1G Memory SATA 320G HDD(SATA2) 7200rpm NIC(Broadcom) CentOS5.1 linux iScsiクライアントプログラム yum install iscsi-initiator-utils でインストールしたもの
iScsiサーバ、クライアント共に、OSのデータがおいてある領域はSoftware Raid1ミラーリングしてます。
iScsiサーバが提供するディスクスペースは、Raid構成ではなくて、単体のHDD領域を割り当てます。
具体的には、/dev/sda1,/dev/sdb1がRaid1で、/をマウントして、/dev/sdb2のみを/mnt/hogeにマウント(Ext3フォーマット)
今回は、ddコマンドで、2Gのデータを作って、その時間やCPU負荷を計測しました。
dd if=/dev/zero of=output-file bs=1024 count=2000000
iScsi接続せず、単体のサーバでローカルホスト計測(160G HDD 単体ディスク)
データ書き込み速度
2048000000 bytes (2.0 GB) copied, 41.3468 seconds, 49.5 MB/s
CPUの負荷 ユーザ負荷 1%程度、 システム負荷 15〜20%程度
iscsi経由の計測
iscsiクライアントからサーバのディスクに、2Gのファイルを作成
そのCPU負荷を計測
データ書き込み速度
2048000000 bytes (2.0 GB) copied, 42.8023 seconds, 47.8 MB/s
iScsiクライアント側の負荷 ユーザ負荷 1%程度、 システム負荷 20〜25%程度
iScsiサーバ側の負荷 ユーザ負荷 1%程度、 システム負荷 20〜25%程度
iScsi書き込み遅延
iScsiのディスクにiScsiクライアントからデータをddで書き込み、書き込み完了メッセージが出力された時に、Lanケーブルを抜き、iScsi経由の書き込みを停止させる。
その後、iScsiサーバプログラムをとめて、iScsiで提供していたボリュームをローカルボリュームとしてマウントし、書き込まれたデータの容量をチェックした。
1Gのデータをddで書き込んだところ、
iScsiクライアント完了時のファイル容量は、1024000000byteとなり、
iScsiサーバ側のファイル容量は、1019578368byteとなった。
ファイル作成完了後、Lanケーブルを抜くまでに1秒程度かかったので、1〜2秒程度のデータ書き込み遅延がある。
ただし、これはLinuxのカーネルが行っているWriteキャッシュによるものと思う。
プログラム側にはデータ書き込み完了と見せかけて、実際はある程度バッファを貯めてから一気にファイル出力しているため。