2009年12月 のアーカイブ

動作確認用のFreeNAS 0.7(4955)版をアップしました

2009年12月30日 水曜日

更新>FreeNAS 0.7.1.4957 + istgt 2010/01/05版

今回の版にはistgt-20091225が搭載されていますが、
すでに本家SVNr4954で搭載されていますのでnightly buildでも
すぐにおいつくでしょう。(素早い対応に感謝!)
なお、これが今年最後の版になります。次回ビルドは未定。

あくまで動作確認用ですのでテスト環境以外への導入はサポートしません。
SVN4955版にHVパッチとistgt syslogプライオリティ変更を適用してあります。
言語ファイルを切り替えたときの対策パッチ、
UPnPサービスでのスクリプトエラーの修正パッチ、
SambaでのIPTOS_LOWDELAYエラーの修正パッチ、
quixplorerでのホームディレクトリ問題の対策パッチ、
以下の新チップ識別用コードの追加、
fuppes SVN657、デバイス診断用にpciconf、
セーフモードにhint.est.0.disabled=”1″を入れてあります。
上記修正などによりブートサイズが不足しそうなので、
40MBから42MBに増加しました。<特に7S-amd64が大きい・・・。
pciconfに関しては以下のマニュアルも参照のこと。
http://www.freebsd.org/cgi/man.cgi?query=pciconf&apropos=0&sektion=0&manpath=FreeBSD+7.2-RELEASE&format=html

なにか問題があれば報告をお願いします。

#いまさらだけどJSTで作業すると時間の混成ファイルができちゃうような気がした。

This unofficial version is using for test only.
It includes SVN r4955 + Hyper-V patch + samba error fix + quixplorer userdir fix
 + istgt syslog priority fix + fuppes SVN 657 + WebGUI fix + identifier fix
 + boot partition size fix + safe mode hint fix.
It increases boot partition to 42MB from 40MB.
See the manual below about pciconf.
http://www.freebsd.org/cgi/man.cgi?query=pciconf&apropos=0&sektion=0&manpath=FreeBSD+7.2-RELEASE&format=html
If you have a problem, please report me about it.

ATI IXP700/IXP800 AHCI
Intel ICH10 AHCI
nVidia MCP65/MCP67/MCP77/MCP79/MCP89 AHCI
Realtek 8102EL/8168DP/8111DP/8168E/8111E GbE

for 32bit version
FreeNAS-i386-LiveCD-0.7.1.4955.iso

for 64bit version
FreeNAS-amd64-LiveCD-0.7.1.4955.iso

 

実験的アップ(experimental):

警告:ZFS version 13 にアップグレードすると過去の版で利用不可になります。
WARNING: If upgraded to ZFS version 13, you can not use from old version.

for 32bit version with 7-stable(ZFS v13)
7S-FreeNAS-i386-LiveCD-0.7.1.4955.iso

for 64bit version with 7-stable(ZFS v13)
7S-FreeNAS-amd64-LiveCD-0.7.1.4955.iso

 

MD5 (FreeNAS-i386-LiveCD-0.7.1.4955.iso) = efead7fc8f282bf2d1eb3f5cab29d852
SHA256 (FreeNAS-i386-LiveCD-0.7.1.4955.iso) = 3432952ab5007ad559001fd7b870c952077ba6641a9bd892285d60279fcce18b
MD5 (FreeNAS-amd64-LiveCD-0.7.1.4955.iso) = ae015b4a950ef405495f80408e89e777
SHA256 (FreeNAS-amd64-LiveCD-0.7.1.4955.iso) = 684b2c6c2c0c515038d9f4326207f6dd7a3080329e8682a75d761d2910a54c4f

MD5 (7S-FreeNAS-i386-LiveCD-0.7.1.4955.iso) = a3f83fb0792ff6f8250921e8ee49871d
SHA256 (7S-FreeNAS-i386-LiveCD-0.7.1.4955.iso) = 5ed3266d2e7803f7d020a274881619cbaabc9dfc0ffaea037557599a42454222
MD5 (7S-FreeNAS-amd64-LiveCD-0.7.1.4955.iso) = 607da7425d18470520e7bc2165f66743
SHA256 (7S-FreeNAS-amd64-LiveCD-0.7.1.4955.iso) = 6caf090419fc5e20429da0d12c20810ab5c99bbc70685194959cd6a06eb51a73

