关于存储控制器的多路径机制(AA-ALUA-AP)

合集下载

存储程序控制原理的基本思路

存储程序控制原理的基本思路

存储程序控制原理的基本思路在计算机科学和计算机工程领域,存储程序控制原理是一种常见的方法,用于控制计算机程序的执行顺序和流程。

它是计算机体系结构的重要组成部分,对于计算机的运行和功能发挥至关重要。

本文将介绍存储程序控制原理的基本思路。

存储程序控制原理的核心思想是将程序指令存储在计算机的内存中,并按照一定的顺序执行。

它的基本思路可以概括为以下几个方面:1. 指令的存储和读取存储程序控制原理的第一步是将程序指令存储在计算机的内存中。

指令通常以二进制的形式表示,每一条指令都有一个唯一的地址。

计算机在执行程序时,按照指令的地址顺序从内存中读取指令,并将其送入指令寄存器中。

2. 指令的解码和执行在指令寄存器中的指令被取出后,计算机需要对指令进行解码,以确定指令的类型和操作。

然后,计算机根据指令的类型执行相应的操作,可能涉及到数据的读取、计算、存储等。

3. 程序计数器的更新在每一条指令执行完毕后,程序计数器(PC)需要更新,以指向下一条要执行的指令的地址。

这样,计算机才能按照指令的顺序继续执行程序。

程序计数器是一个特殊的寄存器,它存储了当前指令的地址。

4. 分支和跳转指令除了按照顺序执行指令外,存储程序控制原理还支持分支和跳转指令,用于改变程序的执行流程。

分支指令根据特定的条件来决定下一条要执行的指令,而跳转指令直接将程序计数器设置为指定的地址,从而实现无条件跳转。

5. 子程序和中断存储程序控制原理还支持子程序和中断的调用和处理。

子程序是一段独立的代码,可以被多次调用,并在执行完毕后返回到调用点继续执行。

中断是一种特殊的事件,可以打断正在执行的程序,并执行相应的中断处理程序。

存储程序控制原理的基本思路是将程序指令存储在内存中,并按照一定的顺序执行。

它通过指令的存储、读取、解码和执行,以及程序计数器的更新、分支和跳转指令、子程序和中断的调用和处理等机制,实现了程序的控制和执行。

存储程序控制原理是计算机体系结构中的重要概念,对于计算机的功能和性能具有重要影响。

LINUX下多路径(multi-path)介绍及使用

LINUX下多路径(multi-path)介绍及使用

LINUX下多路径(multi-path)介绍及使用一、什么是多路径普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。

而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存储通过了光纤交换机或者多块网卡及IP来连接,这样的话,就构成了多对多的关系。

也就是说,主机到存储可以有多条路径可以选择。

主机到存储之间的IO由多条路径可以选择。

每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?其中一条路径坏掉了,如何处理?还有在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用户带来了困惑。

多路径软件就是为了解决上面的问题应运而生的。

多路径的主要功能就是和存储设备一起配合实现如下功能:1.故障的切换和恢复2.IO流量的负载均衡3.磁盘的虚拟化由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,都提供了不同的版本。

并且有的厂商,软件和硬件也不是一起卖的,如果要使用多路径软件的话,可能还需要向厂商购买license才行。

比如EMC公司基于linux下的多路径软件,就需要单独的购买license。

好在, RedHat和Suse的2.6的内核中都自带了免费的多路径软件包,并且可以免费使用,同时也是一个比较通用的包,可以支持大多数存储厂商的设备,即使是一些不是出名的厂商,通过对配置文件进行稍作修改,也是可以支持并运行的很好的。

二、Linux下multipath介绍,需要以下工具包:在CentOS 5中,最小安装系统时multipath已经被安装,查看multipath是否安装如下:1、device-mapper-multipath:即multipath-tools。

主要提供multipathd和multipath 等工具和 multipath.conf等配置文件。

存储系统4并行存储器和多模块交叉

存储系统4并行存储器和多模块交叉
解:顺序存储器和交叉存储器连续读出m=4个字的
q=64b×4=256b 顺序存储器和交叉存储器连续读出4个字所需的时间
t2=mT=4×200ns=800ns=8×10-7s t1=T+(m-1)=200ns+150ns=350ns=35×10-7s
顺序存储器和交叉存储器的带宽分别是: W2=q/t2=256b÷(8×10-7)s=320Mb/s W1=q/t1=256b÷(35×10-7)s=730Mb/s
个存储单元 顺序方式:
3.5 并行存储器
顺序方式 [例]M0-M3共四个模块,则每模
块8字。
顺序方式: M0:0—7
单击此处添加正文,文字是您思想的提炼,为了演示发布的良好效果,请言简 意赅地阐述您的观点。您的内容已经简明扼要,字字珠玑,但信息却千丝万缕、 错综复杂,需要用更多的文字来表述;但请您尽可能提炼思想的精髓,否则容 易造成观者的阅读压力,适得其反。正如我们都希望改变世界,希望给别人带 去光明,但更多时候我们只需要播下一颗种子,自然有微风吹拂,雨露滋养。 恰如其分地表达观点,往往事半功倍。当您的内容到达这个限度时,或许已经 不纯粹作用于演示,极大可能运用于阅读领域;无论是传播观点、知识分享还 是汇报工作,内容的详尽固然重要,但请一定注意信息框架的清晰,这样才能 使内容层次分明,页面简洁易读。如果您的内容确实非常重要又难以精简,也 请使用分段处理,对内容进行简单的梳理和提炼,这样会使逻辑框架相对清晰。
3.5 并行存 储器
无论采用哪种判断方式,延迟端口的BUSY 标志都将置位而关闭此端口,而当允许存取 的端口完成操作时,延迟端口BUSY标志才 进行复位而打开此端口。
3.5 并行存储器
二、多模块交叉存储器
一个由若干个模块组成的主存储器是线性编址的。 这些地址在各模块中如何安排,有两种方式:

关于存储控制器的多路径机制(AA-ALUA-AP)

关于存储控制器的多路径机制(AA-ALUA-AP)

关于存储控制器的多路径机制业界某些存储控制器支持ALUA多路径机制(或者说负载均衡技术),什么是ALUA多路径机制?ALUA即“Asymmetric Logical Unit Access(异步逻辑单元访问)”的缩写,它是前端控制器多路径机制之一。

前端控制器多路径机制一定程度上决定存储的读写性能和可靠性,现有的前端控制器多路径机制可分为三大类:A/A:Symmetric Active/Acivie,对于特定的LUN来说,在它的路劲中,两个存储控制器的目标端口均处于主动/优化(active/optimized)状态。

两个控制器之间实现高速互联的通讯,一个IO发到控制器端,两个控制器可同时参与处理;当一个控制器繁忙,系统不需要主机端的负载均衡软件参与就可以自动实现负载均衡。

