Quanto tempo può impiegare fsck su un volume di 30 TB?


17

A metà novembre, un VPS che sto noleggiando da una società di hosting ha smesso di rispondere. Quando ho contattato l'assistenza, mi hanno spiegato che un'interruzione di corrente nel centro dati ha causato un riavvio forzato e fsck. Alla fine, ho chiesto perché ci voleva così tanto tempo e mi è stato detto che la dimensione del volume è di 30 TB. L'ultima volta che ho ricevuto un aggiornamento è stato a febbraio e non hanno risposto alla mia inchiesta più recente.

Capisco che fsck può essere molto lento per alcuni file system, ma è possibile che fsck impieghi 6 mesi su un volume di 30 TB, o dovrei supporre che questa società di hosting mi stia mentendo in modo da continuare a pagare la mia fattura ogni mese?


39
Probabilmente ti stavano mentendo dall'inizio. Mi aspetterei che ci vorranno ore . Avresti dovuto smettere di pagare a dicembre.
Michael Hampton

15
Anche se non mentono, scegliere una configurazione software HW + che potrebbe richiedere un FSCK che dimostra a lungo che sono incompetenti. E qualunque sia la ragione, non stanno fornendo il servizio che stai pagando.
Peter Cordes,

34
Sembra un vero fsck a grappolo!
JMK

2
@JMK Ora vorrei che ci fosse un modo per contrassegnare i commenti per meriti extra, magari aggiungerli a una hall-of-fame.
pipe

2
Quello che dice @PeterCordes è il punto chiave. Stai pagando per un servizio. Ti dispiace davvero sapere che stanno avendo problemi, ma stai chiamando per il servizio che stai pagando e che non stai ricevendo.
Rob Moir

Risposte:


31

fsckla velocità dipende principalmente dal numero di file e da come sono distribuiti nella rispettiva directory. Detto questo, 6 mesi per a fsckè assolutamente assurdo: dovrebbe essere completato al massimo in alcune ore, soprattutto se l'utilizzo xfsha l' xfs_repairutilità rapida . Qui puoi trovare alcune fsckcorse su una scala - tutte completate in meno di un'ora (3600s). Quindi, non è possibile che tu fscksia ancora in esecuzione.

In ogni caso, una perdita di potenza imprevista non provocherà un vero e proprio replayfsck , piuttosto solo un replay del diario molto veloce (alcuni secondi) . Tuttavia, se alcuni file chiave sono stati danneggiati, il sistema operativo potrebbe non essere avviabile.

Ma probabilmente ti hanno appena mentito. Dovresti interrompere immediatamente il pagamento, chiedere una spiegazione e richiedere un rimborso totale.


8
Se lo stanno utilizzando ext2, un'interruzione di corrente richiederà un pieno fscke non sarei sorpreso se ci volessero giorni su un volume di 30 TB pesantemente utilizzato. D'altra parte, se stanno utilizzando ext2un volume di 30 TB, questo di per sé è un motivo per cercare altrove servizi di hosting.
Segna

14
ext2 utilizza un contatore di blocchi a 32 bit, con una dimensione massima del blocco di 4096 byte (ovvero una pagina) su x86 e x86_64. Ciò significa che ext2 (ed ext3) sono limitati a volumi di 8 TB, quindi no, l'OP non può utilizzare ext2 / 3. Ad ogni modo, l'utilizzo di qualsiasi filesystem senza journaling su un volume di 30 TB sarebbe assolutamente folle .
shodanshok,

Penso che ext4 fsck potrebbe essere leggermente migliore se uno ha un FS da 30Tb che contiene un gran numero di piccoli file. Lunazia a crearlo, quindi ancora un motivo per cercare altrove.
nigel222

7

Congettura: il loro sistema utilizza un RAID privo di BBU / FBWC (o anche RAID software) con tutte le possibili cache di scrittura (comprese queste nei dischi rigidi stessi) impostate alle impostazioni più aggressive, al fine di ottenere le massime prestazioni a costi minimi. Un'interruzione di corrente eccessiva in una tale configurazione può lasciare un filesystem journaling in una condizione in cui il journal non può essere considerato attendibile e non può essere utilizzato per il ripristino. Il problema è che un tale sistema riordina e posticipa in modo aggressivo le scritture, il che significa che una voce di diario può essere scritta con l'effetto dell'azione di dati persi ... o la voce di diario persa su un'azione di dati che era consequenziale.

Il ripristino di un tale sistema da un'interruzione del caso peggiore può significare che devi fare un fsck / riparazione "lento" che esamina effettivamente tutte le strutture del filesystem così come sono, il che potrebbe effettivamente richiedere un giorno o due per 30 TB .... non è improbabile che dovrai eseguire più cicli di riparazione. Aggiungete a ciò che il personale potrebbe non essere sempre disponibile per monitorare questo, si potrebbe facilmente essere fino a un fsck fatto a settimana. Probabilmente hanno rinunciato e dimenticato.


1

Per la maggior parte dei filesystem sarà molto più veloce, anche quando ci sono errori, poiché normalmente vengono controllati solo i metadati.

Nel peggiore dei casi, potrebbe leggere l'intero disco ( ad esempio qualcosa di simile fsck.ext4 -cc /dev/sda, che esegue un test di scrittura non distruttivo su ogni blocco), che potrebbe richiedere alcuni giorni per 30 TB. Se conosci la velocità delle unità, puoi calcolare dimensioni / velocità . Per un disco rigido consumer con una copia di circa 100 MB / s, alcune TB possono richiedere più ore di quanto la maggior parte delle persone si aspetti.

Se fosse il tuo server, potresti avere il problema che si avvia e poi si blocca quando fsckti chiede se vuoi correggere un errore. Ma l'amministratore del datacenter non lascerà l' fsckimpiccagione per 6 mesi mentre tutti i VPS sono offline.

Quindi ti stanno mentendo o c'è un grande fraintendimento. Oppure stavano eseguendo fsck qualche tempo fa e non ti hanno aggiornato sul nuovo problema al termine.


4
fsckattraversa tutte le strutture del filesystem, il che significa principalmente eseguire operazioni di I / O casuali. Quindi il calcolo di cui sopra, basato sulla velocità di trasferimento sequenziale , non è molto utile.
shodanshok,

@shodanshok infatti la struttura dei file è irrilevante in un controllo generale dell'unità, come ho appena spiegato nella mia risposta.
Overmind

@shodanshok la mia ipotesi nel caso peggiore si basava su un fsck molto esteso. Ad esempio il tipico xfs fsck non fa molto. ext2 ha una lunga verifica approfondita e il vecchio scandisk MS-DOS aveva un test di lettura / scrittura su ogni blocco del disco rigido quando lo si eseguiva in modalità completa. Quindi hai un limite superiore per le dimensioni del disco.
allo

1
@Overmind E la tua risposta è irrilevante per la domanda che riguarda fsck e non un controllo generale dell'unità.
BlackJack

Si noti che prendere la velocità effettiva tipica del disco come indicatore può essere fuorviante. Ho fatto i calcoli una volta risincronizzando un array, che avrebbe dovuto (a mio avviso) richiedere meno di un giorno, e ci sono volute più di due settimane! Le ricerche sono l'unico fattore dominante per il tempo totale e anche quando pensi di fare un'operazione strettamente sequenziale, a volte non lo è. Ora fsck è rigorosamente non sequenziale, quindi ... in nessun modo puoi giudicare dal normale throughput del disco alla lunghezza dell'operazione (tuttavia, i mesi sono ridicoli ... è una menzogna ovvia).
Damon,
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.