如何在 ubuntu 12.04 中配置 iscsi 容错?iSCSI SAN 通常具有多个控制器,使故障转移对客户端透明。我正在做的事情如下。我将一台 ubuntu pc 作为目标,这意味着一台 pc 用作存储,我将其 hdd 映射为 LUN,还有另一台 pc 用作启动器,因此没有现成的解决方案,例如我从头开始做的 SAN,所以我需要学习如何配置它。
答案1
你能更具体一点吗?iSCSI SAN 通常有多个控制器,使故障转移对客户端透明,SAN IP 只是连接到剩余的控制器。多路径就是多路径,它是一个独立于操作系统的概念,Linux 多路径很容易支持许多 iSCSI SAN。
https://help.ubuntu.com/12.04/serverguide/device-mapper-multipathing.html
2012 年 8 月 17 日更新 因此,根据您定义网络的方式,您可能有能力创建路径冗余,但存储主机本身是一个巨大的单点故障。只要您明白这一点,您就可以创建自定义解决方案。然而,也存在一些障碍。
多路径的工作原理是询问路径,识别所有响应相同 WWID(这是运行 scsi_id 的结果)的路径,然后使用该路径将正确的路径分组到单个映射下,并执行定义的分组策略。由于这些 iscsi 启动器本质上是虚拟设备,因此它们通常不会为它们定义唯一属性。例如。
root@ubuntu02:/persistent/home/intel# sg_vpd -p di /dev/sda 设备标识 VPD 页面: 寻址逻辑单元: 指示器类型:基于 EUI-64,代码集:二进制 0x22f7000155affff4 指示器类型:供应商特定 [0x0],代码集:ASCII 供应商特定:0xC001IntelVD VMBOOT1 目标端口: 指示符类型:相对目标端口,代码集:二进制 相对目标端口:0x2 指示器类型:目标端口组,代码集:二进制 目标端口组:0x0
可能什么也不会返回。如果您注意到 multipath.conf 中有一行名为“getuid_callout”,它通常指向名为 *scsi_id* 的工具
/lib/udev/scsi_id --白名单/dev/sda 222f7000155affff4
getuid_callout 可以替换为任何你想要的,在你的情况下,你需要定义一些确定性的映射,这样你在网络上暴露的路径确实指向同一个设备。否则你只会到处乱涂乱画。一旦你有了这个,你就可以创建一个具有恒定优先级的基本多总线组。
设备 { 供应商“FOO” 产品“BAR” path_grouping_policy 多总线 getuid_callout“你的自定义uid脚本” path_selector 循环 0 path_checker 方向 检查方向 先验常数 立即故障回复 }
如果您想要更复杂的策略,您将需要定义一个可以对您的路径进行排序的优先级处理程序,之后您可以按优先级进行分组等。
我在这里做了很多假设,我通常不处理 iSCSI,我假设它将允许您在同一台主机上创建到同一备用存储的多条路径,我进一步假设每条路径都通过隔离网络导出,您的客户端可以访问这两条路径。
您还可以手动创建基本的多路径映射,多路径工具所做的就是创建一个简洁的界面来简化 DMDEVICE,提供路径检查器,并管理来去的路径。您可以直接使用 dmsetup 创建映射,它甚至可以进行故障转移,但效率不高,而且您必须自己管理路径成员身份。
http://christophe.varoqui.free.fr/refbook.html
参见“多路径目标的示例”。
或者,您可以采用网络绑定解决方案,至少您将获得比现在更高的可用性,但却要以性能为代价。
答案2
您可以使用名为 glusterfs 的预配置工具。本教程非常简单且非常有用,希望它能帮助您……点击此链接