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

где на диске выделяется место для новых файлов внутри LVM lv с файловой системой ext4?

Я запускаю многодисковый сервер с LVM2. Несколько больших дисков служат физическими томами LVM2 для одной группы томов, содержащей один логический том, отформатированный с помощью ext4. Ничего особенного, просто стандартная линейная установка.

Недавно к этой группе томов был добавлен дополнительный, очень маленький диск в качестве физического тома, и я расширил на него как логический том, так и файловую систему ext4.

Этот lv используется для хранения инкрементных резервных копий с помощью rsync и заполнен только на 30%, из него редко удалялись какие-либо файлы, только добавочные записи.

Теперь этот новый жесткий диск, который я добавил в уже существующую группу томов, неожиданно умер, и группа томов не появится, потому что в ней отсутствует один физический том.

По воле судьбы это БЫЛ в «в случае катастрофического отказа основного сервера»-бэкап, событие произошло, босс недоволен, так что это вроде как работает ...

Согласно этому (Часть 3): http://www.novell.com/coolsolutions/appnote/19386.html LVM в любом случае можно обманом заставить запустить, создав новый pv с идентичными метаданными для отказавшего диска, что сделает том доступным, но, конечно, оставит гигантские дыры в файловой системе. Я еще не пробовал, потому что он включает в себя восстановление (запись) файловой системы, что исключает возможность попробовать другие вещи в случае неудачи.

Теперь мой вопрос: Как эта установка фактически выделяет дисковое пространство для новых данных? Распределяется ли он линейно от начала до конца PV, в том порядке, в котором они были добавлены в vg? Это как-то полосатое, чтобы увеличить производительность / баланс нагрузки?

Поскольку этот дефектный диск был добавлен только позже к существующим lvm2 vg и lv, содержащим полупустой ext4, каковы шансы, что на дефектный диск никогда не было записано никаких данных?

Другими словами: каковы шансы восстановить все мои данные, даже без неисправного диска, просто запустив группу томов как есть? Собираюсь ли я потратить 1500 долларов на восстановление 250 ГБ пустого пространства, когда я отправлю неисправный диск на ремонт?

Есть ли способ проверить, не монтируя файловую систему и не открывая файлы, надеясь, что они содержат что-то кроме нулей? (сравнение адресов используемых блоков данных внутри ext4 с диапазонами адресов, которые были на отсутствующем pv, что-то в этом роде, желательно легко автоматизировать)

Я знаю, что побитовое копирование всего lv в файл изображения перед попыткой восстановления ext4, вероятно, было бы хорошей идеей, но поскольку этот lv очень большой, и я только что потерпел серьезный сбой файловой системы на нескольких системах, это, вероятно, роскошь, которую я не делаю нет ...

Какие-либо предложения?

Подводя итог: я решил попробовать и снова собрал lvm с отсутствующим сломанным диском после того, как я сделал резервные копии всех дисков с помощью ddrescue.

Результат: из 68 000 файлов примерно 12 000 полностью отсутствовали, а еще 38 000 имели неверные контрольные суммы после восстановления (чистая удача, у меня были контрольные суммы в записи).

Так что я думаю, можно с уверенностью сказать, что это не лучшая стратегия, если файлы важны.

Кроме того, на восстановление файловой системы ушло около 3 дней обработки и значительно превышало 32 ГБ ОЗУ на Ivy-bridge Xeon.

Я все-таки отправил привод в ремонт.

Слишком много вопросов, отвечу на LVM-часть:

Поскольку вы смогли добавить один диск, я предполагаю, что это не чередующийся том и не зеркало (иначе у вас не было бы проблемы с отсутствующими данными), а просто обычная (линейная) цель.

Файл резервной копии метаданных находится в /etc/lvm/backup/$VG на машине, на которой использовался LV - посмотрите там - там вы найдете все подробности.

Также, прежде чем что-либо делать с FS: создайте снимок и используйте его для восстановления, чтобы вы могли вернуться в предыдущее состояние.

Re: Использование FS: я не могу помочь, но, как вы сказали, никаких удалений, только добавление файлов, я ожидаю, что FS не фрагментирует свободное пространство. Вы можете попробовать обратиться к википедии: https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout или выполните поиск по IRC каналу # ext4.

И прежде чем вносить какие-либо необратимые изменения, перейдите на канал IRC #lvm на freenode, где вы можете найти онлайн-руководство.