iSCSI网络共享存储原理及搭建

您所在的位置:网站首页 网络存储服务器搭建 iSCSI网络共享存储原理及搭建

iSCSI网络共享存储原理及搭建

2024-07-15 15:54| 来源: 网络整理| 查看: 265

目录 前言一、相关术语介绍1、iSCSI2、SCSI3、FC4、DAS5、NAS6、SAN 二、基于IP SAN的网络存储iSCSI的概念及原理1、iSCSI是什么2、iSCSI的组成3、iSCSI的原理4、iSCSI的工作方式5、iqn标签 三、使用命令操作搭建临时iSCSI存储服务器1、服务器作为存储端先添加新硬盘,我们使用软Ride来模拟;2、服务器端LVM逻辑卷整合;3、安装SCSI服务器端(Target 端)创建 iqn 标签;4、添加LUN到IQN 标签,绑定IQN 标签到存储设备;5、客户端配置6、客户端使用块设备;7、测试;8、客户端解除iscsi使用的步骤;9、客户端再次使用;10、通过网络给客户端挂载的块设备动态扩容的方案; 四、iSCSI的持久化1、还原2台主机到开始配置前的状态,全部重新来;2、安装服务器端软件;3、服务器端编辑配置文件;4、ISCSI 客户端;5、客户端测试。

前言

在存储的世界里,有各种各样的名词和术语,常见的有iSCSI、SCSI、FC、DAS、NAS、SAN等。这里笔者重点介绍与iSCSI相关的术语和知识。

一、相关术语介绍 1、iSCSI

iSCSI( Internet Small Computer System Interface )Internet小型计算机系统接口,又称为 IP-SAN,是一种基于TCP/IP的协议,iscsi可以实现在IP网络上运行SCSI协议。

2、SCSI

SCSI(Small Computer System Interface)是块数据传输协议,在存储行业广泛应用,是存储设备最基本的标准协议。SCSI结构基于客户/服务器模式,其通常应用环境是:设备互相靠近,并且这些设备由SCSI总线连接。iSCSI的主要功能是在TCP/IP网络上的主机系统(启动器initiator)和存储设备(目标器target)之间进行大量数据的封装和可靠传输过程。此外,iSCSI提供了在IP网络封装SCSI命令,且运行在TCP上。SCSI作为输入/输出接口,主要用于硬盘、光盘、磁带机、扫描仪、打印机等设备。SCSI作为输入/输出接口,主要用于硬盘、光盘、磁带机、扫描仪、打印机等设备。

3、FC

FC是光纤通道(Fibre Channel)的简称,是一种适合于千兆数据传输的、成熟而安全的解决方案。与传统的SCSI技术相比,FC提供更高的数据传输速率,更远的传输距离,更多的设备连接支持,更稳定的性能,更简易的安装。

4、DAS

DAS是直连式存储(Direct-Attached Storage)的简称,是指将存储设备通过SCSI接口或光纤通道直接连接到一台计算机上。当服务器在地理上比较分散,很难通过远程进行互连时,DAS是比较好的解决方案。但是这种式存储只能通过与之连接的主机进行访问,不能实现数据与其他主机的共享,同时,DAS会占用服务器操作系统资源,例如CPU资源、IO资源等,并且数据量越大,占用操作系统资源就越严重。

5、NAS

网络接入存储(Network-Attached Storage)简称NAS,它通过网络交换机连接存储系统和服务器,建立专门用于数据存储的私有网络,用户通过TCP/IP协议访问数据,采用业界标准的文件共享协议如NFS、HTTP、CIFS来实现基于文件级的数据共享。NAS存储使文件共享访问变得更方便和快捷,并且能很容易地增加存储容量。通过专业化的文件服务器与存储技术相结合,NAS为那些需要共享大量文件数据的企业提供了一个高效的、高可靠的、高性价比的解决方案。但是NAS也有一定的局限性,它会受到网络带宽和网络拥堵的影响,在一定程度上限制了NAS的网络传输能力。