ESXi4.0のドライバを作成してみる(VIA VT6130/VT6122編)

2009年12月27日 日曜日

ころがってたVT6130チップ搭載のNICをESXi4.0U1で使ってみる。

玄人志向 GbE-PCIe2(PCIe x1)
http://www.kuroutoshikou.com/modules/display/?iid=1066

作成手順などはRealtek8169のドライバ作成と同じです。
英語を読めない人がドライバを作成できるとは思えないので、
海外のサイトいけば事例があるので手順はあえて書きません。
ドライバソースは2.6.23.17を利用しました。
VIAのGbE汎用ぽいので未確認ですがVT6122などでも使えるかも?
2GBメモリのマシンで確認したので4GB以上のるとダメかも?

VIA VT6130/VT6122用ESXi4.0U1モジュール(バイナリ): oem-vt6130.tgz

oem.tgzにリネームして/bootbankにコピーするなり、
独自のoem.tgzに組み込むなりしてください。

使ってみた感想は・・・あんまり早くないw
とりあえずネットにつないだりとかはできるけど、
iSCSIとかNFSとかストレージ用には使えなさそう。

というか、このチップはPCIeの帯域が必要なほど早いの??
32ビットPCIでも十分そうな速度だ。

追記:

以下のVT6122搭載カードでも試してみました。使えるけどさらに遅い。

玄人志向 GbE-PCI2(32bitPCI)
http://kuroutoshikou.com/modules/display/?iid=216

追記:
ソースファイルの差分をあげておきます。
VIA VT6130/VT6122用ESXi4.0U1モジュール(ソース差分): src-vt6130.tar.gz

追記:
ESXi4.1にアップグレードした環境でも稼働できます。

今年最後のsend-prを完了しました(istgt-20091225)

2009年12月26日 土曜日

ESXiから利用時の高負荷状態での問題が修正されています。

初期リリースしたのが2009/02/22、今年最後のリリースが2009/12/25ですね。
リリース直前のパススルーテストに手間取り実際の作業は26日に
日付がかわっちゃたけど^^;
当初は想定外だったESXiもサポートに入り、各種報告を元にその他の
イニシエータとの互換性問題もだいぶ改修してきました。
特にFreeNAS0.7にバンドルしてもらえた事で利用形態がだいぶ広がって、
それ関連のバグ報告も多くなりました。
OSXもいくつかあがってきてるけど実機がないため検証が難航中だったり。

現在はESXi二台からの同時接続試験まで行っています。
実はこの段階でESXiサーバのNICが故障してるぽいことが判明して、
どうしようか迷い中です。
内部iSCSIと外部iSCSIトラフィックを完全分離してマルチパスすると
サーバに最低5ポート(管理+マルチパス用x2)は欲しいのです。

ここでちょっと横道に、FreeBSDイニシエータの作者様がマルチパスと
iSCSIブートの対応を検討しているみたい。
ターゲットの書き込みが遅いのをなんとかしないと遅いよ!って言われそうだ。

FreeNAS 0.7用 iSCSIターゲット(istgt)アップデータ 20091225版

2009年12月26日 土曜日

更新>アップデータ2010/01/05版

このアップデータはRC1(4735)以降のFreeNAS 0.7用です。
FreeNASの本体を更新することなくiSCSIターゲットのみを更新します。

設定ファイルはすべて保たれますが、バックアップを取ることを推奨します。
システム|バックアップ/リストアから設定のダウンロードをクリックしてください。

istgt-20091225版アップデータ: istgt-update-20091225.tar.gz

ネットに接続できるマシンからは以下のように/tmpなどにダウンロードして、
展開した中にはいっている istgt-install.php を実行します。
これにより現在のファイルが上書きされます。
また、embeddedやlivecdの場合は、設定保存ディレクトリに保存して、
FreeNASの再起動時にコピーして再現できるように、コピー処理コマンドを、
システム|高度な設定|スクリプトに事前実行型のコマンドとして
登録されます。(設定保存領域を約150KBほど消費します。)
すでに登録されている場合はしませんので、何度でもインストール可能です。

以下はFreeNASのコンソール(shell)での作業例になります。

# cd /tmp
# fetch http://www.peach.ne.jp/archives/freenas/istgt-update-20091225.tar.gz
# tar zxf istgt-update-20091225.tar.gz
# cd istgt-update
# ./istgt-install.php
 

このアップデータはi386とamd64のどちらにも適用できます。
それぞれ、full、embedded、livecdのいずれでも適用できます。
これにはistgt本体の他に起動用スクリプトと制御プログラムも含まれます。
FreeNAS0.7リリース版(4919)でiSCSIターゲットが正常に起動しないという問題も
このインストールにより修正されます。

ネットに接続されてない場合は、NFSでもWindowsの共有でもいいので、
fetchのかわりにファイルを手動でコピーして利用してください。

完了したら、WebGUIからサービス|iSCSI ターゲットで再起動します。
診断|ログでこのようなログが現れます。

istgt[1795]: istgt version 0.2 (20091225)

※ESXでQueueDepthを指定する場合32以上を推奨します。
※現在アンインストール機能はありません。fullインストールでなければ、
登録されたスクリプトを削除して再起動すれば戻ります。

MD5 (istgt-update-20091225.tar.gz) = e78e22ffa24d9d91cd484ce29d4a78e6
SHA256 (istgt-update-20091225.tar.gz) = 900070ee5ddd3b726a4677460d5b6f94de62a0ca0fb8f00a4d00a15fa32776cf

istgt (iSCSI target) 20091225版 for FreeBSD 7.x

2009年12月26日 土曜日

更新>istgt 2010/01/05版

規格外の文字があるとMSイニシエータから見えないようなので、
起動時に警告を出すようにしてみました。動作自体には変更ありません。
パススルーでモードセンスコマンドがない場合に起動できない問題がありました。

istgt (tarball): istgt-20091225.tar.gz

作成方法:

# cd /path/to/work
# tar zxf /path/to/istgt-20091225.tar.gz
# cd istgt-20091225
# ./configure
# make
# make install
# make install-doc

デーモンの再起動方法:

# /usr/local/etc/rc.d/istgt restart

MD5 (istgt-20091225.tar.gz) = baa35331503f15ac9807f480bf08ec78
SHA256 (istgt-20091225.tar.gz) = 7bbe4ec587788404ae6c15f3886124ea043b70585536f7577dbdf884339354b0

主な修正点:
パススルーでMODESENSEに失敗する場合を考慮するようにしました。
iSCSIターゲット名に規格外の文字があるか調べるようになりました。

スピンロックで変わるかなと思ってやってみた

2009年12月26日 土曜日

その結果、2割ぐらい転送効率が落ちてしまった・・・。
これじゃ意味ないじゃない。
関数呼び出しを減らす方向で検討してみよう。

書き込み処理のデータ受信ルーチン(istgt_iscsi_transfer_out)のgprofデータの
一部だけどistgt_iscsi_read_pdu()がほとんどなのでどうにも。。。
ソケットの読み出ししたいけど相手が遅いよ!って状態なのだろうか。

R2Tリクエストをイニシエータになげて必要な書き込みデータを受信する。
その後、正しい部分データなら連続したI/Oバッファに格納する、
それ以外はキューにコピーを保存して書き込み後に再処理する。
転送要求サイズに一致するまで繰り返す。


                0.02       19.94   23036/23036       worker [1]
[15]    18.4    0.02       19.94   23036         istgt_iscsi_transfer_out [15]
                0.02       16.09  110778/324387      istgt_iscsi_read_pdu [3]
                0.00        3.45   33823/404133      istgt_iscsi_write_pdu [4]
                0.31        0.00  127922/823078      memcpy [28]
                0.01        0.03  105061/2833592     free [40]
                0.01        0.00    5995/1723731     memset [29]
                0.00        0.01   33200/4674885     __pthread_mutex_lock [47]
                0.00        0.00    6014/478204      istgt_queue_enqueue [71]
                0.00        0.00    6016/2153019     xmalloc [34]
                0.00        0.00   33653/10313149     pthread_mutex_unlock [54]
                0.00        0.00  210104/2622567     xfree [92]
                0.00        0.00    6005/12005       istgt_iscsi_copy_pdu [113]
                0.00        0.00    6006/998597      istgt_queue_count [88]

