Я пытаюсь создать сервер, который будет моим NAS / Media-сервером, а также интерфейсом XBMC. Я планирую использовать Ubuntu с btrfs для части NAS. Текущая установка состоит из 1 ТБ жесткого диска для ОС и двух жестких дисков 2 ТБ для данных. Я планирую использовать жесткий диск емкостью 2 ТБ в качестве системы JBOD btrfs, в которой я могу добавлять жесткие диски по мере необходимости позже, в основном расширяя файловую систему онлайн. То, как я настроил файловую систему для тестирования, заключалось в том, что при установке ОС просто подключите один из жестких дисков и установите на нем btrfs как / data. Позже добавим еще один жесткий диск в эту файловую систему. Когда был добавлен второй диск, btrfs был создан как RAID 0 с метаданными как RAID 1. Однако это представляет проблему: даже если один из дисков выходит из строя, я теряю все свои данные (в основном носители). Также большую часть времени сервер будет работать без доступа к диску, то есть жесткие диски могут быть остановлены, когда поступает запрос на доступ с текущей настройкой RAID 0, оба диска будут раскручиваться. в случае, если я управляю JBOD, нужно раскрутить только диск, на котором есть файл. Мы надеемся, что это должно снизить MTBF для каждого диска. Так, есть ли способ, которым я могу настроить btrfs, чтобы метаданные зеркалировались, но данные оставались в форме JBOD?
Другой вопрос, который у меня есть: я понимаю, что полный сбой диска в JBOD приведет к потере данных на диске, но наличие метадеты, отраженной на всех дисках, поможет ли это файловой системе исправить ошибки, которые могут вкрасться (ex bit rot?) И являются btrfs способен на это.
Казалось бы, лучше всего ответить на ваш вопрос здесь:
https://serverfault.com/a/438181/89037
В принципе, да, «единый» профиль данных позволяет использовать диски разных размеров и комбинировать их в стиле JBOD. Не меняйте метаданные, оставьте как RAID1.
Из Btrfs wiki
Текущее состояние
Btrfs может добавлять и удалять устройства онлайн. Добавление устройств во время mkfs дает максимальный контроль над используемыми уровнями рейдов.
Btrfs может выполнять raid0, raid1, raid10 и может дублировать метаданные на одном шпинделе. Когда блоки считываются, проверяются контрольные суммы, и если есть какие-либо ошибки, Btrfs пытается прочитать из альтернативной копии.
См. Страницу с описанием некоторых текущих проблем при использовании btrfs с несколькими томами разных размеров в настройке стиля RAID1.
Создание ФС с несколькими устройствами
mkfs.btrfs будет принимать более одного устройства в командной строке. У него есть опции для управления конфигурацией рейда для данных и метаданных. Допустимые варианты: raid0, raid1, raid10 и single. Единичный означает, что не выполняется дублирование метаданных, что может быть желательно при использовании аппаратного рейда.
Так что нет, вы не можете использовать JBOD для данных (или Wiki не обновлялась, Btrfs находится в стадии интенсивной разработки).
Мне нравится Btrfs, проверяющий данные и метаданные, он спасет вас от незаметного повреждения данных (ну, он сообщит вам, что ваш файл был поврежден, но должен предотвратить повреждение метаданных). Тем не менее, я бы не стал доверять ему то, что хотел бы пока оставить. Лично я бы пошел с 3 дисками и программным RAID 5. Вы можете расширить массив позже, когда захотите. Для файловой системы я бы выбрал что-нибудь более зрелое, например ext4 или XFS.
Если вас больше беспокоит раскручивание дисков, чем сохранение данных, вы можете использовать LVM для создания логического тома из обоих дисков и создания файловой системы Btrfs поверх этого. LVM допускает линейный режим, который может вызвать или не привести к раскрутке только соответствующего диска (если и данные, и метаданные находятся на одном шпинделе), но в случае сбоя диска вы потеряете все данные.
Вы можете просто запустить что-то вроде этого:
mkfs.btrfs -L data /dev/sdc /dev/sdd
чтобы распределить btrfs на нескольких дисках. Обязательно используйте правильные имена устройств. Просто имейте в виду, что при такой настройке вы теряете избыточность, и ваши данные небезопасны.