Po sprzętowym rozszerzeniu macierzy RAID fdisk nie pozwoli mi na użycie dodatkowych dostępnych sektorów

10

Mamy dużą macierz RAID-u na poziomie około 18 TB w Dell R720xd. Obecnie macierz RAID5 składa się z 6x4 TB i musiałem ją rozszerzyć.

Krok 1 rozwiń sprzętową tablicę RAID.

To proste, jeśli masz zainstalowane narzędzia administracyjne Dell.

omconfig storage vdisk action=reconfigure controller=0 vdisk=1 raid=r5 pdisk=0:1:0,0:1:1,0:1:3,0:1:3,0:1:4,0:1:5,0:1:8,0:1:9

(nowe dyski były dwoma ostatnimi, co można potwierdzić za pomocą omreportnarzędzia). Wszystko poszło dobrze, choć zajmuje to trochę czasu, i mogłem potwierdzić, że tablica została rozszerzona.

% omreport storage vdisk controller=0 vdisk=1

Virtual Disk 1 on Controller PERC H710P Mini (Embedded)

Controller PERC H710P Mini (Embedded)
ID                                : 1
Status                            : Ok
Name                              : bak
State                             : Ready
Hot Spare Policy violated         : Not Assigned
Encrypted                         : No
Layout                            : RAID-5
Size                              : 26,078.50 GB (28001576157184 bytes)
...
Device Name                       : /dev/sdb
...

Krok 2 nowa partycja

Zatem dysk vdisk zgłasza teraz zwiększenie rozmiaru (26 TB). i fdiskzgadza się ...

Disk /dev/sdb: 25.5 TiB, 28001576157184 bytes, 54690578432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A2D20632-37D1-4607-9AA0-B0ED6E457F91

Device     Start         End     Sectors  Size Type
/dev/sdb1   2048 39064698846 39064696799 18.2T Linux LVM

Jednak gdy idę dodać dodatkową partycję na dysk, dzieje się tak ...

Command (m for help): n
Partition number (2-128, default 2): 2
First sector (34-2047): 

Mam teraz na dysku około 16 miliardów sektorów, ale nie mogę ich używać. Oferowane są tylko sektory 34-2047. Nie mogę przydzielić 8 TB nowego miejsca, mimo że aktualnie jestem skonfigurowany tylko z jedną partycją.

Inną rzeczą, która wydała mi się tak dziwna, był fakt, że zaoferowano mi numery partycji 2-128, a nie tylko 2-4. Tabela partycji nie pokazuje żadnej partycji rozszerzonej, więc spodziewałbym się, że ograniczy mnie początkowo tylko do 4 partycji.

Czy czegoś mi brakuje?

  • Komputer został zrestartowany od czasu rozszerzenia macierzy dysków. Przed tym fdisk zgłosił tylko oryginalny 18 TB
  • Próbując cfdiskzamiast po prostu informuje, 2015 sektory dostępne w przedziale 39 miliardów pomimo zgłaszania 25TB ogólnej.
  • Nie chcemy usuwać i ponownie tworzyć partycji, jeśli możemy jej uniknąć, ponieważ możemy utracić wszystkie dane. Wolimy po prostu rozszerzyć grupę woluminów LVM o nową partycję po zakończeniu.
  • Jest to podobny problem do pytania o inny błąd serwera , ale nie jestem ograniczony przez to, że zabrakło partycji i nie sądzę, że jestem ograniczony przez rozszerzoną partycję.
  • Rozmiar dysku nie jest powiększany przez rozszerzenie dysku . Gdyby to był fdisk, nie zgłaszałby wzrostu liczby sektorów, pomyślałbym. Plus pvsi vgsnie zgłasza dodatkowej nieprzydzielonej przestrzeni w LVM
  • Uruchomiłem to na sucho na maszynie wirtualnej i nie doświadczyłem tego. Jednak wyłączałem VM i zwiększałem rozmiar jego urządzenia dyskowego. Więc nie było online podczas zwiększania rozmiaru. Plus rozmiary dysków były o wiele rzędów wielkości mniejsze dla vm.

Zaktualizuj wyjście 1 'x'pert w trybie wymaganym przez Micheala ...

Command (m for help): x

Expert command (m for help): p
Disk /dev/sdb: 25.5 TiB, 28001576157184 bytes, 54690578432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A2D20632-37D1-4607-9AA0-B0ED6E457F91
First LBA: 34
Last LBA: 39064698846
Alternative LBA: 39064698879
Partitions entries LBA: 2
Allocated partition entries: 128

