ZFS поверх iSCSI

ZFS поверх iSCSI

Я планирую создать файловый сервер с использованием ZFS и BSD и надеялся сделать его более расширяемым, подключив диски, хранящиеся на других машинах в той же стойке, через iSCSI (например, одна машина работает под управлением ZFS, а на других имеются цели iSCSI, к которым можно подключиться с помощью ZFS-бокса и добавить в zpools).

Поиск других людей, которые пробовали это, в значительной степени привел меня к ресурсам о раскрытии общих ресурсов iSCSI поверх ZFS, но ничего об обратном. В первую очередь у меня есть следующие вопросы:

  • Достаточно ли быстр iSCSI через гигабитный Ethernet для этой цели или мне придется переключиться на 10GbE, чтобы получить достойную производительность?
  • Что произойдет, если одна из машин, на которой запущены цели iSCSI, отключится от сети?
  • Есть ли лучший способ сделать это, но я просто недостаточно умен, чтобы его придумать?

С точки зрения емкости, изначально это будет около 10 ТБ данных (без учета избыточности), и разумной целью в обозримом будущем будет масштабирование до 20 ТБ, так что с избыточностью, вероятно, около 40-50 ТБ общего хранилища. Если возможно, мы также хотим хранить все данные в зашифрованном виде с помощью GELI.

Спасибо за любую помощь.

решение1

Какова ваша цель в плане емкости? Это определенно возможно, так как ZFS сможет увидеть ваши цели и объединить их в пулы. Однако вы оставляете в стороне значительную часть производительности и надежности.

Моя рекомендация по масштабированию (в соответствии с тем, что я предполагаю, является вашими потребностями в емкости) заключается в том, чтобы инвестировать во внешний корпус SAS multipath-cabale и контроллеры, совместимые с ZFS. Если это ситуация, когда вам нужно больше, чем, скажем, 24 ТБ полезного хранилища RAID 1+0, предоставляемогоодинвнешний корпус, заполненный дисками по 2 ТБ, то вы находитесь в области, где вам будет полезен совет эксперта по проектированию. На этом уровне iSCSI, использующий диски, присутствующие в других системах, не сделает вещи быстрее.

Архитектура iSCSI не будет работать по причинам задержки, надежности и поддерживаемости.

решение2

Что касается вашего вопроса об iSCSI через ethernet - iSCSI - это едва ли не самый быстрый протокол, который вы найдете. Это в основном прямой доступ к блоку диска по проводу. Он заполнит приличный гигабитный сетевой адаптер.

Что касается потери целей в сети, (почти) каждая реализация цели iSCSI, которую я видел, поддерживает многопутевой режим того или иного типа. Я думаю, что open-ietd может пока не поддерживать многопутевой режим. В худшем случае вы используете журналируемую файловую систему; вам, возможно, придется воспроизводить журнал, когда цель снова подключается к сети. Мне еще не приходилось портить файловую систему через iSCSI из-за падения сервера хранения.

решение3

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

Вы хотите экспортировать каждый физический диск как отдельный LUN, чтобы ZFS имела полную видимость физической компоновки. Это необходимо для принятия правильных решений о планировании ввода-вывода и репликации.

Достаточно ли быстр iSCSI через гигабитный Ethernet для этой цели или мне придется переключиться на 10GbE, чтобы получить достойную производительность?

Это зависит от скорости дисков, их количества и производительности, которую вы хотите достичь. Диски со скоростью 15 тыс. об/мин могут передавать до 105 МБ/с, что составляет 840 Мбит/с. Доступ к нескольким таким дискам по одному гигабитному каналу перегрузит канал и сделает вашу сеть узким местом. Найдите максимальную скорость дисков, которые вы хотите использовать, умножьте на количество дисков, и вы получите пропускную способность сети, необходимую для ее поддержки.

Конечно, это предполагает, что вы хотите получить максимальную производительность от сервера ZFS. Если у вас есть только несколько клиентов, подключенных по 100 Мбит/с, это не обязательно, поэтому рассчитайте, какой максимальный спрос вы ожидаете. Имейте в виду, что пропускная способность к дискам немного выше, чем пропускная способность клиента, если вы используете RAIDZ1/2/3, и, конечно, если сервер обращается к дискам через тот же сетевой адаптер, что и клиенты обращаются к серверу, эта пропускная способность должна быть общей.

Что произойдет, если одна из машин, на которой запущены цели iSCSI, отключится от сети?

ZFS будет считать, что диск становится недоступным. Если вы используете RAID1/2/3, это не должно прерывать обслуживание клиентов. Если вы настроили горячий резерв, ZFS начнет ресинхронизацию данных с ним. Когда цель iSCSI вернется, ZFS должна начать использовать его снова, предполагая, что инициатор автоматически переподключится. (Хотя это следует проверить.)

Связанный контент