6、SAN

存储区域网络(Storage Area Network)简称SAN,它是一种通过光纤交换机、光纤路由器、光纤集线器等设备将磁盘阵列、磁带等存储设备与相关服务器连接起来的高速专用子网。 SAN由3个部分组成,分别是连接设备(如路由器、光纤交换机和Hub)、接口(如SCSI、FC)、通信协议(如IP和SCSI)。这3个部分再加上存储设备和服务器就构成了一个SAN系统。SAN捉供了一个灵活的、高性能的和高扩展性的存储网络环境,它可以更加有效地传输海量的数据块。由于采用了光纤接口,因此SAN还具有更高的带宽,同时,SAN也使统一管理和集中控制实现简化。现在SAN已经广泛应用于ISP和银行等,随着用户业务量的增大,SAN的应用前景将越来越光明。

二、基于IP SAN的网络存储iSCSI的概念及原理 1、iSCSI是什么

iSCSI,即Internet SCSI,是IETF制订的一项标准,用于将SCSI数据块映射为以太网数据包。从根本上说,它是一种基于IP Storage理论的新型存储技术,该技术将存储行业广泛应用的SCSI接口技术与IP网络技术相结合,可以在IP网络上构建SAN。简单地说,iSCSI就是在IP网络上运行SCSI协议的一种网络存储技术。 对于中小企业的存储网络来说,iSCSI是个非常好的选择。首先,从技术实现上来讲,iSCSI是基于IP协议的技术标准,它允许网络在TCP/IP协议上传输SCSI命令,实现SCSI和TCP/IP协议的连接,这样用户就可以通过TCP/IP网络来构建SAN,只需要不多的投资,就可以方便、快捷地对信息和数据进行交互式传输和管理。但是,在iSCSI出现之前,构建SAN的唯一技术是利用光纤通道,这要花费很大的建设成本,一般中小企业无法承担。其次,iSCSI技术解决了传输效率、存储容量、兼容性、开放性、安全性等方面的诸多问题,在使用性能上绝对不输给商业的存储系统或光纤存储网络。 iSCSI的优势主要表现为:首先,iSCSI沿用TCP/IP协议,而TCP/IP是在网络方面最通用、最成熟的协议,且IP网络的基础建设非常完善,同时,SCSI技术是被磁盘和磁带等设备广泛采用的存储标准,这两点使iSCSI的建设费用和维护成本非常低廉;其次,iSCSI支持一般的以太网交换机而不是特殊的光纤通道交换机,从而减少了异构网络带来的麻烦;还有,iSCSI是通过IP封包传输存储命令,因此可以在整个Internet上传输数据,没有距离的限制。 总之,与传统的 SCSI 技术比较起来,iSCSI 技术有以下三个革命性的变化: 1)把原来只用于本机的 SCSI 协议透过 TCP/IP 网络发送,使连接距离可作无限的地域延伸(SCSI协议一般限制在6m以内); 2)理论上连接的服务器数量无限( 原来的 SCSI-3 的上限是 15 ); 3)由于是服务器架构,因此也可以实现在线扩容以至动态部署。

2、iSCSI的组成

一个简单的iSCSI系统大致由以下部分组成: 1)iSCSI Initiator或者iSCSI HBA 2)iSCSI Target 3)以太网交换机 4)一台或者多台服务器 iSCSI服务器用来安装iSCSI驱动程序,即安装iSCSI Initiator; Storage Router可以是以太网交换机或者路由器;i SCSI存储设备可以是iSCSI磁盘阵列,也可以是具有存储功能的PC服务器。

