Problém
Zprávy, jako jsou následující, jsou hlášeny při spouštění příkazů, jako je partprobe v systému CentOS/RHEL pomocí LVM (Logical Volume Manager) a multipathing, např. device-mapper-multipath nebo EMC PowerPath atd.:
Error: Error informing the kernel about modifications to partition /dev/sda1 -- Device or resource busy. This means Linux won't know about any changes you made to /dev/sda1 until you reboot -- so you shouldn't mount it or use it in any way before rebooting. ...
Při spuštění příkazu pvs k získání informací souvisejících s fyzickým objemem (PV) jsou hlášeny zprávy, jako jsou následující:
Found duplicate PV G9tZklKg1nrXN7wGADvwHQOQtgd4w58M: using /dev/sdb1 not /dev/sda1 Found duplicate PV G9tZklKg1nrXN7wGADvwHQOQtgd4w58M: using /dev/sda1 not /dev/emcpowera1 ...
Kořenová příčina
Zpráva „Found duplicate PV“ se objeví, když LVM není nakonfigurováno k odfiltrování základních jednocestných zařízení, např. /dev/sd*. Vícecestný software, např. device-mapper-multipath, EMC PowerPath atd., vytváří vícecestné pseudo zařízení pro každé spravované zařízení. Pokud nejsou základní jednocestná zařízení odfiltrována, LVM zjistí, a tak nahlásí duplicitní cesty zařízení, které všechny odkazují na stejné zařízení LVM.
Příklad mapování zařízení pro dvoucestnou konfiguraci device-mapper-multipath:
/dev/sda, /dev/sdb --> /dev/dm-0 --> /dev/mapper/mpath1
Příklad mapování zařízení pro dvoucestnou konfiguraci EMC PowerPath:
/dev/sda, /dev/sdb --> /dev/emcpowera
Řešení
Nové nastavení LVM na EMC PowerPath naleznete v části „Konfigurace podpory LVM2“ v dokumentaci k EMC PowerPath, která by měla obsahovat podrobnosti o úpravě souboru „/etc/lvm/lvm.conf“ pro odfiltrování základních cest
Pro nové nastavení LVM na device-mapper-multipath:
– Vypněte skenování LVM na základních zařízeních SCSI. To lze provést změnou parametru filtru v „/etc/lvm/lvm.conf“.
filter = [ "a/dev/mapper/.*/", "r/dev/sd.*/" ]Poznámka :Toto nastavení přijímá všechna zařízení /dev/mapper/* a odmítá všechna zařízení /dev/sd* při skenování disků LVM. Další podrobnosti naleznete v uživatelské příručce LVM2. Pokud je kořenové zařízení také vícecestným zařízením LVM, proveďte před vytvořením nového obrazu initrd změny v /etc/lvm/lvm.conf. Tam, kde je vyžadováno „multipath on root“, je potřeba lvm.conf v obrazu initrd, což vyžaduje přepracování initrd.
U stávajícího nastavení LVM na discích EMC PowerPath nebo dm-multipath zajistěte integritu dat na svazcích LVM:
1. Změňte soubor „/etc/lvm/lvm.conf“, jak je popsáno výše
2. Obecně je třeba nakonfigurovat LVM tak, aby odfiltroval všechna zařízení sd* a viděl pouze zařízení /dev/emcpower* nebo /dev/mapper/*. Pokud existují další svazky LVM zařízení SCSI, které nejsou mutipathed, např.:/dev/cciss/*, nastavte filtr podle toho, například:
filter = [ "r/sd.*/" "a/dev/cciss/*/" "a/dev/emcpower.*/" "a/dev/mapper/*/" ]
S tímto nastavením by příkazy „lvmdiskscan“ a „pvscan“ měly najít pouze zařízení /dev/ccisss/*, /dev/emcpower* a /dev/mapper/*.
3. Zastavte všechny aplikace/služby, které přistupují k zařízením/systémům souborů spravovaným LVM.
4. Odpojte všechny souborové systémy založené na LVM.
5. Deaktivujte všechny skupiny svazků.
# vgchange -an
6. Znovu prohledejte skupiny svazků.
# vgscan
7. Znovu aktivujte skupiny svazků.
# vgchange -ay
8. Připojte všechny souborové systémy založené na LVM.
9. Spusťte všechny aplikace/služby vyžadující přístup k zařízením/systémům souborů spravovaným LVM.
Poznámka :Pokud je třeba během spouštění odkázat na disky LVM, např. během zavádění jádra kdump capture nebo při konfiguraci jako multipath-on-root, bude nutné znovu sestavit obraz initrd.