FreeBSD ctl
Solaris系のCOMSTARやLinuxのLIOみたいなscsiのフレームワーク
10.0では、iscsi targetが実装された模様。
iSER (iSCSI over RDMA)
iSERも使用可能になる予定。(ソース追っかけた所、まだ実装中みたい)
コンパイルのオプションで「ICL_RDMA」と「ICL_KERNEL_PROXY」
の二つが有効にならないと、RDMAの使用が出来ない。
「sys/modules/iscsi/Makefile」と「sys/modules/ctl/Makefile」で、コメントとして定義してある。
「sys/modules/ctl/Makefile」で、「ICL_KERNEL_PROXY」を有効にしてコンパイルすると、
エラーになりコンパイル不可。
また、「ICL_RDMA」で定義してあるファイル「icl_rdma.c」は実際には存在しない為、コンパイル不可。
(2013/11/24時点)
kernelモードiscsiデーモン
rc.confへ
ctld_enable="YES"
で、デーモンが動作。
ctl.conf設定方法
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-iscsi.html
を見ながら設定。
portal-group pg0 { discovery-auth-group no-authentication listen 0.0.0.0 listen [::] } target iqn.1998-11.jp.gr.espresso:target0 { auth-group no-authentication portal-group pg0 lun 0 { path /dev/zvol/datapool/iscsi/lun0 } }
iSERの場合
ソースを読んだ限りだと、
portal-group pg0 { discovery-auth-group no-authentication listen-iser 0.0.0.0 listen-iser [::] }
になるっぽい。
ctladm
んで、実際にlun0が認識されているか確認
# ctladm devlist LUN Backend Size (Blocks) BS Serial Number Device ID 0 block 251658240 512 MYSERIAL 0 MYDEVID 0
認識されてるみたい。
optionに-vつけてみる。
root@freebsd-ib:~ # ctladm devlist -v LUN Backend Size (Blocks) BS Serial Number Device ID 0 block 251658240 512 MYSERIAL 0 MYDEVID 0 lun_type=0 num_threads=14 file=/dev/zvol/datapool/iscsi/lun0 cfiscsi_target=iqn.1998-11.jp.gr.espresso:target0 cfiscsi_lun=0
portが認識されてるのか確認
root@freebsd-ib:~ # ctladm port -l Port Online Type Name pp vp WWNN WWPN 0 NO IOCTL CTL ioctl 0 0 0 0 1 NO INTERNAL CTL internal 0 0 0 0 2 YES ISCSI iscsi 0 0 0 0 3 NO INTERNAL ctl2cam 0 0 0x5000000897570f00 0x5000000897570f04
ctladmで名前とか色々設定変更可能。
blocksizeを4kにしたりとかWWWN付けたりとか。