一方、読み込み処理を含むデータ/レスポンス送信部分はこんな感じ。
連続したI/Oバッファに入ったデータをオフセットをずらしつつCRC計算して送信するだけ。


                0.04       28.09  102574/102574      istgt_iscsi_task_response [6]
[9]     25.9    0.04       28.09  102574         istgt_iscsi_transfer_in [9]
                0.03       27.99  274040/404133      istgt_iscsi_write_pdu [4]
                0.01        0.04  272135/4674885     __pthread_mutex_lock [47]
                0.01        0.00  272976/10313149     pthread_mutex_unlock [54]

物理ディスクをiSCSIターゲットに利用した場合の転送速度(参考用)

2009年12月23日 水曜日

FreeNASには7S-amd64版にアップデータを適用したものを利用しました。

7S-FreeNAS-amd64-LiveCD-0.7.1.4947.iso

FreeNAS 0.7用 iSCSIターゲット(istgt)アップデータ 20091222版

FreeNASのチューンは以下の3点です。

ZFSテスト用の/cf/boot/loader.confの追加設定

vm.kmem_size="3072M"
vfs.zfs.arc_min="1024M"
vfs.zfs.arc_max="1024M"

System|Advanced の Enable tuning of some kernel variables のチェック

System|Advanced|sysctl.confの値修正

net.inet.tcp.recvspace 393216
net.inet.tcp.sendspace 393216

テスト環境の主要構成パーツは以下の通りです。

FreeNAS 7S-amd64(4947):
M/B: ASUS M2A-VM (AMD 690G + SB600)
Mem: DDR2-800(PC6400) 2GB x 2
CPU: AMD X2 5200+ (2.7GHz, 2core)
Net: onboard Realtek 8111 (LAN management)
NIC: Intel PRO/1000 PT Server Adapter (OPT1 for iSCSI primary)
NIC: Intel PRO/1000 PT Server Adapter (OPT2 for iSCSI secondary)
HDD: Maxtor 4K080H4 (U100/80GB) (/mnt/data)
HDD: Western Digital WD5000AAKS (SATAII/500GB) (/dev/ad4)

ESXi4.0 Host:
M/B: MSI K9NGM3-FIH (nVidia GeForce7050PV + nForce 630a)
CPU: AMD X2 BE-2400 (2.4GHz, 2core)
Mem: DDR2-800(PC6400) 2GB x 2
Net: onboard nForce integrated (VMKernel for iSCSI primary)
NIC: Realtek 8169S (32bitPCI) (VM Network for LAN management)
USB: SILICON POWER Ultima II I-Series 2GB (ESXi boot device)
iSCSI: 120GB on FreeBSD 7.2 + UFS (temporary, iso images, etc)
iSCSI: 465GB on FreeNAS (/dev/ad4)

WS2008R2 Hyper-V Host:
M/B: GIGABYTE GA-G33-DS3R (Intel G33 + ICH9R)
CPU: Intel C2Q Q6600 (2.4GHz, 4core)
Mem: DDR2-800(PC6400) 2GB x 4
Net: onboard Realtek 8111 (for iSCSI secondary)
NIC: Intel PRO/1000 PT Desktop Adapter (for iSCSI primary)
NIC: Realtek 8169S (32bitPCI) (LAN management)
HDD: Western Digital WD5000ABYS (SATAII/500GB) (boot device)
iSCSI: 180GB on FreeBSD 7.1 + ZFS RAIDZ2 (main storage, VHD)
iSCSI: 120GB on FreeBSD 7.2 + UFS (backup, iso images, etc)

FreeNAS shell 上でのディスク情報

freenas:/mnt# diskinfo -t ad4
ad4
        512             # sectorsize
        500107862016    # mediasize in bytes (466G)
        976773168       # mediasize in sectors
        969021          # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.
        ad:WD-WCAPW3808248      # Disk ident.

