FreeBSD 官方文档: https://www.freebsd.org/doc/handbook/network-iscsi.html
以下例子为本机同时做 Target 和 Initiator
# zfs create -o compress=lz4 -o volblocksize=64k -s -V 10G tank/iscsi
auth-group ag0 {
chap user 1234567890123456
}
portal-group pg0 {
discovery-auth-group no-authentication
listen 0.0.0.0
listen [::]
}
target iqn.2016-10.org.hshh:target0 {
auth-group ag0
portal-group pg0
lun 0 {
path /dev/zvol/tank/iscsi
}
}
t0 {
TargetAddress = 127.0.0.1
TargetName = iqn.2016-10.org.hshh:target0
AuthMethod = CHAP
chapIName = user
chapSecret = 1234567890123456
}
ctld_enable="YES" iscsid_enable="YES" iscsictl_enable="YES" iscsictl_flags="-Aa"
# service ctld start
# service iscsid start # service iscsictl start
# camcontrol devlist # gpart create -s gpt da6 # gpart add -t freebsd-ufs da6 # newfs -j da6p1 # mount /dev/da6p1 /mnt
# umount /mnt # iscsictl -L # iscsictl -Ra # service iscsid stop # service ctld stop # kldstat
# umount /mnt # iscsictl -Ra # service iscsid stop # service ctld stop # zfs set volsize=20G tank/iscsi # service ctld start # service iscsid start # iscsictl -Aa # gpart show da6 # gpart recover da6 # gpart resize -i 1 da6 # growfs /dev/da6p1 # fsck -y /dev/da6p1