SCSI安装配置

ISCSI简介

    ISCSI技术是由IBM公司研究开发供硬件设备使用的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议。iSCSI是基于TCP/IP协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN使得SCSI协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。


centos7 iscsi服务 多路径 centos7配置iscsi_iscsi

    ISCSI分为服务端和客户端,服务端需要安装scsi target用来共享存储设备,客户端需要安装iscsi initiator用来连接target端,将target端共享的设备挂载到本地,可以对其进行分区,格式化等操作。


centos7 iscsi服务 多路径 centos7配置iscsi_centos7 iscsi服务 多路径_02

ISCSI协议工作原理

    ISCSI协议的工作过程:当iSCSI主机发起数据读写操作后,操作系统会生成一个SCSI指令集,然后该SCSI指令集在iSCSI initiator端被封装成iSCSI消息包,并通过TCP/IP网络传输到存储区域,当存储区域的iSCSI target收到iSCSI消息包时会将其解开,读取其中的SCSI指令,然后再将其SCSI指令传送给SCSI设备执行其指令。当SCSI指令被执行后,返回的数据经过SCSI设备传送给iSCSI target时被封装为iSCSI的响应PDU,然后再通过TCP/IP网络传输给iSCSI initiator端,iSCSI initiator解开其iSCSI PDU包,读取其中的SCSI响应内容,并将其提交给操作系统进行处理,然后操作系统在将其处理后的内容返回给应用程序。

ISCSI优势

    1.ISCSI内置了多路径能力,可提供更多的高级负载均衡算法,在多条服务器和阵列端存储路径上智能化地平衡存储流量。

    2.从网络安全的角度看,iSCSI也有一定优势,除了支持的源IP安全限制以外,iSCSI还内置了对双向挑战握手认证协议(CHAP)的支持,该协议可防止未经认证的服务器连接存储资源,允许服务器去验证他们准备连接的存储阵列是否经过了认证。

    3.构建ISCSI存储网络,除了存储设备外,交换机、线缆、接口卡都是标准的以太网配件,价格相对来说比较低廉。同时,ISCSI还可以在现有的网络上直接安装,并不需要更改企业的网络体系,这样可以最大程度地节约投入。

    4.扩充性强:对于已经构建的ISCS I存储网络来说,增加ISCSI存储设备和服务器都将变得简单且无需改变网络的体系结构。

ISCSI劣势

    1.TCP/IP协议非常复杂并且占用CPU资源过多。使用iSCSI,大部分数据处理(TCP和iSCSI)都在软件中执行,这比完全在硬件中处理的光纤通道慢得多。将每个SCSI命令映射到等价iSCSI事务所带来的开销过大。

    2.存储阵列一般不会去管它存储的内容是什么,它只知道分配块集合给需要访问的客户,内容可视性差。

    3.用块存储协议的系统无法实现同步复制,地理分布不同的存储系统中存储层不具备将每个虚拟机视作单独存储资源的能力,不可以单独对其进行删除和故障处理。

环境准备

存储服务端和客户端保持在同一网段并能相互ping通,安装时保持外网通畅。

资料参考:

禁用防火墙设置

查看状态:# systemctl status firewalld或者 firewall-cmd--state

停止:# systemctl disable firewalld

禁用:# systemctl stop firewalld

存储服务器端安装配置

步骤一:安装target

# yum -y install targetcli

步骤二:启动target服务

# systemctl start target

步骤三:设置开机启动服务

# systemctl enable target

步骤四:如防火墙未关闭则设置防火墙运行3206端口,关闭则不用执行此步骤

# firewall-cmd--permanent --add-port=3260/tcp

# firewall-cmd-reload

步骤五:新建分区

注意:(/dev/sdb1)第二块硬盘(可自定义任何磁盘),fdisk -l查看磁盘信息,分区大小可自定义如在Last扇区后输入【+7G】表示该分区分配大小为7G,注意不要格式化分区。

