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

Утрачен доступ к кэшированному тому LVM

Обычно я не прошу помощи с Linux, предпочитаю разбираться во всем сам, но на этот раз я действительно застрял и не знаю, куда обратиться за помощью.

Около года назад я добавил lvmcache в один из моих LV в качестве эксперимента. Несколько дней назад я обновил свое ядро ​​(yum update), и после перезагрузки я больше не могу получить доступ к этому LV. На нем есть важные данные, которые я бы очень хотел вернуть.

У меня две группы томов, SSD и Rust:

По разным причинам я не хотел, чтобы SSD был полностью кешем и не использовался ни для чего другого, поэтому я установил на нем LVM и создал LV для корневой файловой системы, контейнеров LXC и т. Д. Это те LV, которые у меня есть:

$ sudo lvs
  WARNING: Device for PV 0hAsMD-LsJf-YsiF-iQ0B-tI23-8hso-cRP93L not found or rejected by a filter.
  Couldn't find device with uuid 0hAsMD-LsJf-YsiF-iQ0B-tI23-8hso-cRP93L.
  LV           VG   Attr       LSize   Pool    Origin         Data%  Meta%  Move Log Cpy%Sync Convert
  Backups      Rust -wi-a-----   1.00t                                                               
  Dxxxxx       Rust -wi-a-----   3.00t                                                               
  Microserver  Rust -wi-a-----   5.00t                                                               
  NAS          Rust -wi-a-----   5.00t                                                               
  Photos       Rust Cwi---C-p-   3.00t [Cache] [Photos_corig]                                        
  Rescued      Rust -wi-a-----   6.00t                                                               
  Video        Rust -wi-a-----   2.00t                                                               
  CentOS7_Root SSD  -wi-ao----  50.00g                                                               
  Containers   SSD  -wi-ao---- 200.00g                                                               
  MD_Journal   SSD  -wi-ao----  16.00g                                                               
  Rust_Cache   SSD  -wi-a----- 256.00g                                                               
  home         SSD  -wi-ao---- 100.00g

Фото - это недоступный кешированный LV. Настройка была немного сложной, потому что lvmcache настаивает на том, чтобы исходный логический уровень и логический том кеша находились в одном VG, а мой нет (один находится на Rust, другой - на SSD). Я обошел это, создав объем кеша на SSD, затем отформатировал его как PV и добавил этот PV в группу Rust. Вот команды, которые я запускал для его настройки год назад:

# Create a cache volume (LV) on the SSD device
lvcreate -L 256G -n Rust_Cache /dev/SSD
# Format that volume as a PV:
pvcreate /dev/SSD/Rust_Cache
# Add it to the Rust VG:
vgextend /dev/Rust /dev/SSD/Rust_Cache
# Create the cache data volume on it:
lvcreate -L 100G -n Cache Rust /dev/SSD/Rust_Cache
# Create the cache meta volume on it:
lvcreate -L 4G -n Cache_Meta Rust /dev/SSD/Rust_Cache
# Combine them into a cache pool:
lvconvert --type cache-pool /dev/Rust/Cache --poolmetadata /dev/Rust/Cache_Meta
# Set that pool as the cache of the Photos LV:
lvconvert --type cache /dev/Rust/Photos --cachepool /dev/Rust/Cache

Я думаю, что проблема связана с показанным выше сообщением об ошибке:

  WARNING: Device for PV 0hAsMD-LsJf-YsiF-iQ0B-tI23-8hso-cRP93L not found or rejected by a filter.
  Couldn't find device with uuid 0hAsMD-LsJf-YsiF-iQ0B-tI23-8hso-cRP93L.

Это UUID PV кэша (/ dev / SSD / Rust_Cache), по крайней мере, согласно /etc/lvm/backup/Rust. Я не могу подтвердить это, потому что он отказывается pvdisplay:

$ sudo pvdisplay /dev/SSD/Rust_Cache 
  Failed to find device for physical volume "/dev/SSD/Rust_Cache".
  WARNING: Device for PV 0hAsMD-LsJf-YsiF-iQ0B-tI23-8hso-cRP93L not found or rejected by a filter.
  Couldn't find device with uuid 0hAsMD-LsJf-YsiF-iQ0B-tI23-8hso-cRP93L.

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

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

