我正在运行 Ubuntu 12.04,并且刚刚在我的服务器中添加了 2 个新硬盘。我的想法是,我将创建一个包含它们的卷组,并在它们上创建一堆将被镜像的逻辑卷。
我已对 2 个驱动器进行了分区,以便在每个 8E (LVM) 类型上都有一个主分区:
/dev/sdc1 2048 3907029167 1953513560 8e Linux LVM
/dev/sdd1 2048 3907029167 1953513560 8e Linux LVM
然后将它们添加为物理设备,创建卷组并将其添加到卷组中:
--- Volume group ---
VG Name vmdata
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 8
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 3.64 TiB
PE Size 4.00 MiB
Total PE 953862
Alloc PE / Size 0 / 0
Free PE / Size 953862 / 3.64 TiB
VG UUID 2zdfc7-1fj2-kMdy-7OUq-eadi-AsF2-Sujbes
--- Physical volumes ---
PV Name /dev/sdc1
PV UUID kAU93m-4S5V-MD1V-EkTA-m0u7-bmQn-3pyVmk
PV Status allocatable
Total PE / Free PE 476931 / 476931
PV Name /dev/sdd1
PV UUID erVnaJ-vp5S-0LHW-oRSx-joer-VXPX-KG0uDb
PV Status allocatable
Total PE / Free PE 476931 / 476931
当我尝试创建 RAID 1 类型的新逻辑卷时,它失败了:
$ lvcreate --type raid1 -m 1 -L 64G -n fred vmdata
WARNING: Unrecognised segment type raid1
Insufficient suitable allocatable extents for logical volume : 16384 more required
Unable to allocate extents for mirror(s).
当我尝试将其创建为普通镜像时,它也失败了:
$ lvcreate -m 1 -L 64G -n fred vmdata
Insufficient suitable allocatable extents for logical volume : 16384 more required
Unable to allocate extents for mirror(s).
我缺少什么?
答案1
确保 RAID 阵列处于活动状态。
例子
$ lvscan
inactive '/dev/kodak_vg/lvm0' [149.00 GB] inherit
所以我运行这个命令来激活它:
$ vgchange -ay
1 logical volume(s) in volume group "kodak_vg" now active
重新运行 lvscan 显示 LV 现在处于活动状态:
$ lvscan
ACTIVE '/dev/kodak_vg/lvm0' [149.00 GB] inherit
有效段类型
根据错误,听起来您的段类型可能有问题。
警告:无法识别的段类型 raid1
您可以使用此命令来查明哪些段类型有效。
$ sudo lvm segtypes
striped
zero
error
free
snapshot
mirror
raid1
raid10
raid4
raid5
raid5_la
raid5_ra
raid5_ls
raid5_rs
raid6
raid6_zr
raid6_nr
raid6_nc
thin-pool
thin
Ubuntu 12.04 的 LVM 版本?
在 LVM 中创建 RAID 的能力是一个相当新的功能,因此我怀疑 12.04 版本的 LVM 不支持这种段类型。
该怎么办?
如果这是问题所在,一切都还好。您可以简单地在 MD ( ) RAID1 之上设置 LVM VG(卷组)mdadm
。
参考
答案2
结果12.04不支持raid1,但是14.04添加了它。
当我尝试创建普通镜像(m 1)时,它不起作用,因为它需要第三卷用于镜像日志。
升级到 14.04 修复了它。