FreeBSD ctl


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付けたりとか。