网络存储 器哪个好


Time:2023-07-09 21:50:12

关于网络存储的问题,我们总结了以下几点,给你解答:

网络存储


网络存储

开课

在日常生活中,如果你的电脑硬盘空间不足怎么办?如果你的手机存储空间不足怎么办?解决这些问题的方法就是增加容量,我们可以通过购买大容量的硬盘,存储卡,网络存储,网盘等手段来解决空间不足的问题,而上面我们所提到的这些,其实都属于存储,本章我们就一起来学习一下存储相关的知识。

知识点

存储的概念、类型、分类

linux存储的分层

本地存储与共享存储

SAN存储介绍及ISCSI

多路径存储的实现

课程目标

能够区分DAS,NAS,SAN三种存储分类

能够根据业务环境选择存储

能够区分文件存储类型与块存储类型

能够使用iscsi实现IP-SAN

能够使用双路径iscsi存储

网络存储(storage)一、存储介绍1、存储是什么

存储指的是计算

机中用来存放数据的设备,而存储系统是指计算机中由存放程序和数据的各种存储设备、控制部件及管理信息调度的设备(硬件)和算法(软件)所组成的系统。

2、存储分类

存储分类

描述

DAS 直连式存储 (direct access/attach storage)

如:机箱里的disk,或通过接口直连到系统总线上的disk(如U盘,移动硬盘)

NAS 网络附加存储(network attched storage)

如:nfs,samba,ftp

SAN 存储附加网络(storage area network)

通过交换机,路由器连接起来的高速存储网络

DAS: 直接连接系统,不受网速限制,速度快; 扩展不方便。

NAS与SAN: 通过网络设备连接的远程存储,速度受网络影响; 但扩展方便。

NAS和SAN都是通过网络(通过了网络设备,如路由器,交换机等)的,但NAS共享的是应用层的目录,而SAN共享的是/dev/sdb1或/dev/sdb这种块设备。3、存储类型的分类

存储类型分类

描述

文件存储

NAS都属于这一类。简单来说就是mount后直接使用的

块存储

SAN都属于这一类。简单来说就是类似/dev/sdb这种,要分区,格式化后才能mount使用

对象存储(了解)

通俗来讲,就是存储是什么形式,怎么做的都不用关注。使用的人只要直接使用程序接口去访问, 进行get下载与put上传就好

文件存储: 类似一个大的目录,多个客户端都可以挂载过来使用。

优点: 利于数据共享缺点: 速度较慢

块存储: 类似一个block设备,客户端可以格式化,挂载并使用,和用一个硬盘一样。

优点: 和本地硬盘一样,直接使用缺点: 数据不共享

对象存储: 一个对象我们可以看成一个文件, 综合了文件存储和块存储的优点。

优点: 速度快,数据共享缺点: 成本高, 不兼容现有的模式4、linux存储分层

物理卷:物理磁盘,硬件

模块驱动:物理磁盘的驱动程序,没有驱动程序,系统无法识别

文件系统:决定了计算机存取数据的方式,不同的操作系统支持的文件系统不同,不同的文件系统的优势也是各不相同的,比如说ext3、ext4、extfat、ntfs这几种文件系统所支持的文件数量、大小等都不一样

虚拟文件系统:这个虚拟文件系统有两个特性,一个是跨文件系统操作,用户对数据进行操作的时候不需要考虑文件系统类型,比如说我将两个不同文件系统类型的分区挂载到两个不同的目录后,我就可以直接在这两个目录之间拷贝数据,而不需要考虑文件系统是否兼容等问题;另一个就是一切皆文件,在虚拟文件系统中,文件、目录、字符设备、块设备、等都会被当做文件对待。比如说我们系统中的硬盘分区,会对应一个叫/dev/sdb1的文件,当用户使用mount命令将设备挂载到某一个目录后,针对目录的读写操作,实际上就是针对于硬盘的读写。

应用程序:就是我们日常使用的命令等工具

二、存储业务的前世今生

