Настройка zfs для нескольких дисков с избыточностью в Ubuntu

663
sharf

В настоящее время у меня есть настройка сервера Ubuntu с 2 дисками по 4 ТБ каждый с ext4 в RAID 1 (без использования zfs). Я хочу иметь полное резервирование в случае сбоя диска.

Я добавляю еще 2 диска 4Тб к машине. Я, вероятно, сделаю это снова в будущем, поэтому я думаю, что я должен переключиться на zfs, чтобы поддержать это.

Я читал в некоторых руководствах, что вы можете выполнять как чередование, так и зеркалирование с помощью zfs, и я думаю, что это именно то, чего я хочу

Обычно я разделяю диски на две пары, а затем проверяю 1 на две пары, чтобы получить быстрый резервный диск «8 ТБ».

Как бы я сделал это в ZFS? И позволит ли это легко добавить больше дисков по линии?

1

1 ответ на вопрос

1
Dan

Это очень легко настроить (разделение строк для облегчения просмотра структуры):

# zpool create <poolname> \ mirror <disk1> <disk2> \ mirror <disk3> <disk4> 

Это создаст пул с двумя полосами, каждая из которых является зеркалом между двумя дисками. Это хорошая гибкая настройка (легко добавлять новые диски, легко понять). Чтобы добавить еще одно зеркало в будущем, вы просто делаете:

# zpool add -n <poolname> \ mirror <disk5> <disk6> would update '<poolname>' to the following configuration: <poolname> mirror <disk1> <disk2> mirror <disk3> <disk4> mirror <disk5> <disk6> 

(При использовании параметра -nсначала выполняется пробный прогон и печатается конфигурация пула, которую вы можете проверить, что я всегда рекомендую, чтобы избежать неправильной конфигурации, от которой трудно / невозможно отказаться после свершившегося факта!)

Однако обратите внимание, что эта настройка «неэффективна» в том смысле, что она гарантирует безопасность данных только для одного сбоя диска: вы безопасны только для двух отказов, когда они происходят на разных полосах, что происходит в ~ 67% сценариев сбоя на двух дисках. Кроме того, избыточные данные по-прежнему используют 50% вашего пула.

Существует менее гибкий формат ZFS для RAID, который называется RAID-Z и позволяет объединять все диски и обеспечивать эффективную защиту данных. (Я говорю менее гибко, потому что в будущем трудно добавить больше дисков в пул, хотя эта функция в настоящее время работает.) Существуют raidz1и raidz2варианты, которые позволяют вам потерять до 1 или до 2 дисков соответственно, независимо от того, какие диски выходят из строя. Для 4 дисков одинакового размера raidz2вариант все равно будет использовать 50% вашего хранилища для резервирования, но гарантирует, что вы переживете два отказа диска; raidz1вариант позволит снизить накладные расходы на резервирование с 50% только 25%, но только гарантирует вам выжить один отказ диска.

для пояснения, будет ли следующий ваш ответ в фрагментах кода с использованием 4 накопителей емкостью 4 ТБ иметь виртуальный накопитель объемом 8 ТБ, но избыточный? В настоящее время у меня есть 2 из 4TB дисков в рейде 1 с данными на них. Можно ли после вашего ответа здесь установить 2 новых 4 ТБ в ZFS с зеркалом, скопировать данные, затем отформатировать эти диски и добавить их в пул в другом зеркале? это начнется с виртуального 4TB (избыточный) диск, чем обновление до 8TB? sharf 5 лет назад 0
«Да» на все вопросы, которые вы задавали :). Dan 5 лет назад 0
Большой! Последний вопрос, это для некритических сред (plex-сервер) ничто не является незаменимым, просто трудоемким. Достаточно ли для большинства случаев базового зеркалирования только для одного диска? Кажется, я так думаю. И сообщит ли zfs о сбое диска в любом случае? sharf 5 лет назад 0
Один диск с избыточностью выглядит нормально, если вы можете восстановить данные. ZFS выполняет периодические операции очистки, которые будут исправлять поврежденные блоки, и он может заметить сбойные диски на любом вводе-выводе (при обычном чтении / записи или во время очистки) и отображает сбои в выводе «zpool status». (Вдобавок к этому вы должны настроить какое-то предупреждение, чтобы вам не приходилось проверять пул вручную.) Dan 5 лет назад 0
Потрясающие! Спасибо sharf 5 лет назад 0

Похожие вопросы