Собираюсь разворачивать очередной гипервизор на KVM (Debian 7) и опять возник вопрос по дисковой подсистеме.
К примеру, имеется 2 жестких диска размером 2тб.Наиболее очевидным кажется отдать оба диска под зеркало md и затем это зеркало целиком скормить под LVM - сделать lvm-том под корень (без отдельного /boot, ибо grub2 умеет грузиться в таком варианте), том для подкачки и нарезать томов для виртуалок - в итоге имеем преимущества резервирования md и гибкость LVM.
НО!
По опыту использования такого варианта (Ubuntu 12.04), в случае проблем с жестким диском и, соответственно, развале рейда, синхронизируется такой рейд оооочень долго. А в случае, если проблема случилась при загрузке гипервизора - система не загружается, пока не сребилдится рейд (все настройки в mdadm.conf по умолчанию). Сервак с такой проблемой пришел с винтами из неудачной партии - на два диска из четырех постоянно ругается smartd, НО ремапов нет и по факту диски живые, однако за 1,5 года использования ловил 4-5 раз описанную выше проблему. После ребилда несколько месяцев все опять хорошо. Да, многие скажут, что на сервере непростительно держать такие винты и т.д., это все понятно, но имеем то, что имеем (по гарантии их не принимают, ибо смарт-тестирование они проходят и ремапов нет, есть только Current_Pending_Sector и Offline_Uncorrectable)
Так вот - возникло желание уменьшить рейды. В идеале - отдельный рейд под каждую сущность (корень, свап, виртуалка1, виртуалка2 и т.д.). Чтобы в случае проблемы с секторами страдала бы только одна сущность, а не весь массив. Отсюда возник очевидный вывод - использовать lvm raid и вообще отказаться от md.
Разбил я винты так - один раздел на весь диск под LVM PV, поставил систему на lvm-том и потом преобразовал его в raid1 (сразу при установке нельзя). В файле /etc/initramfs-tools/modules должны быть строки "dm_raid" и "raid1", после чего надо пересобрать initrd, иначе система не загрузится).
Далее я начал эксперименты. Собственно продлились они недолго - при физическом удалении винта, lvm-том переходит в режим "только для чтения" со всеми вытекающими. После перезагрузки система не загружается. После возвращения винта, все норм.
Отсюда вопрос - можно ли настроить lvm raid так, чтобы он вел себя как md, а именно, просто переходил бы в состояние "degraded", но продолжал бы работать на запись в том числе и не мешал загрузке системы.
Устроит и компромисный вариант - md под корень и свап, а виртуалки создавать на lvm-рейдах, но это не решит проблему в случае факапа - гипервизор продолжит функционирование, ибо на md, а вот виртуалки перейдут в read-only - а нафига мне гипервизор без виртуалок. Вариант рассматриваю, если у lvm raid проблема именно с корневым разделом.
Или может еще что-нибудь на данную тему посоветуете?