[总]从RDAC看到SAN的一些原理

  今天遇到旧项目中关于DS4300 中端磁盘系统(FAStT600),要实现Failover的问题。随便就到IBM上找了一些资料看看,包括:

一、冗余切换的原理
假定主机端的光纤通道卡为HBA1、HBA2。存储端控制器A、控制器B。
每个LUN缺省属于一个控制器。那么当然可能一部分LUN属于控制器A,一部分属于B。

情形1:有光纤交换机的SAN结构,必然会定义一个光纤卡主用,一个辅用的情况,这个主用辅用与存储端如何配置LUN及控制器的关系无关,因为没有必要
■主机端多通道冗余软件,无需对存储端的控制器坏、光纤线断的情况作出反应,就是说无需进行光纤通道卡切换,那是在光纤交换机处就处理掉了的。只是可以获取信息,你可以看到所有属于控制器A的LUN,在控制器A损坏或者其光纤线断开的时候,全部切换到了控制器B,但是,在主机端,一直是通过HBA1来访问
■如果主机端的HBA1卡损坏,或者光纤断开,那么主机端多路冗余软件切换到用HBA2来访问存储,存储端也无需作出任何反应

情形2:无光纤交换机的直连结构,必然是一个主机光纤卡只能访问一个存储控制器,HBA1连控制器1,HBA2连控制器2,从HBA1卡只能访问挂在控制器A上的LUN,HBA2只能访问控制器B上挂的LUN
■当发生任何使得HBA1不能访问控制器A上的LUN的情况(包括光纤问题、控制器问题、HBA问题),都会造成缺省挂在控制器A上的LUN全部切换到控制器B,主机端多路冗余软件也相应地配合动作,让对原控制器A上LUN的访问全部路由到HBA2

二、LUN和磁盘的关系
LUN只是一个逻辑的东西。在存储设备内部,LUN与物理硬盘的关系,如同主机中逻辑卷与物理硬盘的关系,也就是好像LV和PV的关系,在不同范畴。可以理解为LUN就是在做完RAID之后的逻辑盘上分出来的logic driver。
但不同的是,LUN在主机上看来是一个物理硬盘。

三、IBM的DS4300 中端磁盘系统(FAStT600)可以用RDAC驱动进行Failover的支持,有好也有坏
好处就是方便支持多路访问,坏处就是限制多:
使用RDAC for Linux的限制和要求

引用
1. 适用的机型:
—————————————————
| | Machine Type | Model |
|———–|————–|————————|
| FAStT 900 | 1742 | 90X , 90U |
|———–|————–|————————|
| FAStT 700 | 1742 | 1RX, 1RU |
|———–|————–|————————|
| FAStT 600 | 1722 | 60U , 60X |
—————————————————
2. Linux RDAC支持32位Intel架构服务器。这些服务器必须被配置在FAStT的同构环境中。现在的RDAC驱动程序暂时不支持在异构环境中,Linux和非Linux操作系统共享同一个FAStT。
3. The Linux RDAC驱动程序不能和HBA卡级的多链路切换驱动程序同时使用,如6.06.63-fo。用户必须修改驱动程序的make文件,编译形成non-failover模式的HBA卡驱动程序。
4. 当前版本的RDAC支持SteelEye’s?LifeKeeper?集群软件时只允许使用8个lun。
5. Linux RDAC当前不支持SATA硬盘的扩展柜EXP100
6. 其他对于Linux连接FAStT的限制也仍然适用于RDAC的情况。
7. FAStT的In-band管理暂时不支持。FAStT的Universal Access LUN (UTM)不能被映射到分区里面。
8. AVT是不支持的。由于在Linux的分区上AVT是被自动使能的。用户必须使用随RDAC提供的脚本将AVT禁用。
9. 由于有些Linux的SCSI驱动不支持跨越LUNs。如果LUN是不连续的,内核不能找到间隔后面的LUNs所以用户必须保证映射的LUN号是连续的。
10. SMdevices不能找到带内管理LUN-Universal Access LUN (UTM LUN)后面的LUN。
11. 如果一台主机有多块HBA卡,每个HBA卡同时都能看到两个FASTt的控制器(通过一个没有划zone的交换机)的话,Linux RDAC在控制器切换的时候会报告I/O错误。建议您使用多个交换机,或用划分zone的方法使每个HBA卡只能见到FAStT的一个控制器。
12. RDAC驱动程序会在所有链路发生故障后立刻报告I/O错误。这一点与IBM FC HBA failover驱动程序不同。后者会延迟一段时间才报错。
13. 动程用户必须使用下列的FASTt微码版本,其他版本是不支持的。
– FAStT900 :
firmware -> FW_05400900_05400300
NVSRAM -> N1742F900R840V00
– FAStT700 :
firmware -> FW_05400900_05400300
NVSRAM -> N1742F700R840V04
– FAStT600 Turbo option:
firmware -> SNAP_05400900
NVSRAM -> N1722F600R840V02
– FAStT600 :
firmware -> SNAP_05400900
NVSRAM -> N1722F600R840V02
14. IBM FAStT,FC-2和FC2-133HBA卡的驱动:
– 6.06.63 non-failover
注意:HBA驱动程序必须是是non-failover版本。
15. Linux内核版本:
– 对于RedHat AS 2.1 : 1.4.9-e.27 smp
– 对于SuSe SLES 8 : 2.4.19-64GB-smp
16. FAStT-MSJ的版本: 42
IBM FAStT Storage Manager主机上的软件版本:
– SMruntime : SMruntime-Linux-08.40.A5.00-1.i386
– SMClient : SMclient-Linux-08.41.G5.01-1.i386
– SMutil : SMutil-Linux-08.40.A5.00-1.i386

下载地址:
点击
上面的地址好久没有更新,已经不支持新的4G、8G HBA卡及红旗Asianux 3.0(2.6.18核心)。
新版本下载地址:点击

四、安装RDAC
假设:四台服务器和磁盘阵列的四个光纤通道都连接在光纤交换机上,这样会使操作系统对每一个映射的LUN都发现四遍,这不是我们所希望的。通过使用多路访问软件维护LUN的映射,使每个LUN映射只对应一个设备,且使应用与数据的访问链路冗余并对数据访问流量进行负载均衡优化。
从IBM下载最新的RDAC软件,这里我们使用rdac_LINUX_09.00.A5.09.tar.gz
以root身份执行以下操作:
设置Linux支持多个LUN,编辑/etc/modules.conf
例如:
新增以下一行

引用
options scsi_mod max_scsi_luns=255

安装RDAC软件

#tar zxvf rdac_LINUX_09.00.A5.09.tar.gz
#cd linuxrdac
#make install

我们的引导管理器使用grub,所以编辑/boot/grub/menu.lst,修改包含initrd的行,使其使用刚才软件安装产生的内核镜像文件
例如:
注释以下一行

引用
initrd /initrd-2.4.21-9.30AX.img

新增以下一行

引用
initrd /mpp-2.4.21-9.30AX.img

重新启动系统,我们就获得了对SAN多路访问的能力。

※ 2008-12-25 更新RDAC新版本下载地址

在红旗Asianux 3.0上安装RDAC
寻找未创建为PV的硬件设备
[转]红旗Linux下使用HP MSL 6060磁带库
RDAC的spec生成rpm脚本
解决IBM x460网络ping故障

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/113776.html

(0)
上一篇 2021年8月27日
下一篇 2021年8月27日

相关推荐

发表回复

登录后才能评论