Недавно я потерял RAID, который был физическим томом одной из моих групп томов LVM linux. Я закончил тем, что сделал vgreduce --removemissing и продолжил дело восстановления данных.

Ну, сегодня я обнаружил, что RAID (он скрывался, не спрашивайте).

# pvdisplay -m /dev/md2
  WARNING: Volume group mg20 is not consistent
  "/dev/md2" is a new physical volume of "499.87 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/md2
  VG Name               
  PV Size               499.87 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               SUXIe9-B4xG-Qlbz-5cSd-f1dh-cRQh-vOF4qz

mg20 не согласован, потому что потерянный и найденный PV /dev/md2 вероятно, содержит копии старого каталога логических томов, в котором упоминается файловая система, /dev/md2 .

Как мне реинтегрировать /dev/md2 в mg20 и сохранить файловую систему, которая на нем живет? (и избавляю себя от необходимости восстанавливать его содержимое). Упрощающим фактором является то, что /dev/md2 содержал только один LV, и что LV полностью содержался в /dev/md2 .

1 ответ1

0

Я понял, способ восстановить рейд. Современные системы LVM делают резервные копии конфигурации VG довольно часто. Вы можете увидеть список ваших резервных копий и команд, которые их запустили, используя vgcfgrestore --list . Я выбрал тот, который был до того, когда выполнил vgreduce --removemissing и нашел в нем следующие важные фрагменты:

pv8 {
        id = "SUXIe9-B4xG-Qlbz-5cSd-f1dh-cRQh-vOF4qz"
        device = "unknown device"       # Hint only

        status = ["ALLOCATABLE"]
        flags = ["MISSING"]
        dev_size = 1048312832   # 499.875 Gigabytes
        pe_start = 2048
        pe_count = 127967       # 499.871 Gigabytes
}

а также

homes18 {
        id = "d7yt43-PMTv-XnsH-qAff-3d5A-ilB6-eQB0Jy"
        status = ["READ", "WRITE", "VISIBLE"]
        flags = []
        segment_count = 1

        segment1 {
                start_extent = 0
                extent_count = 89600    # 350 Gigabytes

                type = "striped"
                stripe_count = 1        # linear

                stripes = [
                        "pv8", 0
                ]
        }
}

Поэтому я создал копию этого файла и удалил "MISSING" из flags = . Я также установил device = "/dev/md2" , хотя, вероятно, в этом не было необходимости. Я выполнил vgcfgrestore -f /etc/lvm/archive/mg20_synthetic-2015.vg mg20 и теперь мой mg20 /homes18 вернулся и прошел fsck.

Если честно, я не очень доволен этим как ответом. Это немного излишне, чтобы восстановить ВСЮ конфигурацию.

Я думаю, что реальный ответ может включать lvcreate -Z n , но мне лень проводить необходимые эксперименты, чтобы это проверить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .