Что такое поведение LVM2 в случае сбоя диска?

for f in rcp8p5 rcp4p5
do  : >"$f.txt"
    find . ! -name . -prune ! -type d -name "*_${f}_*txt" -exec \
        sh -c '
            printf "%s\t" YEAR MONTH DAY
            printf "%.0sRES\t" "$@"; echo
            sed -n "
                /^[0-9]/!d;p;:n
                n
                /^[0-9]/s/.*[[:blank:]]//p
                bn
            "  "$@" | paste
    ' --    {} + >>"$f.txt"
done

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

Обычно find захватывает список файлов с именами, соответствующими либо ... 8 ... или ... 4 ... и руками их от {} + в оболочку.

Оболочка печатает строку заголовка, начинающуюся с YEAR MONTH DAY , за каждой следует \ t ab, а после выводит столько столбцов RES , сколько имеет аргументов. .

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

Весь вывод sed передается в paste , который заменяет все \ n ewlines во входных данных на \ t абс на выходе.

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

Если это так, этот будет , однако сделает новую строку в вашей таблице для каждой группы файлов ARGMAX - что может быть неплохо, но с этим легко справиться. потом.

3
30.04.2018, 01:59
3 ответа

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

Это похоже на создание раздела размером 1 ГБ, его форматирование, создание данных в файловой системе, а затем перезапись диапазона от 250 МиБ до 500 МиБ нулями.

Если в файловой системе было менее 250 МиБ данных, существует вероятность, что fsckвосстановит большую часть или все данные. Вы можете легко попробовать это.

1
27.01.2020, 21:35

what happens if /dev/sdb fails?

Ваш lvol1 больше не будет работать. Потеря одного диска означает потерю данных на 5 дисках. В томе будет отсутствовать огромный кусок данных (весь диск исчезнет )и, скорее всего, какую бы файловую систему вы ни использовали поверх этого, это ничуть не понравится.

Вы не должны ожидать, что fsckчто-то восстановит. Это может случиться, но fsckне является инструментом восстановления данных, он в основном используется только для устранения незначительных несоответствий, а не для волшебной работы с пропавшими сотнями гигабайт данных. Иногда fsckсовершенно счастлив предоставить вам непротиворечивую (, но странно пустую )файловую систему.

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

Поскольку LVM является линейным (по умолчанию, в любом случае ), photorecи другие инструменты по-прежнему смогут находить (нефрагментированные, незашифрованные )данные на других дисках.

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

Использование дисков без разделов сопряжено с риском непреднамеренного создания таблицы разделов в любом случае -с перезаписью других метаданных в процессе. Вы всегда должны использовать таблицу разделов.

В любом случае, если не хотите потерять свои данные, делайте резервные копии.

Если вы не хотите восстанавливать резервные копии после каждого отказа одного диска, также используйте RAID.

0
27.01.2020, 21:35

lvdisplay --maps сообщит вам, где расположены физические экстенты, соответствующие конкретному LV или его определенному диапазону. pvdisplay --mapsпредставляет ту же информацию с точки зрения, ориентированной на PV -.

Например, если pvdisplay --mapsуказывает, что сбойный PV покрывает, скажем, логические экстенты 1000...4000 конкретного LV, а размер экстента этой VG составляет 4 МБ, то вы будете знать, что если PV полностью выйдет из строя, в вашем LV будет большая недоступная «дыра», начинающаяся с точки 4000 МБ от начала LV и продолжающаяся до точки 16000 МБ от начала этого LV.

Обычно в подобных ситуациях проще всего восстановить весь LV :, чтобы быть уверенным, что все файлы находятся в согласованном состоянии. Например, если файл A содержит ссылки на вещи из файла B, вы можете восстановить оба из резервных копий, даже если только один из них был в поврежденной области.

Но если вам необходимо (, т.е. вы обнаружили, что у вас нет пригодных для использования резервных копий и теперь у вас большие проблемы ), вы можете использовать lvchangeили vgchangeс --activationmode partial, чтобы активировать LV даже если в нем отсутствуют детали, чтобы вы могли установить его, чтобы восстановить то, что осталось. Это следует делать только в целях восстановления данных.

Поскольку в вашем случае /dev/sdbбудет первым PV в группе томов, он также будет содержать первую часть LV -, где, вероятно, окажется много критических метаданных файловой системы этого LV, поэтому fsckвыдал бы вам много ошибок. Как сказал frostschutz, photorecвполне может найти любые нефрагментированные файлы из оставшихся частей LV. Но полагаться на это — плохая стратегия.

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

Но даже если вы настроили RAID-массив, не забывайте о резервных копиях. RAID может упростить устранение сбоев диска, но он совершенно бесполезен в случае «упс» пользователя/сисадмина. RAID не является резервным.

4
27.01.2020, 21:35

Теги

Похожие вопросы