LVM:这是镜像的吗?复制有这么慢吗?

LVM:这是镜像的吗?复制有这么慢吗?

背景:我的 Windows Home Server 陷入困境 - 某种操作系统挂起。驱动器和硬件仍然很好;在确保备份了所有数据后,我决定研究 Ubuntu 和 LVM(以及 btsync 和 samba,但那是另一个故事了)

我有以下可用驱动器:1TB、1.5TB 和 2TB。

我试图弄清楚如何将它们分开并一起袭击它们。我绕了好几个圈。我最终做的是:

  • 每个磁盘上有 1 个分区,用于整个磁盘
  • pvcreate /dev/sd[b,c,d]
  • vg将以上所有内容一起创建为一个 vg“vg1”
  • 在该 vg1 上执行 lvcreate -m1。

我玩过尺寸。果然,它可以让我创建 lvcreate 并扩展到 1.8tb,但不会更多。

问题#1:它真的是镜像的吗?我觉得是这样的;但是,我没有遵循任何“将此驱动器与该驱动器配对,因为它们大小相同”的指导原则(这几乎是我在 LVM 上找到的每个示例)。

lsblk 的输出,不包括 O/S 驱动器:

sdb                            8:16   0   1.4T  0 disk
└─sdb1                         8:17   0   1.4T  0 part
  └─vg1-lv1_mimage_0 (dm-1)  252:1    0   1.8T  0 lvm
    └─vg1-lv1 (dm-3)         252:3    0   1.8T  0 lvm  /srv/samba/share
sdc                            8:32   0   1.8T  0 disk
└─sdc1                         8:33   0   1.8T  0 part
  └─vg1-lv1_mimage_1 (dm-2)  252:2    0   1.8T  0 lvm
    └─vg1-lv1 (dm-3)         252:3    0   1.8T  0 lvm  /srv/samba/share
sdd                            8:48   0 931.5G  0 disk
└─sdd1                         8:49   0 931.5G  0 part
  ├─vg1-lv1_mlog (dm-0)      252:0    0     4M  0 lvm
  │ └─vg1-lv1 (dm-3)         252:3    0   1.8T  0 lvm  /srv/samba/share
  └─vg1-lv1_mimage_0 (dm-1)  252:1    0   1.8T  0 lvm
    └─vg1-lv1 (dm-3)         252:3    0   1.8T  0 lvm  /srv/samba/share

问题#2:!#$!$% 副本什么时候完成?到目前为止,它已经运行了大约 24 小时。真的有这么慢吗?或者它落后了,因为我目前也在将我的数据同步回数组?或者有什么问题我可以去调整和修复吗?

lvs -a 的输出:

  LV             VG        Attr      LSize   Pool Origin Data%  Move Log      Copy%  
  root           ubuntu-vg -wi-ao--- 697.39g
  swap_1         ubuntu-vg -wi-ao---   1.00g
  lv1            vg1       mwi-aom--   1.80t                         lv1_mlog  43.83
  [lv1_mimage_0] vg1       Iwi-aom--   1.80t
  [lv1_mimage_1] vg1       Iwi-aom--   1.80t
  [lv1_mlog]     vg1       lwi-aom--   4.00m

感谢您提前提供任何反馈和指导。

其他详细信息(如果有):

  • EX485 前 HP 媒体服务器
  • Ubuntu 桌面 32 位 14.3 天前的情况(<2G 内存)
  • 通过在其他地方安装启动驱动器,安装,添加 sshd,然后将其移动来安装,所以可能是低级磁盘驱动程序问题

更新#1我发现了一些细则这里(我加粗了):

创建镜像后,镜像区域会同步。对于大型镜像组件,同步过程可能需要很长时间。当您创建不需要恢复的新镜像时,您可以指定 nosync 参数以指示不需要从第一个设备进行初始同步。

这可能表明“长复制时间”是正确的。

答案1

如果您要从零个 TB 创建 lvm 镜像卷,也许您可​​以使用选项 --nosync

man lvcreate
 Specifying the optional argument --nosync will cause the creation of the mirror to skip the initial resynchronization.  Any data written afterwards  will  be
          mirrored,  but  the  original  contents  will  not be copied.  This is useful for skipping a potentially long and resource intensive initial sync of an empty
          device.

答案2

回答你的第一个问题,是的,它正在被镜像。该命令的输出lvs显示该列中的信息Copy%

LV             VG        Attr      LSize   Pool Origin Data%  Move Log      Copy%
lv1            vg1       mwi-aom--   1.80t                         lv1_mlog  43.83

正如我们所看到的,在您的情况下,您处于 43.83%,这意味着当时镜像仍然是部分的(您无法从镜像中恢复)。

要获取更多信息并查看使用了哪些磁盘,您需要列出逻辑分区上的设备。这是使用以下命令完成的:

sudo lvs -a -o +devices

然后您会看到哪个图像使用哪个设备。从我的计算机(有两个相同大小的驱动器)来看,它看起来像这样:

LV                      VG      Attr       LSize    Pool Origin Data%  Meta%  Move Log         Cpy%Sync Convert Devices
root                    tristan mwi-aom--- <250.00g                                [root_mlog] 100.00           root_mimage_0(0),root_mimage_1(0)
[root_mimage_0]         tristan iwi-aom--- <250.00g                                                             /dev/sda5(0)
[root_mimage_1]         tristan iwi-aom--- <250.00g                                                             /dev/sdb5(0)
[root_mlog]             tristan mwn-aom---    4.00m                                            100.00           root_mlog_mimage_0(0),root_mlog_mimage_1(0)
[root_mlog_mimage_0]    tristan iwi-aom---    4.00m                                                             /dev/sdb5(472781)
[root_mlog_mimage_1]    tristan iwi-aom---    4.00m                                                             /dev/sdb5(63999)
swap_1                  tristan -wi-ao----  <15.97g                                                             /dev/sda5(472748)
tristan-home            tristan rwi-aor---   <1.56t                                            2.72             tristan-home_rimage_0(0),tristan-home_rimage_1(0)

在您的情况下,它将使用 1Tb 和 1.5Tb 作为一个副本,并使用 2Tb 作为另一个副本。结果是大约 1.8Tb 的分区(因为驱动器显示为 2Tb,但实际上是 2,000,000,000,000 [或 2x10^2 而不是 2^4)。当您请求 RAID1 镜像时,LVM 软件足够智能,可以选择多个物理设备。我不知道是否有办法强制使用某个物理设备,而无需为您的 RAID 创建特定组。

至于你的第二个问题(复制这么慢?),我想你的意思是““写”这么慢?”,是的,写入最终可能会很慢。为了获得最佳 RAID1 性能,您需要拥有 N 个驱动器,这些驱动器具有完全相同的特性,并且所有块都位于所有驱动器上的同一位置。

写入缓慢的最坏情况是每个驱动器的速度不同。例如,您可能有 5000 rpm 和 7200 rpm,在这种情况下,您将不得不采用较慢的速度以及两种速度之间的各种同步。

您的硬件也可能很糟糕,因为用于将数据发送到驱动器的 DMA 需要正确共享,并且某些较旧的台式计算机可能不太适合 RAID1。

相关内容