近年来,随着互联网和智能硬件的快速普及,数据以爆炸方式增长。全球数据总量增长率将维持在50%左右;1986年,全球只有0.02EB也就是约21000TB的数据量,而到了2007年,全球就是280EB也就是约300000000TB的数据量,翻了14000倍。由于移动互联网及物联网的出现,各种终端设备的接入,各种业务形式的普及,平均每40个月,全球的数据量就会翻倍!如果这样说还没有什么印象,可以再举个简单的例子,在2012年,每天会产生2.5EB的数据量。基于IDC的报告预测,从2013年到2020年,全球数据量会从4.4ZB猛增到44ZB!到2025 年,全球的数据总量将达到160ZB以上。互联网的快速发展,互联网公司的业务也越来越多,架构也越来越大,越来越复杂。公司经过多年业务的积累,公司的数据量也是直线上升。特别是从3G正式进入我们的生活后,公司的数据更是井喷式的增长,数据的快速存储及快速读出成为每一个运维人员关注和工作的重心。

1TB=1024GB,1PB=1024TB,1EB=1024PB,1ZB=1024EB,1YB=1024ZB搜狐每天日志数量:8PB左右百度每日搜索:60亿次淘宝首页日均pv:一亿左右

每天面对海量数据的增长,公司数据的存储方式也随着发生了变化,主要经历了一下几种存储方式:

本地存储时代:共享存储时代2.1、本地存储时代:单机最开始的时候,由于互联网中的用户比较少,早期能接触到计算机的人基本上都是非富即贵,再或者是科研及教育人员,所以计算机产生的数据非常的少,所以很多公司的业务服务器都是部署在一台机器,甚至一台机器部署多个web业务(虚拟主机业务).单机实现简单,用户上传只需一个FTP就能成功将的文件写入指定目录。数据保存和访问起来倒是也很方便,但是上传方式混乱,严重不利于网站的扩展。大集群

访问量上升,单台服务器的业务压力会越来越大,磁盘空间、IO瓶颈、并发处理能力等等问题就凸显出来了。

针对上述最原始的架构,主要面临着如下问题: 1)随着网站目录中文件越来越多,所在分区(例如/data分区)如果出现容量不足,则很难扩容。只能停机后更换更大容量的存储设备,再将旧数据导入。 2)在更新应用数据和日常备份的时候,需要同时操作所有主机应用所涉及的目录中的文件,

为了解决这个问题,我们采用了集群架构。我们在负载均衡后边部署由多台应用服务器组成的负载均衡集群(如web集群),由于数据存放在每台业务机的硬盘中,所以集群节点之间如何做好文件实时同步将是个难题,虽然可以使用rsync实现数据同步,但是无法做到实时同步,而且还受到到其它因素影响,如网络

2.2、共享存储时代

经历了本地存储的两个阶段之后,人们又发现在生产环境中随着数据的增长,业务机器的磁盘会越来越紧张,要面临着空间和IO的双重压力,为了给业务服务器减负,对架构架构进行了重新优化,将数据分离出来。在业务架构中加入了共享存储服务器,我们将所有公共数据或者高速增长的数据统一存储在共享存储中,由共享存储统一管理,实现高效读写和容灾。

独立的存储服务器SAN:将共享设备挂载到本地NAS:将共享存储的文件夹挂载到本地URL:独立的服务器和域名,资源通过URL访问

在早期的很多基于Linux开源架构的网站中,如果不想同步图片,可能会利用NFS来实现。事实证明,NFS在高并发读写和海量存储方面,效率上存在一定问题,并非最佳的选择,类似的还有samba、FTP等服务。

架构缺点:该架构在上传/下载操作时,都经过了Web服务器,这对Web服务器来讲无疑是造成巨大的压力。 解决方案: 生产环境中,建议大家采用具有独立域名的独立服务器来做共享存储,比如,可以使用nginx来做图片服务器,因为nginx处理静态文件相比其他web服务器软件效率更高,并发更大,通过URL实现资源调用

使用独立服务器和域名的优点: 1.图片访问是很消耗服务器资源的(因为会涉及到操作系统的上下文切换和磁盘I/O操作)。分离出来后,Web/App服务器可以更专注发挥动态处理的能力。 2.独立存储,更方便做扩容、容灾和数据迁移。 3.不需要考虑浏览器在访问相同域名下的并发限制导致的性能损失。 4.方便做图片访问请求的负载均衡,方便应用各种缓存策略(HTTP Header、Proxy Cache等),也更加方便迁移到CDN。

2.分布式存储

3G开放后,人们的生活发生了巨大变化,同时,云计算、大数据、人工智能这些词也走入人的生活。许多公司为了给客户提供更多的便利,更好的体验。疯狂的通过各种手段收集用户的数据,通过大数据平台清洗、分析后按照特定的算法对用户进行分类,迎着用户的喜好推送数据,给用户最好的体验。

