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

Второй логический экстент LVM отсутствует

Изменить 1: Чтобы уточнить, данные не были записаны в новые экстенты. Я знаю это, потому что администратор увеличил файловую систему с помощью fdisk сразу после выполнения lvextend, а затем перезагрузился, чтобы изменения вступили в силу. После перезагрузки новое блочное устройство было потеряно.

Вот что сделал системный администратор.

Было добавлено новое блочное устройство, затем он добавил новое блочное устройство в существующую группу томов, а затем он решил сделать lvextend для группы томов:

vgextend archive1-retain /dev/sdd1
lvextend -l +31 /dev/archive1-retain/data

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

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

archive1:~ # lvdisplay -am
  /dev/archive1-retain/data: read failed after 0 of 512 at 4400059711488: Input/output error
  /dev/archive1-retain/data: read failed after 0 of 512 at 4400059768832: Input/output error
  Couldn't find device with uuid W0btGW-Zp3R-yoAC-dkow-PabM-1Vri-3VUQo1.
  --- Logical volume ---
  LV Name                /dev/archive1-retain/data
  VG Name                archive1-retain
  LV UUID                fLG6tU-6tla-h49c-KOf2-LIAh-uIFy-wH0XB5
  LV Write Access        read/write
  LV Creation host, time archive1, 2015-06-12 11:50:30 -0700
  LV Status              available
  # open                 1
  LV Size                4.00 TiB
  Current LE             65566
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     1024
  Block device           253:3

  --- Segments ---
  Logical extent 0 to 65534:
    Type                linear
    Physical volume     /dev/sda
    Physical extents    0 to 65534

  Logical extent 65535 to 65565:
    Type                linear
    Physical volume     unknown device
    Physical extents    0 to 30

Вот что я пробовал. Оглядываясь назад, я не должен был использовать --force, но, к счастью, в то время том был смонтирован:

archive1:~ # vgreduce archive1-retain --removemissing
  /dev/archive1-retain/data: read failed after 0 of 512 at 4400059711488: Input/output error
  /dev/archive1-retain/data: read failed after 0 of 512 at 4400059768832: Input/output error
  Couldn't find device with uuid W0btGW-Zp3R-yoAC-dkow-PabM-1Vri-3VUQo1.
  WARNING: Partial LV data needs to be repaired or removed.
  There are still partial LVs in VG archive1-retain.
  To remove them unconditionally use: vgreduce --removemissing --force.
  Proceeding to remove empty missing PVs.

archive1:~ # vgreduce archive1-retain --removemissing --force
  /dev/archive1-retain/data: read failed after 0 of 512 at 4400059711488: Input/output error
  /dev/archive1-retain/data: read failed after 0 of 512 at 4400059768832: Input/output error
  Couldn't find device with uuid W0btGW-Zp3R-yoAC-dkow-PabM-1Vri-3VUQo1.
  Removing partial LV data.
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  device-mapper: remove ioctl on  failed: Device or resource busy
  Unable to deactivate archive1--retain-data (253:3)
  Unable to deactivate logical volume "data"

Дополнительная информация:

archive1:~ # lsblk
NAME                                     MAJ:MIN RM   SIZE RO MOUNTPOINT
xvdb                                     202:16   0   249G  0
└─xvdb1                                  202:17   0   249G  0 /var/log/retain-tomcat7
xvda                                     202:0    0    80G  0
├─xvda1                                  202:1    0     2G  0 [SWAP]
└─xvda2                                  202:2    0    78G  0 /
sda                                        8:0    0     4T  0
└─archive1--retain-data (dm-3)           253:3    0     4T  0 /var/opt/beginfinite/retain
sdc                                        8:32   0   750G  0
└─gwsystem-data (dm-0)                   253:0    0   750G  0 /gwsystem
sdb                                        8:16   0     1T  0
└─archive1--sql-data (dm-1)              253:1    0  1024G  0 /var/lib/mysql
archive1--retain-data-missing_1_0 (dm-2) 253:2    0     2G  0
└─archive1--retain-data (dm-3)           253:3    0     4T  0 /var/opt/beginfinite/retain

Логический том монтируется и его можно использовать:

archive1:~ # df -h
Filesystem                         Size  Used Avail Use% Mounted on
/dev/xvda2                          77G   35G   41G  46% /
udev                                19G  120K   19G   1% /dev
tmpfs                               19G     0   19G   0% /dev/shm
/dev/xvdb1                         246G   62G  172G  27% /var/log/retain-tomcat7
/dev/mapper/gwsystem-data          739G  590G  112G  85% /gwsystem
/dev/mapper/archive1--sql-data     1.0T  330G  695G  33% /var/lib/mysql
/dev/mapper/archive1--retain-data  4.0T  2.9T  1.2T  73% /var/opt/beginfinite/retain

После размонтирования вашей FS я бы пошел следующим образом:

Шаг 1 - vgcfgrestore -l для идентификации с файлом есть правильные метаданные lvm (тот, который непосредственно перед расширением sdd1)

Шаг 2 - vgcfgrestore -f filename для фактического восстановления старых метаданных lvm