vgchange -ay отказывается активировать его, но намекает, что я могу заставить его, так что это может быть одним из вариантов, если нет возможности восстановить кеш:

$ sudo vgchange -ay
  WARNING: Device for PV 0hAsMD-LsJf-YsiF-iQ0B-tI23-8hso-cRP93L not found or rejected by a filter.
  Couldn't find device with uuid 0hAsMD-LsJf-YsiF-iQ0B-tI23-8hso-cRP93L.
  Refusing activation of partial LV Rust/Photos.  Use '--activationmode partial' to override.
  6 logical volume(s) in volume group "Rust" now active
  5 logical volume(s) in volume group "SSD" now active

Выход blkid на всех устройствах по запросу:

[sudo] password for chris: 
/dev/mapper/SSD-Rust_Cache: UUID="0hAsMD-LsJf-YsiF-iQ0B-tI23-8hso-cRP93L" TYPE="LVM2_member" 
/dev/nvme0n1: PTTYPE="gpt" 
/dev/nvme0n1p1: UUID="29970b49-140d-6862-786d-f33b5edcab6d" UUID_SUB="7cfe4ba4-3062-3ebb-a2a3-0b3f119e2ccc" LABEL="blackbox.qwarx.com:pv00" TYPE="linux_raid_member" PARTUUID="92abf126-4192-4a7d-8381-85a1ad1b2eaf" 
/dev/nvme0n1p2: UUID="a42550e8-adac-3f6e-68ef-41bddb5fa54c" UUID_SUB="cd19178f-2428-2442-0c60-99c4abff3c59" LABEL="blackbox.qwarx.com:Boot" TYPE="linux_raid_member" PARTUUID="3e5c4c02-4483-48fd-82eb-6973bea5674f" 
/dev/nvme0n1p3: UUID="1d3395dc-7e7c-bf69-7e51-e49fcb2d085d" UUID_SUB="ede510d6-1468-b9a9-b4af-d8b77af5cd4e" LABEL="blackbox.qwarx.com:EFI" TYPE="linux_raid_member" PARTUUID="81fdb48b-7cd8-4e55-8358-3f3f8aee1800" 
/dev/nvme1n1: PTTYPE="gpt" 
/dev/nvme1n1p1: UUID="29970b49-140d-6862-786d-f33b5edcab6d" UUID_SUB="dc5e4a8f-3281-cf7e-55a6-b95924872cc6" LABEL="blackbox.qwarx.com:pv00" TYPE="linux_raid_member" PARTUUID="ef1a40a2-c8b2-4428-ad29-fdc1b2640634" 
/dev/nvme1n1p2: UUID="a42550e8-adac-3f6e-68ef-41bddb5fa54c" UUID_SUB="54dab930-9e4e-1009-8618-eb100d5de05c" LABEL="blackbox.qwarx.com:Boot" TYPE="linux_raid_member" PARTUUID="26a6252a-871c-4768-916c-1ce038511874" 
/dev/nvme1n1p3: UUID="1d3395dc-7e7c-bf69-7e51-e49fcb2d085d" UUID_SUB="e752061b-8410-46fa-c871-04b16b0844bf" LABEL="blackbox.qwarx.com:EFI" TYPE="linux_raid_member" PARTUUID="d16924c1-96b3-4f9f-bef0-8e5ce4402bf0" 
/dev/md127: LABEL="Boot" UUID="da2c2ddd-af52-4dfe-92ac-9775cc015234" TYPE="ext4" 
/dev/md126: UUID="AKAeOG-fIdp-DKl7-mDiI-LHcH-y09B-3Vxjqw" TYPE="LVM2_member" 
/dev/sdb: UUID="653729f4-efb2-af46-dd24-6510380b7c35" UUID_SUB="b2664b6b-fae1-76e1-845e-50faa4dfa13d" LABEL="blackbox.qwarx.com:Rust" TYPE="linux_raid_member" 
/dev/sdc: UUID="653729f4-efb2-af46-dd24-6510380b7c35" UUID_SUB="e9defcaf-3cba-2337-17a9-bd247317ecfe" LABEL="blackbox.qwarx.com:Rust" TYPE="linux_raid_member" 
/dev/sdd: UUID="653729f4-efb2-af46-dd24-6510380b7c35" UUID_SUB="121f8be1-5ab4-9de0-238d-6ba64aae8c00" LABEL="blackbox.qwarx.com:Rust" TYPE="linux_raid_member" 
/dev/sda: UUID="653729f4-efb2-af46-dd24-6510380b7c35" UUID_SUB="dbbffe6d-dae0-31dd-a310-913a1cc8a8e8" LABEL="blackbox.qwarx.com:Rust" TYPE="linux_raid_member" 
/dev/mapper/SSD-CentOS7_Root: LABEL="CentOS7_Root" UUID="aa48bf01-c012-4e54-806b-e0a341d548c2" TYPE="xfs" 
/dev/md125: SEC_TYPE="msdos" LABEL="EFI" UUID="F61A-994A" TYPE="vfat" 
/dev/md124: UUID="RUXdND-W4mD-lXdF-YWMk-J7yY-w50S-zgdxOh" TYPE="LVM2_member" 
/dev/mapper/SSD-home: UUID="4031d5d7-dc64-49c4-9ecc-b139709a96ab" TYPE="xfs" 
/dev/mapper/SSD-MD_Journal: UUID="653729f4-efb2-af46-dd24-6510380b7c35" UUID_SUB="b504320e-e625-30cd-0270-77b9b63e2482" LABEL="blackbox.qwarx.com:Rust" TYPE="linux_raid_member" 
/dev/mapper/SSD-Containers: UUID="c9cd5afb-bdd9-4561-bdac-d3793a7b0c1c" TYPE="ext4" 
/dev/mapper/Rust-Rescued: LABEL="Rescued" UUID="9c17d2d8-700c-49c2-98fe-1fb1dde733c6" TYPE="ext4" 
/dev/mapper/Rust-Microserver: LABEL="Microserver" UUID="242d2ddf-0759-4346-a545-8df042af5ebe" TYPE="ext4" 
/dev/mapper/Rust-NAS: LABEL="NAS" UUID="a37875cf-1f5c-46aa-a825-4204cc98e4c9" TYPE="ext4" 
/dev/mapper/Rust-Video: LABEL="Video" UUID="92b9e7e9-874f-433b-aa72-0465546986b7" TYPE="ext4" 
/dev/mapper/Rust-Dxxxxx: LABEL="Dxxxxx" UUID="689947c7-7e62-4a3c-a871-59ea923c4dcf" TYPE="ext4" 
/dev/mapper/Rust-Backups: LABEL="Backups" UUID="9d0534b2-a545-410f-a9d4-eda4f9836bfb" TYPE="ext4" 

