Come aggiornare un array ZFS RAID-Z su dischi più grandi su OpenSolaris?


11

Sto pensando di installare OpenSolaris sul mio server di casa (in questo momento ha Linux) e vorrei sapere come prepararmi per l'aggiornamento del server per avere dischi rigidi più grandi in futuro. Ora il server ha 4 unità SATA da 400 GB e installerei OpenSolaris con ZFS RAID-Z su di esse. Qualche tempo dopo quest'anno o l'anno prossimo aggiornerò le unità a unità SATA 4x da 1 TB.

Come posso fare l'aggiornamento e l'aumento delle dimensioni della partizione con ZFS? È un'operazione semplice e indolore (ad esempio sostituire un'unità alla volta e ZFS si ridimensionerà automaticamente per utilizzare l'intero spazio) o sono necessari alcuni passaggi speciali? Può essere fatto senza spegnere il sistema?

Risposte:


17
  1. Unità offline n. 1.
  2. Sostituire il vecchio disco con il nuovo disco ad alta capacità.
  3. zpool sostituisce l'unità.
  4. Attendere che la sostituzione venga ricostruita.
  5. Andare al passaggio 1 e ripetere per ciascuna unità successiva dell'array.

Potrebbe essere necessario esportare e quindi importare zpool una volta completata questa procedura; il pool mostrerà quindi la dimensione aumentata. Non sono necessari tempi di inattività, ma se un'unità va a sud mentre si aggiorna l'array, si perderà tutto, poiché con quattro dischi totali presumibilmente si ha una configurazione 3 + 1. (Le probabilità non sono così alte, ma Murphy non dorme mai.)

La fonte ufficiale: "Sostituzione di dispositivi in ​​un lotto di memoria" nella Guida all'amministrazione di ZFS . Anche la Guida alle migliori pratiche ZFS è utile.


+1 per "Potrebbe essere necessario esportare e quindi importare zpool una volta completata questa procedura" - la procedura di sostituzione non funzionava per me fino a quando non ho intrapreso questa azione.
Josh,

Non è necessario reimportarlo se l' autoexpandopzione è impostata su onper il pool.
bahamat,

15

Vorrei aggiungere che la sostituzione di un'unità non difettosa rende il raid meno a prova di errore. In realtà è possibile riempire prima l'unità sostitutiva con i dati prima di estrarre l'unità più piccola. Quindi l'ordine diventerà.

  • Collega unità più grandi (può anche essere tramite USB)
  • zpool replace smallerdrive biggerdrive
  • aspettare
  • quando hai finito, togli un disco più piccolo o qualunque cosa tu debba fare.
  • ripetere
  • e alla fine potresti dover correre zpool set autoexpand=on pool

Ora il murphy è meno un problema


Per le persone che lo fanno su Linux: ho sostituito ogni unità con successo, ma non aumenterebbe lo spazio durante l'esecuzione autoexpand=on. Avevo bisogno di funzionare zpool online -e poolname devicenameper ogni dispositivo, e poi ha funzionato. L'importazione / esportazione non ha fatto nulla.
Peterdk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.