Device     Start         End     Sectors Type-UUID                            UUID                                 Name      Attrs
/dev/sdb1   2048 39064698846 39064696799 E6D6D379-F507-44C2-A23C-238F2A3DF928 E9CB58BF-F170-4480-A230-6E2A238367D1 Linux LVM 


Expert command (m for help): v
MyLBA mismatch with real position at backup header.
1 error detected.

A więc możliwy błąd LBA?

Vagnerr
źródło
2
W fdiskprzejdź do e xtrybie Pert, a następnie pponownie rukuj tablicy partycji, a następnie verify go.
Michael Hampton
Czy ktoś naprawił fdisk do obsługi GPT? Ostatnim razem, gdy wypróbowałem to na dysku GPT, dostałem ostrzeżenie, że naprawdę powinienem używać GNU parted, ale minęło sporo czasu.
DerfK
Tak, nowoczesne wersje fdisk mogą obsługiwać GPT.
Bufor
Zakładam, że GPT właśnie dlatego zaoferowano mi 2-128 jako liczbę partycji zamiast ograniczania się do 4 partycji. czy to prawda?
Vagnerr
@Vagnerr tak, GPT obsługuje więcej partycji niż stary schemat MBR.
DerfK

Odpowiedzi:

6

Problemem była lokalizacja tablicy partycji kopii zapasowej. Zwykle spodziewana jest tablica partycji podstawowej na początku, a tablica partycji kopii zapasowej na końcu. Zmiana rozmiaru dysku udostępniła więcej sektorów, ale nigdy nie przesunęła tabeli kopii zapasowych. fdiskowi się to nie podobało i uważam, że to był MyLBA mismatch with real position at backup header.komunikat o błędzie. Nie do końca jasne.

Przeszedłem od fdiskdo gdiski wyjście było trochę inaczej. W gdisk masz ...

r       recovery and transformation options (experts only)

Po przejściu do tego i uruchomieniu verify dał bardziej pomocny komunikat o błędzie ...

Recovery/transformation command (? for help): v

Problem: The secondary header's self-pointer indicates that it doesn't reside
at the end of the disk. If you've added a disk to a RAID array, use the 'e'
option on the experts' menu to adjust the secondary header's and partition
table's locations.

Identified 1 problems!

W gdisktrybie eksperckim dostępna jest następująca opcja ...

e       relocate backup data structures to the end of the disk

... działało pomyślnie, a wynik weryfikacji został teraz ...

Expert command (? for help): v

No problems found. 15625881566 free sectors (7.3 TiB) available in 2
segments, the largest of which is 15625879552 (7.3 TiB) in size.

Drukowanie tabeli partycji pokazało teraz ostatni użyteczny sektor jako 56 miliardów zamiast 39 miliardów, a ja byłem w stanie utworzyć nową partycję i dodać ją do LVM, który jeśli ktoś jest zainteresowany, kroki ...

partprobe           <-- add the /dev/sdb2 device if you don't want to reboot 
pvcreate /dev/sdb2
vgextend bak /dev/sdb2
lvextend /dev/mapper/bak-bak -l 100%PVS -r
Vagnerr
źródło
Aby wyjaśnić, aby uniknąć konieczności ponownego uruchamiania po przeniesieniu struktur danych kopii zapasowej, uruchomiłeś partprobe? Ponadto ten post jest ratownikiem . Dziękujemy za pomoc.
Obrót
@ Swivel To prawda. Bez uruchomienia partprob lub ponownego uruchomienia urządzenie sdb2 nie zostanie utworzone w katalogu / dev i musi tam być, aby wykonać następujące polecenia lvm. Cieszę się, że post pomógł ci :-)
Vagnerr
2

Kluczem do tego snafu jest:

Last LBA: 39064698846

Etykieta GPT nie odzwierciedla średnich rozmiarów, które uległy zmianie. fdiskszuka wolnego miejsca w sposób, który nie jest idealny, ale przynajmniej logiczny - szuka pierwszego dostępnego sektora w największym wolnym miejscu dostępnym między pierwszym a ostatnim LBA GPT Label .

Jednym ze sposobów może być sfdiskzrzucenie etykiety, edycja jej odpowiednio do średnich rozmiarów i zapisanie jej z powrotem, lub lepsze użycie, partedktóre powinno zająć się tym problemem IMO.

Peter Zhabin
źródło