ALUA:Asymmetric Active/Active,对于特定的LUN来说,在它的路径中,一个控制器的目标端口处于主动/优化(active/optimized)状态,另一个控制器的目标端口处于主动/非优化(active/unoptimized)状态。

在某一个时刻,某个LUN只是属于某一个控制器,要想实现两边的负载均衡,就是将任务A扔给控制器A,将任务B扔给控制器B,对于同一个任务来说,任何时候只有一个控制器在控制。

A/P:Active/Passive,对于特定的LUN来说,在它的路径中,一个控制器的目标端口处于主动/优化(active/optimized)状态,另一个控制器的目标端口处于备用(standby)状态。

其负载均衡及任务处理方式与ALUA类似。

Active/optimized、Active/unoptimized、Standby和Unavailable是目标端口的四种访问状态,在相应访问状态下,设备服务器(即阵列控制器)只能回应相应的命令标准(命令标准由ISO/IEC 14776-453文件Part 453:SPC-3制定),这就决定了在某一时刻是否可以通过某个目标端口访问逻辑单元。

存储程序控制原理的基本内容

存储程序控制原理的基本内容

存储程序控制原理的基本内容一、存储程序控制原理概述存储程序控制是指计算机能够按照一定的程序自动地执行指令,并根据需要完成数据的输入、输出和处理等功能。

在计算机发展的早期,人们通过物理连接来实现计算机的控制,这种方式不仅效率低下,而且非常难以维护。

因此,在上世纪40年代末期,冯·诺伊曼提出了存储程序控制的思想,从而开创了现代计算机的基础。

二、存储程序控制原理的基本组成部分1. 存储器存储器是存放程序和数据的地方。

在计算机中,所有指令和数据都被转化为二进制形式,并被存放在内存中。

当计算机需要执行某个指令时,就从内存中读取相应的指令,并按照指令所规定的操作进行处理。

2. 控制器控制器是计算机中最重要的部件之一。

它负责解释并执行从内存中读取到的指令,并按照指令所规定的操作来完成相应任务。

在执行每个指令时,控制器会依次完成以下步骤:(1)取出指令:从内存中读取指令,并将其存放在指令寄存器中。

(2)解码指令:将指令翻译成控制信号,以便计算机能够执行相应的操作。

(3)执行指令:根据控制信号执行相应的操作,例如进行数据的读写、算术运算等。

(4)更新程序计数器:将程序计数器中存储的地址加1,以便下一条指令能够被正确地执行。

3. 程序计数器程序计数器是存储下一条要执行的指令地址的地方。

当计算机需要执行某个程序时,程序计数器会被初始化为该程序的起始地址。

在执行每个指令时,程序计数器会自动加1,以便下一条指令能够被正确地执行。

4. 标志寄存器标志寄存器用于存储各种状态信息。

例如,在进行算术运算时,标志寄存器可以用来记录是否发生了溢出或进位等情况。

在控制转移语句时,标志寄存器可以用来判断条件是否满足,并根据结果进行相应的跳转操作。

三、存储程序控制原理的工作流程1. 程序加载在开始执行某个程序之前,需要先将该程序从外部设备(如硬盘、U 盘等)加载到内存中。

加载程序的过程通常由操作系统来完成,操作系统会将程序分配到内存中的某个空间,并将其起始地址存储在程序计数器中。

基于ALUA的多路径存储系统

基于ALUA的多路径存储系统