2.1 iSCSI Initiator iSCSI Initiator是一个安装在计算机上的软件或硬件设备,它负责与iSCSI存储设备进行通信。 iSCSI服务器与iSCSI存储设备之间的连接方式有两种: 1)第一种是基于软件的方式,即iSCSI Initiator软件。在iSCSI服务器上安装Initiator后,Initiator软件可以将以太网卡虚拟为iSCSI卡,进而接受和发送iSCSI数据报文,从而实现主机和iSCSI存储设备之间的iSCSI协议和TCP/IP协议传输功能。这种方式只需以太网卡和以太网交换机,无需其他设备,因此成本是最低的。但是iSCSI报文和TCP/IP报文转换需要消耗iSCSI服务器的一部分CPU资源,只有在低I/O和低带宽性能要求的应用环境中才能使用这种方式。 2)第二种是硬件iSCSI HBA (Host Bus Adapter)卡方式,即iSCSI Initiator硬件。这种方式需要先购买iSCSI HBA卡,然后将其安装在iSCSI服务器上,从而实现iSCSI服务器与交换机之间、iSCSI服务器与存储设备之间的高效数据传输。与第一种方式相比,硬件iSCSIHBA卡方式不需要消耗iSCSI服务器的CPU资源,同时硬件设备是专用的,所以基于硬件的iSCSI Initiator可以提供更好的数据传输和存储性能。但是,iSCSI HBA卡的价格比较昂贵,因此用户要在性能和成本之间进行权衡。 iSCSI Initiator软件一般都是免费的,Centos和RHEL对iSCSI Initiator的支持都非常不错,现在的Linux发行版本都默认自带了iSCSI Initiator。 2.2 iSCSI Target 一个可以用于存储数据的iSCSI磁盘阵列或者具有iSCSI功能的设备都可以被称为“iSCSI Target”,因为大多数操作系统都可以利用一些软件将系统转变为一个“iSCSI Target”。本章重点讲述如何构建一个PC构架的iSCSI存储系统。所谓PC构架就是选择一个普通的、性能优良的、可支持多块磁盘的PC(一般为PC服务器),再选择一款相对成熟稳定的iSCSI Target软件,将iSCSI Target软件安装在PC服务器上,使普通的PC服务器转变成一台iSCSI存储设备,并通过PC服务器的以太网卡对外提供iSCSI数据传输服务。 目前大多数iSCSI Target软件都是收费的,例如DataCorc Software的SANmelody,FalconStor Software的iSCSI Server for Windows等,这些都是Windows平台支持的。不过,也有一些Linux平台的开源iSCSI Target软件,例如iSCSI Enterprise Target,后面的内容会重点介绍这个软件。 利用iSCSI Target软件,可以将服务器的存储空间分配给客户机使用,客户机可以像使用本地硬盘一样使用iSCSI磁盘,包括对其进行分区、格式化及读写等。而且每个客户端都可以向iSCSI磁盘写数据,互不干扰,并且不会破坏存储到服务器中的数据。同时,iSCSITarget软件对用户权限控制非常灵活,支持配置文件。 我们知道,iSCSI是使用TCP/IP协议进行通信的,因此,将iSCSI两端连接起来,仅仅需要一个以太网络就可以了。由此可知,iSCSI的存储性能和这个以太网络有直接关系,所以最好在iSCSI网络中使用千兆以太网交换机,劣质的网络设备会严重影响存储系统的性能,也就是说,要为每个服务器配备高质量的千兆以太网交换机,并提供两个连接。对于iSCSI Target,应该为每个独立阵列中的两个独立端口配备交换机,最后将交换机连接起来,采用这种配置方式,即使两个交换机中的一个出现了故障,整个iSCSI存储系统仍然能够正常工作,这保证了存储系统的不间断运行。

3、iSCSI的原理

要理解iSCSI的工作原理,就必须知道iSCSI的层次结构。根据OSI模型,iSCSI的协议自顶向下一共可以分为三层。 主机应用程序==>SCSI驱动==>iSCSI驱动==>TCP/IP协议==>网卡驱动==>网卡适配控制器器==>网络==>路由或网关==>storage(存储) 在这里插入图片描述

