Обнаружил снижение производительности (скорости записи) на LVM2 Logical Volume, при подключенном snapshot. Измеренная скорость записи на Logical Volume, падает в 10 раз, если существует активный snapshot этого Logical Volume. ##########
### тестовый сервер HP Proliant 320s, контроллер P400, 9 x 1TB SATA в RAID6, кэш в контроллере на запись включен, Centos 5.4 x86_64
##########
### Создаем LV
[root@server5 ~]# lvcreate -L10G -n lv1 /dev/VolGroup01
Logical volume "lv1" created
### Заполняем LV нулями и смотрим скорость
[root@server5 ~]# dd if=/dev/zero of=/dev/VolGroup01/lv1 bs=1M
dd: запись `/dev/VolGroup01/lv1': На устройстве кончилось место
скопировано 10737418240 байт (11 GB), 57,5659 секунд, 187 MB/s
### Создаем снапшот. С этого момента у тома lv1 есть ОДИН снапшот.
[root@server5 ~]# lvcreate -s -L10G -n snap_lv1 /dev/VolGroup01/lv1
Logical volume "snap_lv1" created
### Cнова заполняем нулями том-оригинал lv1
### (имитируем запись обновленных блоков данных в Logical VOlume)
### разница с первым заполнением нулями в том, что теперь у тома есть снапшот
[root@server5 ~]# dd if=/dev/zero of=/dev/VolGroup01/lv1 bs=1M count=5000
скопировано 5242880000 байт (5,2 GB), 936,033 секунд, 5,6 MB/s
Итак, имеем скорость заполнения нулями тома оригинала - 187 MB/s, а при подключенном снапшоте - 5,6 МБайт/сек. Разница значительная, и откуда она берётся?
##########
### HP Proliant DL380, P400 512Mb, кэш в контроллере на запись включен, 7 SAS дисков в RAID5, и вот что получилось:
##########
без снапшота 10737418240 bytes (11 GB) copied, 90.4289 seconds, 119 MB/s
с снапшотом: окончания заполнения нулями LV1 не дождался.
##########
### Попробовал на обычном системнике:
##########
### У тома lv1 нет снапшотов:
dd if=/dev/zero of=/dev/vg_server1/lv1
скопировано 5368709120 байт (5,4 GB), 440,062 секунд, 12,2 MB/s
### у тома lv1 есть ОДИН снапшот:
dd if=/dev/zero of=/dev/vg_server1/lv1
скопировано 1738539008 байт (1,7 GB), 396,974 секунд, 4,4 MB/s
-----------------------
Итак, что имеем:
При наличие у LVM2 Logical Volume снапшота:
1) скорость записи на Logical Volume падает в разы, иногда на порядок; фактически такие скорости записи неприемлемы для нормальной работы сервера;
2) по время записи в Logical Volume, в процессах висит процесс ядра [kcopyd], в таком же количестве, сколько у тома есть снапшотов
3) утилизация ОС поднимается до значений 8-9 попугаев (измерено в top и uptime), ответа от утилиты lvm можно ждать часами, всем остальным процессам на сервере становится очень печально;
А теперь вопрос:
- нормально ли такое положение дел с снапшотами, кто уже сталкивался с подобным практически?
- если кто-то попробует воспроизвести данную ситуацию - то воспроизводима ли она на других ОС и версиях LVM2 ?