但是为了实现精准的分析就需要海量的数据支撑,数据的存储也不再是几个G或者几个T的小儿科了,独立的存储服务器的已经无法满足我们的现状了,所有我们不得不寻找更大的存储来进行数据存储。

我们希望我们的存储可以实现以下的功能:

高效的数据读写数据安全弹性伸缩用不完的空间

优点:1)弹性伸缩:可以根据业务情况,通过添加或者减少机器来降低公司成本2)高效读写:数据读写由多个机器的多块磁盘共同并发完成3)数据安全:数据存储在多台服务器,任意一台数据磁盘故障都不会影响业务三、SAN存储1、SAN分类

1)FC-SAN: 早期的SAN, 服务器与交换机的数据传输是通过光纤进行的, 服务器把SCSI指令传输到存储设备上,不能走普通LAN网的IP协议。

2)IP-SAN: 用IP协议封装的SAN, 可以完全走普通网络,因此叫做IP-SAN, 最典型的就是ISCSI。

FC-SAN优缺点: 速度快(2G,8G,16G), 成本高, 传输距离有一定限制。

IP-SAN优缺点: 速度较慢(已经有W兆以太网标准), 成本低, 传输距离无限制。

2、IP-SAN实现-ISCSI2.1、ISCSI介绍

iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的、可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI是一种新储存技术,它是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。

iscsi internet小型计算机系统接口是一个基于tcp/ip的协议,用于通过IP网络仿真scsi高性能本地存储总线,从而为远程块存储设备提供数据传输和管理。(将远端的设置块仿真到本地,仿真成scsi总线)

scsi协议套件提供基于设备总线通信协议的命令描述器块(CBD)命令集,iscsi同样保留了CBD命令集,通过标准tcp/ip封装的iscsi系统之间执行总线通信。

将设备通过tcp/ip的方式共享到客户端,仿真为本地设备

2.2、ISCSI构成

ISCSI之间通信是一种C/S架构。

客户端:

叫做Initator(发起者 C)

服务端:

这里称之为Target:(目标 S),每个Target可包含多个LUN(Logical Unit Number 逻辑单元)。真正提供服务的是LUN。

2.3、ISCSI实现

教学案例

将本机的/dev/sdb磁盘共享给node1(192.168.98.201)机器将本机/opt/file100磁盘(300M)文件共享给node1(192.168.98.201)机器

注意事项

静态IP,(两台IP互通就行,网关和DNS不做要求)都配置主机名及其主机名互相绑定关闭防火墙,selinux时间同步配置好yum(需要加上epel源)在存储导出端模拟存储(模拟存储可以使用多种形式,如硬盘:/dev/sdb,分区:/dev/sdb1,软raid:/dev/md0,逻辑卷:/dev/vg/lv01,dd创建的大文件等等)

实验步骤

1)创建共享设备

#1、准备一个设备文件[root@manage01 ~]# dd if=/dev/zero of=/opt/file100 bs=1M count=300记录了300+0 的读入记录了300+0 的写出314572800字节(315 MB)已复制,2.67216 秒,118 MB/秒#2、查看/dev/sdb是否被占用[root@manage01 ~]# fdisk -l /dev/sdb磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节I/O 大小(最小/最佳):512 字节 / 512 字节

2)安装iscsi服务端

[root@manage01 ~]# dnf -y install targetcli#启动服务[root@manage01 ~]# systemctl enable target.serviceCreated symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.[root@manage01 ~]# systemctl start target

3)共享设备

将设备添加到共享库设置IQN标识,创建全球唯一标识设备名设置TPG组中对应的三个问题 谁 从哪里 访问什么设备

3.1、将共享设备添加到共享库

