2010年5月 のアーカイブ

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

2010年5月16日 日曜日

更新>istgt 2010/05/21版

先のCTアダプタの結果が残念なので・・・効率アップを図ってみました。
また、ESXiでの利用を想定してデフォルトの値を修正してみました。
(FirstBurstLength 64K => 256K, MaxBurstLength 256K => 1M)

通常はキューイングした後に送信されるR2Tコマンドを、
キューに入れる前に送信して後からデータPDUを回収する
という方法を取ってみました。

補足:
キューの深さと同数のライトバッファを用意するという意味です。

結果は以下のSS通りで、キャッシュが利用される領域において
15%以上の高速化ができました。
実際の速度は利用するエクステントの速度に制限されるとはいえ、
シングルパスのシーケンシャルで100MB/sを達成できたのはよかった。
デュアルパスでラウンドロビンするとリード190MB/s、ライト170MB/sと
単体HDDではおそらく処理が間に合わない程の速度が出ます。

   
(クリックで拡大)

さて、こうやって見ると…はい、ショートI/Oの性能が悪いですね。
こうしてさらに深みにはまっていくと。

あまりにも基本すぎて今まで書いていませんでしたけど、
マルチスレッドで動くのが前提なのでシングルコアのCPUの場合は、
ここで期待しているような値が出ることはないと思います。

※ラウンドロビンは処理データ(R/W)が偏って期待通りに行かない事があります:-)

新規のコンフィグキー:
  MaxOutstandingR2T 16
  DefaultTime2Wait 2
  DefaultTime2Retain 60

修正したコンフィグキー:
  FirstBurstLength 262144
  MaxBurstLength 1048576

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

作成方法:

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

デーモンの再起動方法:

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

MD5 (istgt-20100516.tar.gz) = 358eec46c4cddc3a5944a49f96509e68
SHA256 (istgt-20100516.tar.gz) = fdb3d82d74d09bfc06204158147c8c7b63e642f67b83e74527875db3424e663e

主な修正点:
CHAPの乱数生成に arc4random を利用するようになりました。
シーケンシャル書き込みの処理を改善しました。
MaxOutstandingR2T, DefaultTime2Wait, DefaultTime2Retain が設定ファイルで変更可能になりました。
デフォルトの設定値を変更しました。

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

2010年5月12日 水曜日

更新>FreeNAS 0.7.2 5214版

予定通りsamba3.5系へのアップデートを行いました。
特に互換性問題がなければこの3.5系でファイナルを出す予定です。
これにより64MBに維持するのが困難になるのが予想できたので、
起動ディスクのフォーマット前提で作業していましたが、
予想より小さいサイズになり余裕ができました。
そこで仮想マシン(ESXi等)での評価を想定してゲストサポートを
追加できるように拡張してみました。(デフォルトでONになります)
やや実験的ですが、自動的にkern.hz=100に周期を落とし、
必要なモジュール、ドライバ等を組み込むようになります。
なお、新規データパーティションは4KB境界で作成するようになった為、
従来とRAWレベルで見ると構成が異なっていますのでご注意ください。

これ以降(0.7.2.5190)の版では、

起動ディスク128MB(120MiB)、メモリ384MB(embedded/livecd運用時)
起動ディスク400MB(380MiB)、メモリ256MB(full運用時)

が最低保証ラインになります。

インストールオプション#1で作成していない場合は以下の
アップグレード手順が必要です。
ファームアップグレードは利用しないでください。
イメージサイズが大きく変更されたので今後の動作に予期しない結果を
もたらす可能性があります。

