了解 Linux 服务器上的多路径逻辑

多路径是一种容错技术,通常旨在备份物理服务器与存储的连接。 当光纤电缆损坏时,重要的是服务器不会失去对存储的访问并保持可访问性。 这就是银行和全球电子商务网站等系统使用多路径的原因。

这是您需要了解的有关 Linux 上的多路径的所有信息。

服务器上多路径设备的标识符

对于多路径,还需要浏览多路径设备。 如果你听说过 二战 (全球标识符) 之前的概念,对你来说听起来不会太陌生。

默认情况下,多路径设备的名称设置为其 WWID。 这是一个保证多路径设备全局唯一且不可变的系统。 您可以在此处设置默认命名,并对多路径配置文件进行一些操作,方法是更改 user_friendly_names 环境。

举个例子,你可以这样想。 假设您有存储设备连接到您的服务器,例如:

  • /dev/sda
  • /dev/sdb
  • /dev/sdc
  • /dev/sdd

如果 user_friendly_names 此时选项设置为“是”,设备名称将更改。

cat /etc/multipath.conf

# Output
defaults {
user_friendly_names yes
}

如果您有一个使用虚拟化技术的 Ubuntu 服务器,您可能会收到以下结果。 您必须记住的是,您要控制的设备必须是物理设备。

设置后 user_friendly_names 选项 是的 在配置文件中可以查看设备名称如下:

sudo fdisk -l

一致的多路径设备名称的过程

此过程分配给多路径设备的名称对于节点来说是唯一的。 说它适用于所有节点是不可行的。 如果要在所有节点上使用一致的多路径设备,请将 user_friendly_names 选择“否”。 您将以这种方式减少任何麻烦,因为设备将不再具有唯一的名称,而是使用 WWID。

但是,在其他情况下,您可能希望设计一致且更易于访问和使用的节点。

对于这种情况,您必须首先在一台机器上安装所有多路径设备。 在此步骤之后,您还应该禁用其他机器上的所有多路径设备。 您可以为此运行以下命令:

sudo systemctl stop multipath-tools.service
sudo multipath -F

使用这些命令,您将分别停止多路径服务并清除所有多路径设备映射。 现在成为root用户并复制 绑定 文件位于 /etc/多路径 目录到其他机器。

此时,您将使用 Linux 的守护进程。 完成所有这些步骤后,您需要运行 多路径 再次守护进程:

sudo systemctl start multipath-tools.service

多路径设备的一般特性概述

多路径设备的功能和配置设置不限于 user_friendly_names. 您将在下面找到有关您可以在 /etc/mutipath.conf 文件:

  • 黑名单{}: 如果要指定从多路径中排除哪些设备,可以将它们的名称写在两个大括号之间。
    blacklist {
    devnode "^sda"
    }
  • 设备 { }: 在这两个大括号之间,您可以放置​​特定设备的一些详细信息。
    devices {
    vendor "DELL"
    product "MD32xx"
    }
  • 多路径{}: 在该字段中,您可以设置特定多路径设备的属性。 与其他属性一样,多路径也有许多不同的子属性。
    multipath {
    wwid 3500405b170164c3911244b325426400b
    alias yellow
    failback manual
    }
  • 黑名单异常{}: 此字段适用于黑名单上但您希望为它们启用多路径的设备。 您可以将所有设备都列入黑名单,并在此字段中指定稍后要使用的设备,而不是将所有设备一一列入黑名单。
    blacklist_exceptions {
    wwid "3500405b170164c3911244b325426400b"
    }

当然,并非所有属性都仅限于此,每个属性都有自己的子属性。 此外,您可以将它们一起使用。 下面是一个示例配置文件供您查看:

defaults {
user_friendly_names no
}
blacklist {
devnode "^sda"
}
blacklist_exceptions {
devnode "sda|sdb"
device {
vendor "DELL"
product "MD32xx"
}
}
devices {
device {
vendor "HP"
product "A6189A"
}
}
multipaths {
multipath {
wwid 3500405b170164c3911244b325426400b
alias red
}
}

多路径设备中的逻辑

您可以将多路径设备视为物理单元。 例如,让 /dev/mapper/mpatha 是多路径设备的名称。 该设备将作为一个物理单元。 当你创建一个 LVM (逻辑卷管理),您还需要编辑 /etc/lvm.conf 文件。

使用您在此处进行的配置,您将需要过滤多路径设备下的磁盘。 如果不这样做,LVM 将扫描被动路径,多路径将重新开始工作,因为主动路径可以自动更改为被动路径。

为了防止这种情况,您可以对 /etc/lvm.conf 文件:

filter = [ "a/loop.*/", "r/.*/" ]

此命令将添加循环并删除所有设备。 然而,这个过程并没有就此结束。 在进行此更改后 /etc/lvm.conf,保存文件,并更新 initrd。 初始化 允许您在 RAM 磁盘上执行一些操作。 您在此处进行更改的原因是在引导时复制它们。

update-initramfs -u -k all

每次 lvm.conf多路径配置文件 文件已更新,有必要执行此更新 初始化文件. 这就是您获得稳定且可持续的服务器的方式。 您也不应该忘记 initramfs 更新,特别是如果您对黑名单和过滤器属性进行了更改。

多路径系统的重要性

在多路径环境中,即使服务器使用的组件(HBA、SAN、存储控制器)之一出现故障,服务器也可以继续访问磁盘。 这是系统和服务器管理员特别感兴趣的问题。

这对于包含重要信息的高流量服务器非常重要,其中安全协议必须很高。 因为如果一个网站的服务器有成千上万的信用卡信息或数十万注册客户,因为只有一个组件发生故障而无法访问,那将是一个巨大的问题。

需要掌握所有这些操作的细节以及配置文件中属性的子属性。 这是因为进行服务器配置总是涉及风险。 对于这种类型的操作,备份所有内容或在测试服务器上运行测试是有意义的。

如果您没有服务器来测试所有这些,那么安装 Ubuntu Server 是最佳选择,而且也非常简单。