[root@manage01 ~]# targetcli Warning: Could not load preferences file /root/.targetcli/prefs.bin.targetcli shell version 2.1.fb46Copyright 2011-2013 by Datera, Inc and others.For help on commands, type 'help'./> lso- / ................................... [...] o- backstores ..................... [...] | o- block .............. [Storage Objects: 0] | o- fileio ............ [Storage Objects: 0] | o- pscsi ........... [Storage Objects: 0] | o- ramdisk ................ [Storage Objects: 0] o- iscsi ......................... [Targets: 0] o- loopback ....................... [Targets: 0]备注 /代表存储的根目录 /backstores 代表后端存储,iscsi通过使用文件、逻辑卷或任何类型的磁盘作为底层存储来仿真呈现为目标的scsi设备 block 后端存储是个块设备 fileio 后端存储是一个文件 pscsi 物理scsi设备 ramdisk 后端存储是内存上的空间,在内存上创建一个指定大小的ramdisk设备 可以通过help命令来打印可用命令#将需要共享的设备加入到backstores共享库中/> /backstores/block create block1 /dev/sdb Created block storage object block1 using /dev/sdb./> /backstores/fileio create block2 /opt/file100 Created fileio block2 with size 314572800#查看一下,确认添加成功/> lso- / ...................................... [...] o- backstores ............................. [...] | o- block ............. [Storage Objects: 1] | | o- block1 ...... [/dev/sdb (10.0GiB) write-thru deactivated] | | o- alua .................... [ALUA Groups: 1] | | o- default_tg_pt_gp .... [ALUA state: Active/optimized] | o- fileio ............. [Storage Objects: 1] | | o- block2 ....... [/opt/file100 (300.0MiB) write-back deactivated] | | o- alua ................ [ALUA Groups: 1] | | o- default_tg_pt_gp ........ [ALUA state: Active/optimized] | o- pscsi ................ [Storage Objects: 0] | o- ramdisk ................ [Storage Objects: 0] o- iscsi ............................ [Targets: 0] o- loopback .......................... [Targets: 0]/>

3.2、设置IQN标识(共享名)

/> /iscsi create iqn.2019-07.com.test:manage01Created target iqn.2019-07.com.test:manage01.Created TPG 1.Global pref auto_add_default_portal=trueCreated default portal listening on all IPs (0.0.0.0), port 3260.TPG:目标门户组,某个特定iscsi目标将要监听的IP地址和tcp端口的集合。设置tgp1选项中的acls(访问控制) lun设备(逻辑单元) portals(访问地址及端口)备注:IQN标识,也就是共享名,必须符合IQN的规范iqn.年-月.二级域名倒写:主机名称随便写也可以使用,但是不推荐,如果你随便写的话,在线上环境可能会出问题

创建完成之后,使用ls可以查看到iscsi目录下多了一些内容,除了我们刚才设置的共享名之外呢,还有tpg1,在tpg1下面还包含了三个目录,其中呢tpg1我们可以理解成组,而这个组包含的三个元素,acls用来控制允许谁访问,luns是将谁共享出去,portals是用来定义允许客户端从哪里访问我的设备

3.3、设置TPG组中对应的三个问题 谁 从哪里 访问什么设备

#通过ACL设置允许访问的客户端的iqn,因为iscsi工作的时候看的是iqn名称,所以我们也要给客户端取一个IQN名称/> /iscsi/iqn.2020-10.com.test:manage01/tpg1/acls create iqn.2020-10.com.test:node1Created Node ACL for iqn.2020-10.com.test:node1#将共享库中的磁盘共享,也就是将设备加入到luns中/> /iscsi/iqn.2020-10.com.test:manage01/tpg1/luns create /backstores/block/block1 Created LUN 0.Created LUN 0->0 mapping in node ACL iqn.2020-10.com.test:node1/> /iscsi/iqn.2020-10.com.test:manage01/tpg1/luns create /backstores/fileio/block2 Created LUN 1.Created LUN 1->1 mapping in node ACL iqn.2020-10.com.test:node1#默认允许客户端通过服务器任意IP访问,我们改为只允许通过192.168.98.200 port 3260来访问,/> /iscsi/iqn.2020-10.com.test:manage01/tpg1/portals/ delete 0.0.0.0 3260Deleted network portal 0.0.0.0:3260/> /iscsi/iqn.2020-10.com.test:manage01/tpg1/portals create 192.168.98.200 3260Using default IP port 3260Created network portal 192.168.98.200:3260.#设置完成之后执行exit就会自动保存

3.4、查看共享

