intel-iscsiでのISCSI Target
2006年10月 9日(月) 13:24 JST
閲覧数 6,339
以前iSCSI Enterprise Targetを使って、Linux機に接続されたDDS3 Tapeドライブを外部へ公開しようとしていた訳だが、うまくいかず、今回intel-iscsiで行ってみました。
intel-iscsiを使った結果は、またもやうまく動作せず。
ソースを見てみると、disk.cの273行目
で、関数内に飛んで
で、実際に戻ってきている値は
また、以下の3番目の引数が「10」となっているが、2番目の引数の長さは「9」これっていいのか?
intel-iscsiを使った結果は、またもやうまく動作せず。
udisk -d /dev/sg0 LUN 0: Vendor HP Model C1537A Rev L005 READ_CAPACITY failed結果は「READ_CAPACITY」ではじかれました。
ソースを見てみると、disk.cの273行目
if (sg_cmd_ioctl(fid, read_capacity, 10, data, 8, SG_DXFER_FROM_DEV, 10000)!=0) { fprintf(stderr, "READ_CAPACITY failedn"); return -1; }で、エラーが出ている。
で、関数内に飛んで
ioctl(fid, SG_IO, &sg_hdr)で、取得してくる「sg_hdr」内の「sg_hdr.status」と「sg_hdr.resid」が0以外なのが原因。
で、実際に戻ってきている値は
status: 2 masked_status: 1 msg_status: 0 sb_len_wr: 22 host_status: 0 driver_status: 8 resid: 8 duration: 8 info: 1で、residの値がどうやら、sg_cmd_ioctl()の5番目の引数の値がそのまま出ている様だが。
また、以下の3番目の引数が「10」となっているが、2番目の引数の長さは「9」これっていいのか?
sg_cmd_ioctl(fid, read_capacity, 10, data, 8, SG_DXFER_FROM_DEV, 10000)って所でよくわからんので、終了。