基于ALUA的多路径存储系统范长军;胡志成;杨佳东【摘要】随着网络存储技术的不断深入发展与广泛应用,存储多路径技术成为信息系统容灾与故障恢复方案中的核心技术之一.在现有存储多路径技术的基础上,提出了一种基于ALUA的多路径存储子系统总体框架,并重点在逻辑卷控制器属主管理、ALUA属性与路径选择策略配置和I/O重定向等模块进行了创新性的设计与实现.经过应用测试,该系统很好地解决了存储系统的路径故障迁移和故障恢复问题,并智能地实现了路径间I/O的负载均衡,极大地提高了性能和可靠性.%With the rapid development and wide application of SAN technology,multi-path technology becomes one of the key technologies to achieve disaster tolerance and high performance.Based on the existing techniques,an improved multi-path storage sub-system is presented.And then improvement is made in four modules,i.e.,LUN ownership management,configuration of ALUA,path selection strategy,and I/O forwarding implementation.The test results show that this scheme can be a very good solution to the path failover and load balance problems,greatly enhancing the I/O performance.【期刊名称】《计算机系统应用》【年(卷),期】2017(026)010【总页数】9页(P11-19)【关键词】多路径;ALUA属性;I/O重定向;负载均衡;故障迁移;故障恢复【作者】范长军;胡志成;杨佳东【作者单位】中电海康集团有限公司,杭州310013;中电海康集团有限公司,杭州310013;中电海康集团有限公司,杭州310013【正文语种】中文随着移动互联网、社交网络等新型IT技术的发展,可用数据总量呈几何级增长,人类进入大数据时代.大数据中蕴含的知识是宝贵的社会财富,但其价值的体现依赖于对数据的可靠存储和高效处理,这对存储系统的可用性、可靠性和存取效率提出了新的挑战,为此,SAN (Storage area network)网络存储技术应运而生,并得到大力发展和广泛应用.在SAN系统中,有两个基本实体,发起端和目标端.发起端主动发起I/O命令请求存储资源,目标端响应存取命令.发起端可以是应用服务器、个人PC机等各种有存储需求的实体,目标端主要是磁盘阵列、磁带库等存储实体,两端由光纤通过(网络、FC等)交换机连接起来形成I/O路径,构成发起端与目标端通信的桥梁.在I/O子系统中,单路径I/O传输错误是导致系统单点失效的根源,它难以满足现代存储对系统可用性和可靠性的要求; 同时,在单路径场景中,数据只能拥堵在一条I/O通道中传输,成为性能的瓶颈.为了提高性能和可靠性,在从主机到交换机到存储控制器的链路中,一般采用冗余的部件,使对存储设备的I/O操作可以在多条路径上执行,由此发展出I/O多路径技术,以期解决故障切换和负载均衡问题.目前,国内外都有多路径技术的研究工作,主要集中在一些存储厂商,如EMC、NetApp、HP、IBM等,一些大学、研究机构也在参与[1].本文在现有存储多路径技术的基础上设计和实现了一种基于ALUA的多路径存储子系统,它支持I/O的故障迁移和负载均衡等功能,同时具备高性能、可靠性以及高扩展性.在现代网络存储环境中,为了提高存储系统的可靠性,通常会使用冗余的物理组件(如适配器、电缆或交换机等)连接服务器主机与存储设备,所以在主机系统到存储阵列控制器间会存在多条物理链路(SAN存储网络多路径连接示意图如图1所示).通过这些物理链路,存储阵列上的块设备被映射给主机系统,在默认情况下,主机系统将每条路径映射的块设备都认作一个实际的物理盘,而本质上它们只是通向同一个物理盘的不同路径.主机端在对这一虚拟的块设备进行访问时,可以在多个物理链路中选择一个下发指令,即便出现其中一条路径断掉的单点故障,还有其它物理路径可以保证主机业务的正常执行,提升了存储系统整体的可靠性.同时,多路径软件也可通过自动监控和动态分流数据I/O,实现传输速率的提高.鉴于多路径技术的诸多优点,各大存储厂商如EMC、华为等也将其纳入标准配置,对该技术的应用和研究也一直比较热门.目前多路径技术研究主要集中在两方面,一方面是主机端多路径软件的设计与实现,如文献[2,3]分别介绍了现有的各种主机端多路径实现方法,文献[4-7]分别在不同的层面,用不同的方式设计和实现了主机多路径; 另一方面是多路径软件的特定应用,如文献[8]将不同模式的磁盘阵列与不同多路径软件搭配使用,文献[9]将多路径技术与虚拟化、集群等软件配合使用,文献[10-12]分别将多路径应用到电台广播和地震资料处理集群中.这些多路径方案在各自的领域针对不同应用场景能够很好的满足需要,但是都存在各自的问题.首先,多路径技术涉及诸多方面,包括主机系统和存储系统等,它们相互配合共同实现相应功能,而现有方案往往只着眼于主机端的多路径软件,没有从整体上考量.其次,一部分方案是将现有的多路径技术应用到某一个特定的领域,并未对多路径技术进行升级和优化.为应对上述问题,本文设计并实现了一整套的多路径存储子系统,它具备如下特点: ♦高性能,高度负载均衡和高聚合带宽;♦高扩展性,支持链路、交换机和HBA卡等的扩展;♦高可靠性,链路冗余和路径选择策略避免了单点故障.在多路径典型应用场景中,存储阵列中的物理磁盘通过存储控制器上运行的RAID 程序组成RAID组,再将RAID组中的存储池划分为存储单元,称为LUN(Logical unit number,又称逻辑卷),存储设备将 LUN提供给主机进行I/O访问.存储控制器是多路径I/O的目标端,对于多路径的故障切换和负载均衡起着至关重要的作用.存储设备一般包含两台或更多的存储控制器,以达到冗余配置,每台存储控制器又有多个存储端口,以方便连接前端主机或存储网络交换机,从而形成多条链路.当采用多条链路时,多条传输路径可同时传输数据块,以解决单条链路的传输能力有限的问题. 本文提出的方案对存储系统进行多路径组网,实现下述一整套的流程.主机启动时系统通过扫描,发现每条路径上的块设备,并记录路径状态等相关信息.对于每个块设备(LUN),主机端多路径软件下发命令,查询它的所属控制器,并将主机到其控制器属主之间的路径作为优先选择路径,即主路径.如果主机到其所属控制器之间有多条路径,I/O就会被多路径软件分摊到各条路径上,以期提高存储系统的整体性能.如图1所示,当主路径(如路径1)由于控制器A宕机而失效后,存储端自动将业务通过failover切换到控制器B,随之主机端多路径软件将I/O切换到备用路径(路径3),避免因单点故障而造成业务中断.当控制器A的故障得以解除或修复后,存储业务通过failback切换回控制器A,并由主机端多路径将I/O从备用路径切换回主路径.总体而言,多路径技术涉及从主机到存储阵列之间的各类实体.逻辑卷所属控制器的设定会影响其在ALUA机制下目标端口组的配置,此两者与主机端路径选择策略相配合,共同实现多路径功能.因此,多路径存储子系统的设计需要从系统论角度来考虑,由总到分、自顶向下地进行,并充分考虑各个模块之间的相互促进与制约,在保证故障转移功能的基础上,尽最大努力实现负载均衡,从根本上改善系统I/O性能.本文提出了一种新的基于ALUA的多路径存储子系统架构,包括系统管理模块、ALUA属性配置模块、路径选择策略管理模块和I/O重定向模块等.系统管理模块负责整个存储阵列的存储资源管理,其中与多路径相关的是LUN的控制器属主信息,它是实现不同I/O路径优先级的关键因素; ALUA属性配置模块就是据此来设置其对应的目标端口和目标端口组的,它与路径选择策略管理模块一起为I/O规划下发路径,以保证不同I/O路径间的负载均衡和单条路径I/O性能的最优化; 当进行了上述的设定之后,I/O只能通过主存储控制器下盘,分发到冗余存储控制器的I/O需要重定向模块将其转发给所属控制器.具体的多路径存储子系统架构如图2所示.具体而言,在系统管理模块,本文提出了一种逻辑卷控制器属主的自动分配和智能均衡方法,通过收集各存储控制器上的I/O信息来动态分配LUN到各存储控制器上; 其次,在底层存储中,基于ALUA机制提出了一种LUN目标端口和目标端口组的配置方式,根据LUN的控制器属主信息,来规划路径的优先级; 再次,在底层存储中,开发了I/O重定向模块,在I/O从非所属控制器下发时,通过内部端口将I/O转发到所属控制器; 最后,在路径选择策略管理模块中,根据底层存储ALUA属性的配置,设置了相应的路径管理策略,并开发了新的路径选择算法.通过对上述方案的设计与开发,更好地实现了I/O路径的故障转移和负载均衡功能.在多控制器存储阵列中,主机在访问存储设备逻辑单元(LUN)时,由于LUN存在控制器属主的概念,下发给不同LUN的I/O将选择不同的路径,这会造成各控制器I/O 负载和性能的不同.为了充分利用存储资源,提高性能和可靠性,实现故障切换和负载均衡,需要一种有效的配置方案.目前,多控制器存储阵列的LUN属主和多路径配置方案多种多样,各厂商都有自己的多路径软件和LUN属主配置子系统,种类繁多、配置复杂,并且存在以下问题:传统的LUN控制器属主的配置都是通过系统管理界面人为手动操作的,由于难于全面掌握各控制器的状态信息,管理员很难有效地进行所属控制器的划分.这有可能导致I/O在一台控制器上拥堵或饥饿的极端情况,极大地损耗了性能,对可用性也造成了一定的影响.为解决上述问题,本文提出了一种多控制器存储设备逻辑卷属主管理方法.在双控制器场景下,创建LUN之前,首先收集各控制器的I/O统计信息,并根据设定的算法决定相应的控制器属主,然后据此通过ALUA进行存储端口和端口组的配置,为LUN 提供路径访问的优先级机制.最后,当新创建的 LUN 投入使用后,反馈并更新各控制器的I/O统计信息.具体参看图3.具体而言,首先采集各个控制器的基本I/O信息,包括带宽、IOPS等; 然后通过一定的统计方法计算求取均值、方差和积分等性能表征参数; 接着,将给定的决策因子与表征向量进行加权平均计算,得到每个控制器的决策指数; 最后,选取指数较大的控制器为新建卷的控制器属主.根据存储的特性,选取各个控制器的带宽、IOPS、LUN数目、LUN总容量、总I/O error率、故障率、I/O突发率、总I/O量、I/O集中度、吞吐量等来作为性能指标,计算并表示其性能表征参数为X={x1,…,xi,…,xn}.为了消除数值量纲不同造成的影响,将数据进行归一化处理.Xi与Yi分别表示双端控制器各自的第i个参数.权重系数Ʊ={ω1,…,ωi,…,ωn}可由管理员根据应用场景的不同而设置不同的值,以决定主要的影响因素.例如,两个控制器的 LUN 的总带宽均值相同,但是其方差有较大差别,而且一边的I/O突发率明显高于对端,如果新建的LUN主要应用于平滑的I/O顺序读写,则应该将I/O突发率和方差对应项的权重系数提高.进一步地,当配置信息的数据积累到一定程度时,可以用线性回归的方法来学习得到决策因子,自适应地得到各项参数,增加子系统的智能性和自动化程度.两个控制器通过加权求和公式(如公式(1)所示)得到一个决策指数,比较两个决策指数,数值较大的控制器为新建逻辑卷的所属控制器.分配好新建LUN的控制器属主后,接下来在安装了LIO(Linux-IO target)模块的存储端控制器上进行端口组的划分和ALUA的配置.ALUA(Asymmetric logical unit access)的全称是非对称逻辑单元访问,是SPC-4协议的一个重要组成部分,主要应用于某个存储资源(LUN)具备多条访问路径的环境下.在本文,I/O性能在LUN所属控制器对应的路径上会更好,不同路径具备不同的访问特性,使用ALUA来规定路径访问的优先级,确保在正常情况下读写指令都是通过最优路径进行下发,以此达到最优的访问体验,并通过目标端口组TPG(Target port group)来对这些路径进行分类管理.一个目标端口组TPG包括若干目标端口,同一个TPG中的目标端口在访问逻辑单元LUN的时候具有相同的属性.主机可以通过SCSI命令来获取某一个LUN对应的TPG及其相关属性,并通过这些信息来组织访问LUN的路径.ALUA有4种访问模式,这些工作模式是在主机下发inquiry指令时,存储端上报给主机的,主要目的是告诉主机,存储处于哪个工作模式上.具体的描述如表1所示. ALUA的访问状态有4种,这些状态是通过响应主机下发的 SCSI指令 REPORT TARGET PORT GROUPS上报给主机的,对应的位是“ASYMMETRIC ACCESS STATE”.SPC-4(SCSI Primary Command-4)对存储端口划分为四种状态:1)主动优化 (Active/optimized):目标端口能立即访问LUN.2)主动非优化 (Active/un-optimized):仅能响应相应的命令,可转化为Active/optimized状态.3)备用 (Standby):仅能响应相应的命令,可转化为Active/optimized状态.4)不可用(Unavailable):仅能响应受限的命令集,不可转化为其它状态.设定端口为某一访问状态,相应的存储控制器就仅能响应对应的命令集,限定了目标端口访问LUN的权限.对于双控制器存储阵列,根据端口状态的划分,可以有三种不同的多路径访问方式:A/A(Symmetric Active/Active,对称双活),A/P(Active/Passive,主备模式)和 ALUA(Asymmetric Active/Active,非对称双活).为了性能和实现的简易型,本文选择ALUA.为了有效地约束I/O下发路径,防止I/O在一台控制器上拥堵或饥饿,结合上述的LUN控制器属主的设计,本文利用LIO提供的ALUA机制来配置目标端口和目标端口组.为进行端口组属性的配置,开发了相应的系统接口,将目标端口按照所属控制器进行分组,为LUN控制器属主的目标端口组提供更高的路径优先级,从而提高I/O效率和可用性.具体而言,对于特定的LUN,将目标端口按照所属控制器进行分组,划分到不同的目标端口组TPG中.将所属控制器的所有目标端口设为Active/optimized状态,形成一个目标端口组,将备控制器的所有目标端口设为Active/un-optimized状态,形成另一个目标端口组.当有I/O读写请求时,主备控制器都可以接受对LUN的访问,但流经备控制器的I/O,会被重定向模块转发到主控制器,最终I/O只能通过主控制器下盘.此外,由于所属控制器端路径和非所属控制器端路径的性能不同,当一端控制器因故宕机,其上的LUN故障迁移(也即failover)到对端控制器时,I/O切换到非优化的路径下发,性能随之下降.为了解决此问题,将对应TPG的type属性设置为both(Implicit and Explicit),其中的Explicit ALUA属性赋予主机端更改备端控制器对应端口组存取状态的权限,以实现多路径软件对存储端TPG属性的修改,达到提升路径优先级的目的.3.3.1 路径组织策略针对网络存储,各大厂商都有自己的多路径实现方法,为了提高响应速度和总体性能,需要在主机端开发相应的多路径软件来组织I/O路径和进行I/O路径的选择.但是由于主机系统的种类繁多,针对不同类型的操作系统都需要开发一套多路径软件,这极大地增大了维护成本,降低了扩展性.本文充分利用各大系统平台提供的原生多路径软件,通过其提供的通用框架来设计路径组织和选择策略.在各类主机多路径软件中,路径组把具有相同特征的路径组织在一起,以便于管理I/O路径.在某一瞬时只有一个路径组处在活跃状态,在路径切换时只能从当前活跃的路径组里选择最优的路径.不同的主机系统平台内嵌的多路径软件的组织策略各不相同,但都实现了常用的模式.在应用服务器领域,Linux类型系统的主机占有绝对优势,下面以Linux主机为例.Linux系统主机自带的多路径框架DM-Multipath的组织策略分为五种:1)multibus策略,同一个路径组包含一个块设备对应的所有路径.2)failover策略,一个路径组只含一条路径.3)group_by_serial策略,同一个路径组内只含序列号相同的路径.4)group_by_prio 策略,同一路径组内只含优先级相同的路径.5)group_by_node 策略,同一路径组内只含节点名相同的路径.为了负载均衡的目的,本文选择group_by_serial模式来配合存储端ALUA属性的配置,这样I/O的切换被限定在同一控制器的路径组内,只有在进行failover故障迁移时,才在不同的控制器间切换,实现了对I/O路径的管控.3.3.2 路径选择在主机下发读写指令时,先根据优先级从多个路径组中选一个,然后在这个路径组里根据设定的路径选择算法进行选择.DM-Multipath内置的路径选择算法有三种,分别是 Round-robin(轮询算法)、Queue-length(排队深度算法)以及Service-time(服务时间算法).轮询算法通过双向循环链表来组织所有路径,当选择新路径时,会顺次选取下一个节点对应的路径返回.触发路径切换的条件是,每条路径固定分发一定次数的I/O,当前路径发完规定次数的I/O后,就会自动切换到下一条路径.但是,该算法没有考虑到路径处理能力、响应时间等的不同.队列深度算法参考每条路径上的I/O负载,通过动态记录每条路径上排队等待处理的I/O数量来衡量路径的优劣.具体而言,当有I/O分发到某条路径上时,对应的队列深度就增加; 当队列中的I/O下发到底层驱动上时,队列深度就减少.同上,此算法也没有考虑不同路径物理特性的不同.服务时间算法预估I/O请求发送到每条路径后进行处理所需要的周转时间,服务时间最短的那条路径为最优路径.具体而言,将路径上总的排队I/O块大小除以此路径的吞吐量即可得到服务时间.为了更好地在路径间均衡I/O负载,本文提出并实现了一种新的路径选择算法——hikdata-selector算法.在选择一条路径时,不仅仅单一地参考响应时间、相对吞吐量、排队I/O块大小和重复次数等,而是将它们综合起来考虑.在选取一条路径时,先考虑路径的响应速度,选择响应时间短的路径作为最优路径; 当两条路径的响应时间一样时,再计算相对服务时间,优选耗时少的路径;如仍无法确定,还可继续参考路径的相对吞吐量; 当相关指标都相同时,可随机选一条路径返回.具体流程可参看图4所示.路径由双向循环链表组织起来,选择的具体流程是:首先,从备选路径链表里选取前两条路径,并根据上述算法进行比较,得到当前最优路径; 随后再从路径链表里取出下一条路径,与当前最优路径进行比较,选出较好的一条来更新当前最优路径,循环往复,直到整条链表全部判断完毕,选出的就是最佳路径.总体流程如图5所示.根据上文的设定,多路径软件优选主控制器端路径,备控制器端路径闲置.当出现主存储控制器(如:A控)的网卡损坏或者网络环境异常等故障时,主机系统与主控之间的路径断开,主机多路径软件会将I/O切换到备控(如B控)的路径下发指令,由于主控没有因故障宕机,所以不会执行failover操作,备控中相应的块设备仍然是只读的,从主机端下发到备控的读写指令将无法在备控下盘.为了保证业务不中断,需要将备控接收到的I/O通过内部端口重定向到主控,才能保证整个I/O过程的完整.为此,基于LIO开发了I/O重定向模块,其整体架构如图6所示.整个I/O重定向可以分为初始化模块和转发模块.初始化模块主要负责初始化I/O重定向所需的全局变量,分配全局空间,并创建转发线程.转发模块由发送子模块和接收子模块组成.发送子模块负责接收本端iSCSI命令数据,在需要转发的情况下,将命令数据通过PCIe非透明桥(NT)驱动的发送接口发送到对端,接收子模块负责接收对端发送来的命令数据,并在本端执行I/O指令,再将执行结果通过NT接口发送回对端,对端发送子模块将结果返回给上层,完成一次完整的I/O重定向过程.在本文,在LIO子系统中实现I/O重定向,减少了对存储端Linux存储协议栈的改动,降低了实现难度,也降低了I/O重定向对于整个系统带来不稳定的风险.现有的I/O 重定向,如iSCSI重定向只能适用于前端是iSCSI协议的场景,扩展性较差.LIO支持将块设备通过多种协议(如FC、InfiniBand等)映射到主机端,通过本方法实现的I/O重定向,可以有效兼容前端不同的网络存储协议,提高适用性.另外,本I/O重定向模块通过调用NT驱动接口实现与对端控制器之间的数据收发,速度更快,更可靠. 根据本文提出的多路径存储子系统模型,采用自主研发的双控制器存储阵列平台搭建了多路径存储子系统运行环境.针对多路径技术主要实现故障转移和负载均衡功能,设计了两种组网方式来进行测试,并选择存储业界广泛使用的IOMeter作为I/O 测试工具.测试硬件由两台应用服务器、一台双控制器存储阵列和两台万兆交换机组成,如图7所示.组网一仅包括7条路径(P1-P7),如图7所示,主机1访问LUN2时,路径有P1-P3-P6和P1-P4-P5-P6可选,而且两路径的I/O在存储后端全由控制器A处理.首先,测试 I/O 路径切换.经实测,在上述场景下,I/O指令优选P1-P3-P6路径下发.通过拔掉网线的方法来模拟P3出现故障的场景,此时路径重定向为P1-P4-P5-P6,但存储设备并没有执行 LUN failover.将P3线路插回,再模拟P6出现故障的场景,此时存储业务转由控制器B处理,I/O重定向到P1-P3-P5-P7路径,但是没有立即执行LUN failover.过了一段时间,通过控制器B处理的I/O累计到了设定的量级时,才执行了 LUN failover.上述实验充分说明了,此多路径子系统能够有效地实现故障切换功能.接下来,启动目标端,设置 LUN1、LUN3 为远程访问盘,并将其分别通过HBA1、HBA2的两个万兆网口映射出去.针对主机1与主机2,分别启动iSCSI发起端连接到目标端.主机1登入LUN1,主机2登入LUN3,如此每个主机可得到两个相同的远程盘,经测试,I/O指令优先通过所属控制器对应的路径下发.随后,先通过发起端测试单链路的性能和系统负载,再加载多路径模块,对多路读写性能和系统负载进行测试.相应的测试数据如图8所示.其中多路单链路是指通过多路径模块访问时,只使用一条有效链路传输.双链路是指通过多路径模块访问时,采用hikdataselector的负载平衡算法,两条链路并行传输.单链路是指不通过多路径模块而进行单一链路的访问.从图8中可以看出,三者之中双链路的读写性能最好.最后,针对本文提出的方案,在组网二(包括图7所有路径)上进行如下测试:在双控存储阵列上规划创建 20 个卷,分别模拟不同的用途,比如,邮件服务器存储、数据库存储、视频流存储、FTP存储等,分别对应小文件随机读写、均匀顺序读写、突发大文件读写等,通过提出的LUN控制器属主管理方法将其分配到不同的控制器上,并每二十秒测试一次存储端网络HBA卡的吞吐量,持续3个小时,然后求取这些测试值的均值和变异系数(CV).在对照组中,按照传统做法随机分配LUN的所属控制器,并采用经验证效果较好的Service-time选路算法.将上述流程中不同用途的卷的创建顺序打乱,重新分配所属控制器,进行下一次测试.循环往复测试6次,测试结果如表2所示.从测试数据的对比,可以看出本文提出的方案在四块HBA卡的速率基本一致,较好地实现了负载均衡的要求,并比对照组有更好的性能.在网络存储系统中,在主机与存储系统之间利用多路径技术进行容灾已成为常例,既能保证数据业务不因故障而中断,又可提升系统总体I/O传输效率和吞吐量.为此,该技术得到了业界的普遍重视,对它的研究和应用越来越广泛.但是目前多路径技术方。