Думаю, я исправил!

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

vgchange -ay /dev/VG

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

Как и в случае с группами томов, иногда этот флаг сохраняется после того, как причина недоступности исчезла. Итак, я смог сделать LV Photos доступным без ошибок, а затем смонтировать его:

lvchange -ay /dev/Rust/Photos 

Я нашел и изменил следующие настройки в /etc/lvm/lvm.conf, поскольку казалось, что это может иметь отношение к этому конкретному устройству, которое не активируется автоматически, поэтому, возможно, была устранена основная проблема / основная причина:

    # Configuration option devices/scan_lvs.
    # Scan LVM LVs for layered PVs, allowing LVs to be used as PVs.
    # When 1, LVM will detect PVs layered on LVs, and caution must be
    # taken to avoid a host accessing a layered VG that may not belong
    # to it, e.g. from a guest image. This generally requires excluding
    # the LVs with device filters. Also, when this setting is enabled,
    # every LVM command will scan every active LV on the system (unless
    # filtered), which can cause performance problems on systems with
    # many active LVs. When this setting is 0, LVM will not detect or
    # use PVs that exist on LVs, and will not allow a PV to be created on
    # an LV. The LVs are ignored using a built in device filter that
    # identifies and excludes LVs.
    scan_lvs = 1

Вы пробовали загрузиться с ремонтного диска или livecd, такого как knoppix, чтобы посмотреть, можно ли смонтировать таким образом? Как насчет загрузки вашего предыдущего ядра из меню загрузки grub?