Предисловие ко 2-й части
В первой части шла речь о базовых аспектах построения систем хранения данных. Сейчас речь пойдёт о практических составляющей, в частности, применения выбранного оборудования, протоколах обмена и топологии внутренней сети.
Сетевые протоколы и требуемые функции
Прежде, чем начинать строить систему хранения данных, необходимо определиться, её предстоит использовать.
На сегодня известно достаточно много различных протоколов, которые так или иначе можно применить при обмене между сервером и СХД. Однако лучше всего выбрать наиболее универсальные, и, в то же время, самые нетребовательные из них.
Все системы хранения и протоколы для обмена данными можно условно разделить по типу доступа на: файловые и блочные.
Хранилища с файловым доступом представляют собой сетевые ресурсы, с которыми осуществляется обмен данными через популярные протоколы прикладного уровня. Наиболее часто применяются: CIFS, NFS, AFP. Используются и другие протоколы передачи файлов, такие как FTP, TFTP, SFTP и так далее. Подобные устройства называются Network Attached Storage, сокращённо — NAS. По сути, NAS — это файл-сервер, аппаратное и программное обеспечение которого оптимизировано под задачи хранения и обмена файлами.
Хранилища с блочным доступом предоставляют в пользование специально организованные тома с уникальными номерами — Logical Unit Number, LUN. При этом подключённые ресурсы хранения с точки зрения логической организации выглядят как локальные жёсткие диски. В этом случае используются специальные протоколы доступа, такие как FCP (для Fiber Channel), и iSCSI, FCoE, ATAoE и другие — для сетей Ethernet. СХД такого типа носят название Storage Area Network, сокращённо —SAN и представляют собой дисковые массивы, подключённые к высокопроизводительной сети передачи данных. Среди бюджетных СХД очень популярен протокол iSCSI в силу простоты реализации и неприхотливости к ресурсам.
ВАЖНОЕ ЗАМЕЧАНИЕ. В рамках данной статьи невозможно рассказать обо всех аспектах создания и эксплуатации СХД. Поэтому за дополнительной информацией стоит обратиться с другим источникам. Некоторые из них указаны в конце статьи.
СХД с блочным доступом (как и локальный жёсткий диск) при обычном использовании не позволяют осуществить более одного подключения без риска потери данных, в то время как файловые хранилища могут быть доступны для соединения со множеством клиентов.
ПРИМЕЧАНИЕ. При определённых условиях блочные хранилища могут быть подключены к нескольким клиентам, например, при использовании файловых систем общего диска. В частности, host-серверы VMware ESX(i) могут одновременно подключаться и работать с СХД блочного доступа при наличии файловой системы VMFS.
Ограничение требует определённых мер по контролю доступа. В сетях Fiber Channel для этого используется zoning, для семейства Ethernet — механизм авторизации по пароли и разделение на виртуальные подсети (VLAN).
ПРИМЕЧАНИЕ. Virtual Local Area Network (VLAN) — искусственно ограниченный сегмент локальной сети в виде группы портов с единым набором свойств, например, с одинаковыми требования к безопасности. Позволяет обмениваться между собой информацией в рамках единого виртуального широковещательного домена, вне зависимости от физического местонахождения подключённых устройств.
Ещё один важный параметр, который диктует нам блочный доступ — резервирование канала связи. Если в случае обрыва линии при копировании на сетевой ресурс придётся просто перезаписать файл, то при блочном доступе это чревато появлением серьёзных ошибок в файловой системе. Объединение нескольких линий передачи данных в сетях семейства Ethernet в один логический канал тут придётся очень кстати. Эта функция называется агрегирование каналов — Link Aggregation, сокращённо — LAGG. Помимо повышения отказоустойчивости, агрегирование каналов позволяет увеличить ширину пропускания.
В операционных UNIX-подобных системах: Linux, BSD, Solaris, которые берутся за основу при построении различных СХД, наиболее часто используется протокол LACP — Link Aggregation Control Protocol. Этот открытый стандартный протокол, описан в документах IEEE 802.3ad и IEEE 802.1aq и повсеместно применяется для агрегирования каналов в простых системах.
Для повышения производительности системы крайне важно снизить затраты на обслуживание трафика. Одним из путей является использование пакетов данных большего размера. Соответственно, если для передачи одной и той же информации потребуется меньшее число пакетов, это позволит сократить время обработки и сэкономить аппаратные ресурсы. Поэтому функция Jumbo Frame также будет нелишней.
ПРИМЕЧАНИЕ. Jumbo frame — механизм в сетях семейства Ethernet, благодаря которому, можно передавать блоки данных, превышающие 1500 байт, (величина, заданная стандартами группы IEEE 802.3) — или, как еще говорят, увеличить MTU более 1500 байт). Наиболее популярная практика в СХД на базе IP сетей — установить размер кадра в 9000 байтов данных, например, для ускорения обмена по протоколам iSCSI, NFS, GIFS (SMB).
Все вышеописанные функции: VLAN, LAGG (LACP) и Jumbo Frames — имеются в выбранном нами коммутаторе Zyxel XS1920 Series.
Топология построения систем хранения данных
Построение небольших СХД для среднего и малого бизнеса, с одной стороны, накладывает определённые ограничения в плане стоимости, с другой — позволяет некоторые послабления в области отказоустойчивости и безопасности.
Для начала рассмотрим саму простую схему на рисунке 1.
В данном случае имеется виртуальная система из 4 серверов, подключённых к одному хранилищу через выделенный коммутатор. Для увеличения пропускной способности все соединения дублируются через функцию агрегирования портов. Таким образом задействовано 10 портов RJ45 на 10 Gigabit Ethernet. Оставшиеся 2 универсальных порта 10 Gigabit Ethernet зарезервированы и в дальнейшем могут быть использованы для подключения ещё одной системы хранения данных или сервера.
![](https://habrastorage.org/webt/11/ej/y0/11ejy0rea_4zjzgusvhhiuwzwuy.png)
Рисунок 1. Простая сеть хранения данных.
Обратите внимание, коммутатор на приведённой схеме используется полностью в автономном режиме. Нет связи с другими сегментами сети (Uplink/Downlink) и кроме серверов и системы хранения к нему больше ничего не подключено. Такая изоляция оправдана как с точки зрения отказоустойчивости, так и для оптимизации и упрощения сетевого обмена.
При построении данной простой сети следует учесть, что большинство систем хранения данных и серверов имеют специальный порт для управления, например, по IPMI. Кроме того, для улучшения контроля над самодельными СХД часто используют дополнительную сетевую карту, на которую выводят интерфейс управления по протоколам HTTP/HTTPS или Telnet/SSH.
ПРИМЕЧАНИЕ. IPMI — Intelligent Platform Management Interface, — выделенный интерфейс для мониторинга и управления. Наиболее известные реализации: iLO производства HP и IMM2, разработанный IBM. Интерфейс IPMI доступен, даже когда основное устройство находится в неактивном состоянии. Через IPMI можно выключить, включить, перезагрузить систему, выполнить перехват консоли для управления, снять показания датчиков, например, температуры, электропитания и так далее.
В качестве недорого решения для организации такой сети подойдёт любой коммутатор с интерфейсом Fast Ethernet (100Mb/s) или Gigabit Ethernet. Для того, чтобы минимизировать затраты на его приобретение, а также на управление, обучение персонала и так далее, имеет смысл выбирать оборудование одного производителя, что и основной сети СХД. Например, в нашем случае неплохо справится модель Zyxel GS1100-8HP — коммутатор на 8 гигабитных портов.
![](https://habrastorage.org/webt/rw/bo/ii/rwboiixiyuiqqowwr6spm3y9o-o.png)
Рисунок 2. Пример организации выделенной сети управления.
Если требования к отказоустойчивости высокие, необходимо использовать схему с двумя коммутаторами. Для того, чтобы избежать конфликта при обращении к одним и тем же iSCSI томам по разным подключениям, используется механизм multipathing. Дополнительным бонусом в данном случае будет возможность балансировки и увеличение количества портов, которые можно задействовать как для подключения устройств, так и для расширения канала.
ПРИМЕЧАНИЕ. Multipathing — технология подключения узлов СХД с использованием нескольких независимых линий. Например, одно устройство хранения данных может быть подсоединено к серверу при помощи нескольких каналов iSCSI. В случае отказа одного из соединений, операционная система будет использовать оставшиеся работоспособные линии связи для доступа к устройству. Данная архитектура повышает отказоустойчивость системы и позволяет распределять нагрузку, что приводит к росту быстродействия в целом.
![](https://habrastorage.org/webt/8x/7w/n3/8x7wn3otdv9popnvgh-fulz-608.png)
Рисунок 3. Схема с двумя коммутаторами. (Для упрощения восприятия сеть управления не показана).
Коммутатор Zyxel XS1920 Series хорошо подходит для организации небольших хранения данных. Для более крупных инфраструктур можно порекомендовать другую модель — 24 портовый коммутатор 10GbE L2+ XS3700 Series.
Заключение
Построение недорогой системы хранения данных, отвечающей требованиям бизнеса — задача непростая, но вполне осуществимая. Разумеется, в рамках краткого повествования невозможно охватить все аспекты этой обширной области ИТ. Например, за кадром остались такие вопросы, как дублирование систем хранения в целях отказоустойчивости, создание географически распределённых СХД и так далее. Однако, в качестве первого шага, опыт построения простых решений для централизованного хранения данных безусловно будет полезен и позволит в дальнейшем организовать эффективную инфраструктуру для различных целей.
Источники:
- Бережной А. Применение iSCSI при построении систем хранения данных // «Системный администратор», №3, 2017 г.
- Vladan Seget How to configure ESXi 6.5 for iSCSI Shared Storage
- LACP (описание) — xgu.ru/wiki/LACP
- Ethernet Alliance. Ethernet Jumbo Frames
- Описание коммутатора Zyxel XS1920 Series
- Intelligent Platform Management Interface (IPMI)
- Описание неуправляемых коммутаторов на 8/10/16/24 портов GbE — Zyxel GS1100 Series
- Multipath (описание)
- Описание коммутатора Zyxel XS3700 Series