存储程序控制原理课件

存储程序控制原理课件

智能家居控制系统
总结词
智能、舒适、便利
详细描述
智能家居控制系统利用存储程序控制原理,实现对家居设备的智能化管理和控制 ,提供舒适、便利的生活环境。
交通讯号控制系统
总结词
安全、高效、环保
详细描述
交通讯号控制系统运用存储程序控制原理,对城市交通讯号进行实时调控,提高交通效率,保证交通安全,降低 环境污染。
指令类型
存储程序控制原理的指令 系统包括单地址、双地址 和多地址指令,以及串行 和并行指令等。
指令结构
指令系统还包括指令长度 、指令格式和指令中的操 作码等结构。
指令的功能
指令系统能实现数据传输 、运算、逻辑判断和控制 转移等操作。
寻址方式
立即寻址
立即寻址是指将操作数直接编码 在指令中,这种寻址方式速度快

系统稳定性改进
容错技术
通过硬件冗余、软件重试等技术手段,提高系统 的容错能力,保证系统的稳定性。
故障检测与恢复
实时监测系统状态,快速定位并处理故障,减小 系统故障对业务的影响。
负载均衡
公道分配系统资源,避免单点故障,提高系统的 整体稳定性。
系统可维护性提升
可扩大性设计
01
采用模块化设计思想,便于系统功能的扩大和升级。
第三代计算机采用了集成 电路(IC)作为逻辑电路 的基本元件,这使得计算 机的体积进一步缩小,运 算速度更快,价格更低。
第四代计算机采用了大规 模集成电路(LSI)和超大 规模集成电路(VLSI)作 为逻辑电路的基本元件, 这使得计算机的体积进一 步缩小,运算速度更快, 价格更低。
存储程序控制原理的应用范围
01
020304 Nhomakorabea科学计算