提示:我们发现这里SCSI驱动的底层是iSCSI驱动,按照传统SCSI驱动底层应该是硬件,所以这里的SCSI驱动是假的。我们使用iSCSI软件,会发现明显提供的是一个块设备,块设备在磁盘中显示为sdb.sdc…。对于块设备我们还需要分区、格式化才能使用。

4、iSCSI的工作方式

服务(设备)端 —— target 客户(应用)端 —— initiator 我们知道iSCSI服务器端有大量的数据,每台iSCSI服务器可以存储仅1台或多台iSCSI客户机的数据。我们先将iSCSI服务器存储物理单元分割成数个逻辑单元(如LUN1、LUN2、LUN3等),分割完成后就可以将不同的逻辑单元分配给不同的用户。 在这里插入图片描述

5、iqn标签

用户的访问端点。在服务器端物理磁盘组可以通过软/硬Raid来组成单独的磁盘,磁盘会被我们分散成多个分区或逻辑卷,然后再绑定到单个的逻辑单元(LUN),换句话说一个LUN的背后是一个分区或逻辑卷,LUN大小与绑定的分区或逻辑卷大小相同。显然,能产生一个或多个LUN,所有的LUN再绑定iqn标签,一个iqn标签可以绑定一个或多个LUN。在客户端每一个LUN最后相当于被挂载到客户端对应一个块设备(sdb.sdc.sdd…)。我们想要将服务器端的块设备共享给客户端的话,首先是创建iqn标签,然后创建LUN添加进iqn标签,再绑定真实存储设备(块设备),最后将iqn标签共享给客户端。 在这里插入图片描述

三、使用命令操作搭建临时iSCSI存储服务器 1、服务器作为存储端先添加新硬盘,我们使用软Ride来模拟;

在虚拟机主页面打开虚拟机设置==>点击硬盘==>添加硬盘==>进入下一步==>选择scsi类型磁盘==>选择建磁盘内容为单个文件==>下一步直至完成即可==>启动虚拟机

2、服务器端LVM逻辑卷整合;

pvcreate /dev/sdb #通过sdb这个块设备新增物理卷 vgcreate vg0 /dev/sdb #创建卷组 vg0 lvcreate -L 1G -n lv0 vg0 #从卷组vg0中划分逻辑卷,-L指定大小,-n指定逻辑卷名称 mkfs -t ext4 /dev/vg0/lv0 #格式化逻辑卷lv0

3、安装SCSI服务器端(Target 端)创建 iqn 标签;

yum -y install scsi-target-utils service tgtd start && chkconfig tgtd on tgtadm -L iscsi -o new -m target -t 1 -T iqn.2021-01.com.vera:linux #创建 iqn 标签。tgtadm为tgtd管理工具,-L iSCSI指定驱动类型iSCSI,-o new指定操作类型为新建,-m target指定管理对象为target(服务器端), -t 1指定iqn标签的序号,-T iqn.2021-01.com.vera:linux指定iqn标签,年月和域名的反写:自定义字符串。 tgtadm -L iscsi -o show -m target #查看iqn标签绑定的LUN详情。tgtadm为tgtd管理工具,-L iSCSI指定驱动类型iSCSI,-o show指定操作类型为查看,-m target指定管理对象为target(服务器端)。

[root@localhost ~]# tgtadm -L iscsi -o new -m target -t 1 -T iqn.2021-01.com.vera:linux [root@localhost ~]# tgtadm -L iscsi -o show -m target Target 1: iqn.2021-01.com.vera:linux #iqn标签的序号与自定义的iqn标签 System information: #当前系统的信息 Driver: iscsi #驱动类型 State: ready #状态:就绪 I_T nexus information: LUN information:

#LUN标签,先前我们提到iqn标签下面需要绑定LUN,显然我们还没有绑定,这里的LUN:0实际上是控制iqn的策略,默认就会有LUN:0,所以后面我们不能使用0来给创建的LUN命名。

