260 likes | 412 Views
DS4000 多路径负载均衡、失效恢复机制. 一般的操作系统. Operating system. Host / Server. CPUs. Application. Memory. Host / Server. ???. ???. 一般的操作系统. 安装新硬件,操作系统可能不知道该如何用. Operating system. CPUs. Application. Memory. Host / Server. 0. 1. 一般的操作系统. 驱动程序告诉操作系统如何使用这个硬件. Operating system. CPUs.
E N D
一般的操作系统 Operating system Host / Server CPUs Application Memory
Host / Server ??? ??? 一般的操作系统 • 安装新硬件,操作系统可能不知道该如何用 Operating system CPUs Application Memory
Host / Server 0 1 一般的操作系统 • 驱动程序告诉操作系统如何使用这个硬件 Operating system CPUs Application Qlogic Driver Memory
Host / Server 0 2 1 0 操作系统怎样标识磁盘 • Port 1 + Target 2 + and LUN 0 = disk with id 120
0 1 2 3 Host / Server 0 0 0 0 0 0 1 2 3 1 0 0 0 0 没有RAID功能的外置磁盘系统 • 操作系统看到八块盘,ID为 000, 010, 020, 030, 100, 110, 120, and 130 • 操作系统认为它们是各不相干的八块盘
但是光纤磁盘是多通路的… • 实际上只有四块盘 Host / Server 0 0 1 2 3 0 0 0 0 1
我们为什么需要多路径切换软件? • 如果两个应用同时把张三的数据存在 id为 000的磁盘上,李四的数据存在 id 为100的磁盘上 Host / Server Application abc 0 0 0 xyz 1
我们为什么需要多路径切换软件? 将只有一份数据被存储!!! Host / Server Application 0 0 0 abc 1
没有多路径切换软件情况下存在的问题 • 混淆 – 操作系统看到两份真实数量的磁盘 • 没有冗余 – 没有多路径切换软件,操作系统将不知道何时它该使用多余的路径 • 危险 – 多路径导致操作系统认为两份磁盘是独立的,这将导致数据毁坏或IO错误
我们来看一下DS4000是怎样做的 • 操作系统看到八块独立的磁盘 020, 021, 022, 023, 130, 131, 132, 133 Storage System A [2] Host / Server 0 1 2 3 0 B [3] 1 0 1 2 3
我们需要解决多路径带来的问题 • 多路径切换软件类型 • Low level drivers: RDAC • Configurable volume manager software: Veritas Volume Manager with DMP and HP-UX LVM(PVlinks) • 多路径切换软件的作用是告诉操作系统怎样使用多余的路径,怎样作失效恢复
RDAC • RDAC可以隐藏掉多余的路径 • 操作系统通过RDAC看到四块真实数量的磁盘,它直接访问X磁盘 Storage System A [2] Host / Server RDAC 0 1 2 3 Application 0 B [3] X 1 0 1 2 3
其它厂商提供的多路径切换软件 • 多路径切换软件创建一个新的设备,新的设备再去对应多条通路 • 应用程序使用逻辑盘 X Storage System A [2] Host / Server 0 1 2 3 Application / 0 X B [3] 1 0 1 2 3
DS4000的一条通路坏了怎么办? • 跟DS4000的多路径切换的模式相关 : • ADT-disabled mode (RDAC classic, ADT-off, non-ADT) • SCSI Mode Select command • ADT-enabled mode (ADT, ADT-on) • Just re-routes I/O • 主机上的多路径切换软件可以使用 ADT-enabled 或 ADT-disabled 模式
ADT-disabled 情况下的切换 • 应用程序使用 LUN 0, RDAC隐藏了一个事实-- 有两条路径可以访问到这个 LUN • 020 (当前使用的) and 130 (冗余的) Storage System A [2] Host / Server RDAC 0 1 2 3 Application 0 B [3] X 1 0 1 2 3
ADT-disabled情况下的切换 • 当020的访问路径坏了的时候,Port 0 接到错误报警, 这个错误报警会传送到RDAC 020 (失效) and 130 (冗余) Storage System A [2] Host / Server RDAC 0 1 2 3 Application 0 X B [3] X 1 0 1 2 3
ADT-disabled情况下的切换 • RDAC将决定它是否可以使用冗余路径继续IO • RDAC发送 Mode Select SCSI command 到DS4000 Storage System A [2] Host / Server RDAC 0 1 2 3 Application 0 B [3] X 1 0 1 2 3
ADT-disabled情况下的切换 • 逻辑盘所归属的DS4000控制器改变 020 (失效) and 130 (转移到另一个控制器) Storage System A [2] Host / Server RDAC 0 1 2 3 Application 0 B [3] X 1 0 1 2 3
ADT-disabled情况下的切换 • RDAC现在可以使用新的路径进行 IO 了 • 020 (失效) and 130 (当前使用的) Storage System A [2] Host / Server Failover Driver 0 1 2 3 Application 0 B [3] X 1 0 1 2 3
ADT-enabled情况下的切换 • 应用程序使用 LUN 0, RDAC隐藏了一个事实-- 有两条路径可以访问到这个 LUN • 020 (当前使用的) and 130 (冗余的) Storage System A [2] Host / Server RDAC 0 1 2 3 Application 0 B [3] X 1 0 1 2 3
ADT-enabled情况下的切换 • 当020的访问路径坏了的时候,Port 0 接到错误报警, 这个错误报警会传送到RDAC 020 (失效) and 130 (冗余) Storage System A [2] Host / Server RDAC 0 1 2 3 Application 0 X B [3] X 1 0 1 2 3
ADT-enabled情况下的切换 • RDAC将使用冗余路径来继续IO • 020 (失效) and 130 (当前使用的) Storage System A [2] Host / Server RDAC 0 1 2 3 Application 0 B [3] X 1 0 1 2 3
ADT-enabled情况下的切换 • 逻辑盘LUN 0 的归属权切换到了B控制器上,其它没有IO发生的逻辑盘没有切换 • 020 (失效) and 130 (当前使用的) Storage System A [2] Host / Server Failover Driver 0 1 2 3 Application 0 B [3] X 1 0 1 2 3
ADT-enabled情况下切换的总结 • 多数多路径切换软件将分别对待不同的逻辑盘 • DS4000系列存储服务器将相应的改变不同逻辑盘的归属控制器
为什么需要 ADT? • ADT 使DS4000系列可以灵活的与第三方提供的多路径切换软件工作 • 一些光纤卡的驱动程序可以 理解多路径连接 • 一个逻辑盘的两个路径同时使用 (在RDAC的系统中,只有有归属权的控制器在工作) • 不会等待控制器归属权的切换 (在RDAC的系统中, ADT “failovers” 需要一定的时间) • 第三方提供的多路径切换软件的 timeout 值需要调整来等待控制器归属权的转移