/> lso- / ................................................................................ [...] o- backstores ..................................................................... [...] | o- block ......................................................... [Storage Objects: 1] | | o- block1 ................................. [/dev/sdb (10.0GiB) write-thru activated] | | o- alua .......................................................... [ALUA Groups: 1] | | o- default_tg_pt_gp .............................. [ALUA state: Active/optimized] | o- fileio ........................................................ [Storage Objects: 1] | | o- block2 ............................ [/opt/file100 (300.0MiB) write-back activated] | | o- alua .......................................................... [ALUA Groups: 1] | | o- default_tg_pt_gp .............................. [ALUA state: Active/optimized] | o- pscsi ......................................................... [Storage Objects: 0] | o- ramdisk ....................................................... [Storage Objects: 0] o- iscsi ................................................................... [Targets: 1] | o- iqn.2020-10.com.test:manage01 .......................................... [TPGs: 1] | o- tpg1 ...................................................... [no-gen-acls, no-auth] | o- acls ................................................................. [ACLs: 1] | | o- iqn.2020-10.com.test:node1 ................................ [Mapped LUNs: 2] | | o- mapped_lun0 ....................................... [lun0 block/block1 (rw)] | | o- mapped_lun1 ...................................... [lun1 fileio/block2 (rw)] | o- luns ................................................................. [LUNs: 2] | | o- lun0 ............................ [block/block1 (/dev/sdb) (default_tg_pt_gp)] | | o- lun1 ....................... [fileio/block2 (/opt/file100) (default_tg_pt_gp)] | o- portals ........................................................... [Portals: 1] | o- 192.168.98.200:3260 ..................................................... [OK] o- loopback ................................................................ [Targets: 0]/>

删除共享设备

删除顺序:倒序#删除tgp下的三项/> /iscsi/iqn.2020-10.com.test:manage01/tpg1/portals/ delete 192.168.98.200 3260Deleted network portal 192.168.98.200:3260/> /iscsi/iqn.2020-10.com.test:manage01/tpg1/luns/ delete 0 Deleted LUN 0./> /iscsi/iqn.2020-10.com.test:manage01/tpg1/luns/ delete 1Deleted LUN 1./> /iscsi/iqn.2020-10.com.test:manage01/tpg1/acls/ delete iqn.2020-10.com.test:node1 Deleted Node ACL iqn.2020-10.com.test:node1.#删除IQN/> /iscsi/ delete iqn.2020-10.com.test:manage01 Deleted Target iqn.2020-10.com.test:manage01.#删除共享库中设备/> /backstores/block/ delete block1 Deleted storage object block1./> /backstores/fileio/ delete block2 Deleted storage object block2.

4)客户端连接共享

安装客户端包设置客户端IQN名称连接共享设备共享设备应用(分区、格式化、挂载)

4.1、安装客户端包

[root@node1 ~]# dnf -y install iscsi-initiator-utils

4.2、设置客户端IQN名称

[root@node1 ~]# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2020-10.com.test:node1

4.3、连接共享设备

iscsiadm -m,--mode 指定模式,常用的模式有discovery,node -t,--type 这里可以使用的类型为sendtargets,此选项仅用于discovery模式 -T,--targetname 用于指定target的名字 -p,--portal 指定target服务的IP和端口 -l,--login 登录 -u,--logout 退出 使用方式可以man iscsiadm 搜索examples,里面会有详细的说明#1、查看目标服务器共享[root@node1 ~]# iscsiadm --mode discovery --type sendtargets --portal 192.168.98.200 --discover192.168.98.200:3260,1 iqn.2020-10.com.test:manage01#2、连接共享设备[root@node1 ~]# iscsiadm --mode node --targetname iqn.2020-10.com.test:manage01 --portal 192.168.98.200:3260 --loginLogging in to [iface: default, target: iqn.2020-10.com.test:manage01, portal: 192.168.98.200,3260] (multiple)Login to [iface: default, target: iqn.2020-10.com.test:manage01, portal: 192.168.98.200,3260] successful.##备注 断开共享方法Logout:iscsiadm --mode node --targetname iqn.2020-10.com.test:manage01 --portal 192.168.98.200:3260 --logout#3、查看连接[root@node1 ~]# fdisk -l####发现了两个设备 /dev/sdb /dev/sdc 这就是远程共享过来的设备

4.4、共享设备应用(分区、格式化、挂载)

#分区##/dev/sdb[root@node1 ~]# fdisk /dev/sdb <<EOFnp3+3GwEOF##/dev/sdc[root@node1 ~]# fdisk /dev/sdc <<EOF> n> p> 4> > > w> EOF#格式化[root@node1 ~]# mkfs.ext4 /dev/sdb3 [root@node1 ~]# mkfs.xfs /dev/sdc4 #开机自动挂载##建立挂载点[root@node1 ~]# mkdir /opt/san{1..2}##修改/etc/fstab文件[root@node1 ~]# grep "_netdev" /etc/fstab /dev/sdb3 /opt/san1 ext4 _netdev 0 0/dev/sdc4 /opt/san2 xfs _netdev 0 0##挂载[root@node1 ~]# mount -a##挂载查看[root@node1 ~]# mount | grep san##写入文件,测试权限为读写[root@node1 ~]# touch /opt/san1/file{1..10}[root@node1 ~]# ls /opt/san1/file1 file10 file2 file3 file4 file5 file6 file7 file8 file9 lost+found[root@node1 ~]# touch /opt/san2/file{a..z}[root@node1 ~]# ls /opt/san2/