1.起動ディスクの全データを別のディスクにバックアップする
2.現在のコンフィグをバックアップする(システム|バックアップ/リストア)
3.LiveCDから起動して新規インストールする(オプション#2, #3)
4.コンソールメニューからインターフェースとIPの設定をする
5.WebGUIでコンフィグをリストアする(システム|バックアップ/リストア)
6.起動ディスクのデータパーティションをマウントポイントから削除し、
  4KB境界調整された新パーティションとして再度追加する
7.バックアップしたデータを書き戻す
8.再起動して書き戻したデータにアクセスできるか確認する

以上の流れになります。
CLIが使える場合は0.7.1安定版で追加されたdump/restoreを
使ってバックアップとリストア作業を実行する事もできます。

※注意※
※インストール方法にかかわらず5175以前へのダウングレードは
サポートされません。
※コンフィグアップグレードの前処理でMBRパーティションが
認識ミスしないように、fsckフラグが無効になります。
(GPTなど他のパーティションには影響ありません。)

以下のバージョンにアップデートされました。
transmission 1.93
samba 3.5.2.
arcconf 6.40.18530.
cdialog 1.1.20100428.

変更点としては、
インストール先のサイズを変更。(embedded=120MiB, full=380MiB)
イメージサイズを変更(メモリディスク=160, イメージ=65)
MBR/UFS形式のfsckを無効にするように変更。
(起動パーティション構成変更に関する問題回避策です。
アップグレード後のWebGUIで削除して再度追加すれば有効にできます。)
lighttpdのアップロードディレクトリを指定できるように変更。
ファームアップグレード用メモリディスクを128MBに変更。
アップグレード先のサイズを確認するように変更。
MBRスライスはaパーティションをマウントするように変更。
初期化時にクリアするセクタ数を変更。
swapスライスにパーティションを作らないように変更。
起動ディスクにs1aパーティションを利用するように変更。
/usr/bin/systatを追加。
スワップのデフォルト最小値を256MBに変更。
不要なパーティションラベル作成を削除。
4KB境界を考慮してパーティション作成するように変更。
スライスをシリンダ境界で計算するように調整。
mimeタイプの更新。
patchコマンドの追加。
lighttpdのモジュール追加。
無線ファームウェアを追加。
iSCSIターゲットの論理ブロック長(512~4096)を追加。
iSCSIターゲットを個々に有効無効を設定出来るように変更。
未使用エクステントを編集モードで表示するように変更。
仮想マシンでかつkern.hzが100より大きい場合に100に落とすように変更。
仮想マシンのゲストサポートを追加。(open-vm-tools/vbox-additions)
カーネルモジュールディレクトリを追加。(/boot/modules)
Large read/write をデフォルトで有効に変更。(Services|CIFS/SMB|Settings)
言語ファイルの更新。

バグ修正としては、
新規fullインストールの場合に/var/tmpが存在しない問題
ファームのアップロードに失敗する問題
CPU温度などの変数が存在しない場合にページ更新されない問題
Sambaの有効・無効に合わせてAIOのチェックボックスが変化しない問題
コンソールメニュー無効時にCtrl+Alt+Delが効く問題
が含まれています。

あくまで動作確認用ですのでテスト環境以外への導入はサポートできません。
SVN5190版にHVパッチと以下の新チップ識別用コードの追加および
以下のバックポートドライバが含まれています。
なにか問題があれば報告をお願いします。

This unofficial version is using for test only.
It includes SVN r5190 + Hyper-V patch + identifier fix
+ backport drivers + some ATA fixes.
If you have a problem, please report me about it.

Unofficial only:
ATI IXP700/IXP800 AHCI, IXP700 IDE
Intel ICH10 AHCI
NVIDIA MCP65/MCP67/MCP77/MCP79/MCP89 AHCI, MCP79 IDE
Realtek 8102EL/8168DP/8111DP/8168E/8111E GbE
Marvell 88SX6042/88SX7042/88SX6102/88SX6111/88SX6141

em driver 7.0.5/1.0.1 (Intel PRO/1000 family)
re driver 2010/04/09 (Realtek 8169/8111 etc.)
ixbge driver 2.1.7 (Intel 10 Gigabit family)
msk driver 2010/04/30 (Marvell Yukon)

ntfs-3g 2010.3.6

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

for 32bit version
7S-FreeNAS-i386-LiveCD-0.7.2.5190.iso

for 64bit version
7S-FreeNAS-amd64-LiveCD-0.7.2.5190.iso

MD5 (7S-FreeNAS-i386-LiveCD-0.7.2.5190.iso) = cbc7cb9d368cdeee22762fb7a5f64288
SHA256 (7S-FreeNAS-i386-LiveCD-0.7.2.5190.iso) = e9b20fcbd86c48097d2b04c949bc16817870eaa0bf23b02b7ce9db2377c44395
MD5 (7S-FreeNAS-amd64-LiveCD-0.7.2.5190.iso) = 2a1f40217872d30fd79e1e1fac4e9a7b
SHA256 (7S-FreeNAS-amd64-LiveCD-0.7.2.5190.iso) = 67fe714e807e6ca70f2f765278f0b7d14541e699a620e18447d5696332ee1102

Intel Gigabit CT Desktop Adapter は iSCSI Remote Boot でサポートされている

2010年5月3日 月曜日

システムワークスさんのページに書かれていた一言にびっくりしました。

製品情報およびiSCSI Remote Bootサポート製品はこちらから
http://www.intel.com/products/desktop/adapters/gigabit-ct/gigabit-ct-overview.htm
http://www.intel.com/support/network/adapter/pro100/sb/CS-028681.htm

私は PT Server Adapter で満足していたので CT Desktop Adapter には
まったく興味がなかったのですがiSCSIブートできるとなれば話は別です^^;

さっそく Intel CT Desktop Adapter を購入して確認してみました。
ファームはインテルのサイトから15.2版をダウンロードして書き込みました。
iSCSIファームバージョンは2.5.12でした。

起動試験はFreeNASの確認に使っている NEC Express5800/110Ge
(GIGABYTE GA-5YASV-RH)、ASUS P5K、ASUS M2A-VM、MSI K9NGM3-FIH
の4台で行いました。

OSはWindows Server 2008 R2を利用しました。
iSCSIターゲットはいつものistgt 20100407 on FreeBSD 7.3(ZFS/RAIDZ2)に
40GBの領域をQueueDepth 64で作成しました。

M2A-VM はオプションROMのBIOSが起動しませんでした。
これに限らず、マザーによっては拡張カード上にあるRAID BIOSなどが
起動しない事はありますのでご注意ください。

以下にP5Kの時のスクリーンショットを掲載します。

 
(クリックで拡大)

うおー、予想以上に早いですね。
むしろシーケンシャル書き込みが遅いistgtの欠点がばればれではないか・・・。
理由はおそらくコマンド(と書き込みデータ先頭64KB)のキューイングは行うけど、
後続データのキューイングは現時点ではできないせいです。

私自身がリード>ライトな使い方が多い上にシーケンシャル書き込みを
それほど必要としていないのであまり気にしていなかったけど、
CT Desktop Adapterで使えるとなると改善したほうが良いですよね。きっと。

補足:
試験に使ったZFSプールは以下のように80%超の利用率であるので、
新品の場合はもっと速度が出ると推測されます。

[root@hera ~]# zpool list
NAME   SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
tank  2.73T  2.30T   435G    84%  ONLINE  -

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

2010年5月2日 日曜日

 更新>FreeNAS 0.7.2 5190版

Samba更新前にやった方がいいものをコミットしました。
WD20EARSなどのAdvanced Formatもフルに活用できるように、
4Kセクタでの境界調整フォーマットに対応しました。
現時点ではUFS/GPTデータパーティションのみの対応です。
(手動での構成は以前の投稿を参考にしてください。)

なかなか興味深いパッチがあったのですが、残念ながらテスト環境で
起動できなかった為に今回はいれてありません。
パッチの詳細はこちらから。
http://tsuyoshiozawa.blogspot.com/2010/03/started-to-implement-dynticks-in.html

今後、非公式版に入れて評価を行いたいと思っています。

以下のバージョンにアップデートされました。
nut 2.4.3
php 5.2.13

変更点としては、
/var/tmp のシンボリックリンクを実ディレクトリに変更。
Advanced Format 4Kセクタに対応。(UFS/GPTデータパーティションのみ)
マウントポイントの追加時にfsckをデフォルトでONに変更。
フォーマット時に kern.geom.debugflags を操作するように変更。
チューニングパラメータを修正。
ファイルマネージャを無効にするオプションを追加。
コンフィグ履歴を3個保存するように修正。
amdtempモジュールを追加。
CPUの熱センサーの値があれば読み取りするように修正。
カーネルオプションのディスククォータを有効に変更。
ATAデバイス選択の後に10usの待機をするように修正。(暫定仕様)

あくまで動作確認用ですのでテスト環境以外への導入はサポートできません。
SVN5171版にHVパッチと以下の新チップ識別用コードの追加および
以下のバックポートドライバが含まれています。
なにか問題があれば報告をお願いします。

This unofficial version is using for test only.
It includes SVN r5171 + Hyper-V patch + identifier fix
+ backport drivers + some ATA fixes.
If you have a problem, please report me about it.

Unofficial only:
ATI IXP700/IXP800 AHCI, IXP700 IDE
Intel ICH10 AHCI
NVIDIA MCP65/MCP67/MCP77/MCP79/MCP89 AHCI, MCP79 IDE
Realtek 8102EL/8168DP/8111DP/8168E/8111E GbE
Marvell 88SX6042/88SX7042/88SX6102/88SX6111/88SX6141

em driver 7.0.5/1.0.1 (Intel PRO/1000 family)
re driver 2010/04/09 (Realtek 8169/8111 etc.)
ixbge driver 2.1.7 (Intel 10 Gigabit family)
msk driver 2010/04/30 (Marvell Yukon)

ntfs-3g 2010.3.6

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

利用する前にこちらのSamba3.5系の搭載に関する投票をお願いします。
(sourceforgeアカウントがない場合はブログへの匿名コメントで構いません。)
Before using it, please vote about new samba 3.5.x at:
https://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=5&t=6468

for 32bit version
7S-FreeNAS-i386-LiveCD-0.7.2.5171.iso

for 64bit version
7S-FreeNAS-amd64-LiveCD-0.7.2.5171.iso

MD5 (7S-FreeNAS-amd64-LiveCD-0.7.2.5171.iso) = 62b6642fa1be2a0eed4a068c06d28afd
SHA256 (7S-FreeNAS-i386-LiveCD-0.7.2.5171.iso) = 6eaa2417b186f91d45388f4286f2fcd86db6290008c5c5493c3319e2c4db1a4e
MD5 (7S-FreeNAS-i386-LiveCD-0.7.2.5171.iso) = d2f526a84619e0407bfc8b39538bd718
SHA256 (7S-FreeNAS-amd64-LiveCD-0.7.2.5171.iso) = 2f500193c45f46ec78f6d1404af6d3aa4b9ef9151578417eb534319b3430b8ec