Czy uszkodzony dysk Btrfs w macierzy RAID-1 można wymienić na żywo?

15

Próbuję zdecydować o systemie plików i chciałbym wiedzieć, czy można wymienić uszkodzony dysk w macierzy RAID btrfs bez przestojów.

  1. Załóżmy, że tworzę nowy system plików btrfs za pomocą polecenia

    mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
    
  2. Załóżmy teraz, że jeden dzień się /dev/sdcnie powiedzie. Istnieją dwie możliwości: może się nie udać stopniowo, wyświetlając błędy SMART - w tej sytuacji mogę dodać nowe urządzenie za pomocą, btrfs device add /dev/sde /mnt; btrfs filesystem balance /mnta następnie usunąć stare za pomocą btrfs device delete /dev/sdc /mnt.

  3. Ale jeśli nagle się nie powiedzie, stanie się nieczytelny ... Wyszukiwanie w Internecie mówi, że w tej sytuacji muszę najpierw odmontować system plików, zamontować w trybie awaryjnym, dodać nowe urządzenie, a następnie usunąć brakujące urządzenie.

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

Odmontowanie jest oczywiście operacją zakłócającą, więc wystąpiłby przestój - każda aplikacja korzystająca z systemu plików otrzymywałaby błąd we / wy. Ale tego rodzaju „samouczki” na temat btrfs wyglądają na przestarzałe, biorąc pod uwagę, że btrfs jest w fazie intensywnego rozwoju.

Pytanie brzmi: biorąc pod uwagę obecny stan btrfs, czy można to zrobić online, tzn. Bez odmontowywania?

Jeśli nie, istnieje rozwiązanie tylko dla oprogramowania, które może zaspokoić tę potrzebę?

Nic nie jest niemożliwe
źródło
1
Jeśli jeden dysk się zapali, reszta twojego systemu prawdopodobnie też się pali
Journeyman Geek
1
@JourneymanGeek Funny you .. :) Chciałem tylko wyjaśnić, że mam na myśli katastrofalną, nagłą i nieprzewidywalną awarię - dysk po prostu przestaje działać. Jest to raczej rzadkie, dysk twardy zwykle ulega awarii stopniowo i przy skutecznym monitorowaniu mogę je wymienić, zanim to nastąpi, ale co jeśli ...
NothingsImpossible
2
W Linuksie btrfs replace mountpoint old_disk new_diskdodano 3.8 .
Brian
@Brian woow ... To jest odpowiedź. Poszukałem hasła „btrfs replace”, co pokazało lwn.net/Articles/524589 . Właśnie tego dokładnie szukałem. Prześlij ją jako odpowiedź, aby ją zaakceptować.
Nic nie można

Odpowiedzi:

11

W Linuksie 3.8 btrfs replace mountpoint old_disk new_diskzostał dodany. Jeśli używasz najnowszego jądra, zapewni ono funkcjonalność, której szukasz.

Brian
źródło
4
To byłoby teraz btrfs replace start /dev/old /dev/new /mountpoint( dodano początek ). Zobacz także man btrfs-replace.
basic6,
1

mała korekta, obecna składnia to:

btrfs zamień start OLDDEV NEWDEV MOUNTPOINT

które następnie tła.

Możesz sprawdzić status za pomocą

btrfs zastąp status MOUNTPOINT

który pokaże ci stale aktualizowany status operacji zamiany.

Volker
źródło
1
To nie jest odpowiedź na pierwotne pytanie. Aby skrytykować lub poprosić autora o wyjaśnienie, zostaw komentarz pod jego postem - zawsze możesz komentować własne posty, a gdy będziesz mieć wystarczającą reputację , będziesz mógł komentować każdy post .
DavidPostill