NetApp存储AIX系统端配置方法和注意事项

NetApp存储AIX系统端配置方法和注意事项

NetApp 与AIX系统连接时MPIO的配置方法与注意事项目录1. AIX上MPIO介绍 (1)2. NetApp与AIX连接的MPIO要求 (1)3. dotpaths工具与ALUA的选择 (2)4. 如何安装NetApp AIX Host Utility 5.1 (3)5. 如何删除NetApp AIX Host Utility 5.1 (4)6. 对中行天津分行这次搬迁的MPIO完善建议 (4)1.AIX上MPIO介绍MPIO也叫做多路径IO模块,是指在主机端的操作系统与底层存储端连接时,AIX有多于1条路径(光纤或以太)从底层存储到达主机操作系统。

MPIO功能在操作系统上往往需要安装软件实现。

AIX自带MPIO模块,不需要安装MPIO 软件。

但是在配合NetApp设备使用时,需要安装NetApp Host Utility以便从AIX 端控制管理存储端的LUN和进行路径管理。

App与AIX连接的MPIO要求NetApp存储与AIX连接时,必须安装NetApp提供的免费工具包:Host Utility。

,目前NetApp正式支持的版本有:4.2,5.0,5.1。

我们推荐安装最新版本5.1。

本文的其余部分都是以5.1版本举例介绍如何使用Host Utility。