LUN: 0 Type: controller #类型为控制器 SCSI ID: IET 00010000 SCSI SN: beaf10 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Backing store type: null Backing store path: None Backing store flags: Account information: ACL information: 4、添加LUN到IQN 标签,绑定IQN 标签到存储设备;

tgtadm -L iscsi -o new -m logicalunit -t 1 -l 1 -b /dev/vg0/lv0 #tgtadm为tgtd管理工具,-L iSCSI指定驱动类型iSCSI,-o new指定操作类型为新建,-m logicalunit指定管理对象为 logicalunit(即LUN), -t 1指定绑定哪一个iqn标签,在第三步中生成(Target 1),-l 1自定义逻辑存储单元(LUN)的标签(0不能用,不能重复),-b /dev/vg0/lv0指定用哪一个存储设备来提供真实存储 tgtadm -L iscsi -o show -m target #查看iqn标签绑定的LUN详情

[root@localhost ~]# tgtadm -L iscsi -o new -m logicalunit -t 1 -l 1 -b /dev/vg0/lv0 [root@localhost ~]# tgtadm -L iscsi -o show -m target Target 1: iqn.2021-01.com.vera:linux System information: Driver: iscsi State: ready I_T nexus information: LUN information: LUN: 0 Type: controller .... LUN: 1 Type: disk SCSI ID: IET 00010001 SCSI SN: beaf11 Size: 1074 MB, Block size: 512 Online: Yes Removable media: No Prevent removal: No Readonly: No Backing store type: rdwr Backing store path: /dev/vg0/lv0 Backing store flags: Account information: ACL information: #ACL 访问控制

tgtadm -L iscsi -o bind -m target -t 1 -I 192.168.45.0/24 #tgtadm为tgtd管理工具,-L iSCSI指定驱动类型iSCSI,-o new指定操作类型为绑定,-m logicalunit指定管理对象为 logicalunit(即LUN), -t 1指定绑定哪一个iqn标签,-I 192.168.45.0/24 指定哪一个网段的主机可以访问,即 ACL 访问控制 tgtadm -L iscsi -o show -m target #查看iqn标签绑定的LUN详情

[root@localhost ~]# tgtadm -L iscsi -o bind -m target -t 1 -I 192.168.45.0/24 [root@localhost ~]# tgtadm -L iscsi -o show -m target Target 1: iqn.2021-01.com.vera:linux System information: Driver: iscsi State: ready I_T nexus information: LUN information: LUN: 0 Type: controller ..... LUN: 1 Type: disk SCSI ID: IET 00010001 ..... Account information: ACL information: 192.168.45.0/24 #添加访问控制 192.168.45.0/24 5、客户端配置

yum -y install iscsi-initiator-utils #安装客户端管理工具 iscsiadm -m discovery -t st -p 192.168.45.11 #扫描找到服务器端。iscsiadm指客户端命令行管理工具,-m discovery寻找,-t st开启扫描模式,-p 192.168.45.11 扫描的服务器主机地址

[root@CentOS-62 ~]# iscsiadm -m discovery -t st -p 192.168.45.11 Starting iscsid: [ OK ] 192.168.45.11:3260,1 iqn.2021-01.com.vera:linux #意味着这个服务基于TCP的3260端口,序号为1,iqn标签

iscsiadm -m node -T iqn.2021-01.com.vera:linux --login #客户端使用扫描找到的服务器端存储。iscsiadm指客户端命令行管理工具,-m node指定管理端对象为node(客户端节点),-T iqn.2016-2.com.xdl.www:lvm --login指定iqn标签和登录状态为login fdisk -l #查看添加的块设备

... Disk /dev/sdb: 1073 MB, 1073741824 bytes 34 heads, 61 sectors/track, 1011 cylinders Units = cylinders of 2074 * 512 = 1061888 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 #大小与lv0绑定的LUN1绑定的iqn标签一致

iscsiadm -m node -T iqn.2021-01.com.vera:linux --logout #不需要此块设备的时候登出即可

6、客户端使用块设备;

