标签:元数据 宕机 说明 internet 因特网 window ext4 逻辑 nfs服务器
目录:iSCSI(Internet Small Computer System Interface),Internet小型计算机系统接口,又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术,由IETF提出,提出,并于2003年2月11如成为正式的标准。与传统的SCSI技术比较起来,iSCSI技术有以下三个革命性的变化:1.把原来只用于本机的SCSI协议透过TCP/IP网络发送,使连接距离可作无限的地域延伸;2.连接的服务器数量无限(原来的SCSI-3的上限是15);3.由于是服务器架构,因此也可以实现在线扩容以至动态部署。
(一)了解什么是共享存储及共享存储的必要性
(1.1)现在我们想要搭建一个集群,在我们的集群中有节点node1和节点node2,我们搭建的是高可用的集群,所以如果当node1节点出现问题的时候,会快速的切换到由node2节点提供服务。此时我们遇到的问题是如何保证node1节点和node2节点数据同步且保持一致性。我们的解决方案是配置共享存储,例如我们配置一个NFS服务器,node1节点和node2节点都挂载到NFS服务器提供的目录中,用户正常是使用node1节点访问nfs服务器中的数据,当node1节点宕机时,客户再次访问时将切换为由node2节点提供服务,由于node2节点也是挂载在NFS服务器上的,所以此时客户仍然可以正常的访问自己所需的数据。此时我们就保证了在高可用集群中,节点之间数据同步性。还有例如在虚拟化的环境中做虚拟机的迁移任务时,我们也是通过配置共享存储解决问题的。
(1.2)说到共享存储,我们常见的共享存储主要有三类:1.第一种DAS即为直接附加存储,我们日常工作中将移动硬盘通过数据线和主板连接在一起的方式就是DAS的模型,这种存储扩展性很差,属于一种过时的技术;2.第二种NAS即网络区域存储,是一种文件夹级别的共享,例如Windows中的共享文件夹,其他主机也可以访问到共享的目录中,我们常见的服务如NFS、SAMBA、FTP等都属于NAS存储,NAS存储主要的问题是,当节点数很多,且访问量巨大时,很容易出现性能瓶颈,所以一般我们也会同时使用分布式文件系统缓解性能瓶颈,常见的分布式文件系统主要包括ceph、glusterfs、mfs等;3.第三种SAN即存储区域网络,是一种块级别的共享,比较常见的有FC-SAN网络和IP-SAN网络,其中iSCSI就是属于IP-SAN网络。
(1.3)现在我们有两个节点,节点A和节点B,在A和B两个主机上都有自己本地的磁盘sda,现在我们有一个后端存储,上面有硬盘sdx1和sdy1,以底层的方式共享出去,例如sdx1硬盘会通过网络传输同时映射到节点A和节点B上,并命名为sdb,此时在节点A上对sdb进行分区等操作,是可以正常的实现划分分区的,并且会将划分的结果也同步映射到节点B上的sdb上。此时不管在节点A还是节点B上的sdb中创建的元数据信息,其实是保存在后端存储sdx1上的,所以例如在节点A上的sdb中创建了分区表划分了分区,保存生效后,都会自动通过后端存储的sdx1同步到节点B上的sdb上的。传统的数据传输做法是使用光纤交换机,将所有的设备使用光纤连接起来,并且在每个设备上都要安装一个光纤网卡hba,对于使用光纤设备传输数据这样的架构环境是非常昂贵的,动辄上百万,对于一般的中小型企业是难以承担的,这样的架构环境称为FC-SAN网络。不过不用担心,进过优化我们使用IP-SAN网络是可以很好的进行替代的,将传输的数据重封装为tcp/ip的数据包,这样我们使用普通的以太网的交换机就可以传输数据了,例如sdx1存储中的数据到达了节点A的sdb后再进行解封装,这样就使得我们的SAN网络在以太网中传输称为了现实。在我们的后端存储中,我们是无法直接将sdx1或者sdy1对外进行共享的,我们需要创建一个虚拟的设备target来对sdx1和sdy1进行管理,其中target的命名方式为iqn.2019-09.com.example:disk,我们共享存储的时候是将target对外进行共享的。
在一个target上有连接两个设备sdx1和sdy1,所有会有两个接口,由于target和接口都是虚拟的并不是真实的,所以接口名为lun(Logical Unit Number)即逻辑单元号。例如在节点A上去学习target时只能看到两个lun,但是并不知道后端存储具体是有几块硬盘的,所以最终在节点A和节点B上就都学习到了sdb和sdc
(二)配置iSCSI服务器端
(2.1)服务器的配置主要包括:准备磁盘,创建target,把target和磁盘关联,以及其他设置。我们首先在vms001主机上的扩展分区中创建sda5和sda6用于共享出去。
我们创建的sda5和sda6是作为iSCSI后端存储的两块硬盘
(2.2)保存设置后,还要将分区设置同步到磁盘。
(2.3)首先在vms001主机上安装target软件,并将target服务启动起来,还要设置开机自动启动,此时iSCSI服务器端便可以正常的登录了。
(2.4)进入iSCSI服务器端的控制界面后使用# ls /可以当前iSCSI的配置情况。
(2.5)在iSCSI服务器的后端存储backstores中,创建两个块设备block1和block2,并使用创建的后端存储sda5和sda6与其一一对应起来。
注意:如果我们的block1创建错了,可以使用delete命令进行删除
/> /backstores/block delete block1
(2.6)接着我们在iscsi中创建一个target
注意:如果这个target创建错了,我们可以使用如下的方式进行删除
/> /iscsi delete iqn.2019-09.com.example:disk
(2.7)此时我们便可以对acl、luns、portals的值进行相关设置,首先进入到/iscsi/iqn.2019-09.com.example:disk/tpg1/路径下并设置acl的值。
注意:如果acl的值我们设置错误了,可以通过如下的方式进行删除
/> acls/ delete iqn.2019-09.com.example:xx
(2.8)接着我们在luns中创建对应的逻辑单元号,主要是和backstores中的block进行关联。
注意:如果第一个逻辑单元号创建错了,那么我们可以使用如下的方式删除
/> luns/ delete 0
(2.9)接着我们对portals进行设置,其中portals代表端口的意思,如果我们设置portals监听在192.168.26.101主机的3260端口上不太合适,也可以设置portals监听在所有主机的3260端口上。退出后所有的设置都保存在/etc/target/saveconfig.json文件中了。
# cat /etc/target/saveconfig.json | json_reformat
(2.10)接着在防火墙设置将3260端口开放,此时我们服务器端便配置完毕了。
(三)配置iSCSI客户端
(3.1)接着我们在vms002主机上安装iSCSI的客户端。
(3.2)首先我们必须要知道服务器vms001这边共享的target是什么,所以需要做“发现”的操作。
(3.3)接着要在/etc/iscsi/目录下的initiatorname.iscsi文件中设置acl的值为vms001主机acls中设置的iqn.2019-09.com.example:xx即可。
(3.4)然后将服务重启一下并且设置开机自动启动,再从vms002主机的iSCSI客户端登录到vms001主机上的iSCSI服务中。
注意:①如果是加载某个指定的target的时候是使用
# iscsiadm -m discovery -t st -p 192.168.26.101
# iscsiadm -m node -T iqn.2019-09.com.example:disk -p vms001.example.com -l
②如果是加载所有的target的时候是使用
# iscsiadm -m discovery -t st -p 192.168.26.101 -l
(3.5)我们也可以使用lsscsi命令查看当前vms002主机上iSCSI设备的挂载情况。
(3.6)我们也可以使用如下的命令可以查看vms002主机上的连接iSCSI服务器的属性,而且显示的信息依次变得更详细。
# iscsiadm -m session -P0
# iscsiadm -m session -P1
# iscsiadm -m session -P2
# iscsiadm -m session -P3
(3.7)如果我们想在vms002主机上断开当前iSCSI指定的挂载则可以使用如下的命令:
# iscsiadm -m node -T iqn.2019-09.com.example:disk -p vms001.example.com -u
(3.8)但是-u命令只是临时的断开连接的命令,客户端重启之后还是会主动连接过去的,我们如果想彻底的删除iSCSI指定的挂载则可以使用如下的命令:
# iscsiadm -m node -T iqn.2019-09.com.example:disk -p vms001.example.com -o delete
(3.9)由于我们已经彻底删除了,如果需要再次加载使用,此时可以使用加载所有target的命令执行即可。
(3.10)如果我们需要同时断开vms002主机上所有的iSCSI的挂载则可以使用如下的命令:
# iscsiadm -m node -u ALL
如果我们需要同时彻底删除vms002主机上所有的iSCSI的挂载则可以使用如下的命令:
# iscsiadm -m node -o delete
(3.11)我们重新将vms002主机挂载在vms001主机的iSCSI服务上,并将sdb分区进行划分,并格式化为xfs格式。
(3.12)在vms002主机上创建一个/data目录,将/data目录挂载到创建的iSCSI分区/dev/sdb1上,发现此时iSCSI服务提供的分区已经可以正常的挂载使用了。
(3.13)如果我们希望重启之后也仍然能够挂载生效,则应该到/etc/fstab文件中进行编辑。
(3.14)注意,在/etc/fstab文件中需要加上_netdev的参数选项,如果忘记加了,无法正常登录系统时,记得在命令行输入root密码,并进入到/etc/fstab文件中加上_netdev的参数,这样才能继续正常的重启。
(3.15)实际应用中,对于iSCSI服务如果我们需要实现例如节点A宕机后,能够立刻让节点B使用相同的数据提供服务,即实时同步数据,此时我们需要将文件系统格式化为集群文件系统才可以,因为我们常见的xfs、ext3、ext4等都属于单日志文件系统,并不能做到实时同步数据。至此,这就是我们所介绍的IP-SAN网络,它的性能会比NAS网络高很多,并且没有性能瓶颈,符合企业级的应用需求。
【讲清楚,说明白!】常用共享存储--iSCSI服务部署企业级网络存储
标签:元数据 宕机 说明 internet 因特网 window ext4 逻辑 nfs服务器
原文地址:https://blog.51cto.com/13613726/2438377