在多路径中,必须要进行路径管理。

路径管理的目的是为了让AIX识别路径,以便在存储端的控制器发生切换的时候,AIX端可以实现透明,对应用没有任何影响,否则有可能在存储控制器发生切换的时候,AIX端连接的LUN有可能产生瞬断的情况。

管理多路径,有两种方法,第一:在AIX端手工运行Host Utility工具包中提供的dotpaths工具设置路径权限。

第二:AIX和NetApp存储都满足最低版本要求以后,在存储端开启ALUA(Asymmetric Logic Unit Access,非对称逻辑单元访问)支持。

当开启了ALUA以后,AIX端可以自动设置路径优先级,并在存储端切换时自动进行路径切换。

宏杉科技双活存储解决方案介绍

宏杉科技双活存储解决方案介绍

MacroSAN 双活存储解决方案介绍杭州宏杉科技有限公司1. 解决方案概述在信息社会里,数据的重要性已经毋容置疑,作为数据载体的存储阵列,其可靠性更是备受关注。

尤其在一些关键应用中,不仅需要单台存储阵列自身保持高可靠性,往往还需要二台存储阵列组成高可靠的系统。

一旦其中一台存储阵列发生故障,另一台可以无缝接管业务。

这种两台存储都处于运行状态,互为冗余,可相互接管的应用模式一般称之为双活存储。

由于技术上的限制,传统的双活存储方案无法由存储阵列自身直接实现,更多的是通过在服务器上增加卷镜像软件,或者通过增加额外的存储虚拟化引擎来实现。

通过服务器上的卷镜像软件实现的双活存储,实施复杂,对应用业务影响大,而且软件购买成本较高。

通过存储虚拟化引擎实现的双活存储,虽然实施难度有一定降低,但存储虚拟化引擎自身会成为性能、可靠性的瓶颈,而且存在兼容性的限制,初次购买和维护成本也不低。

宏杉科技的对称双活存储(Symmetrical Dual Active Storage,简称SDAS)是一项专门针对双活存储方案的创新技术。

通过宏杉科技对称双活存储技术,可以不需要引入任何第三方软硬件,直接通过两台同档次的MS系列存储阵列实现两台存储的双活工作,互为冗余。

当其中一台存储发生故障时,可由另一台存储实时接管业务,实现RPO、RTO为0。

这是一种简单、高效的新型双活存储技术。

宏杉科技的SDAS技术,不仅支持近距离的双活存储系统,而且支持上百公里甚至更远的远距离双活数据中心。

近距离的双活存储可以采用更加高效的光纤交叉直连的方式进行组网部署,远距离的双活数据中心采用交换机连接方式,再配以仲裁者机制进行组网部署。

宏杉科技的SDAS两套存储之间的链路不仅可以支持10GE以太网,而且在业界率先支持40GE以太网技术。

40GE具有目前以太网应用领域中的最高的传输带宽,可以大大降低同步数据传输时延。

目前宏杉科技的MS3000、MS5500、MS7000存储产品都已经支持对称双活存储技术。

存储程序控制原理

存储程序控制原理
29
举例(马鞍山至湖州)
如存在1,则1,2,5; 如不存在1,则2,4,5
30
4.2.2 内部处理:通路选择
任务:根据已定的入端和出端号,在交换网 络中选择空闲的通路。 F-150系统交换网络内部空闲时隙 ITS 表示 TST网络的通路选择
忙闲状态表运算 通路选择流程
31
32
4.2.2 内部处理:通路选择
56
影响 BHCA的因素
处理机速度 指令功能 无呼叫发生时的开销 呼叫处理开销 其他开销 程序结构和编制 安全系数 话务参数
57
BHCA值的估算
t = a + b*N t:处理机的时间开销 a:与话务量无关的固有开销 b:处理一次呼叫的平均时间开销 N:BHCA值。
58
4.3.4 程序设计语言
程序的执行级别----按实时性强弱分为三级。
1)故障级: 发生故障时即响应故障中断,调用故障级 处理程序,进行故障处理。
2)时钟级: 按一定的时间间隔定时启动运行,一到时 间无条件执行,可被故障级中断。
3)基本级: 没有固定的执行周期,有任务就执行, 可以被前面两种程序中断。
45
正常调度过程
16
4.2.1 扫描与输入:双音多频 DTMF信号 双音多频信号的组成
17
4.2.1 扫描与输入:双音多频 DTMF信号
识别周期和原理(10ms) 有数字到,收号器将信号出现位SP置“1”,过后
再置“0”,数字扫描程序如果发现(前次SP⊕本次 SP)∧前次SP = 1 ,就到收号器中读取数字。
18
4.2.2 内部处理:数字分析
用程序判断分析 数字分析流程 图4.13 预处理,对应前1~3位 号码分析 查表分析 塔形结构:数字分析查表举例 线性结构: 图4.15