4.5、断开共享

#1、卸载挂载[root@node1 ~]# umount /opt/san{1..2}#2、注销连接[root@node1 ~]# iscsiadm --mode node --targetname iqn.2020-10.com.test:manage01 --portal 192.168.98.200:3260 --logout#3、以后再也不连接,那就清除记录[root@node1 ~]# rm -rf /var/lib/iscsi/nodes/iqn.2020-10.com.test\:manage01[root@node1 ~]# rm -rf /var/lib/iscsi/send_targets/192.168.98.200,3260#4、删除/etc/fstab文件内容四、ipsan 多路径存储4.1、多链路IPSAN部署介绍

单点故障在生产环境中是不被允许的,我们运维在设计架构的时候,如果无法解决单点故障,那么他设计的这个架构就无法满足高可用的需求,自然容灾性就无法谈起。同样我们在设计IPSAN架构的时候,也需要考虑单点故障的问题,因为一旦线路出现了问题,那么业务就会被中断了。这种问题我们是不能容忍的,这节课我就给大家说下如何实现IPSAN多链路共享。

4.2、多链路IPSAN实施1)实验拓扑图

2)实验步骤

a、配置双链路网络 192.168.10.0 192.168.11.0两个网段线路。

服务器

网卡1IP地址

网卡2IP地址

IPSAN服务器

192.168.98.200/24

192.168.98.201/24

IPSAN客户端

192.168.10.100/24

192.168.10.236/24

实验要求:

关闭selinux

关闭防火墙

保证线路的连通性

b、IPSAN服务器设置设备共享

参考上文2.3 共享一个设备(/dev/sdb)

客户端可以通过访问192.168.10.100:3260 192.168.98.200:3260这两个地址访问共享

共享设备iqn名称:iqn.2020-10.com.test:manage01

客户端的iqn名称为 iqn.2020-10.com.test:node1

[root@manage01 ~]# targetcli/> /backstores/block create block1 /dev/sdb/> /iscsi create iqn.2020-10.com.test:manage01/> /iscsi/iqn.2020-10.com.test:manage01/tpg1/acls create iqn.2020-10.com.test:node1/> /iscsi/iqn.2020-10.com.test:manage01/tpg1/luns create /backstores/block/block1 /> /iscsi/iqn.2020-10.com.test:manage01/tpg1/portals/ delete 0.0.0.0 3260 /> iscsi/iqn.2020-10.com.test:manage01/tpg1/portals create 192.168.98.200 3260/> iscsi/iqn.2020-10.com.test:manage01/tpg1/portals create 192.168.10.100 3260/> exit4.3、多路径IPSAN客户端挂载

a、客户端连接服务器共享实现容灾有两种方式

1)多路径软件

2)udev

关于多路径软件和udev介绍

多路径软件Device Mapper Multipath概述

多路径软件Device Mapper Multipath(DM-Multipath)可以将服务器节点和存储阵列之间的多条I/O链路配置为一个单独的设备。这些I/O链路是由不同的线缆、交换机、控制器组成的SAN物理链路。Multipath将这些链路聚合在一起,生成一个单独的新的设备。

1.DM-Multipath概览:

(1)数据冗余

DM-Multipath可以实现在active/passive(主动/被动)模式下的灾难转移。在active/passive模式下,只有一半的链路在工作,如果链路上的某一部分(线缆、交换机、控制器)出现故障,DM-Multipath就会切换到另一半链路上。

(2)提高性能

DM-Multipath也可以配置为active/active模式,从而I/O任务以round-robin的方式分布到所有的链路上去。通过配置,DM-Multipath还可以检测链路上的负载情况,动态地进行负载均衡。

udev

udev 是Linux kernel 2.6系列的设备管理器。它主要的功能是管理/dev目录底下的设备节点。udev会根据用户添加/删除硬件的行为,自处理/dev目录下所有设备文件。

