Назад | Перейти на главную страницу

Как узнать, является ли запись зеркала lvm асинхронной или синхронной?

Я использую redhat 5.8 с зеркалом lvm, созданным с помощью следующей команды:

 lvcreate -m1 --mirrorlog mirrored -n mirrorvol -L 10G myvg /dev/vdb /dev/vdc

Я хотел бы знать, когда я пишу, мне нужно подождать, пока запись поступит на оба устройства или только на одно?

Насколько я понял, зеркало lvm синхронно:

[root@02srv004x9 ~]# dmsetup ls
mpath2  (253, 2)
foo (253, 3)
vgmirror-oracle_BD2_mirrorlogAvol   (253, 4)
VolGroup00-LogVol01 (253, 1)
VolGroup00-LogVol00 (253, 0)
vgmirror-oracle_BD2_mirrorlogAvol_mimage_1  (253, 6)
vgmirror-oracle_BD2_mirrorlogAvol_mimage_0  (253, 5)
dmsetup suspend /dev/mapper/vgmirror-oracle_BD2_mirrorlogAvol_mimage_1
Name:              vgmirror-oracle_BD2_mirrorlogAvol_mimage_1
State:             SUSPENDED
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      0
Major, minor:      253, 6
Number of targets: 1
UUID: LVM-c8xfdstj4tTpfV3LSIYat0wbKXpfb7kDefFId05lIJR2QV1ws7CBfkbC0Oc813d9

Теперь у меня есть вторичный образ в приостановленном состоянии, и я попытаюсь смонтировать файловую систему:

 mount /dev/mapper/vgmirror-oracle_BD2_mirrorlogAvol /mnt

Здесь команда mount блокируется и остается в состоянии D.

Если вы пишете, запись будет происходить в блочный кеш в вашей оперативной памяти. Оттуда он будет синхронизирован, когда это будет оптимально.

Если вы сделаете sync команда или fsync() системный вызов, он запишет весь кеш записи. Кроме того, файловые системы ext2-3-4 стараются записывать в кэш записи почти так часто, как это возможно, другие файловые системы имеют лучшую эвристику.

Файловая система журналирования также регулярно выполняет частичную синхронизацию.

Если в зеркальный том происходит запись, она передаст две операции записи в логические подтомы на vdb и vdc. Нет никакой гарантии, что они будут фактически выполнены в одно и то же время, за исключением случаев, когда кто-то говорит об этом (это может быть периодическая синхронизация кэша записи, ведение журнала или замечательная функция синхронизации файловых систем ext2-3-4).


Приостановка не предназначена для имитации ошибок в физическом томе LVM. Приостановка заключается в внесении неатомарных изменений, которые кажутся элементарными для реальных пользователей. Во время приостановки каждая команда, использующая данный логический том, будет находиться в состоянии D, но она не должна ничего делать с кэшированием записи, это функция LVM.

Если вы хотите сымитировать аппаратную ошибку в зеркальном томе LVM, вам нужно найти альтернативные решения. Первый, который я думаю, работает, если вы отключите физический жесткий диск с помощью SMART.