[OT, długie] Jak zwiększyć rozmiar dysku JBOD?
Łukasz Maśko
masko w ipipan.waw.pl
Pią, 17 Paź 2014, 21:58:56 CEST
Ponieważ nigdy nie miałem właściwie do czynienia z czymś innym niż czyste
partycje dyskowe (zwykły ext? na dysku itp.), nie mam żadnego doświadczenia z
macierzami. A mam teraz następujący problem: w moim NAS-ie (Zyxel NSA310,
firmware to Linux) miałem do tej pory dysk 1.5TB, prawie cały zapchany (200GB
wolnego). Chcę go zamienić na 2TB. Na razie skopiowałem dysk źródłowy na
docelowy bit po bicie. Poszło bez problemu, chociaż strasznie długo. NAS
wstał, pokazał dane jak należy, chociaż partycję 1.4TB, jak na dysku
wejściowym, ale na razie OK.
Na dysku są dwie partycje: systemowa z oprogramowaniem NAS-a, 0.5GB (nie ma
co ruszać) oraz druga, z danymi. Fdisk wyświetla taki rozkład partycji:
Polecenie (m wyświetla pomoc): p
Dysk /dev/sdb: 1,8 TiB, bajtów: 2000398934016, sektorów: 3907029168
Jednostki: sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Typ etykiety dysku: dos
Identyfikator dysku: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sdb1 63 1028159 1028097 502M 8 AIX
/dev/sdb2 1028160 2930272064 2929243905 1,4T 20 nieznany
Polecenie (m wyświetla pomoc): v
Pozostało 976757103 nieprzydzielonych sektorów 512-bajtowych.
Ta druga partycja to wolumin JBOD, na którym jest partycja ext4. Mogę się do
niej dość prosto dostać tak:
$ sudo mdadm -A --verbose --run /dev/md0 /dev/sdb2
mdadm: looking for devices for /dev/md0
mdadm: /dev/sdb2 is identified as a member of /dev/md0, slot 0.
mdadm: added /dev/sdb2 to /dev/md0 as 0
mdadm: /dev/md0 has been started with 1 drive.
$ sudo mount -o rw -t ext4 /dev/md0 /mnt/nas/
I mam dane. Czyli nie jest źle.
Teraz clue programu - chciałbym rozszerzyć wolumin tak, żeby wykorzystać
pozostałe miejsce na dysku. Plan był taki:
1. Zwiększ rozmiar partycji tak, żeby zajmowała cały wolny rozmiar.
2. Utwórz md0 jak powyżej.
3. Odpal resize2fs i rozciągnij partycję na cały obszar.
Ale tu następuje ZONK, bo jeśli zorbię krok 1, to dostaję:
$ sudo mdadm -A --verbose --run /dev/md0 /dev/sdb2
mdadm: looking for devices for /dev/md0
mdadm: no recogniseable superblock on /dev/sdb2
mdadm: /dev/sdb2 has no superblock - assembly aborted
Ponieważ po rozszerzeniu partycji jest problem oraz - co nieopatrznie
sprawdziłem - zapuszczone luzem fsck.ext4+resize2fs działa ale potem NAS się
nie podnosi, wywnioskowałem, że w przypadku JBOD, dane o wolumenie są
zapisane na końcu partycji (mam rację?). Więc nie ma co się dziwić, że mój
plan zawiódł.
I teraz pytanie - czy da się jakoś przeskalować wolumin i partycję na nim
tak, żeby nie utracić danych, czy też jestem skazany na ręczne przegranie
danych? Bardzo bym chciał tego uniknąć, bo z racji rozmiaru danych, proces
ten, w zależności od użytego sprzętu, trwa od kilku (oba dyski podpięte do
kontrolera SATA "na krótko", ale następną okazję na to będę miał dopiero we
wtorek) do kilkudziesięciu (podłączenie dysków przez mostki SATA->USB)
godzin, co jest cokolwiek upierdliwe.
Jeśli chodzi o narzędzia, to do wtorku dysponuję laptopem z PLD (dyski
podpinam przez USB 2.0 i mostki SATA->USB, transfer rzędu 18MB/s). Dopiero we
wtorek będę mógł dyski włożyć do stacji roboczej na PLD, z wewnętrznym
kontrolerem SATA (transfer 90-40MB/s, zależnie od tego, czy początek czy
koniec dysku).
--
Łukasz Maśko _o)
Lukasz.Masko(at)ipipan.waw.pl /\\
Registered Linux User #61028 _\_V
Ubuntu: staroafrykańskie słowo oznaczające "Nie umiem zainstalować Debiana"
Więcej informacji o liście pld-users-pl