Страница 1 из 1

Высокодоступноехранилище на zfs

Добавлено: 2012-04-05 9:10:31
sasha181
Возможно ли построить на zfs высокодоступное хранилище? А то ведь по сути все прелести zfs уходят в никуда, кода нужно организовать работу с хранилищем скажем в 100 террабайт и при этом всё это будет крутиться на одной материнке, которая в один прекрасный момент может просто выйти из строя.

Давайте обсудим. У кого какие мысли на этот счёт есть? Видел в сети решение, с дублированием всех данных по сети на вторую машину с отдельными винтами (что-то вроде drdb в линуксе), но это можно когда данных не много, а дублировать винты от 100 террабайт как-то накладно будет и для сети и просто по железу.

Re: Высокодоступноехранилище на zfs

Добавлено: 2012-04-05 14:35:00
tynix

Re: Высокодоступноехранилище на zfs

Добавлено: 2012-04-05 20:23:49
FiL
tynix писал(а):Не оно?
это как раз дупликация данных между нодами. А две ноды по 100Тб - это таки не то, чего хочет топикстартер.

Re: Высокодоступноехранилище на zfs

Добавлено: 2012-04-05 20:32:02
FiL
sasha181 писал(а):Возможно ли построить на zfs высокодоступное хранилище? А то ведь по сути все прелести zfs уходят в никуда, кода нужно организовать работу с хранилищем скажем в 100 террабайт и при этом всё это будет крутиться на одной материнке, которая в один прекрасный момент может просто выйти из строя.

Давайте обсудим. У кого какие мысли на этот счёт есть? Видел в сети решение, с дублированием всех данных по сети на вторую машину с отдельными винтами (что-то вроде drdb в линуксе), но это можно когда данных не много, а дублировать винты от 100 террабайт как-то накладно будет и для сети и просто по железу.
Ну, давайте обсудим.

Для начала надо-бы расписать требования -

1. сохранение работоспособности при выходе одного любого (!) элемента системы.
2. отсутствие дублирования физических носителей. То есть для организации 100Тб хранилища должно быть использовано менее 200Тб винтов в целом.
3. решение должно быть софтовым (всякие шибко умные железные решения со сменными на горячую материнками мы не рассматриваем)

Что еще? Или этого уже достаточно, чтоб заявить, что решение невозможно?

Re: Высокодоступноехранилище на zfs

Добавлено: 2012-04-06 8:03:42
sasha181
Ну что-то вроде этого. У меня такое решение немного вырисовывается всё же.
Нужно :
1. 2 сервера под Freebsd (например 2-х юнитовый сервер с SAS экспандером и конечно же контроллером на 12 дисков)
2. SAS коммутатор
3. N-ое количество 2-х юнитовых полок с SAS экспандером и дисками , которые как и управляющие сервера будут подключаться к SAS коммутатору

Во время работы один из управляющих серверов простаивает. Мониторится доступность через heartbeat, раздаётся через carp. В случае выхода из строя ведущего сервера, на резервном делается zpool import и работа продолжается. Как организовать автоматизацию смены ролей уже детали.

При этом можно заморочится ещё на то, что диски в пуле распихать так по полкам, чтобы при выходе из строя любой полки pool продолжал работать в деградированном режиме. Использовать raidz2 , raidz3 или raid10 это уже отдельно принимаемое решение.

Как считаете, такое возможно. Просто не имею большого опыта работы с SAS железом. И поэтому не уверен, что можно одновременно экспандеры подключить к 2-м контроллерам на разных материнках.

Re: Высокодоступноехранилище на zfs

Добавлено: 2012-04-06 8:09:52
sasha181
Кстати, а какие железные решения существуют на этот счёт. Просветите пожалуйста. Просто совсем недавно задумался над этим вопросом.

Re: Высокодоступноехранилище на zfs

Добавлено: 2012-04-06 8:17:50
sasha181
Можно использовать не 2-х юнитовые полки, а 1U. При этом взять за минимальный комплект 8 полок (включая управляющие) и собрать pool из 4-х raidz2 массивов по 8 дисков, при этом в каждом массиве диски из разных полок (по одному из каждой полки). Такой pool должен будет выдержать выход из строя до 2-х полок, кроме выхода 2-х управляющих (но и тут можно вместо 2-х иметь три управляющих сервера).

Если взять 2-х террабайтные диски, то это уже 48 террабайт в пуле.

Re: Высокодоступноехранилище на zfs

Добавлено: 2012-04-06 18:51:29
FiL
Moжно проще, кажется. Обычные 2U машинки. На каждом делаем RAID (можно железный, аможно и raidz) и экспортируем в сеть блочное устройство (по iSCSI).
Далее на хосте (на двух, один в оффлайне) собираем из этих блоков RAID-Z. Таким образом не нужен SAS-коммутатор и система выдерживает выход из строя целой полки. Ну, естественно, по 2 порта на каждой полке, в разные свичи и т.д. Но это уже детали.

Однако момент хартбита и zpool import мне не нравится. Как-то оно долго для хранилища. И не очень надежно. Но может кто еще каких мыслей накидает.