一、简介
1.iSCSI
全称: Internet Small Computer System Interface,它是通过 TCP/IP 网络传 输 SCSI 指令的协议。 iSCSI 协议参照 SAM-3( SCSI Architecture Model – 3)制订。在 SAM-3 的体系结构, iSCSI 属于传输层协议,在 TCP/IP 模型中属于应用层协议。
iSCSI 使用客户/服务器模型。客户端称为 initiator,服务器端称为 target。
Initiator:通常指用户主机系统,用户产生 SCSI 请求,并将 SCSI 命令和数据封装到 TCP/IP 包中发送到 IP 网络中。
Target:通常存在于存储设备上,用于转换 TCP/IP 包中的 SCSI 命令和数据。
2、iSCSI 名字规范
iSCSI 协议中, initiator 和 target 是通过名字进行通信的,因此,每一个 iSCSI 节 点(即 initiator)必须拥有一个 iSCSI 名字。
iSCSI 协议定义了 3 类名称结构:
>>iqn( iSCSI Qualified Name) 格式是:“ iqn” +“年月” +“ .” +“域名的颠倒” +“ :” +“设备的具体 名称”,之所以颠倒域名是为了避免可能的冲突。
举例: iqn.2008-07.com.h3c.rd:test
>>eui( Extend Unique Identifier) eui 来源与 IEEE 中的 EUI,格式是: “ eui” + “ 64bits 的唯一标识( 16 个字母)”。 64bits 中,前 24bits( 6 个字母)是公司的唯一标识,后面 40bits ( 10 个字母)是设备的标识。
举例: eui.acde48234667abcd
>>naa( Network Address Authority) 由于 SAS 协议和 FC 协议都支持 naa, iSCSI 协议定义也支持这种名字结构。naa 的格式: “ naa” +“ 64bits( 16 个字母)或者 128bits( 32 个字母) 的唯一标识”。
举例: naa. 52004567BA64678D
naa. 62004567BA64678D0123456789ABCDEF
在实际使用过程中, iSCSI 节点名称可以不这么复杂。
iSCSI发起端:需要访问原始SAN存储的客户端
iSCSI目标:从iSCSI服务器提供的远程硬盘磁盘,或“目标门户”
iSCSI目标门户:通过网络向发起端提供目标的服务器
IQN:“iSCSI限定名称”。每个发起端和目标需要唯一名称进行标识,最好的做法是使用一个在Internet上可能独一无二的名称。
二、搭建iSCSI
1、实验环境
- 服务端修改主机名
- 设置IP地址为192.168.0.35
- 在搭建iSCSI之前,先把SELinux禁用;关闭防火墙并清空所有规则。并配置好yum源
2、建立所需要的新分区
fdisk /dev/sdc
partproble
3.安装iscsi服务及配置
[root@initiator ~]# yum install targetcli -y #安装管理工具iscsi—target
[root@initiator ~]# systemctl start target #启动服务
[root@initiator ~]# systemctl enable target #设置开机自启动
[root@initiator ~]# targetcli #通过管理工具iscsi—target进行交互式的管理
ls列出列表信息
/> /backstores/block create runningfree /dev/sdb1 #创建块设备
/> /iscsi create iqn.2017-08.com.exmple.halo #生成iqn串
/> /iscsi/iqn.2017-08.com.exmple.halo/tpg1/luns create /backstores/block/runningfree #创建luns
/> /iscsi/iqn.2017-08.com.exmple.halo/tpg1/acls create iqn.2017-08.com.exmple.halo-key #设置acl规则
/> /iscsi/iqn.2017-08.com.exmple.halo/tpg1/portals create 192.168.0.35 #设置监听IP
/> /iscsi/iqn.2017-08.com.exmple.halo/tpg1/portals delete 0.0.0.0 3260 #删除默认监听地址
/> /iscsi/iqn.2017-08.com.exmple.halo/tpg1/portals create 192.168.0.35 #设置监听IP
在设置监听IP时,默认是监听0.0.0.0(所有地址),不删除创建时会有报错(Could not create NetworkPortal in configFS),图中黄线部分
创建完规则后保存规则并退出
/> saveconfig #保存规则
/> exit #退出
4.客户端挂载配置
1.软件安装与配置修改
需要先安装一个软件 iscsi-initiator-utils
[root@target ~]# yum -y install iscsi-initiator-utils
安装完该包,需要修改 /etc/iscsi/initiatorname.iscsi 中的iqn 串为target端中acl 允许的串:
[root@target ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2017-08.com.exmple.halo-key
2.discover发现target设备
[root@target ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.35
1)因为服务器的防火墙和SELinux没有关闭
2)在服务器上关闭了之后,在继续执行此命令。
[root@target ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.35
192.168.0.35:3260,1 iqn.2017-08.com.exmple.halo
3.挂载设备
iscsiadm -m node -T iqn.2017-08.com.exmple.halo -p 192.168.0.35 -l
此时,可以使用iSCSI磁盘,就好像它是本地连接硬盘驱动器。
可以挂载现有文件系统。如果磁盘未格式化,可以通过fdisk进行分区,例如,通过文件系统格式化分区或作为LVM物理卷。
也可在/etc/fstab中永久挂载文件系统
4.查看dev下的设备
这里多出了sdb设备,说明已从服务器上链接。
5.格式化及挂载访问
fdisk、mkfs、mount操作,与普通设备无异
fdisk -l /dev/sdb
mkfs.xfs /dev/sdb
mount /dev/sdb /mnt
6.这里已基本完成,挂载完成后,可以往磁盘里面写文件了
- 注销和删除的操作
- 客户端:
umount /mnt/ ##卸载磁盘
iscsiadm -m node -T iqn.2017-08.com.example:rdisks.demo -p 192.168.0.35 -u ##注销目标,暂时断开连接
iscsiadm -m node -T iqn.2017-08.com.example:rdisks.demo -p 192.168.0.35 -o delete ##删除iSCSI目标的本地记录,以永久断开连接
- 服务端:
targetcli
clearconfig confirm=True ##清除iscsi的所有配置信息