将zvol通过iSCSI进行分享

  • iSCSI Target:提供iSCSI服务的server端;
  • iSCSI Initiator:使用iSCSI服务的client端;

1.1 创建 ZFS VOLUME

# create volumes
zfs create -V 100G sas/kvm
# list volumes
zfs list -t volume -r sas
lsblk /dev/sas/kvm

1.2 安装并配置 targetcli

安装targetcli:

# ubuntu 18.04
apt -y install targetcli-fb
# CentOS 7
systemctl start target
systemctl enable target

通过targetcli命令配置iSCSI target:

# 运行配置命令
targetcli
# 查看当前配置
cd /
ls
 
# 创建iSCSI块设备(block设备)
backstores/block create disk01 /dev/sas/kvm
# 创建iSCSI块设备(fileio设备)
backstores/fileio create disk01 /images/disk1.img 10G
 
# 创建LIO iSCSI目标
iscsi/ create iqn.2019-01.net.xbits:target1
cd iscsi/iqn.2019-01.net.xbits:target1/tpg1/
ls
 
# 创建逻辑单元(LUN)
luns/ create /backstores/block/disk01
 
portal不设置,因为默认portal就是监听的0.0.0.0
 
# 禁用ACL,auth,写保护
set attribute authentication=0
set attribute generate_node_acls=1
set attribute demo_mode_write_protect=0
 
cd /
set global auto_save_on_exit=false
exit


完整操作截图:

2.1 安装iSCSI Client Tools

# CentOS-7
yum install iscsi-initiator-utils -y
# Ubuntu 18.04
apt install open-iscsi -y

配置开机自动挂载:

# 设置自动登录(总开关)
sed -i 's/node.startup = manual/node.startup = automatic/g' /etc/iscsi/iscsid.conf
systemctl restart open-iscsi iscsid
# 可选,target record 默认就是automatic
# 可指定-T,更灵活
iscsiadm -m node -p 172.17.1.1 -o update -n node.startup -v automatic|manual

2.2 使用iSCSI Target

发现 iSCSI target 列表:

iscsiadm -m discovery -t st -p 172.17.1.1

登陆 iSCSI:

# 根据target record登录
iscsiadm -m node --login
# 指定条件登录
iscsiadm -m node -T iqn.2019-01.net.xbits:target1 -p 172.17.1.1 --login

查看iSCSI设备信息:

# 查看本机的 target record
iscsiadm -m node -n node.startup --op show | grep node.name
# 查看已连接的session
iscsiadm -m session
cat /proc/scsi/scsi
lsblk

登出 iSCSI:

# 根据target record登录
iscsiadm -m node --logout
# 登出指定的target
iscsiadm -m node -T iqn.2019-01.net.xbits:target1 -p 172.17.1.1 -u
# 删除指定 target record
iscsiadm -m node -o delete -T iqn.2019-01.net.xbits:target2

  • storage/zfs/zvol_with_iscsi.txt
  • 最后更改: 2020/08/05 03:45
  • (外部编辑)