Я пытаюсь настроить зеркалирование LVM только на 2 устройства. Он отлично работает, когда я добавляю третье устройство для зеркального журнала или использую corelog. Но всего с 2 устройствами и --распределить где угодно LVM почти всегда создает оба зеркала на одном устройстве.
Ситуация:
Проблема:
LVM почти всегда (если я правильно понимаю вывод команды lvs) создает оба зеркала на / dev / xvdf и mirrorlog на / dev / xvdg (да :-(
Команды, которые я использую:
Сценарий 1 - самый простой:
$ lvcreate -m 1 --mirrorlog mirrored -L40G -n test forfiter --alloc anywhere
$ lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices
test forfiter mwa-a- 40,00g test_mlog 7,09 test_mimage_0(0),test_mimage_1(0)
[test_mimage_0] forfiter Iwi-ao 40,00g /dev/xvdf(0)
[test_mimage_1] forfiter Iwi-ao 40,00g /dev/xvdf(10240)
[test_mimage_1] forfiter Iwi-ao 40,00g /dev/xvdg(2)
[test_mlog] forfiter mwa-ao 4,00m 100,00 test_mlog_mimage_0(0),test_mlog_mimage_1(0)
[test_mlog_mimage_0] forfiter iwi-ao 4,00m /dev/xvdg(0)
[test_mlog_mimage_1] forfiter iwi-ao 4,00m /dev/xvdg(1)
Как видите, test_mimage_1 частично находится в / dev / xvdf и частично в / dev / xvdf. 12799 PE размещены на xvdf и 7683 размещены на xvdg.
Самое смешное, что LVM создал mlog и на одном устройстве ...
Сценарий 2 - я попытался указать количество используемых экстентов:
$ lvcreate -m 1 --mirrorlog mirrored -L 40G -n test forfiter /dev/xvdf:6-12700 /dev/xvdg:6-12700 /dev/xvdf:0-4 /dev/xvdg:0-4 --alloc anywhere
$ lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices
test forfiter mwa-a- 40,00g test_mlog 2,79 test_mimage_0(0),test_mimage_1(0)
[test_mimage_0] forfiter Iwi-ao 40,00g /dev/xvdf(6)
[test_mimage_1] forfiter Iwi-ao 40,00g /dev/xvdf(10246)
[test_mimage_1] forfiter Iwi-ao 40,00g /dev/xvdf(0)
[test_mimage_1] forfiter Iwi-ao 40,00g /dev/xvdg(7)
[test_mlog] forfiter mwa-ao 4,00m 100,00 test_mlog_mimage_0(0),test_mlog_mimage_1(0)
[test_mlog_mimage_0] forfiter iwi-ao 4,00m /dev/xvdg(6)
[test_mlog_mimage_1] forfiter iwi-ao 4,00m /dev/xvdg(0)
Безуспешно :-)
Я прочитал много руководств - везде авторы предлагают использовать --распределить где угодно, но для меня результаты выглядят довольно странно (зеркалирование работает, но не так, как я ожидал)
Я хочу перенести raid1 с MDADM на LVM.
Без создания раздела ваша проблема в том, что вы используете ту же команду "--mirrorlog mirrored and --alloc anywhere"
У меня была такая же проблема с suse 11, используя "--mirrorlog mirrored"
но я решил использовать команду lvm следующим образом:
lvcreate -m 1 --mirrorlog mirrored -L40G -n test forfiter /dev/xvdb /dev/xvdc
В redhat или centos вы можете найти этот комментарий в lvm.conf
# Set to 1 to guarantee that mirror logs will always be placed on
# different PVs from the mirror images. This was the default
# until version 2.02.85.
mirror_logs_require_separate_pvs = 0
Есть много способов решить эту проблему без создания раздела.
Используйте редактор разделов, например parted
, cfdisk
или fdisk
для создания перегородок: /dev/xvdf1
и /dev/xvdf2
и т.д. и поместите их в свой forfiter
VG.
В этом примере я использую /dev/mapper/loop0p1
и т.п.
pvcreate /dev/mapper/loop1p1
Physical volume "/dev/mapper/loop1p1" successfully created
pvcreate /dev/mapper/loop1p2
Physical volume "/dev/mapper/loop1p2" successfully created
vgcreate forfiter /dev/mapper/loop0p1
Volume group "forfiter" successfully created
vgextend forfiter /dev/mapper/loop1p1
Volume group "forfiter" successfully extended
vgextend forfiter /dev/mapper/loop0p2
Volume group "forfiter" successfully extended
vgextend forfiter /dev/mapper/loop1p2
Volume group "forfiter" successfully extended
vgs forfiter
VG #PV #LV #SN Attr VSize VFree
forfiter 4 0 0 wz--n- 248.00m 248.00m
ls -l /dev/mapper/loop0p1
lrwxrwxrwx 1 root root 8 Apr 18 08:59 /dev/mapper/loop0p1 -> ../dm-21
vgdisplay -v forfiter | tail -n mumble
--- Physical volumes ---
PV Name /dev/dm-21
PV UUID uFJpEH-dLFA-gJiM-cnao-cFFm-DEZG-RnNvSM
PV Status allocatable
Total PE / Free PE 15 / 15
PV Name /dev/dm-23
PV UUID 1T7DIL-Xw4s-4tVy-CVQc-lKDp-aUNA-lyk8v2
PV Status allocatable
Total PE / Free PE 15 / 15
PV Name /dev/dm-22
PV UUID T0prpa-KKEO-uWUb-zQU3-cosM-uyEI-ext9F7
PV Status allocatable
Total PE / Free PE 16 / 16
PV Name /dev/dm-24
PV UUID PC2aCZ-eKdU-p8eS-SBDc-uWzY-54gG-952ndg
PV Status allocatable
Total PE / Free PE 16 / 16
lvcreate -m 1 --mirrorlog mirrored -L64M -n test forfiter
The link /dev/forfiter/test_mlog should had been created by udev but it was not found. Falling back to direct link creation.
The link /dev/forfiter/test_mlog should have been removed by udev but it is still present. Falling back to direct link removal.
Logical volume "test" created
lvs -a -o +devices forfiter
LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices
test forfiter mwi-a- 64.00m test_mlog 100.00 test_mimage_0(0),test_mimage_1(0)
[test_mimage_0] forfiter iwi-ao 64.00m /dev/dm-22(0)
[test_mimage_1] forfiter iwi-ao 64.00m /dev/dm-24(0)
[test_mlog] forfiter mwi-ao 4.00m 100.00 test_mlog_mimage_0(0),test_mlog_mimage_1(0)
[test_mlog_mimage_0] forfiter iwi-ao 4.00m /dev/dm-21(0)
[test_mlog_mimage_1] forfiter iwi-ao 4.00m /dev/dm-23(0)