如何在 ubuntu 12.04 中配置 iscsi 容错?

如何在 ubuntu 12.04 中配置 iscsi 容错?

如何在 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 的预配置工具。本教程非常简单且非常有用,希望它能帮助您……点击此链接

相关内容