Btrfs su un mdadm raid10 o btrfs raid10 su dispositivi nudi?


10

Ho un RAID10 gestito da mdadm e ho il filesystem EXT4 su di esso. Tuttavia, mi piace BTRFS e vorrei convertire il file system EXT4 in BTRFS, ma pensavo a prestazioni e manutenibilità. Per un esempio con BTRFS, non riesco a vedere facilmente lo stato quando rimuovo / aggiungo un altro disco all'array come faccio con mdadm (o forse non so come, ho cercato tra i documenti BTRFS e non ho trovato questo ).

Quindi, dalla tua esperienza, qual è la scelta migliore:

  1. Per convertire semplicemente il filesystem EXT4 e lasciare che mdadm gestisca il RAID10?

  2. Per sbarazzarsi di mdadm e lasciare che BTRFS faccia tutto?

Risposte:


12

Lascia che Btrfs faccia tutto.

Per prima cosa, Btrfs ha il proprio codice di mirroring integrato che può essere più intelligente di madm.

Ovviamente se un disco fallisce in modo duro in una coppia specchiata in un madm raid10, puoi sostituire il disco cattivo e andare avanti con la tua vita (anche se dopo un complesso complesso di comandi shell). Il problema è se il tuo disco si guasta un po 'più piano: se alcuni blocchi restituiscono i bit sbagliati invece di fornire i codici di errore appropriati per un blocco errato, quando si leggono i dati si ottengono casualmente dei dati errati. Btrfs è più intelligente di questo: esegue il checksum di ogni bit di dati. Per essere onesti non so se è più corretto dire "ogni nodo di BTree" o "ogni blocco", ma il punto è che quando legge alcuni dati da un array con mirroring, controlla il checksum prima di restituirlo al tuo processo di userland. Se il checksum non corrisponde, consulta prima l'altro mirror nell'array e, se questo fornisce il checksum corretto, ti avviserà che il tuo disco ha iniziato a fallire in modo silenzioso.

Il wiki di Btrfs menziona specificamente la tua domanda :

Se Btrfs dovesse fare affidamento su device mapper o MD per il mirroring, non sarebbe in grado di risolvere i problemi di checksum controllando la copia speculare . I livelli inferiori non conoscono il checksum o la granularità dei blocchi del filesystem, e così via non sono in grado di verificare i dati che restituiscono.

Infine, anche senza questo sostanziale vantaggio, il flusso di lavoro da riga di comando per gestire dispositivi Btrfs rimossi o aggiunti è semplicissimo. Non sono nemmeno sicuro di riuscire a ottenere i comandi di shell degradati-mount-then-fix-your-files, ma per Btrfs è molto chiaramente documentato sulla pagina dei dispositivi multipli come:

mount -o degraded /dev/sdb /mnt
btrfs device delete missing /mnt

A questo punto se hai abbastanza spazio sui tuoi dischi rimanenti, puoi sempre e solo btrfs rebalance e sii fatto con esso; non c'è bisogno di sostituire lo specchio, come avresti assolutamente bisogno di fare con madm! E se vuoi sostituirlo, puoi farlo btrfs device add primo.


4

BTRFS è ancora sperimentale e puoi finire con caratteristiche "interessanti" se qualcosa dovesse andare in crash. Se davvero hai / vuoi eseguire btrfs, per il momento sarebbe molto più sicuro eseguirlo su un raid software piuttosto che eseguirlo direttamente. Quando btrfs matura e va in produzione, questo potrebbe non essere più vero.


Circa un anno fa, ho sperimentato un setup btrfs in una VM. Sono stato in grado di bloccare costantemente il kernel (!) Facendo confusione con il comando ribilanciamento. Il tempo ha marciato e, si spera, questo è stato risolto.
Avery Payne
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.