Seek times:
        Full stroke:      250 iter in   8.933453 sec =   35.734 msec
        Half stroke:      250 iter in   5.990421 sec =   23.962 msec
        Quarter stroke:   500 iter in   9.154314 sec =   18.309 msec
        Short forward:    400 iter in   2.128259 sec =    5.321 msec
        Short backward:   400 iter in   2.014236 sec =    5.036 msec
        Seq outer:       2048 iter in   0.330524 sec =    0.161 msec
        Seq inner:       2048 iter in   0.330175 sec =    0.161 msec
Transfer rates:
        outside:       102400 kbytes in   1.222357 sec =    83773 kbytes/sec
        middle:        102400 kbytes in   1.394441 sec =    73434 kbytes/sec
        inside:        102400 kbytes in   2.501426 sec =    40937 kbytes/sec
 

FreeNAS -> WS2008R2 Host (direct)

FreeNAS -> ESXi4.0 VMFS -> WS2008R2 Guest

ESXiゲストでCrystalDiskMark 3.0beta2を実行した時のFreeNAS負荷
 

FreeNASの設定など各種
 
 
 
 
(クリックで拡大) (click to see large image)


 

ESXi上で実行した場合はおよそ、

Seq.Read 72MB/s CPU load 10%
Seq.Write 52MB/s CPU load 25%

ぐらいが期待できるようです。

FreeNAS 0.7用 iSCSIターゲット(istgt)アップデータ 20091222版

2009年12月22日 火曜日

更新>アップデータ2009/12/25版

このアップデータはRC1(4735)以降のFreeNAS 0.7用です。
FreeNASの本体を更新することなくiSCSIターゲットのみを更新します。

設定ファイルはすべて保たれますが、バックアップを取ることを推奨します。
システム|バックアップ/リストアから設定のダウンロードをクリックしてください。

istgt-20091222版アップデータ: istgt-update-20091222.tar.gz
修正版をご利用ください。

ネットに接続できるマシンからは以下のように/tmpなどにダウンロードして、
展開した中にはいっている istgt-install.php を実行します。
これにより現在のファイルが上書きされます。
また、embeddedやlivecdの場合は、設定保存ディレクトリに保存して、
FreeNASの再起動時にコピーして再現できるように、コピー処理コマンドを、
システム|高度な設定|スクリプトに事前実行型のコマンドとして
登録されます。(設定保存領域を約150KBほど消費します。)
すでに登録されている場合はしませんので、何度でもインストール可能です。

以下はFreeNASのコンソール(shell)での作業例になります。

# cd /tmp
# fetch http://www.peach.ne.jp/archives/freenas/istgt-update-20091222.tar.gz
# tar zxf istgt-update-20091222.tar.gz
# cd istgt-update
# ./istgt-install.php
 

このアップデータはi386とamd64のどちらにも適用できます。
それぞれ、full、embedded、livecdのいずれでも適用できます。
これにはistgt本体の他に起動用スクリプトと制御プログラムも含まれます。
FreeNAS0.7リリース版(4919)でiSCSIターゲットが正常に起動しないという問題も
このインストールにより修正されます。

ネットに接続されてない場合は、NFSでもWindowsの共有でもいいので、
fetchのかわりにファイルを手動でコピーして利用してください。

完了したら、WebGUIからサービス|iSCSI ターゲットで再起動します。
診断|ログでこのようなログが現れます。

istgt[1795]: istgt version 0.2 (20091222)

※ESXでQueueDepthを指定する場合32以上を推奨します。
※現在アンインストール機能はありません。fullインストールでなければ、
登録されたスクリプトを削除して再起動すれば戻ります。

MD5 (istgt-update-20091222.tar.gz) = 049f925e928c3ae6d388248796a0528e
SHA256 (istgt-update-20091222.tar.gz) = 9c9a21b774cdd6928252546d03fdb5968dcf5d7e5f043f5bda385c4017b0faeb

istgt (iSCSI target) 20091222版 for FreeBSD 7.x

2009年12月22日 火曜日

更新>istgt 2009/12/25版