本文主要介绍的是IPSAN+多路径软件实现高可用

b、实现步骤

安装客户端程序,并启动连接共享设备从两条线路分区格式化安装多路径软件实现多路径负载均衡测试

c、实现步骤

客户端通过两条线路连接共享

#设置客户端iscsi名称[root@node1 ~]# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2020-10.com.test:node1#发现服务端共享设备[root@node1 ~]# iscsiadm --mode discovery --type sendtargets --portal 192.168.98.200 --discover[root@node1 ~]# iscsiadm --mode discovery --type sendtargets --portal 192.168.10.100 --discover192.168.98.200:3260,1 iqn.2020-10.com.test:manage01192.168.10.100:3260,1 iqn.2020-10.com.test:manage01#通过两条线路连接共享[root@node1 ~]# iscsiadm --mode node --targetname iqn.2020-10.com.test:manage01 --portal 192.168.98.200:3260 --login[root@node1 ~]# iscsiadm --mode node --targetname iqn.2020-10.com.test:manage01 --portal 192.168.10.100:3260 --login#验证连接[root@node1 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot└─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP]sdb 8:16 0 10G 0 disk sdc 8:32 0 10G 0 disk sr0 11:0 1 4.3G 0 rom 发现多了/dev/sdb /dev/sdc两个设备#分区格式化-对其中一个设备操作就行,表面上看是两个设备,其实是一个。#分区##/dev/sdb[root@node1 ~]# fdisk /dev/sdb <<EOFnp3+3GwEOF#验证设备[root@node1 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot└─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP]sdb 8:16 0 10G 0 disk └─sdb3 8:19 0 3G 0 part sdc 8:32 0 10G 0 disk └─sdc3 8:35 0 3G 0 part sr0 11:0 1 4.3G 0 rom 发现有/dev/sdb3 /dev/sdc3 这就是那个设备,因为从两条线路挂载,所以看到的是两个设备注意:如果发现其中一个没有分区信息,就刷一下分区表刷新分区表,比如/dev/sdc没有分区信息 [root@node1 ~]# partprobe /dev/sdc

安装多路径软件

#安装多路径软件包[root@node1 ~]# dnf install device-mapper-multipath -y#拷贝例子配置文件[root@node1 ~]# cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/#启动服务[root@node1 ~]# systemctl enable multipathd;systemctl start multipathd#启动成功后再次验证[root@node1 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot└─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP]sdb 8:16 0 10G 0 disk └─mpatha 253:2 0 10G 0 mpath └─mpatha3 253:3 0 3G 0 part sdc 8:32 0 10G 0 disk └─mpatha 253:2 0 10G 0 mpath └─mpatha3 253:3 0 3G 0 part sr0 11:0 1 4.3G 0 rom 发现两个设备发生了变化,统一了名字#查看多路径配置[root@node1 ~]# multipath -llmpatha (3600140562f2f59614024a3e9cbf7ecc7) dm-2 LIO-ORG ,block1 size=10G features='0' hwhandler='0' wp=rw|-+- policy='service-time 0' prio=1 status=active #活动| `- 5:0:0:0 sdb 8:16 active ready running`-+- policy='service-time 0' prio=1 status=enabled #备份 `- 6:0:0:0 sdc 8:32 active ready running 3600140562f2f59614024a3e9cbf7ecc7 (远程存储设备id)dm-2 LIO-ORG(厂商) block1的ID默认提供的是AB备份线路,不是负载均衡线路#我们可以通过修改配置文件来设置为负载均衡线路[root@node1 ~]# cat /etc/multipath.confmultipaths { multipath { wwid 3600140562f2f59614024a3e9cbf7ecc7 填写你的block1的ID alias multipath_study #别名随便起,有意义就行 path_grouping_policy multibus #路径分组策略,其中,“failover” 表示一条路径一个组(默认值);“multibus”表示所有路径在一个组;默认failover path_selector "round-robin 0" #路径选择算法,其中,“round-robin 0”表示在多个路径间不断循环;“queue-length 0”表示选择当前处理IO数最少的路径;"service-time 0" 选择耗时时间最短的路径;默认"service-time 0" failback manual #恢复路径的方法,其中,“Immediate”表示立即恢复到包含活动路径的高优先级路径组;“manual”表示手动恢复(默认值); rr_weight priorities #路径选择算法的权重,只能用在round-robin算法上 no_path_retry 5 #当所有路径都关闭时执行的工作,如果是大于0的值,则表示禁用I/O队列前的重试次数,fail立即标记为故障,queue不停止I/O队列(进行排队) 默认值为fail }} #重启服务生效[root@node1 ~]# systemctl restart multipathd#再次验证[root@node1 ~]# multipath -llmultipath_study (3600140562f2f59614024a3e9cbf7ecc7) dm-2 LIO-ORG ,block1 size=10G features='1 queue_if_no_path' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=1 status=active |- 5:0:0:0 sdb 8:16 active ready running `- 6:0:0:0 sdc 8:32 active ready running4.4、故障测试挂载设备,写入数据断开一个线路,测试数据读写#挂载设备,写入数据[root@node1 ~]# mkdir /opt/mpath[root@node1 ~]# mkfs.ext4 /dev/mapper/multipath_study1[root@node1 ~]# mount -o _netdev,rw /dev/mapper/multipath_study3 /opt/mpath/[root@node1 ~]# mount|egrep "/opt/mpath"/dev/mapper/multipath_study3 on /opt/mpath type ext4 (rw,relatime,stripe=1024,data=ordered,_netdev)[root@node1 ~]# echo "`date`" > /opt/mpath/file#断开一个线路,测试数据读写[root@node1 ~]# ifconfig ens37 down[root@node1 ~]# multipath -llFeb 26 04:15:04 | /etc/multipath.conf line 99, invalid keyword: path_checkerFeb 26 04:15:04 | sda: fail to get serialmultipath_study (36001405f1f567c3865b42eab2274ec6c) dm-2 LIO-ORG,block1size=20G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw|-+- policy='service-time 0' prio=50 status=active| `- 3:0:0:0 sdb 8:16 active ready running`-+- policy='service-time 0' prio=0 status=enabled `- 4:0:0:0 sdd 8:48 failed faulty running发现该线路错误#对共享存储中的数据读写测试[root@node1 ~]# cat /opt/mpath/file2019年 07月 06日 星期六 13:05:00 EDT[root@node1 ~]# date >> /opt/mpath/file[root@node1 ~]# cat /opt/mpath/file2019年 07月 06日 星期六 13:05:00 EDT2019年 07月 06日 星期六 13:06:32 EDTok!一切正常章总结

