Porównaj ceny domen i usług IT, sprzedawców z całego świata
lvm

Wewnętrzny błąd LVM: segmenty LV uszkodzone po dodaniu paska w nalocie LV5


Próbuję zasymulować planowaną aktualizację pamięci. W tym celu odtworzyłem instalację z mniejszymi dyskami na maszynie wirtualnej.

Trening

Punktem wyjścia jest LV z raid5, 2 pasy na 3 PV i buforowanie na 1 PV, skonfigurowane w następujący sposób:
pvcreate/dev/sdd/dev/sde/dev/sdf vgcreate vg01/dev/sdd/dev/sde/dev/sdf lvcreate -n origin_lv -l 8180 -i 2 --type raid5 vg01 \/dev/sdd/dev/sde/dev/sdf
co skutkuje VG z raid5 na 3 urządzeniach. Następnie zrobiłem to, aby utworzyć woluminy pamięci podręcznej:
pvcreate/dev/sdc1
vgextend vg01/dev/sdc1
lvcreate -n origin_lv_cache -L 10G vg01/dev/sdc1
pvcreate/dev/sdc2
vgextend vg01/dev/sdc2
lvcreate -n origin_lv_cache_meta -L 1G vg01/dev/sdc2

to służy do tworzenia puli pamięci podręcznych:
lvconvert \
--type cache-pool \
--poolmetadata vg01/origin_lv_cache_meta \
vg01/origin_lv_cache

i dołączyłem go do oryginalnego LV:
lvconvert \
--type cache \
--cachepool vg01/origin_lv_cache \
vg01/origin_lv>>>> output: "Logical volume vg01/origin_lv is now cached"

Następnie używam luksFormat i mkfs, co daje idealnie zamontowany system plików.

Ten problem

Teraz chcę zwiększyć pojemność. W tym celu spróbowałem:
lvconvert --splitcache vg01/origin_lv

Usuń buforowanie. Synchronizuje wszystko od Keshy do rzeczywistego LV, mogę to zrobić:
pvcreate/dev/sdg 
vgextend vg01/dev/sdg

aby dodać nowe PV, a następnie:
lvconvert --stripes 3 vg01/origin_lv [wszystkie poprzednie urządzenia] [nowe urządzenie]
w rezultacie, zgodnie z oczekiwaniami, LV będzie miał o 50% więcej miejsca. Teraz próbowałem ponownie podłączyć pamięć podręczną, a nawet usunąć woluminy pamięci podręcznej i odtworzyć je, ale kiedy próbuję ponownie podłączyć ją do rzeczywistego LV, otrzymuję to:
lvconvert \
--type cache-pool \
--poolmetadata vg01/origin_lv_cache_meta \
vg01/origin_lv_cache
wynik:

Do you want wipe existing metadata of cache pool vg01/origin_lv_cache? [y/n]: y
LV origin_lv, segment 1 invalid: reshape for cache segment.
Internal error: LV segments corrupted in origin_lv.

Jednak mogę zamontować i odczytać/zapisać podstawowy LV, po prostu nie wydaje się, aby ponownie połączyć pamięć podręczną.
jakieś pomysły, czego mi tu brakuje?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jak się okazuje, fsresize nie jest świadomy podstawowego stanu synchronizacji. Używanie lvs do sprawdzania statusu synchronizacji i czekania na 100% synchronizacji, a następnie zmiana rozmiaru działała dobrze.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się