Windows MPIO多路径

Windows MPIO多路径

Windows Server 2008多路径I/O 概述面向高可用性的多路径支持Windows Server® 2008 包括许多将运行Windows 服务器级操作系统的计算机与存储区域网络(SAN) 设备连接起来的增强功能。

集成的多路径I/O (MPIO) 支持是为基于Windows 的服务器与SAN 连接提供高可用性的众多增强功能之一。

Microsoft MPIO 体系结构通过建立到存储阵列的多个会话或连接,支持iSCSI、光纤通道和串行连接的存储(SAS) SAN 连接。

多路径解决方案使用冗余的物理路径组件(适配器、电缆和交换机)在服务器与存储设备之间创建逻辑路径。

如果这些组件中的一个或多个发生故障,导致路径无法使用,多路径逻辑就使用I/O 的备用路径以使应用程序仍然能够访问其数据。

每个网络接口卡(在使用iSCSI 的情况下)或HBA 都应通过使用冗余的交换机基础结构连接起来,以便在存储结构组件发生故障时能继续访问存储。

故障转移次数因存储供应商而异,并且可以通过使用Microsoft iSCSI 软件发起程序驱动程序中的计时器,或修改光纤通道主机总线适配器驱动程序参数设置进行配置。

Windows Server 2008 中的新MPIO 功能包含一个设备特定模块(DSM),该模块用于处理支持非对称逻辑单元访问(ALUA) 控制器模型(在SPC-3 中定义)的存储阵列,以及遵循Active/Active 控制器模型的存储阵列。

包含的DSM 的功能Microsoft DSM 提供以下负载平衡策略。

请注意,负载平衡策略通常取决于连接到基于Windows 的计算机的存储阵列的控制器模型(ALUA 或实际Active/Active)。

故障转移不执行负载平衡。

应用程序指定一个主路径和一组备用路径。

主路径用于处理设备请求。

如果主路径发生故障,使用其中一个备用路径。

备用路径必须按优先顺序降序排列(最优先的路径排在第一位)。

MacroSAN MS3000产品介绍

MacroSAN MS3000产品介绍

MacroSAN MS3000产品介绍杭州宏杉科技有限公司1. 产品概述MacroSAN MS3000是宏杉科技推出的新一代中端存储产品,其融入了大量先进设计理念和架构技术,为中小型数据中心提供安全可靠、资源弹性部署的存储平台。

在硬件架构上,MS3000采用了包括大容量缓存扩展、PCI-E 2.0、SAS 2.0、SSD 等先进技术,构建高性能的存储平台。

在资源管理上,MS3000采用基于Cell 的虚拟化技术,通过创新的ICMT 管理机制,实现资源的弹性部署。

在可靠性上,MS3000采用双控全冗余模块化设计、可支持四控多活配置,提供丰富的数据保护特性,此外通过创新的CRAID 技术和IDDC 磁盘诊断安全机制,将磁盘故障导致的宕机时间和机率减少80%。

MS3000基于开放式数据存储平台(ODSP ),能够通过接口开放、规格功能定制、行业特性开发移植等方式,将存储系统真正与用户业务系统无缝融合。

按照产品配置的不同,MS3000可分为MS3100、MS3300。

2. 产品特点(一)高性能体系架构在架构设计上,MS3000采用大量业界先进技术,包括大容量缓存扩展、PCI-E 2.0、SAS 2.0、SSD 等,构建高性能的存储平台。

(1)高带宽总线技术PCI-E 2.0技术:在每个控制器的内部,MS3000采用了16个PCI-E 2.0通道。

单个PCI-E2.03.5英寸磁盘扩展柜 2.5英寸磁盘扩展柜 MS3000存储控制器MS3000整机视图通道的带宽为5.0Gb/s,16个PCI-E2.0通道的总带宽达到80Gbps。

MS3000采用多条PCI-E 2.0总线连接前端主机通道、后端磁盘通道及缓存镜像通道,保障整个系统端到端的性能匹配。

SAS 2.0技术:SAS技术近几年在带宽、稳定性、兼容性、效率等方面都已超越FC技术,已经成为存储阵列主流架构。

而SAS 2.0技术的成熟商用,使得SAS的领先优势更为明显。

存储单元结构原理

存储单元结构原理

存储单元结构原理存储单元是计算机中用于存储数据的基本单元,通常包含了一个单独的二进制位。

它是计算机内存的基本构建块,也是实现数据存储和读取的关键元素。

在计算机体系结构中,存储单元的结构原理是指存储单元实现数据存储和读取功能的原理和机制。

存储单元的结构原理可以分为物理存储单元和逻辑存储单元两个层次。

物理存储单元是指实际存储数据的硬件元件,例如集成电路芯片、电容、磁道和磁头等。

逻辑存储单元是指对物理存储单元进行抽象和组织,实现数据的存取和寻址操作。

在物理存储单元层面,主要包括存储元件和存储阵列的原理。

存储元件是指存储数据的基本元素,其种类包括传统的DRAM(Dynamic Random Access Memory)和SRAM(Static Random Access Memory),以及新兴的NVM(Non-Volatile Memory)如闪存和相变存储器等。

这些存储元件基于不同的物理原理来存储数据,例如电容的充放电、磁场的磁化和相变材料的相变等。

存储阵列则是多个存储元件的组合,用于实现大容量和高速度的存储。

常见的存储阵列结构包括平面阵列、交叉点阵列和三维阵列等。

在逻辑存储单元层面,主要包括存取控制和寻址机制的原理。

存取控制是指控制存储单元进行数据读取和写入的电路和信号。

常见的存取控制方法包括同步存储器和异步存储器,其中同步存储器通过时钟信号实现数据同步,异步存储器则通过通信协议实现数据通信。

寻址机制是指根据存储单元的地址信息来确定数据的存放位置和访问路径。

存储单元的地址通常使用二进制码表示,其中地址线通过编址器和解码器进行管理和控制。

编址器将主存储器空间划分为若干单元和块,根据地址码确定数据的访问路径。

解码器则将地址码转换为控制信号,用于控制存储单元的读写操作。

此外,存储单元的结构原理还涉及到数据的存储方式和访问速度等问题。

