‘MPIO’ タグのついている投稿

FreeNAS 0.7とATAPICAMを使ってSATA接続のDVDマルチドライブをiSCSIデバイスとして構成する

2010年1月13日 水曜日

この機能は非公式のFreeNAS 0.7.1(4967)版から利用できます。
すぐに本家にも取り込まれると思います。

非公式版のダウンロードはこちらから。
http://shell.peach.ne.jp/aoyama/archives/766

ここではATAPICAMでの最低限の情報のみ書きます。
一般的なiSCSIデバイスの作成方法は以前書いたものを参考にしてください。

FreeNAS 0.7 を使って iSCSI Target を構成する
http://shell.peach.ne.jp/aoyama/archives/431

FreeNAS 0.7 で ZFS と iSCSI Target を構成する
http://shell.peach.ne.jp/aoyama/archives/466

まず、準備として初期化前のコマンドとして以下を登録して再起動します。
システム|高度な設定|スクリプト を開き、事前実行で登録します。

/sbin/kldload atapicam

できたら再起動します。


(※画像はクリックですべて拡大します)

正しく登録できていれば、以下のようなログが 診断|ログ に表示されます。
ここではLG電子のGH20NS10(SATA接続)を使いましたが、
IDEでも同様に作成可能かと思います。

Jan 13 02:42:19 freenas kernel: cd0 at ata4 bus 0 target 0 lun 0
Jan 13 02:42:19 freenas kernel: cd0:  Removable CD-ROM SCSI-0 device
Jan 13 02:42:19 freenas kernel: cd0: 150.000MB/s transfers
Jan 13 02:42:19 freenas kernel: cd0: Attempt to query device size failed: NOT READY, Medium not present

ログを確認できたら、そこに表示されているデバイス名(/dev/を付ける)を使って、
エクステントを作成します。
ここではcd0になっているので /dev/cd0 を利用します。

タイプ=>ファイル
パス=>/dev/cd0
ファイルサイズ=>オート

次に作成したエクステントをパススルーモードでターゲットを作成します。

タイプ=>Device Pass-through
フラグ=>読込み/書込み(rw)
ストレージ=>上記で作成したもの (/dev/cd0)

設定を終えるとこんな感じになります。

ではさっそく使ってみます。
ここではイニシエータにはESXi4.0の仮想マシンにインストールした
Windows Server 2008R2(評価版)を使ってみました。

 

DVDマルチドライブを利用したのでISOイメージを書込みしたりもできます。
もちろん再生アプリケーションが対応していればDVD動画も見れます。

FreeBSD 7.2のCD-Rを作成するとこんな感じ。

ちなみにここで使った2008R2は下記テストのために
FreeNAS上のiSCSIディスク(/dev/ad4)に作成したものです。
http://shell.peach.ne.jp/aoyama/archives/679
一度でも仮想マシンとiSCSIの便利さに慣れるとiSCSIなしの環境が面倒になってくると思う。
簡単に構築できるFreeNASを使っていろいろ試してみて欲しいと思います。
もちろんFreeBSDサーバでもistgtの最新版を利用すれば同様の事が可能です。

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

2010年1月12日 火曜日

更新>istgt 2010/01/25版

パススルーが正常に動かなくなっていました。
ATAPICAMをロードしてSATA接続のDVDライタを使い、
iSCSI経由でメディアに書き込む事は確認しました。

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

作成方法:

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

デーモンの再起動方法:

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

MD5 (istgt-20100112.tar.gz) = de95e0888103d2f978d94a90288834de
SHA256 (istgt-20100112.tar.gz) = eecf9e9611ff33c8da1ac8b1aa807a5170722e1c179cf9760fa82a3853fc9342

主な修正点:
センスデータ長の間違いを修正しました。
MMCデバイスにMODESENSE(6)を発行しないように修正しました。
パススルーでBlockDescriptorがない場合に誤動作するのを修正しました。

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

2010年1月6日 水曜日

更新>istgt 2010/01/12版

遅くなりましたが、あけましておめでとうございます。
今年もよろしくお願いします。

