步骤1:iscsi介绍
a、backstore,后端存储
对应到服务器端提供实际存储空间的设备(注意是只分过区,没有格式化过的,没有文件系统的存储设备,如没有格式化过的磁盘sdb1),需要起一个管理名称
b、target,磁盘组
是客户端的访问目标,作为一个框架,由多个lun组成
c、lun,逻辑单元
每一个lun需要关联到某一个后端存储设备,在客户端会视为一块虚拟硬盘
d、如果把iSCSI看作寄快递,可以把后端存储看作是冰箱,是实际需要快递的东西,磁盘组是一个木箱子,将冰箱放进木箱子更加安全,lun就是将冰箱和木箱子关联起来,所以实际步骤就是先建立backstore后端存储,先找到冰箱,然后创建target磁盘组,创建木箱子,最后lun将冰箱放进木箱子,使两者关联起来。
步骤2:iSCSI服务端(target端)配置
1、基本交互操作,使用targetcli建立配置
# /backstore/block create 后端存储名 实际设备路径
# /iscsi create 磁盘组的IQN名称
# /iscsi/磁盘组名/tpg1/luns create 后端存储路径
# /iscsi/磁盘组名/tpg1/scls create 客户机IQN标识
# /iscsi/磁盘组名/tpg1/portals create IP地址 端口号
2、iqn命名规范
iqn全称ISCSI Qualified Name
iqn.yyyy-mm.倒序域名:自定义标识
用来识别target磁盘组,也用来识别客户机身份
名称示例:
iqn.2016-02.com.example:server0
iqn.2016-02.com.example:desktop0
(必须以iqn开头;后面是年份和月份,中间用横杠隔开,注意月份必须是双数,如果是2021年7月,也必须得写2021-07,不然校验不通过;再后面是倒写的域名,比如域名是baidu.com,那就得倒写成com.baidu,域名部分的校验不是很严格,就算写成haha.xixi也没关系;最后是自定义标识,自己随便写)
3、开始部署
(防火墙自行配置,关掉或者区域设置为trusted或者开放3260端口)
# lsblk //这里准备了一块20GB的空闲硬盘sdb,分出10G的sdb1用于网络共享存储,注意sdb1不要进行格式化操作
# yum install targetcli
# targetcli //用targetcli配置
/> ls //查看初始配置界面,支持Tab补全
/> backstores/block create dev=/dev/sdb1 name=kylin //建立后端存储,block代表存储设备类型为块设备类型,指定存储设备sdb1,并命名为kylin,name名称自定义,可理解为创建冰箱
/> ls //查看配置变化,在后端存储backstores下面有个block块设备,名称为kylin,使用的实际设备是/dev/sdb1,后面的配置就直接用kylin代表/dev/sdb1设备
/> iscsi/ create iqn.2021-07.com.kylinos:server //创建磁盘组,注意磁盘组的名称必须符合iqn命名规则,iqn命名规则详见上面说明,另如下图可见iscsi默认使用端口为3260,可理解为创建木箱子
/> iscsi/ delete iqn.2021-07.com.kylinos:server //delete参数可以删除对于磁盘组,本步骤可跳过
/> ls //查看配置,可以看到新增的磁盘组
/> iscsi/iqn.2021-07.com.kylinos:server/tpg1/luns create /backstores/block/kylin //将磁盘组和后端存储进行关联,tpg1是指目标,后面跟luns方式,kylin指的就是/dev/sdb1,即将冰箱放进木箱子,两者建立关联
/> ls //可以看到iqn下有一个luns关联,块设备是/dev/sdb1
/> iscsi/iqn.2021-07.com.kylinos:server/tpg1/acls create iqn.2021-07.com.kylinos:client //这一步是建立acl访问控制权限,可以理解为填写快递接收人的信息,只有叫iqn.2021-07.com.kylinos:client的人才能签收这个快递,注意接收人的命名也必须符合iqn命名规范
/> ls //可以看到acls访问控制下面的客户端名称,下面的portals是自动生成的默认配置,0.0.0.0:3260代表默认监听本机的所有地址的3260端口,老版本的需要手动配置是监听本机哪个地址下的3260端口,以centos为例,centos7.5是默认无需手动配置,centos7需要手动配置该项,手动配置方法为:/iscsi/磁盘组名/tpg1/portals create IP地址 端口号,IP地址建议写0.0.0.0,代表本机所有地址,全部对外开放,客户端无论访问本机的哪个地址都可以访问到3260端口相应的服务
/> saveconfig //保存配置,其实直接exit退出系统会自动保存并退出
/> exit //退出targetcli配置
# systemctl restart target //重启target服务
# systemctl enable target //设置开机自启
步骤3:iSCSI客户端(initiator端)
1、安装客户端软件包
# yum repolist //刷新yum缓存
# yum install iscsi-initiator-utils -y
# vim /etc/iscsi/initiatorname.iscsi //修改客户端声称的名称,就是和服务端设置的收件人的名称对应,名称必须和服务端设置的客户端名称一致
InitiatorName=iqn.2021-07.com.kylinos:client
# systemctl restart iscsid //重启客户端服务,刷新iqn名称
# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.1.10 --discover //发现iscsi设备,后面IP为服务端IP,如果发现失败请检查防火墙配置,这一步可以理解为签收到装有冰箱的木箱子,后面还有拆箱子的步骤
# man iscsiadm //记不住的话可以使用man帮助搜索EXAMPLES可以获取命令模板
# systemctl restart iscsi //注意iscsi后面没有d,有d的是刷新iqn名称的,iscsi才是真正的客户端服务,重启完就相当于拆箱子的步骤,iscsid可以看作是iscsi的子服务
# lsblk //可以看到客户端新增磁盘sdb,10G,这个原来是没有的,是服务端iscsi共享过来的,下面客户端就可以正常的使用改存储,分区、格式化等
# systemctl enable iscsi //设为开机自启,以便每次开机都能发现共享存储