Обычно я не прошу помощи с 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?