BSD系OSの場合はkqueue/keventを利用するようになりました。
FreeNASフォーラムで仮想テープに関する書き込みがあったので、
少し前倒しでリムーバブルメディアの扱いを調整しました。
最低限使えるところまで変更したのでお試しください。
WebGUIは開発中ですが、最低限の機能を搭載した版を用意しましたので、
こちらもすぐにアップします。
なお、ZFSボリュームは前バージョンから対応してあります。
本バージョンよりリムーバブルデバイス(DVD/TAPE)が/dev/null指定で
スロットにメディア挿入せずに起動できるようになりました。
空で起動した場合はistgtcontrolでメディア交換する必要があります。

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

作成方法:

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

デーモンの再起動方法:

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

MD5 (istgt-20100105.tar.gz) = a8e7ebb77eb3f1e23fd1cb8c538cfe39
SHA256 (istgt-20100105.tar.gz) = f4cb6e0df3f6e75ec1315a8d458d2593c57c2ebefbe3594d503b43463f19fc89

新規コンフィグキー:

  MediaDirectory /var/istgt

リムーバブルメディアのあるディレクトリを指定します。
(現時点は一個だけ指定可能です)

空メディアの指定例:

[LogicalUnit3]
  TargetName "dvd2"
  Mapping PortalGroup1 InitiatorGroup1
  AuthMethod Auto
  AuthGroup None
  UseDigest Auto
  ReadOnly Yes
  UnitType DVD
  LUN0 Removable "ro" /dev/null 0

主な修正点:
uctl: パススルーデバイスを出力するようになりました。
uctl: LUNタイプを出力するようになりました。
MediaDirectoryの中にないメディアへの交換を拒否するようになりました。
全書き込みビットがないファイルを読み込み専用と認識するようになりました。
テープ作成前に制御ブロックが破損していないか検査するようになりました。
istgtcontrol: 認証系の処理を改善しました。
/dev/nullのメディアを空スロットと認識するようになりました。
BSD系ではkqueue/keventを利用するになりました。

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ターゲット名に規格外の文字があるか調べるようになりました。

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処理を変更しないようにしました。

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

2009年12月18日 金曜日

更新>istgt 2009/12/22版

今回からWS08R2+HV2の環境下でのVM稼動を開始しました。
FreeNASのビルド及びテストも試験的にR2環境下で行っています。

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

作成方法:

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

デーモンの再起動方法:

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

MD5 (istgt-20091218.tar.gz) = f9a1f32136c2f69692147ede2fd63613
SHA256 (istgt-20091218.tar.gz) = 1f2830c76395d8d18f15f7286f0ea06f5c2eebab24ecda62495f563bc8fa2b98

主な修正点:
StarPortとの接続問題を修正しました。
サポート最大数の増加、予約セッション数の増加をしました。
syslogファシリティを変更するコマンドラインスイッチを追加しました。

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

2009年12月11日 金曜日

更新>istgt 2009/12/18版

今回のパススルーデバイスの確認は、HP製DDS4ドライブ(C5683)と
WS2003付属のNtbackupで行っています。
イニシエーターはMS製2.08を利用して、WS2003のレジストリ調整は、

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class
\{4D36E97B-E325-11CE-BFC1-08002BE10318}\0000\Parameters

にある MaxTransferLength を 65536 に変更しています。

余談だけどDDS4の転送速度はかなり遅い。

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

作成方法:

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

デーモンの再起動方法:

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

MD5 (istgt-20091211.tar.gz) = e6874abf837fddc99cd01bea2007ec99
SHA256 (istgt-20091211.tar.gz) = b40497e01a0319e413cf06ffb26b8a89a6c081dcb39bad4e088a946f5dc58805

主な修正点:
DISK型でREQUEST_SENSEに応答するように修正しました。
センスデータのヘッダが正しく処理されない問題を修正しました。
パススルー型でチェンジャー型も通すように追加しました。
パススルー型のタイムアウト値を増加しました。
CAMエラー処理方法を変更しました。

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

2009年11月30日 月曜日

更新>istgt 2009/12/11版

20091124をアップした直後で申し訳ないのだけど、
エラー処理でクラッシュする問題を修正しましたので急遽アップデート版をあげます。
既知問題のプロセス終了時の異常終了もおそらくこれが原因と思われます。
また、先日書いた警告を抑制するオプションを新設しました。

