Чи може невдалий привід Btrfs в RAID-1 замінити наживо?


15

Я намагаюся визначитися з файловою системою і хотів би знати, чи можна замінити невдалий диск в btrfs RAID без простоїв.

  1. Припустимо, я створюю нову файлову систему btrfs за допомогою команди

    mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
    
  2. Тепер припустимо, що один день /dev/sdcпровалюється. Є дві можливості: вона може поступово виходити з ладу, показуючи помилки SMART - у цій ситуації я можу додати новий пристрій, btrfs device add /dev/sde /mnt; btrfs filesystem balance /mntа потім видалити старий за допомогою btrfs device delete /dev/sdc /mnt.

  3. Але якщо вона раптом виходить з ладу, стає нечитабельною ... Веб-пошук в цій ситуації говорить про те, що я повинен спочатку відключити файлову систему, змонтувати її в деградованому режимі, додати новий пристрій, а потім видалити відсутній пристрій.

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

Відключення - це очевидно руйнівна операція, тому не буде простоїв - будь-яка програма, що використовує файлову систему, отримає помилку вводу / виводу. Але такі "підручники" на btrfs виглядають застарілими, вважаючи, що btrfs знаходяться у важкому розвитку.

Питання: враховуючи поточний стан btrfs, чи можливо це зробити в Інтернеті, тобто без відключення?

Якщо ні, то існує програмне рішення, яке може задовольнити цю потребу?


1
Якщо один привід загоряється, решта вашої системи, ймовірно, також
загоряється

1
@JourneymanGeek Смішно ви .. :) Мені просто хотілося зрозуміти, що я маю на увазі катастрофічний, раптовий і непередбачуваний збій - привід просто перестає працювати. Це досить рідко, жорсткий диск зазвичай виходить з ладу поступово, і за допомогою ефективного моніторингу я можу замінити їх до того, як це станеться, але що робити, якщо ...
NothingsImpossible

2
У Linux btrfs replace mountpoint old_disk new_diskбуло додано 3.8 .
Брайан

@Brian woow ... Це відповідь. Я шукав "замінити btrfs", і це з'явилося lwn.net/Articles/524589 . Це явно_ те, що я шукав. Будь ласка, опублікуйте це як відповідь, щоб я міг прийняти його.
NothingsImpossible

Відповіді:


11

У Linux btrfs replace mountpoint old_disk new_diskбуло додано 3.8 . Якщо ви використовуєте недавнє ядро, воно надасть функціонал, який ви шукаєте.


4
Це буде зараз btrfs replace start /dev/old /dev/new /mountpoint( старт додано). Також див man btrfs-replace.
основні6

1

невелика корекція, поточний синтаксис:

btrfs заміняють запуск OLDDEV NEWDEV MOUNTPOINT

що потім фони.

Ви можете перевірити стан

btrfs замінює статус MOUNTPOINT

який покаже вам постійно оновлюваний стан операції заміни.


1
Це не відповідь на початкове запитання. Щоб критикувати або вимагати роз'яснення у автора, залиште коментар під їх публікацією - ви завжди можете коментувати свої власні публікації, і як тільки у вас буде достатня репутація, ви зможете коментувати будь-яку публікацію .
DavidPostill
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.