È possibile sostituire live un'unità Btrfs guasta in RAID-1?


15

Sto cercando di decidere su un filesystem e vorrei sapere se è possibile sostituire un'unità guasta in RAID btrfs senza tempi di inattività.

  1. Supponiamo che crei un nuovo filesystem btrfs usando il comando

    mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
    
  2. Supponiamo ora che un giorno /dev/sdcfallisca. Ci sono due possibilità: può fallire gradualmente, mostrando errori SMART - in questa situazione posso aggiungere un nuovo dispositivo con btrfs device add /dev/sde /mnt; btrfs filesystem balance /mnte quindi rimuovere quello vecchio con btrfs device delete /dev/sdc /mnt.

  3. Ma se all'improvviso fallisce, diventa illeggibile ... Una ricerca web dice in questa situazione che devo prima smontare il filesystem, montare in modalità degradata, aggiungere un nuovo dispositivo, quindi rimuovere il dispositivo mancante.

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

Uno smontaggio è ovviamente un'operazione dirompente, quindi ci sarebbero tempi di inattività - qualsiasi applicazione che utilizza il filesystem otterrebbe un errore I / O. Ma questo tipo di "tutorial" su btrfs sembra obsoleto, considerando che btrfs è in forte sviluppo.

La domanda è: considerando l'attuale stato di btrfs, è possibile farlo online, cioè senza smontare?

In caso contrario, esiste una soluzione solo software in grado di soddisfare questa esigenza?


1
Se un'unità prende fuoco, probabilmente anche il resto del sistema è in fiamme
Journeyman Geek

1
@JourneymanGeek Divertente te .. :) Volevo solo chiarire che intendevo un guasto catastrofico, improvviso e imprevedibile - l'unità semplicemente smette di funzionare. Questo è piuttosto raro, il disco rigido di solito si guasta gradualmente e con un monitoraggio efficace posso sostituirli prima che ciò accada, ma cosa succede se ...
NothingsImpossible

2
In Linux è btrfs replace mountpoint old_disk new_diskstato aggiunto 3.8 .
Brian,

@Brian woow ... Questa è la risposta. Ho cercato su Google "sostituzione btrfs" e questo è apparso lwn.net/Articles/524589 . È esattamente quello che stavo cercando. Si prega di pubblicarlo come risposta in modo che io possa accettarlo.
NothingsImpossible

Risposte:


11

In Linux 3.8, è btrfs replace mountpoint old_disk new_diskstato aggiunto. Se stai eseguendo un kernel recente, fornirà la funzionalità che stai cercando.


4
Questo sarebbe ora btrfs replace start /dev/old /dev/new /mountpoint( inizio è stato aggiunto). Vedere anche man btrfs-replace.
basic6,

1

piccola correzione, la sintassi corrente è:

btrfs sostituisce start OLDDEV NEWDEV MOUNTPOINT

che poi sfondi.

Puoi controllare lo stato con

btrfs sostituisce lo stato MOUNTPOINT

che ti mostrerà uno stato continuamente aggiornato dell'operazione di sostituzione.


1
Questa non è una risposta alla domanda originale. Per criticare o richiedere chiarimenti a un autore, lascia un commento sotto il suo post: puoi sempre commentare i tuoi post e una volta che avrai una reputazione sufficiente sarai in grado di commentare qualsiasi post .
DavidPostill
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.