ネットワーク利用率が想定値よりあまりにも少ない場合は、
処理能力に問題があるかもしれないので、

  MaxBurstLength 65536
  MaxRecvDataSegmentLength 4096

の設定を一度お試しください。

追記:
ESXでQueueDepthを指定する場合32以上を推奨します。

portsには20091124が11/26にコミットされましたが、
再度この版で更新をかけますのでお待ちください。

FreeNASも20091124とRAWデバイスパッチがr4928としてマージされましたが、
こちらも早々に作成しますのでお待ちください。

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

作成方法:

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

デーモンの再起動方法:

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

MD5 (istgt-20091130.tar.gz) = 5a323354bf5a18fbd0f0a6bf4d8dd569
SHA256 (istgt-20091130.tar.gz) = a717ac3cc2d3201b1ab75f210afb28efc3780e25aa02d91bbbd734977f8b50f9

主な変更点:
エラー処理中(処理後)にクラッシュする問題を修正しました。
リセットとタイムアウトはイニシエータ名をログに残すようにしました。
警告を抑制するオプション -q を追加しました。

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

2009年11月24日 火曜日

更新>istgt 2009/11/30版

旧版およびLiveCDによる試験でもらった報告に基づき修正をしました。
また、XenServer5.5での接続を確認しました。

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

作成方法:

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

デーモンの再起動方法:

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

MD5 (istgt-20091124.tar.gz) = 844d8cbf001e0a10f117c361abfb2253
SHA256 (istgt-20091124.tar.gz) = 1a3afa973de93904aa797c64694f438c893489f2c25f63680af9a2b977c0b4cb

主な変更点:
iSCSIブート(ディスクレス)に失敗することがあったのを修正しました。
接続リセットとタイムアウトを通常エラーとしないように変更しました。
マルチイニシエータでのSCSI2互換ユニット予約解放の問題を修正しました。
StatSNのチェックにキューサイズを考慮するように修正しました。

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

2009年11月13日 金曜日

更新>istgt 2009/11/24版

マイナーバグフィックス版です。
改良バージョンが期待したほど改善できなかったので白紙撤回します。
今回からタイトルのZFSを削除します。あまりにもFAQなので。
現在の版はデバイスファイル直接もUFS上でも動作確認はしてあります。

FreeBSD7.2 + ESXi4.0 の環境下での動作テストを行っています。
istgtがデバイス識別子としてNAA=3を利用しているのでESX側のログに
「3というIDは知りません」と言う警告が出ます。
LUN0のみの場合はNAA=3でも認識はされるようです。

LUN0以外の認識と警告をなくすには正規のOUIを取得してNAA=5とか6を
デバイスの固有識別子に指定するしかないと思われます。
(設定ファイルで変更できたほうがいいのかな?)

具体的な構成は、FreeBSD7.2上のiSCSIディスク(120GB)をVMFSとして
ESXi4.0のデータストアに利用して、そのESX上にUbuntu9.10デスクトップ版を
仮想マシンに導入して、Ubuntuからopen-iscsiで別のFreeBSD上の
iSCSIディスク(20GB)に接続してテスト中です。

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

作成方法:

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

デーモンの再起動方法:

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

MD5 (istgt-20091112.tar.gz) = 59e0df28673f4eb52256927e8d96a34d
SHA256 (istgt-20091112.tar.gz) = 555bc59be5067adbed564b797123d5608541b65a3c76f4302126438bdf7a539f

既知の問題:
セッション接続中のままプロセスを終了すると異常終了する事がある。
特定環境下において書き込み速度が異常に低下する事がある。
超高負荷時にリード/ライトのどちらかが遅延しすぎてVM上のOSレベルでエラーが出る事がある。

※再現できる環境等の情報があればぜひご一報ください。

関連事項:
FreeBSDイニシエータの新しい版が出ています。
ftp://ftp.cs.huji.ac.il/users/danny/freebsd/iscsi-2.2.3.tar.gz

 


ESXi4.0 データストア


Ubuntu9.10 ディスク管理