Назад | Перейти на главную страницу

Добавьте устройства btrfs в массив raid1, увеличив общий размер

У меня есть массив btrfs, состоящий из двух дисков по 2 ТБ в рейде 1. У меня заканчивается место, и я хочу добавить два диска по 3 ТБ, которые у меня лежат. Окончательная установка будет: диски 2x2TB + 2x3TB. Для меня достаточно резервирования при отказе одного диска (резервные копии данных тоже есть в другом месте).

Я не знаю, как действовать: btrfs вики четко указано, как добавлять новые устройства, но я не уверен, как это будет выглядеть с точки зрения доступного дискового пространства. Получу ли я:

  1. 2 ТБ пространства с 4-кратным резервированием или
  2. 4 ТБ пространства с 2-кратным резервированием или
  3. что-то другое?

На основании некоторых исследований (например, этот ответ) Думаю, результат должен быть 2, чего я и хотел бы. Это верно?

Другая возможность состоит в том, что я переключаюсь на установку raid 10, если это возможно с дисками разного размера. Если это целесообразно, как мне это сделать без временного размещения данных на внешнем хранилище?

2 ТБ пространства с 4-кратным резервированием или

Цитата из официальной вики объясняет это подробно:

«… Btrfs сначала объединяет все устройства в пул хранения, а затем дублирует блоки по мере создания файловых данных.

RAID-1 в настоящее время определяется как «2 копии всех данных на разных устройствах».

Это отличается от MD-RAID и dmraid… "

- Только 2 копии.

Другая возможность состоит в том, что я переключаюсь на установку raid 10, если это возможно с дисками разного размера.

Снова читаем тот же источник: «…

RAID-10 построен на основе этих определений.

Каждая полоса разделяется ровно на 2 набора RAID-1, и эти наборы RAID-1 записываются точно на 2 устройства (следовательно, минимум на 4 устройства). Том btrfs RAID-10 с 6 устройствами по 1 ТБ даст 3 ТБ полезного пространства с 2 копиями всех данных. … »

как мне это сделать без временного размещения данных на внешнем хранилище?

Все это также объясняется в параграфе «Конверсия» - начиная с btrfs balance над точкой монтирования со спецификациями необходимого профиля для данных и метаданных. Тривиально изменив их пример, получится следующее:

btrfs balance start -dconvert=raid10 -mconvert=raid10 /…mntPoint…

Полагаю, промежуточный balance после добавления двух новых дисков в этот пул - добавление само по себе не будет повторно балансировать, только новые записанные данные будут использовать дополнительные устройства. Поэтому это довольно тривиально: добавить и начать балансировать любой понравившийся макет.


Вывод

Теоретически у вас будет наилучший возможный результат, потому что "btrfs сначала объединяет все устройства в пул хранения"

Практика

Было бы очень просто протестировать все это, используя настройку, скажем, на устройствах с обратной связью гораздо меньшего размера.

Слово предостережения

Несмотря на то, что Btrfs стал довольно зрелым, я слышал, что поддержка нескольких устройств все еще недостаточно надежна по сравнению с режимом, не похожим на RAID. Я бы рекомендовал сначала попробовать упомянутое выше преобразование на устройствах с обратной связью. и даже если все пройдет успешно, резервное копирование хотя бы самых важных данных в другом месте.

Кроме того, выражая свое собственное мнение, я бы сказал, что я бы предпочел преобразовать такую ​​установку в традиционный LVM-2 вместо LSR (Linux Software RAID aka MD), что дало бы вам возможность создавать логические подтомы для последующего использования либо с Btrfs. или любой другой желаемый ФС.