ISCSI通信原理
我们知道,ISCSI是SCSI封装TCP/IP的结果,可以实现在IP网络上运行SCSI协议,本质上是iSCSI就是用广域网仿真了一个常用的高性能本地存储总线,从而创建了一个存储局域网(SAN)。
ISCSI通信过程
一些概念:
iSCSI Client/Host:系统中的iSCSI客户端或主机(也称为iSCSI initiator),诸如服务器,连接在IP网络并对iSCSI target,发起请求以及接收响应。每一个iSCSIE主机通过唯一的IQN来识别,类似于光纤通道的WWN。要在IP网络上传递SCSI块命令,必须在iSCS主机上安装iSCSI驱动。
iSCSI Target:是接收iSCSI命令的设备。此设备可以是终端节点,如整个磁盘阵列,或是中间设备,如IP和光纤设备之间的连接桥。每一个iSCSI target通过唯一的IQN来标识,存储阵列控制器上(或桥接器上)的各端口通过一个或多个IP地址来标识。
IQN:iSCSI限定名称,全球唯一名称,用于以强制命名格式来识别启动器和目标,可以理解为ISCSI存储块的一个身份标识,类似于MAC,使用FC时则为WWN。
TPG:共享存储组,某个特定iSCSI设备要侦听的接口IP地址和TCP端口的集合。可以将目标配置添加到TPG以协调多个LUN的设置。
LUN:Logical Unit Number,即逻辑单元号,将IQN划分出不同的LUN,最终将LUN分配给主机挂载使用,每个LUN拥有一个寻址LUN ID,作用是扩充Target ID,磁盘阵列一个LUN对应一个LV,通过LUN灵活的分配存储空间给前端主机。
ACL:访问权限控制列表,一种使用节点IQN(通常是启动器名称)来验证启动器的访问权限的访问限制。
Portals入口:目标或启动器上用于建立的IP地址和端口,默认为3260。
如图,前端服务器为ISCSI客户端(ISCSI initiator),通过以太网交换机建立逻辑SAN通道,连接到后端SAN存储,即ISCSI Target,在Target下,需要对存储做IQN标记,再配置TPG,在TPG组下,需要创建LUN、ACL、Portals,其中LUN为前端主机提供存储服务,Portals指定与LUN建立连接的IP和端口,ACL为访问存储块的控制策略。
操作示例
1.使用一台CentOS 7.6主机,挂载2块300G云盘:
2.进入主机,查看挂载成功:
[root@ localhost ~] # lsscsi
[0:0:1:0] cd/dvd QEMU QEMU DVD-ROM 2.5+ /dev/sr0
[2:0:0:1] disk QEMU QEMU HARDDISK 2.5+ /dev/sda #磁盘1
[2:0:0:3] disk QEMU QEMU HARDDISK 2.5+ /dev/sdb #磁盘2
3.使用targetcli配置iSCSI存储
#进入targetcli
[root@ localhost ~] # systemctl enable target
[root@ localhost ~] # systemctl start target
[root@ localhost ~] # targetcli
磁盘1 sda
#添加块设备sda
/> /backstores/block create blksda /dev/sda
Created block storage object blksda using /dev/sda.
#create为块设备创建iqn
/> cd /iscsi
/ iscsi> create
Created target iqn.2003-01.org.linux-iscsi.shareblock.x8664:sn.4ffd6721fa56
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
#配置访问控制
/ iscsi> cd iqn.2003-01.org.linux-iscsi.shareblock.x8664:sn.4ffd6721fa56/tpg1
/iscsi/iqn.20...fd6721fa56/tpg1> set attribute authentication=0 demo_mode_write_protect=0 generate_node_acls=1 cache_dynamic_acls=1
#四个选项分别是 关闭认证 关闭写保护 开启自动生成节点acl 开启动态缓存acl
#创建LUN
/iscsi/iqn.20...fd6721fa56/tpg1>cd luns
/ iscsi/iqn.20...a56/tpg1/luns> create /backstores/block/blksda
Created LUN 0.
至此,磁盘1 sda配置完成,同样的步骤,配置sdb。
配置完成后ls查看配置详情:
可以看到,配置了两块ISCSI设备,两个IQN下各一个TPG,也各一个lUN,使用默认IP(此主机IP)的3260端口通信。
※:也可以修改通信配置,操作为
/ iscsi/iqn.20...a56/tpg1/luns>cd ..
/ iscsi/iqn.20...a56/tpg1>cd portals/
/ iscsi/iqn.20...a56/tpg1/portals>delete 0.0.0.0 3260
/ iscsi/iqn.20...a56/tpg1/portals>create X.X.X.X X
4.在云平台添加ISCSI存储
通过IP/端口添加后,可以正常读取到块设备。
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://tenkms.cn/archives/375
共有 0 条评论