iscsiadm -m node -T iqn.2021-01.com.vera:linux --login #客户端使用扫描找到的服务器端存储。 fdisk /dev/sdb n==>p==>1==>(确定)==>w #给块设备分区,n创建新分区,p选择主分区,分区号为1选择所有存储,w保存分区退出 fdisk -l #查看分区 mkfs.ext4 /dev/sdb1 #选择ext4文件系统对分区格式化 partprobe /dev/sdb1 lsblk && blkid #查看分区表结构和分区文件系统类型

[root@CentOS-62 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 200M 0 part /boot ├─sda2 8:2 0 2G 0 part [SWAP] └─sda3 8:3 0 17.8G 0 part / sr0 11:0 1 2.1G 0 rom /mnt/cdrom sr1 11:1 1 3.7G 0 rom /media/cdrom sdb 8:16 0 1G 0 disk └─sdb1 8:17 0 1023.8M 0 part [root@CentOS-62 ~]# bl blkdeactivate blkdiscard blkid blkiomon blkparse blkrawverify blktrace blockdev [root@CentOS-62 ~]# blkid /dev/sda1: UUID="2710830d-280a-4ce4-ae04-679d31cdd9c6" TYPE="ext4" /dev/sda2: UUID="7a3527a4-a5d4-4efa-8e5d-bcf3d544f1d8" TYPE="swap" /dev/sda3: UUID="9a079862-9814-450d-9c83-f8bb2efec120" TYPE="ext4" /dev/sdb1: UUID="423586cd-ac86-46c6-bbaf-0f1cce1cb41e" TYPE="ext4"

mkdir /iscsimount #创建挂载目录 mount -t ext4 /dev/sdb1 /iscsimount/ #挂载 cd /iscsimount && ls #切换到挂载目录,显示块设备标记(注意ext4文件系统会显示lost+found,如果是xfs则被隐藏)

[root@CentOS-62 ~]# mount -t ext4 /dev/sdb1 /iscsimount/ [root@CentOS-62 ~]# cd /iscsimount && ls lost+found 7、测试;

date >> 1.txt && ls #可以正常创建文件并显示代表成功添加存储 思考:我们知道,iscsi协议理论可以共享给无限个用户挂载,我们是否能基于iscsi给多个Apache做网页共享了? 答案是否定的,回想一下smb协议的定义是给上层用户空间提供一个网络访问连接的接口,在samba中我们没有格式化目录就可以直接使用共享,换句话说文件是由smb协议处理的,所以我们才需要smb客户端,客户端的作用之一就是转换本地文件系统与远程文件系统的区别,所以文件系统不由本地提供。但是当前是块设备,本机要使用块设备的话,必须由本机去处理块设备的文件系统,文件系统会写入到块设备,这就类似于首次使用U盘必须写入文件系统,假设U盘写入NTFS文件系统,linux就无法识别使用。回到iscsi,虽然他可以无限挂载,但并不能在如Apache和NFS中提供存储,试想Apache可能同时需要上传(写入)和下载(读取),也可能会同时更改同一个文件,这样就会因为文件锁而导致文件损坏或丢失。 文件锁:指我们在使用文件前,首先会向当前操作系统申请对文件上锁,操作系统再打开时就会有报错提示。注意,在ext4文件系统中,使用vim打开的是文件的副本,打开之前系统会先拷贝一份源文件的swap。我们vim的其实是这个swap副本文件,修改保存后,系统会对比源文件和副本文件的区别,保存就是核对的过程,如果2个文件一致,则刷新时间戳后保留源文件,丢掉副本文件。如果2个文件不一致,则覆盖源文件。这也是为什么我们vim一个文件时,同时还能cat,就是因为vim的是副本文件,cat的是源文件。另外,ext4文件系统的文件锁只在当前宿主操作系统生效,并不会跨主机或跨网络实现网络锁或分布式锁,如果iscsi给Apache提供存储,则C1和C2用户可以在不同终端对存放在同一个Apache挂载的块设备中的同一个文件进行修改,此时不管是谁先使用文件,在另一个人使用时,由于是在另一个操作系统,文件又会被上一次锁,这就会导致源头文件最终丢失或损坏。 为了解决此问题,可以使用分布式文件锁。用户组成用户集群,通过集群去申请锁,申请后集群内的主机都能识别文件已上锁。目前支持分布式文件锁的文件系统为 GFS Global/Gluster FS(全局文件系统),它由RGMANAGER(集群资源控制器,用来监控哪个节点死亡,移除)、 CMAN(把每个节点组成一个集群)、 ISCSI(共享存储),这四部分组成大名鼎鼎的RHCS(红帽集群套件),这种方式支持同时挂载,识别集群中的单点写入,不会使文件受损。

8、客户端解除iscsi使用的步骤;

umount /iscsimount/ #解除挂载 iscsiadm -m node -T iqn.2021-01.com.vera:linux --logou #登出

9、客户端再次使用;

mount -t ext4 /dev/sdb1 /iscsimount/

10、通过网络给客户端挂载的块设备动态扩容的方案;

在服务器端新增LUN,客户端将新增的存储转化成逻辑卷,再使用逻辑卷命令完成动态扩容。 提示:生产环境中使用云服务器的时候,一般是云存储或云硬盘,如果这个云盘是基于AWS服务器的,当我们的云盘需要扩容时,可以直接购买空间在AWS空间通过鼠标点击完成扩容。但是,如果云盘是在阿里云或百度云的话,只能在单独购买一块云盘,再挂载这个新云盘,将原来的数据导过去再去掉原来的云盘,为了避免这种情况,我们的第一块云盘就应该创建成LVM,这样后续新增的也可以用LVM动态扩容。 件

四、iSCSI的持久化

大家发现上述通过命令方式搭建的iSCSI在重启服务后创建的共享存储消失了。上面主要给大家演示的是底层过程,接下来我们使用配置文件来实现持久化。

1、还原2台主机到开始配置前的状态,全部重新来; 2、安装服务器端软件;

yum -y install scsi-target-utils

3、服务器端编辑配置文件;

vim /etc/tgt/targets.conf 任意找一个区域添加下列内容:

#指定由谁来提供存储,iscsi的提供方式可以是块设备、格式化的分区、目录等,一个backing-store就是一个LUN,写多个就有多个LUN vendor_id vera #指定当前的发行商 lun 6 #LUN的id号 incominguser iscsiuser iscsiuser #访问iqn的用户和密码,去掉这行就不需要认证 initiator-address 192.168.45.0/24 #根据用户地址进行的ACL访问控制,也可以注释不使用 #一个target区域就是一个iqn,以上就是一个iqn区域

service tgtd start && chkconfig tgtd on #启动服务,设置开机自启

tgtadm --lld iscsi --mode target --op show #显示iqn列表

4、ISCSI 客户端;

yum -y install iscsi-initiator-utils vim /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2021-01.com.vera:sdb #指定客户端默认要找的iqn标签 vim /etc/iscsi/iscsid.conf

node.session.auth.authmethod = CHAP node.session.auth.username = iscsiuser node.session.auth.password = iscsiuser

#注意别注释错位置,以上选项解除注释,设定用户名密码,这样就不用输入用户名密码可以直接登录 service iscsi start && chkconfig iscsi on iscsiadm -m discovery -t st -p 192.168.45.11:3260 #第一次需要手动扫描找到iscsi存储 iscsiadm -m node -T iqn.2021-01.com.vera:sdb -p 192.168.45.11 -l #第一次手动连接 fdisk /dev/sdb #为连接的分区格式化 n==>p==>1==>(确定x2)==>w mkfs.ext4 /dev/sdb1 mkdir /iscsimount mount -t ext4 /dev/sdb1 /iscsimount/ cd /iscsimount && ls

5、客户端测试。

cd /iscsimount date >> 1.txt && ll



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3