LNUIX-ISCSI服务的原理及配置
网络存储
基于IP协议的SCSI Small Computer System Interface
小型计算机系统接口(英语:Small Computer System Interface; 简写:SCSI),一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。 SCSI是一种智能的通用接口标准。
SCSI接口具有应用范围广、多任务、带宽大、CPU占用率低,以及热插拔等优点。
iSCSI(互联网小型计算机系统接口)是一种在TCP/IP上进行数据块传输的标准。它是由Cisco和IBM两家发起的,并且得到了各大存储厂商的大力支持。iSCSI可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行快速的数据存取备份操作。
工作流程:
iSCSI系统由SCSI适配器发送一个SCSI命令。
命令封装到TCP/IP包中并送入到以太网络。
接收方从TCP/IP包中抽取SCSI命令并执行相关操作。
把返回的SCSI命令和数据封装到TCP/IP包中,将它们发回到发送方。
系统提取出数据或命令,并把它们传回SCSI子系统。
它负责与iSCSI存储设备进行通信。
Target 用于存储数据的iSCSI磁盘阵列或者具有iSCSI功能的设备都可以被称为“iSCSI Target”
通过iscsi实现存储共享,创建IQN用于识别启动器和目标,然后建立tpg共享存储组,设置相应的访问控制权限,然后在共享存储组添加lun逻辑单元(存储设备),然后建立实现共享portals入口(ip port)
概念:
IQN:iSCSI限定名称,全球唯一名称,用于以强制命名格式来识别启动器和目标。
IQN格式如下:
iqn.YYYY-MM.com.reversed.domain[:optional_string]
iqn:表示此名称使用域为标识符。
YYYY-MM:表示拥有域名的年月时间。
com.reversed.domain:拥有此iSCSI组织的逆向域名
:optional_string:以冒号为前缀的可选字符串,全球唯一,由域所有者分配,其中可包含冒号为分割符的组织边界
TPG:共享存储组,某个特定iSCSI目标要侦听的接口IP地址和TCP端口的集合。可以将目标配置添加到TPG以协调多个LUN的设置。
ACL:访问权限控制列表,一种使用节点IQN(通常是启动器名称)来验证启动器的访问权限的访问限制
LUN:逻辑单元号,带有编号的块设备,连接到目标且通过目标来使用。可以有一个或多个LUN连接到单个目标,但通常一个目标提供一个LUN
portals入口:目标或启动器上用于建立的IP地址和端口。
目标端的配置使用targetcli命令
配置示例:
先添加一个5G的磁盘
然后建一个分区
Partprobe 同步磁盘
Mount /dev/sr0 /mnt挂载
Yum install target -y装包
systemctl stop firewalld 关闭防火墙
setenforce 0 关闭selinux
targetcli 查看基本信息
/> ls
o- / … […]
o- backstores … […] 后备存储
| o- block … [Storage Objects: 0] 块设备
| o- fileio … [Storage Objects: 0] 文件存储
| o- pscsi … [Storage Objects: 0] 物理scsi
| o- ramdisk … [Storage Objects: 0] 闪存
o- iscsi … [Targets: 0]
o- loopback … [Targets: 0]
进入block通过两次create创建,两个分别将sdb sda4 共享出去
#创建sda4分区为lun0
/backstores/block> create dev=/dev/sda4 name=lun0
#创建磁盘/dev/sdb为lun1
/backstores/block> create dev=/dev/sdb name=lun1
/backstores/block>ls 进行查看
自定义ip和端口,需要在创建target之前关闭自动创建portal功能
/iscsi>set group=global auto_add_default_portal=false
/iscsi> create 创建两次
属性认证关闭 演示模式写保护关闭 生成节点acl 缓存动态acl
/iscsi/iqn.20…f1e3c10f/tpg1> set attribute authentication=0 demo_mode_write_protect=0 generate_node_acls=1 cache_dynamic_acls=1
添加luns
添加lun0到第一个iqn /iscsi/iqn.20…d6d/tpg1/luns> create
/backstores/block/lun0
添加lun1到第二个iqn
分别配置端口号 第一个为3260,第二个为3261
/iscsi/iqn.20…/tpg1/portals> create ip_address=192.168.13.133 ip_port=3260
退出,重启服务
检测,由于我的win10系统原因,我在另一台虚拟机上测试
记得关闭防火墙!不然挂载不上,建议永久关闭防火墙,后面可进行开机自动挂载
Systemcal stop firewalld
安装[[email protected] ~]# yum install iscsi-initiator-utils
挂载
Iscsiadm—modenode–targetnameiqn.2003-01.org.linux-iscsi.localhost.x8664:sn.e813bc271f6f --portal 192.168.13.133:3261 –login
查看uid,添加到开机自动挂载
需注意必须添加_netdev,不然重启之后ip改变会报错
重启测试端查看挂载