我刚刚在生产环境中了解到多路径,之前从未听说过这个概念。经过一番挖掘后,我想我开始掌握这个概念在理论上是如何运作的,但我在将其推断为我正在开发的盒子上看到的内容时遇到了一些麻烦。
从 multipath -ll 我得到如下输出:
mpath0 (36000d3100088060000000000000000b9) dm-0 COMPELNT,Compellent Vol
size=60G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 0:0:0:0 sda 8:0 active ready running
|- 0:0:1:0 sdd 8:48 active ready running
|- 1:0:0:0 sdi 8:128 active ready running
`- 1:0:1:0 sdl 8:176 active ready running
从 fdisk -l 我知道这些都是 60GB 磁盘,具有相同的分区设置:
Disk /dev/sda: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 7832 62806117+ 8e Linux LVM
但令我困惑的是分区实际上是如何安装在服务器上的:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
30G 26G 3.8G 87% /
/dev/mapper/mpath0p1 99M 49M 46M 52% /boot
tmpfs 16G 232M 16G 2% /dev/shm
/dev/mapper/mpath2p1 493G 226G 242G 49% /u02
现在只考虑/boot:它安装到mpath0p1,我可以看到这么多。但这如何与多路径背后的物理磁盘/LVM 对应呢?
答案1
您的多路径设备只是一个磁盘的多个路径的抽象。因此,您所询问的对应关系是 mpathN 设备与您拥有的任何结构远端的底层设备相同。
正如您所看到的,您可以查看 mpath 设备上的分区表及其组成成员,并看到相同的布局。
有些人认为多路径和 RAID1 的概念有相似之处。它们不相关,但我发现这是一个有用的比较。多路径设备的底层设备不是 RAID1 中的重复副本。它们只是同一个磁盘/LUN(通常是远程磁盘/LUN)的并行连接。
关于分区如何挂载的问题,它们的挂载方式与没有多路径时相同(假设设备未硬编码在 fstab 和 lvm.conf 中)。因此,您已mpath0p1
在 挂载。就您而言 - 如果这些设备不是由 multipathd 管理的 - 这与在/boot
挂载相同(在您的示例中,sdi1、sdd1 或 sdl1 可以替代 sda1)。不同之处在于,如果您的光纤(或任何)连接(显示 sda1)断开连接,您的磁盘仍可通过 sdd、sdi 和 sdl 使用多路径驱动程序访问。/dev/sda1
/boot
在这种情况下,您将远程磁盘的第一个分区mpath0
安装在/boot
,磁盘的第一个分区安装mpath2
在/u02
。 sda 的 fdisk 输出中的第二个分区被标记为 LVM 物理分区。据推测,这包含卷组VolGroup00
以及逻辑卷LogVol00
,该卷安装在/
答案2
你有三个抽象层次
(物理设备) <= 路径 => (unix 设备)
36000d3100088060000000000000000b9
从设备到实际的 UNIX 设备有四个路径。由于您没有在 /etc/multipath.conf 中指定名称,因此为您提供了 mpathX。
(unix 设备) <= 分区 => (分区)
从这里开始,其中一个分区(第一个)是/boot
(/dev/sda1),其他分区用作 VG(LVM 范例中的卷组)/dev/sda2
用作VolGroup0
.
您至少有3个设备(因为第二个设备是sdd,60G磁盘不能分割成493G)。
我猜你有一个 60G 的空间,可以提供/boot
和VolGroup0
,然后至少有一个 ~493 G 的卷,其完整分区是/u02
,以及另外两个设备。