# fdisk /dev/sdb


centos7 iscsi服务 多路径 centos7配置iscsi_centos_03

步骤六:运行targetcli进入交互模式

# targetcli

步骤七:建立一个块存储

注意:server1.disk(名称server1可自定义),/dev/sdb1为上面新建的分区名称。

/> /backstores/blockcreate server1.disk /dev/sdb1

步骤八:配置ISCSI Target命名

注意:命名在同一子网内确保是唯一的,命名格式为:iqn.yyyy-mm.<主机名反写>:自定义名称(自定义名称内不能有下划线)

/> /iscsi createiqn.2017-03.com.example:disk1

步骤九:创建ACL允许ISCSI客户机连接

注意:iqn.2017-03.com.example:client1为客户机ISCSI名称。

/>/iscsi/iqn.2017-03.com.example:disk1/tpg1/aclscreate iqn.2017-03.com.example:client1

步骤十:创建lun(target块设备的逻辑单元)

/>/iscsi/iqn.2017-03.com.example:disk1/tpg1/lunscreate /backstores/block/server1.disk

步骤十一:配置验证用户名和密码

/>cd/iscsi/iqn.2017-03.com.example:disk1/tpg1/acls/iqn.2017-03.com.example:client1

/>set auth userid=username

/>set auth password=password

步骤十二:配置完成后查看配置信息,并退出。

/>cd /

/>ls

/>exit


centos7 iscsi服务 多路径 centos7配置iscsi_IP_04

步骤十三:查看target监听端口3260

# ps -ef|grep 3260

ISCSI Initiator安装配置

步骤一:安装ISCSI Initiator

# yum -y install iscsi-initiator-utils

步骤二:配置ISCSI Initiator名称

注意:此处InitiatorName必须与服务端配置的ACL允许ISCSI客户机连接的名称一致。

# vi /etc/iscsi/initiatorname.iscsi

步骤三:修改ISCSI Initiator配置文件

注意:node.session.auth.username为存储服务端set auth userid=username配置的username,node.session.auth.password= password为存储服务器端set auth password=password配置的password。

# vi /etc/iscsi/iscsid.conf

步骤四:查找ISCSI设备

注意:192.168.**.**为存储服务端的IP地址

# iscsiadm -m discovery -t sendtargets -p 192.168.**.**

步骤五:连接ISCSI设备

# iscsiadm -m node --login

步骤六:查看系统磁盘信息

下图标记处为ISCSI挂载的网络磁盘,大小7G。

# fdisk -l


centos7 iscsi服务 多路径 centos7配置iscsi_centos7 iscsi服务 多路径_05

步骤七:把磁盘挂载到指定目录

将sdb1分区挂载到/mnt/iscsi目录,使用df -hT命令可查看到/dev/sdb1已经挂载上并显示其容量信息。

# mount /dev/sdb1 /mnt/iscsi

步骤八:设置开机自动连接ISCSI设备

注意:iqn.2017-03.com.example:disk1为存储服务端ISCSI名称,192.168.**.**:3260为存储服务端IP及端口号。

# iscsiadm -m node -T iqn.2017-03.com.example:disk1 -p192.168.**.**:3260 -o update -n node.startup -v automatic

步骤九:设置开机挂载网络磁盘

开机挂载:采用写入fstab方式开启启动挂载磁盘

获取磁盘UUID:# blkid /dev/sdb1

编辑fstab:# vi /etc/fstab

添加配置:UUID=9f122014-071a-4416-b40f-ece882285b2b    /mnt/iscsi    ext4   defaults,_netdev   0 0

说明:

UUID=ba7925cc-9bfb-4238-984d-999e18d592e8:磁盘UUID,代表磁盘。   

/mnt/iscs:代表挂载路径,根据实际灵活变动。   

ext4:代表文件系统,根据实际灵活变动。   

_netdev:代表该挂载的磁盘分区为网络磁盘分区。