ESXから利用時に書き込み処理が間に合わないと、ESXからABORT_TASKが
発行されますが、その処理方法に問題がありました。
詳しくはわかりませんが、およそ5~10秒以内にSCSI反応できないと、
発行されるようです。
(シーケンシャル書き込みが連続しているとライトキャッシュで発生)
この為に再接続処理でVMFSに対する応答速度が犠牲になっていました。
ESXに関してはさらなる負荷テストを必要とします。
余裕があれば後ほどESX接続によるSSをアップします。

istgt (tarball): istgt-20091222.tar.gz
修正版をご利用ください。

作成方法:

# cd /path/to/work
# tar zxf /path/to/istgt-20091222.tar.gz
# cd istgt-20091222
# ./configure
# make
# make install
# make install-doc

デーモンの再起動方法:

# /usr/local/etc/rc.d/istgt restart

MD5 (istgt-20091222.tar.gz) = 67403ae7ea4035a226d86606bc6dc7b9
SHA256 (istgt-20091222.tar.gz) = 9d1f73667833339aee4bcc63f893436ad84dd97dd47913923300ce53f3ed89a6

主な修正点:
デフォルトのキューサイズを32に変更しました。
syslogプライオリティをconfigure時に変更可能にしました。
待ち時間を増加、タイムアウト値と連動するように修正しました。
タスクの処理開始時間を記録するようにしました。
ベンダ定義のVPDに対してエラーではなく警告を出すようにしました。
TASK管理のStatSN処理を変更しないようにしました。

動作確認用のFreeNAS 0.7(4947)版をアップしました

2009年12月18日 金曜日

更新>FreeNAS 0.7.1.4955 + istgt 2009/12/25版

あくまで動作確認用ですのでテスト環境以外への導入はサポートしません。
SVN4947版にistgt-20091218とHVパッチを適用してあります。
言語ファイルを切り替えたときの対策パッチ、
UPnPサービスでのスクリプトエラーの修正パッチ、
transmission 1.76 と fuppes SVN654 を入れてあります。
なにか問題があれば報告をお願いします。

This unofficial version is using for test only.
It includes SVN r4947 + istgt-20091218 + HV patch
 + encoding patch + UPnP error patch
 + transmission 1.76 + fuppes SVN654.
If you have a problem, please report me about it.

for 32bit version
FreeNAS-i386-LiveCD-0.7.1.4947.iso

for 64bit version
FreeNAS-amd64-LiveCD-0.7.1.4947.iso

 

実験的アップ(experimental):

警告:ZFS version 13 にアップグレードすると過去の版で利用不可になります。
WARNING: If upgraded to ZFS version 13, you can not use from old version.

for 32bit version with 7-stable(ZFS v13)
7S-FreeNAS-i386-LiveCD-0.7.1.4947.iso

for 64bit version with 7-stable(ZFS v13)
7S-FreeNAS-amd64-LiveCD-0.7.1.4947.iso

 

MD5 (FreeNAS-i386-LiveCD-0.7.1.4947.iso) = 12bc42096946057e6688becd907b0589
SHA256 (FreeNAS-i386-LiveCD-0.7.1.4947.iso) = 884ca6c8cc07e492884c53f4334310064c7e9073eb0c9635bbb74b5fdfc296db
MD5 (FreeNAS-amd64-LiveCD-0.7.1.4947.iso) = be27a53a4df319b7212766869015bc02
SHA256 (FreeNAS-amd64-LiveCD-0.7.1.4947.iso) = b71c754ad3e07b028f909a1b29986a492f81fa80e397b1fa6a499a4f0e8fdede

MD5 (7S-FreeNAS-i386-LiveCD-0.7.1.4947.iso) = 1711866cd981932bfcec258c7d7b9d1a
SHA256 (7S-FreeNAS-i386-LiveCD-0.7.1.4947.iso) = 0a65151889e159cef7e5796e5a984b7a58b390968bfb8b3a72cb57e12350e5de
MD5 (7S-FreeNAS-amd64-LiveCD-0.7.1.4947.iso) = 7348561a87065c513800247991dc29c3
SHA256 (7S-FreeNAS-amd64-LiveCD-0.7.1.4947.iso) = a293265e695fc113b4ac1ec945b2fcadf54b3874f61e2ae57c3572f5df04e191