一:网络存储技术
传统的 SCSI 小型计算机系统接口(Small Computer System Interface)技术是存储设备最基本的标准协议,但通常需要设备互相靠近并用 SCSI 总线链接,因此受到了物理环境的限制。
ISCSI 小型计算机系统接口(即 Internet Small Computer System Interface)是由 IBM 公司研究开发用于实现在IP 网络上运行 SCSI 协议的新存储技术,即能够让 SCSI 接口与以太网技术相结合,使用 iSCSI 协议基于以太网传送SCSI 命令与数据,克服了 SCSI 需要直接连接存储设备的局限性,使得我们可以跨越不同的服务器共享存储设备,并可以做到不停机状态下扩展存储容量。
二: iSCSI 存储部署要点
iSCSI 的工作方式分为服务端(target)与客户端(initiator):
服务端:即存放硬盘或 RAID 设备的存储端,目的是为客户端提供可用的存储。
客户端:使用服务端的服务器主机
逻辑单元 LUN(即 Logical Unit Number)是使用 iSCSI 协议中的重要概念,因为当客户机想要使用服务端存储设备时都必需输入对应的名称(Target ID),而一个服务端可能会同时提供多个可用的存储设备,于是便用 LUN 来详细的描述设备或对象,同时每个 LUN Device 可能代表一个硬盘或 RAID 设备,LUN 的名称由用户指定。
iqn(ISCSI Qualified Name):ISCSI名称规范
— iqn.yyy-mm.倒序域名:自定义标识
例如: iqn.2016-02.com.example:server0
用来识别target磁盘组,也用来识别客户机身份
三: 搭建服务端 主机名为:server0.example.com IP:172.25.0.22
1.设置防火墙默认区域为trusted
[root@server0 ~]# firewall-cmd --set-default-zone=trusted
2.划分新的分区 /dev/vdb 划分第一个主分区 8G,用来作为共享磁盘
[root@server0 ~]# fdisk /dev/vdb
[root@server0 ~]# lsblk
vdb 253:16 0 10G 0 disk
└─vdb1 253:17 0 8G 0 part
3.安装软件包:targetcli
[root@server0 ~]# yum -y install targetcli
4.运行targetcli可以进入交互式界面,配置iscsi共享配置
[root@server0 ~]# targetcli
交互式界面设置
4.1 创建后端存储名:nsd
/> backstores/block create name=nsd dev=/dev/vdb1
4.2 创建iqn对象:iqn.2016-02.com.example:server0 (注意格式,最后这个字段自定义)
/> iscsi/ create iqn.2016-02.com.example:server0
4.3 lun逻辑单元 (将iqn与后端存储绑定)
/> iscsi/iqn.2016-02.com.example:server0/tpg1/luns create /backstores/block/nsd
4.4 配置访问控制(客户机iqn标识:iqn.2016-02.com.example:desktop0)
/> iscsi/iqn.2016-02.com.example:server0/tpg1/acls create iqn.2016-02.com.example:desktop0
4.5 设置客户端访问本机的IP地址
/> iscsi/iqn.2018-09.com.example:server0/tpg1/portals create 172.25.0.22
/> ls
o- / .......................................................................... [...]
o- backstores ............................................................... [...]
| o- block ................................................... [Storage Objects: 1]
| | o- nsd .............................. [/dev/vdb1 (8.0GiB) write-thru activated]
| o- fileio .................................................. [Storage Objects: 0]
| o- pscsi ................................................... [Storage Objects: 0]
| o- ramdisk ................................................. [Storage Objects: 0]
o- iscsi ............................................................. [Targets: 1]
| o- iqn.2018-09.com.example:server0 .................................... [TPGs: 1]
| o- tpg1 ................................................ [no-gen-acls, no-auth]
| o- acls ........................................................... [ACLs: 1]
| | o- iqn.2018-09.com.example:desktop0 ...................... [Mapped LUNs: 1]
| | o- mapped_lun0 .................................... [lun0 block/nsd (rw)]
| o- luns ........................................................... [LUNs: 1]
| | o- lun0 ........................................... [block/nsd (/dev/vdb1)]
| o- portals ..................................................... [Portals: 1]
| o- 172.25.0.22:3260 .................................................. [OK]
o- loopback .......................................................... [Targets: 0]
/> exit 交互式配置完成
5.重启服务(服务端搭建完成)
[root@server0 ~]# systemctl restart target
[root@server0 ~]# systemctl enable target
四:配置客户端 主机名为:desktop0.example.com IP:172.25.0.33
1.安装软件包 iscsi-initiator-utils
[root@server0 ~]# yum -y install iscsi-initiator-utils
2.修改配置文件,用来指定客户端声称的名字
[root@desktop0 ~]# vim /etc/iscsi/initiatorname.iscsi
修改内容
nitiatorName=iqn.2016-02.com.example:desktop0 保存退出
3.重启服务iscsi,以更新iqn标识
[root@desktop0 ~]# systemctl restart iscsid
4.发现服务端共享服务
[root@desktop0 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 172.25.0.22 --discover
5.本机识别服务端共享
[root@desktop0 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 10G 0 disk
└─vda1 253:1 0 10G 0 part /
vdb 253:16 0 10G 0 disk
[root@desktop0 ~]# systemctl restart iscsi
[root@desktop0 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 8G 0 disk
vda 253:0 0 10G 0 disk
└─vda1 253:1 0 10G 0 part /
vdb 253:16 0 10G 0 disk
测试完成~