数据的存储方式包括位线存储和子块存储两种形式。

位线存储是指将数据存储在存储单元的位线上,每个存储单元存放一个数据位。

存储程序控制原理

存储程序控制原理

存储程序控制原理
程序控制原理主要涉及计算机程序的执行过程及其控制流程。

它包括以下几个关键要点:
1. 顺序执行:程序中的指令按照存储的顺序依次执行。

每条指令执行后,控制流会顺序移到下一条指令。

2. 条件分支:在执行过程中,程序可能会根据不同的条件选择执行不同的指令。

通常使用条件分支语句(如if语句)来实现。

3. 循环控制:为了重复执行某个指令块,可以使用循环控制语句(如for循环、while循环)。

循环控制语句中的条件会被
定期检查,只要条件为真,循环就会继续执行。

4. 子程序调用:为了将程序模块化,可以将常用的指令块封装成子程序,并在需要的地方进行调用。

当调用子程序时,控制流会暂时转移到子程序中执行,执行完后再返回主程序。

5. 中断处理:当外部事件(如硬件中断)发生时,会打断当前的程序执行,转而执行中断处理程序。

中断处理程序执行完后,控制流会回到原来被中断的位置继续执行。

6. 异常处理:当程序执行过程中发生错误或异常情况时,可以通过异常处理机制来进行处理。

异常处理通常包括捕获异常、处理异常以及恢复正常执行。

总而言之,程序控制原理涉及了程序执行的顺序、条件分支、循环控制、子程序调用、中断和异常处理等多个方面,这些机制共同协调着计算机程序的执行过程。

详解Linux下存储设备多路径管理

详解Linux下存储设备多路径管理

详解Linux下存储设备多路径管理魏勇【期刊名称】《科技风》【年(卷),期】2013(000)018【摘要】IntheenterprisestoragenetworkofSAN,redundantlyaccessstoragedeviceisthe keytechnologyofhighreliableguaranteesystem.HowLin-uxprovidesredundantaccessserverhosttoastoragedevice,namelymultipathco nnection?ThispaperintroducesanopensourcesolutionunderLinux Device- MapperMultipath,explainitsstoragedevicesMultipathmanagementstepbyste pprocess.%在企业的SAN存储网络中,冗余地访问存储设备是保证系统高可靠的关键技术。

Linux如何实现服务器主机到存储设备的冗余访问,也就是多路径连接呢?本文将介绍Linux下一种开源解决方案Device- MapperMultipath,逐步讲解其实现存储设备多路径管理的过程。

【总页数】2页(P22-23)【作者】魏勇【作者单位】广东机场白云信息科技有限公司,广东广州,510470【正文语种】中文【相关文献】1.Linux系统下GRIB2格式GFS资料转为GRIB1格式的方法详解 [J], 李健;陈卫丽;戴念军2.Linux下逻辑盘卷管理详解 [J], 李翔;龙莉艳3.linux下USB大容量存储设备驱动分析与实现 [J], 张义栋;孙未4.嵌入式Linux下USB2.0海量存储设备驱动设计 [J], 冯韬;李广军5.Linux下的“移动存储设备” [J], 邹惠因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关于存储控制器的多路径机制
业界某些存储控制器支持ALUA多路径机制(或者说负载均衡技术),什么是ALUA多路径机制?
ALUA即“Asymmetric Logical Unit Access(异步逻辑单元访问)”的缩写,它是前端控制器多路径机制之一。

前端控制器多路径机制一定程度上决定存储的读写性能和可靠性,现有的前端控制器多路径机制可分为三大类:A/A:Symmetric Active/Acivie,对于特定的LUN来说,在它的路劲中,两个存储控制器的目标端口均处于主动/优化(active/optimized)状态。

两个控制器之间实现高速互联的通讯,一个IO发到控制器端,两个控制器可同时参与处理;当一个控制器繁忙,系统不需要主机端的负载均衡软件参与就可以自动实现负载均衡。

ALUA:Asymmetric Active/Active,对于特定的LUN来说,在它的路径中,一个控制器的目标端口处于主动/优化(active/optimized)状态,另一个控制器的目标端口处于主动/非优化(active/unoptimized)状态。

在某一个时刻,某个LUN只是属于某一个控制器,要想实现两边的负载均衡,就是将任务A扔给控制器A,将任务B扔给控制器B,对于同一个任务来说,任何时候只有一个控制器在控制。

A/P:Active/Passive,对于特定的LUN来说,在它的路径中,一个控制器的目标端口处于主动/优化(active/optimized)状态,另一个控制器的目标端口处于备用(standby)状态。

其负载均衡及任务处理方式与ALUA类似。

Active/optimized、Active/unoptimized、Standby和Unavailable是目标端口的四种访问状态,在相应访问状态下,设备服务器(即阵列控制器)只能回应相应的命令标准(命令标准由ISO/IEC 14776-453文件Part 453:SPC-3制定),这就决定了在某一时刻是否可以通过某个目标端口访问逻辑单元。

目标端口的状态可以转换,目标端口从一个状态转换到另一个状态的过程称为过渡。

Active/optimized:目标端口有能力立即访问逻辑单元。

Active/unoptimized:只能回应相应的命令标准,可以过渡到Active/optimized。

Standby:只能回应相应的命令标准,可以过渡到Active/optimized。

Unavailable:只能回应有限的命令集,不可以过渡到其他三种状态。

在A/A阵列中,管理员无需指定每个LUN的默认所有者,当路径出现故障,将离线故障路径并重定向IO到其他路径,IO重定向期间,存储控制器会充分考虑负载平衡等因素并选择最合适的路径。

对于应用程序,路径切换过程是透明的的,几乎不会有延迟(延迟时间一般为几秒)。

在ALUA或A/P阵列中,管理员需指定每个LUN的默认所有者,设置一些LUN 的默认所有者为控制器A,另外一些LUN的默认所有者为控制器 B, 人为在两个控制器之间进行负载均衡;如果路径发生故障,将重新分配IO流量到其他可用的路径,同时,停止故障路径上的IO。

对于应用程序,路径切换过程是透明的,然而,会有延迟(延迟时间一般为几十秒)。

在制定负载平衡策略时,必须同时兼顾多路径软件功能及存储阵列的多路径机制(A/A-ALUA-A/P)。

存储业界的ALUA阵列、A/P阵列和A/A阵列。

从理论上来说,对于不同的多路径机制,最直观的表现是路径切换的延时不同, A/A机制最优且几乎无延时,ALUA机制稍差且有延时,A/P机制最差且延时更大。

注释:
1、ISO/IEC:国际标准化组织及国际电工委员会
2、SPC-3:SCSI Primary commands-3
参考资料:
1、/zh-cn/library/cc725907(WS.10).aspx
2、http://webstore.iec.ch/preview/info_isoiec14776-453%7Bed1.0%7Den.pdf
3、/server/7/8752007.shtml。

相关文档
最新文档