[剖析] 多路径ALUA技术如何优化I/O处理


      在分享数据中心存储双活系列文章中,参考文章“双活架构设计必读的10篇深度文章”,不止一次提到多路径ALUA模式,也有很多小伙伴要求我简单讲讲ALUA相关知识,虽然随着专业存储的市场下滑,专业存储市场份额也会渐渐缩小,但是专业存储的应用场景还在并没有消失。存储专业厂商不断整合和并购主要是要保住销售增长和孵化技术,为新一轮技变革变铺平道路,当机遇出现时,具备抓住机遇的软硬实力。

      今天简单给小伙伴普及下ALUA相关知识和技术。


什么是ALUA多路径机制


       ALUA是异步逻辑单元访问(Asymmetric Logical Unit Access)的缩写,ALUA是SPC3 (SCSI Primary commands-3)协议中规定的目标器端口组TPGS (Target Port Group Support)访问模型中的一类子集,可用于处理A/A-A (Active/ Active-Asymmetric) 和 A/P(Active /Passive)阵列的多端口访问管理。所以通常情况下,ALUA被认为是一种多路径访问模型。但实际上ALUA需要多路径和存储阵列同时支持才能实现路径优化访问,它更是前端控制器多路径机制。


      存储前端控制器多路径机制在一定程度上决定存储的读写性能和可靠性,现有的前端控制器多路径机制大致可分为A/A-S(Active/Acivie-Symmetric)、ALUA和A/P(Active/Passive)三大类


      先说说A/A-S(Active/Acivie-Symmetric)机制,对于特定的LUN来说,在它的路径中,多个存储控制器的目标端口均处于主动/优化(Active/optimized)状态。多个控制器之间通过PCIe或Infiniband等实现高速互联的通讯,从主机侧发送一个IO到控制器端后,多个控制器可同时参与IO处理;存储系统会自动负载均衡,当一个控制器繁忙或业务压力较大时,存储系统不需要主机端多路径负载均衡软件参与就可以自动实现负载均衡。


     对于ALUA(Active/Active-Asymmetric)机制来说,特定的LUN在控制器的路径组中,只有一个控制器的目标端口组处于主动/优化(Active/Optimized)状态,其他控制器的目标端口组处于主动/非优化(Active/Unoptimized)状态。某个时刻一个特定LUN只属于某一个优选控制器,在多路径的配合下,IO从优选控制的IO组(Active/Optimized)下发IO,多路径不会发送该LUN的IO到其他控制器,一般通过将LUN A归属控制器A,将LUNB归属给控制器B实现两边的负载均衡,归属操作可以手动或自动完成。


      还有一种是A/P(Active/Passive)机制,一般只用在低端双活存储阵列中。现在这种架构已经很少见了。对于特定的LUN来说,在对应存储的路径中只有一个控制器的目标端口处于主动/优化(Active/Optimized)状态,其他控制器的目标端口处于备用或平时不工作状态,其负载均衡处理方式与ALUA类似(即根据优选控制器来决定),但是由于多路径和存储互不相识(多路径不知道那些路径是优选路径),IO很难选到合适的路径,IO的下发可以说这完全取决于上层多路径的心情,解决方案是提供自研多路径来配合阵列选路,通过私有协议实现IO到优选路径的匹配。


</

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在CentOS 7上安装多路径(Multipath)时,可以按照以下步骤进行操作: 1. 首先,确保已经安装了AliSQL-5.6.32的CentOS 7基础安装包以及其他必要的依赖文件,如ncurses-5.9.tar.gz、cmake-2.8.10.2.tar.gz和bison-2.7.tar.gz等。 2. 在安装多路径之前,需要编辑multipath.conf文件来配置多路径。可以使用vi或其他文本编辑器打开并编辑multipath.conf文件。 3. 在multipath.conf文件中,可以使用以下示例的配置来设置多路径。 ``` blacklist { wwid 3600508b1001c044c39717726236c68d5 } defaults { user_friendly_names yes polling_interval 10 queue_without_daemon no flush_on_last_del yes checker_timeout 120 } devices { device { vendor "MacroSAN" product "LU" path_grouping_policy group_by_prio no_path_retry 30 prio alua path_checker tur path_selector "round-robin 0" hardware_handler "0" failback 15 } } multipaths { multipath { wwid 3600b342c2037975d3e7bd0984d0000d5 alias mpatha } # multipath { # wwid 3600b3426fb82c96d983ddfc59d0000d8 # alias mpathb # } } ``` 4. 保存并关闭multipath.conf文件。 5. 运行以下命令来启用多路径服务: ``` systemctl enable multipathd systemctl start multipathd ``` 6. 验证多路径是否成功安装和配置,可以运行以下命令来查看Lun的UID和本地磁盘的UID。在该命令中,sda代表服务器本地磁盘,其他代表服务器从SAN交换机识别到的Lun。 ``` multipath -ll ``` 通过按照以上步骤进行操作,您可以在CentOS 7上成功安装和配置多路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值