iscsi网络共享磁盘
1.什么是iscsi???
-
. Internet SCSI,网际SCSI接口,默认端口 3260
-
一种基于C/S架构的虚拟磁盘技术
2.iscsi磁盘由什么构成???
- 1.backstore,后端存储
对应到服务端提供实际存储空间的设备,需要起一个管理名称 - 2.target,磁盘组
是客户端的访问目标,作为一个框架,由多个lun组成 - 3.lun,逻辑单元
每一个lun需要关联到某一个后端存储设备,在客户端会视为一块虚拟硬盘
3.有什么作用???
- 由服务端提供共享磁盘空间 客户端连接并当成本地磁盘使用
- iscsi磁盘共享只适用单向共享,即只能共享给一个客户端.
4.什么是IQN???
- ISCSI Qualified Name 名称规范
简写(iqn) - iqn.yyyy-mm.倒序域名:自定义标识
- 用来识别 target 磁盘组,也用来识别客户机身份
- 名称示例
iqn.2016-02.com.example:server0
iqn.2016-02.com.example:desktop0
5.服务端如何实现共享磁盘???
-
分区
在磁盘准备一个共享分区
大小看需求 -
装包
下载软件包 : targetlci -
配置 : targetcli
配置内容:
①建立后端储存
②建立target磁盘组
③进行lun关联
④设置验证的方式:设置客户端声称的名字,符合iqn名称规范
⑤设置本机监听的IP地址与端口(本机在那个IP地址提供服务) -
起服务 : target
[root@server0 ~]# lsblk ##查看磁盘
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb 253:16 0 10G 0 disk
[root@server0 ~]# fdisk /dev/vdb ##进入分区
命令(输入 m 获取帮助): n ##开始分区
targetcli.noarch 0:2.1.fb34-1.el7
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+5G ##设置分区大小为5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):w ##保存并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@server0 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb 253:16 0 10G 0 disk
└─vdb1 253:17 0 5G 0 part ##共享磁盘空间
[root@server0 ~]# yum -y install targetcli ##下载软件包
已安装:
targetcli.noarch 0:2.1.fb34-1.el7
作为依赖被安装:
pyparsing.noarch 0:1.5.6-9.el7 python-configshell.noarch 1:1.1.fb11-3.el7
python-kmod.x86_64 0:0.9-4.el7 python-rtslib.noarch 0:2.1.fb46-1.el7
python-urwid.x86_64 0:1.1.1-3.el7
完毕!
[root@server0 ~]# rpm -q targetcli ##查看软件包
targetcli-2.1.fb34-1.el7.noarch
[root@server0 ~]# targetcli 进入配置
/> backstores/block create name=nsd dev=/dev/vdb1 ## name= 和 dev= 可以不写,名称自定义
/> iscsi/ create iqn.2019-11.com.example:server ##创建iqn
/> iscsi/iqn.2019-11.com.example:server/tpg1/luns create /backstores/block/nsd ##绑定后端存储
/> iscsi/iqn.2019-11.com.example:server/tpg1/acls create iqn.2019-11.com.example:desktop ##设置客户端iqn
/> iscsi/iqn.2019-11.com.example:server/tpg1/portals create 0.0.0.0 端口号 ##开放本机所有地址
/> saveconfig ###保存配置
/> exit ##退出
[root@server0 ~]# systemctl restart target #起服务
[root@server0 ~]# systemctl enable target #设置开机自启动
6.客户端如何发现服务端的共享磁盘
-
装包
下载软件包 : iscsi-initiator-utils -
修改配置文件, 设置客户端iqn名字
/etc/iscsi/initiatorname.iscsi -
起服务 : iscsid
-
发现共享磁盘
-
加载共享存储, iscsi(主服务)-----> iscsid(子服务)
[root@desktop0 ~]# yum -y install iscsi-initiator-utils ##下载软件包
[root@desktop0 ~]# rpm -q iscsi-initiator-utils ##查看软件包
iscsi-initiator-utils-6.2.0.873-21.el7.x86_64
[root@desktop0 ~]# vim /etc/iscsi/initiatorname.iscsi ##修改配置文件
InitiatorName=iqn.2019-11.com.example:desktop ##iqn要与服务端设置的客户端iqn一致
[root@desktop0 ~]# systemctl restart iscsid ##起服务 (子服务)
[root@desktop0 ~]# man iscsiadm ##查找man帮助/EXAMPLE ##找到下面命令修改IP地址
[root@desktop0 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 172.25.0.11 --discover ###IP地址改为服务端的IP地址 (发现共享磁盘)
172.25.0.11:3260,1 iqn.2019-06.com.example:server
[root@desktop0 ~]# systemctl restart iscsi ##起服务 (主服务)
[root@desktop0 ~]# lsblk ##查看共享磁盘
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 5G 0 disk
#故障分析及排除:
- 请保证服务端与客户端的防火墙模式为 : trusted
- 如果起服务(子服务)报以下信息:
Warning: Unit file of iscsid.service changed on
disk, ‘systemctl daemon-reload’ recommended.
则:
[root@desktop0 ~]# systemctl daemon-reload
[root@desktop0 ~]# systemctl restart iscsid - 如果发现不了磁盘
请检查配置文件 /etc/iscsi/initiatorname.iscsi
是否与书写正确
是否与服务端设置的客户端iqn一致 - 如果lsblk 查看不到共享磁盘:
则:
[root@desktop0 ~]# partprobe
[root@desktop0 ~]# reboot