存储的概念、类型、分类

linux存储的分层

本地存储与共享存储

SAN存储介绍及ISCSI

多路径存储的实现

重点:存储的概念、分类及类型、存储的发展历程和阶段、如何使用ISCSI、多路径存储的优势、部署、使用

难点:理解存储的分类和类型,理解存储的发展历程和不同阶段,如何部署并设置ISCSI,如何实现多路径存储

3分钟了解计算机发展历史-组团学

网络存储器哪个好


网络存储器哪个好

看你的应用环境:
1、如果是个人使用,采用大品牌的4盘位左右的产品即可,有些产品还带无线路由功能,比较超值。
2、如果是单位或公司使用,需要确认容量及性能要求以及预算规模,低端应用可选择国内品牌,基本都是x86架构,或选择台湾厂商的RISC架构NAS(不太多);中高端应用可以选择国外大厂的产品。

网络存储服务器


网络存储服务器

  服务器存储系统大致可以分成三种类型:DAS、NAS、SAN。

  直接依附存储系统,即DA多校伟史教节拿字S。直接依附存储系统DAS又称为以服务器为中心的存储体系。其特征为存储设备是通用服务器的一部分,该服务器同时提供应用程序的运行,例如视频流、数据库等服务。数据的输入或输出由服务器负责,数据访问与操作系统、文件系统和服务程序紧密相关。网络依附存储系统拉线,即NAS。这种存储方式多采用专用数据服务器。该服务器不再承担革掌脸片加应用服务,称之为“瘦服务器”。数据服务器通过台只胞延己祖末践风构怎局域网的接口与应用服务器连接米地型沿刻治布。由于采用局域网上通用数据传输协议,如NFS,CIFS等,所以能够在异构的服务器间共享数据。存储区域网络,即SAN。存储区域网络SAN采用高速数据连接通道光纤通道连接服务器和存储系统。从结构上看,服务器和数斤切异其干端种渐斗段据存储系统相互独立。政合企某足础困困顶振月将设备连接到FC集线器或交换机上,便于扩展系统规模。

本文拓展问题:

网络存储设备网络存储技术应用项目化教程网络存储