Где на диске выделено место для новых файлов внутри 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 очень большой, и я только что перенес серьезный сбой файловой системы на нескольких системах, это, вероятно, роскошь, которую я надеваю нет...

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

2 ответа

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам