В современном мире подсистема хранения сервера или другой системы решения вплоть до персональных компьютеров является очень важной составляющей всей системы. Еще бы, ведь она выполняет роль внешней и основной, относительно RAM и других устройств временного хранения информации, энергонезависимой памяти (слово «внешняя» используется образно, если взять, например, человека, то роль внешней памяти может выполнять тетрадь, куда заносятся различные записи). В большинстве случаев, особенно для корпоративных серверных систем и серверных проектов ЦОДов, цена хранимой информации заметно выше всего остального: хранимая информация имеет высокую ценность, что накладывает определенные требования к подсистеме хранения. Построить такую подсистему можно или на основе HBA, или на основе RAID-контроллера. О первом типе устройств мы и поговорим в данной статье.
Что же такое современный HBA?
Попробуем разобраться в том, что стоит за загадочными латинскими буквами HBA. Предлагаю не особо углубляться в смысл английских слов, составляющих это название, и тем более не пытаться перевести эти слова оптимальным образом на русский язык, поскольку практической работе это не поможет. К слову, линейка микросхем, на которой базируются Microchip Adaptec HBA, называется Input/Output Controller. Этот термин тоже можно использовать без перевода («микросхемы для линейки SAS HBA 12G Input/Output Controller»).
Host Bus Adapter, или HBA — это устройство, которое предоставляет пользователю порты для подключения дисковой или не дисковой аппаратуры. Будучи физически подключенными, такие аппараты напрямую попадают в операционную систему. При подключении дисков к HBA и установке драйвера этого устройства диски будут видны в device manager OS семейства Windows (devmgmt.msc) как блочные устройства, готовые к дальнейшей работе.
Еще раз отмечу, что мы, команда Microchip Adaptec, в своей работе стараемся не переводить термин HBA. Возьмем для примера ряд системных компонентов: процессор (ЦПУ), память (оперативная память) и HBA («Хабэа») как основное устройство, дающее порты для подключения дисковых и не дисковых устройств в систему для создания подсистемы хранения информации.
Подход к термину HBA за последние годы трансформировался, и данный термин больше опирается на режим предоставления доступа к носителям «ячеек», или «контейнеров» памяти (как правило, это сектора SSD- или HDD-дисков) в OS нежели на внутреннюю архитектуру отдельного устройства.
Чтобы изучить эту тему, рассмотрим подробнее следующие вопросы:
- типы HBA;
- типы и технологии портов HBA;
- устройства, которые можно подключить к HBA;
- обеспечение надежности HBA и взаимодействие с уровнем RAID;
- основные функции HBA;
- небольшой взгляд в будущее — каких изменений ждать для этих устройств в самой ближайшей перспективе.
С учетом возможностей данной статьи попробуем посмотреть, как эти устройства применяются в различных проектах.
Чтобы разобраться с типами HBA, безусловно, потребуется немного практического опыта, иначе некоторые моменты будут не совсем понятны.
HBA бывают:
- интегрированными на материнскую плату;
- в виде отдельных устройств. И если брать современные HBA, то это будут платы, такие же, как, например, видеокарты, которые надо установить в слоты PCI-e;
- виртуальные HBA, которые можно создать с помощью RAID-контроллеров, используя HBA-режим. Наверное, я не ошибусь с утверждением, что все современные RAID-контроллеры поддерживают режим HBA, по крайней мере в линейке RAID-контроллеров Microchip Adaptec это так. Можно еще получить некий аналог HBA-порта, подключив внешний диск через USB, используя SATA/USB-переходник или готовое устройство для USB-подключения, но мы такие варианты рассматривать не будем. Здесь всё достаточно просто.
Поговорим об этих пунктах подробнее.
Многие люди, используя материнскую плату для ПК или сервера, и не догадываются, что на плату интегрирован HBA. Они просто рассматривают порты для подключения дисков как отдельные, не объединяя их в какое-то устройство. Обычно настройки таких HBA делаются через BIOS-настройки материнской платы, при этом самих настроек очень немного. Интегрированные HBA обычно строятся на технологии SATA различных поколений, в последнее время приходит технология NVMe, особенно в области десктопных плат. Крайне редко можно встретить серверные материнские платы, где используются интегрированные SAS HBA.
Интегрированные HBA имеют ограничения по типу поддерживаемых операционных систем. Обычно поддерживаются Linux и Windows. Традиционно для таких устройств нельзя говорить о широкой или полной поддержке операционных систем.
Еще один важный пункт: к таким HBA крайне сложно подключить внешние устройства (JBOD-, EBOD-, RBOD-стойки, ленточные библиотеки и т. п.), здесь внешние порты традиционно не используются. Лично я таких решений не встречал, но допускаю, что они могут быть, например, как eSATA-порты.
Идея со скобами-переходниками «внутренний порт — внешний порт» кажется привлекательной, для SATA это в какой-то степени возможно, но для SAS 12G должны быть устройства очень высокого качества, чтобы не нарушать режимы физического уровня, и, как мы уже отметили, SAS-порты редко используются на материнских платах.
HBA в виде отдельных устройств образуют линейки продуктов с разным количеством внутренних и внешних портов и на сегодняшний день базируются на технологии SAS 12G (или SAS3), которая со стороны дисков официально поддерживает режимы SATA I, II, III и SAS-1 SAS-2, SAS-3.
Технология SAS позволяет вам превратить данные устройства исключительно в SATA и использовать их в чистом виде как SATA-устройства, если это нужно. Для этого достаточно подключить SATA-устройства (например, диски) к такому HBA напрямую. По этой причине в линейках Microchip Adaptec уже давно нет SATA RAID-контроллеров и HBA, их легко можно получить из SAS-продуктов.
Но в последнее время необходимость, скажем прямо, «превращать» SAS HBA в SATA HBA встречается все реже и реже по причине того, что индустрия выпускает много моделей дисков для серверного использования парами: с SATA- и с SAS-интерфейсами. (Это точно такие же диски 7200 rpm, но с SAS-интерфейсом). Для SAS HBA при большом количестве дисков использование дисков SAS более предпочтительно.
Современные HBA-устройства обладают разъемом 8x PCI-e V3 для установки в материнские платы. Такой разъем можно назвать современным «серверным» разъемом. Вся текущая линейка RAID-контроллеров/HBA от Microchip Adaptec использует данный слот.
Количество портов на SAS HBA, даже в максимальной реализации (для линейки Microchip/Adaptec 1100/1200 — 24i означает 24 внутренних порта по технологии SAS) не является пределом для проектировщика. С помощью SAS-экспандеров (внешних или внутренних, в виде плат, устройств или микросхем на дисковых корзинах) количество портов на HBA можно увеличить. При серьезном проектировании это требует расчета. При таком подходе HBA виртуализируется с экспандером, и при подключении SATA дисков уже к экспандеру (экспандерам) вы можете получить, например,
Для интегрированных на плату SATA HBA SAS-экспандеры не применимы. Для них существуют другие устройства, работающие похожим образом, — SATA малтиплайеры (SATA multiplier), но они не распространены и проигрывают SAS-технологии по ряду очевидных причин в корпоративных проектах и проектах ЦОДов.
Следующий момент может показаться сложным для людей, не работающих в области систем хранения данных, он касается моделей HBA и RAID-контроллера.
НBA можно представить как RAID-контроллер без уровня RAID виртуализации дисков: HBA = RAID-контроллер — RAID-уровень. Или, наоборот, RAID-контроллер можно представить как HBA, к которому добавлен дополнительный уровень виртуализации дисков: RAID-контроллер = HBA + RAID-уровень. В свете того, что вся текущая линейка RAID-контроллеров Microsemi Adaptec поддерживает режим HBA, да и у других производителей используется такой же подход, вторая модель представления RAID-контроллера через HBA является предпочтительной. Даже если вы подключаете диски к RAID-контроллеру через SAS-экспандеры, любой отдельный диск независимо олт того, подключен ли он к экспандеру или к контроллеру напрямую, можно «подать» в систему через режим HBA, т. е. диск как диск, используя всю его доступную емкость. Этот же режим с некоторыми дополнениями позволит вам подключить к RAID-контроллеру и не дисковые устройства, например, ленточную библиотеку или внешнюю RAID-стойку (RBOD).
Вот и получается, что если использовать эту модель, то HBA нужен всегда и везде. В том или ином виде его можно найти и выделить практически в любой системе. И без него так же сложно жить, как и без ЦПУ.
Наверняка многим из вас приходилось участвовать в спорах, что лучше — HARDWARE RAID или SOFTWARE RAID. Лично мне, в силу специфики работы, данная тема стала очень близкой. Хочу сразу сказать, что при объективном и профессиональном рассмотрении вопроса и то и другое решение имеет право на жизнь, оба они обладают примерно равной пропорцией достоинств и недостатков и использование того или иного подхода зависит от условий, предъявляемых к системе. Это так же, как с транспортом: в каких-то ситуациях лучше использовать велосипед, а под другие задачи нужен тяжелый самосвал. Этот спор практически нивелирован в линейке продуктов Microchip Adaptec (см. таблицу). Вы можете легко найти модель под то или иное решение или под оба сразу. Исключение составляет HBA в чистом виде (1100 HBA), им никак не «приделать» Hardware RAID-часть (далее HW), и единственная возможность использовать диски на таком устройстве для создания RAID-тома — применить Software-решения (далее SW). В индустрии есть примеры опционального добавления HW RAID к установленному HBA. Например, в прошлом это концепция ROMB-карты от Intel, которая превращала в HW RAID-контроллер интегрированные на плату HBA. Это решение требовало специального слота PCI на плате, который поддерживал это решение. Но ROMB-карта — это большей частью исключение. Обычно на плату можно интегрировать полноценный HW RAID-контроллер. В базовом варианте он работает как HBA; если нужна его RAID—часть, покупается ключ, HW- или SW-типа, и с его помощью RAID-часть и активируется (табл. 1).
Таблица 1.
Продукт Microchip Adaptec |
HW RAID |
Режим HBA |
SW RAID через режим HBA |
Линейка 1100 HBA |
Нет |
Есть |
Есть |
Линейка 1200 SMART HBA |
Есть |
Есть |
Есть |
3100 RAID-контроллеры И RAID-контроллеры |
Есть |
Есть |
Есть |
Современная техника с каждым годом становится сложнее — хотелось бы обратить внимание на название линейки 1200. Несмотря на то, что с точки зрения классического определения это HW RAID-контроллер, поддерживающий HW RAID 0, 1, 10 и 5, называется он «SMART HBA». Слова «RAID» в названии нет. Все достаточно просто: серия 1200 в основной массе проектов подразумевает использование служебных HW RAID-томов, например, для установки OS. Остальные диски идут в SW RAID-тома или в SDS.
Если объединить 1100 и 1200 в одну линейку, что было бы достаточно справедливо, то в табл. 1 будут только «Есть». Это дает несколько другой подход к опциональному «добавлению» hardware RAID-части для HBA. Вы можете не покупать ее совсем или купить в минимальной реализации, цена при этом не сильно увеличится, и если она потребуется, то активировать ее и использовать для всех дисков или для некоторой их части.
Мы разобрали очень небольшую часть того, что можно называть «виртуализацией» HBA. На самом деле объединение отдельных физических HBA-устройств в виртуальные HBA, или «нарезка» одного устройства на несколько виртуальных HBA, или то и другое вместе — вполне реализуемая задача, но, к сожалению, в данной статье мы не сможем остановиться на этом детально. Вы можете установить несколько HBA SAS и SATA разных поколений от разных производителей и «объединить» их в одно устройство с интегрированным HBA на вашей плате, по крайней мере большинство SW RAID-приложений из состава OS позволят вам работать с дисками, принадлежащими разным устройствам. К этой теме будет относиться и резервирование одного HBA в системе с помощью другого в режиме active — active или active — passive, HBA в разных узлах кластера, позволяет подключить общую для всех узлов систему хранения и прочие решения.
Теперь давайте обратим внимание на порты современного HBA.
Как правило, те, что интегрируются на плату, имеют стандартные порты SATA или, намного реже, SAS (они часто различаются и по цвету) в виде неизменного пока для SAS3 и SATAIII типового1x SATA-разъема. В последнее время можно встретить и порты PCI-e для подключения дисков, формата M.2 (NGFF) и U.2 (SFF-8639), и здесь концепция HBA-устройства, интегрированного на плату, становится совсем призрачной и дает просто удобное обобщение для портов, использующих транспорт PCI-e для «общения» с дисками.
Отдельные HBA- и RAID-контроллеры используют счетверенные порты — SAS 4х. Все современные HBA имеют формат Mini SAS-HD SFF8643 для внутренних подключений и SFF-8644 для внешних.
Как мы уже отметили, 8x PCI ver. 3 предназначается для установки в материнскую плату. Такую реализацию портов в линейке продуктов RAID/HBA Microchip Adaptec используют все без исключения модели из текущего каталога. Слот 8x PCI-e не является проблемой для большинства материнских плат ПК и рабочих станций. В старых продуктах и у других производителей могут встречаться решения 4х и 1х для HBA.
Какие же устройства можно подключить к современному HBA?
Разумеется, диски. Требования, которые предъявляются к современным HBA, — умение работать со всеми типами дисков: SAS/SATA, SSD/HDD, размер сектора 512/4K, SMR/CMR и т. д. Не только передать их в OS, но и поддерживать максимальную производительность, максимальную емкость и другие параметры.
Полная поддержка всех типов дисков и возможность гибкого наращивания портов выгодно отличает серверные HBA в виде отдельных устройств от решений, интегрированных на плату.
Что еще? Не дисковые устройства типа DVDROM или ленточный накопитель.
Если остановиться на ленточных накопителях, то важно убедиться, какой стандарт LTO поддерживается со стороны HBA; есть и более профессиональные характеристики, с которыми можно встретиться в практической работе.
Широким классом устройств, которым может потребоваться подключение к HBA, являются внешние стойки JBOD, EBOD (с SAS-экспандерами внутри), RBOВ (с RAID-контроллерами) и ленточные библиотеки. Два последних семейства требуют портов с HBA-режимом, которые при этом поддерживают функцию под названием MultiLUN. Для этого класса устройств тоже возникает очень много нюансов, и можно говорить о большом количестве функций/режимов, которые могут потребоваться как со стороны HBA, так и со стороны внешней стойки.
Перенос дисков с устройства на устройство для HBA носит глобальный характер и не зависит от производителя. На практике это может понадобиться для замены или модификации вашей системы. Например, любой SATA-диск (или другое SATA-устройство) можно легко перенести на любой другой HBA, скажем, интегрировать на материнскую плату или на отдельный SATA либо SAS HBA любого производителя или на SAS/SATA RAID-контроллер с HBA-режимом. Данные, в частности в виде файлов, если они есть на диске, будут доступны. С внешними или SAS-устройствами будет сложнее, но информация тоже должна быть доступна на любом HBA, имеющем соответствующий порт. К сожалению, с RAID-контроллерами это не так. Если переносится RAID-том (все составляющие его диски) на другое устройство, то информация будет видна только на RAID-контроллерах, имеющих такой же RAID-стек. Например, для продукции Microchip Adaptec не получится напрямую перенести том с RAID-контроллера
Старые RAID-контроллеры обладали «псевдо режимами» HBA: simple volume (есть и на многих современных RAID-контроллерах, иногда реализуется как RAID0 на одном диске), JBOD-режим и т. п.; при таком режиме диски передавались в OS как отдельные, но на них создавались специальные служебные области — метаданные, особого proprietary-формата, и формат этот мог быть прочитан только на RAID-контроллерах и только такого же стека. Таблица 2 немного объясняет различия между таким режимом и HBA, например, при использовании SW RAID.
Таблица 2.
Режим |
Disk coercion (небольшое уменьшение доступной емкости диска) |
Перенос диска |
Использование кэша контроллера |
HBA |
Нет |
На любой HBA |
Нет |
SIMPLE volume |
Есть |
В пределах стека |
Есть, RAM и SSD-кэш |
К современным HBA предъявляются серьезные требования. Одно из основных — надежность. Если для дисков надежностью можно легко управлять в каких-то пределах через функцию RAID, то у самого HBA этот показатель должен быть максимально высоким. Отдельные HBA-устройства в виде плат обычно являются серверными продуктами. Если взять линейку HBA 1100/1200 Microchip Adaptec, то у всех продуктов официальное значение качества, выраженное через MTBF, составит от 1,36 до 2,73 миллиона часов (при соблюдении температурного режима работы) в зависимости от модели с серверной гарантией на 3 года.
Понятно, что качество HBA большей частью означает надежный доступ к данным, и во многих системах, особенно уровня ЦОДов, это является критическим параметром.
Помимо качества HW и SW (называется Firmware = FW = прошивка) в части HBA важной характеристикой является производительность. К примеру, линейка 1100/1200 обладает производительностью 1 700 000 iops, что позволяет полноценно использовать самые современные SAS/SATA SSD-диски в количествах, как минимум поддерживаемых внутренними корзинами современных серверных корпусов.
Кратко рассмотрим основные функции HBA, которые могут быть реализованы в настройках. Для HBA, интегрированных на материнскую плату, их совсем немного. Например, поддержка NCQ.
Отдельные SAS HBA серверного типа обладают достаточно широким функционалом, невозможно перечислить всё, но назовем самые основные моменты, о которых проектировщик должен знать: поддержка legacy- и uEFI-режимов, умение показать (даже при загрузке) основные параметры, характеристики и режимы работы диска, поддержка SMART, т. е. способность показать SMART-таблицы диска и передать в систему управления SMART error/warning, интеграция в систему управления — возможность удаленного управления через графическую утилиту сразу всеми серверами, где установлены RAID-контроллеры или HBA, поддержка CLI, поддержка функции шифрования со стороны HBA. Как это ни удивительно, существует очень много функций, которые могут быть реализованы на современном HBA. Некоторые очень сложно представить. Назову такую интересную способность: современный HBA, например, Microchip Adaptec 1100, может «видеть» «осколки RAID-томов стека SMART RAID» (естественно, не читать информацию, а информировать администратора, что диск был вынут из RAID-тома), и пока вы не удалите служебную область данного стека, этот диск не будет передаваться в OS.
Если говорить о будущем для HBA, то оно наступает весьма стремительно.
Мы видим, что технология SATA по сути заменяется NVMe.
И на материнских платах мы будем встречать все больше интегрированных решений для дисков и других устройств, использующих PCI-e как транспортный протокол.
Что касается серверных HBA и RAID-контроллеров с режимом HBA как отдельное устройство, то они тоже будут поддерживать NVMe. Это будет высокая степень универсальности: одновременная поддержка NVMe, SAS- и SATA-устройств. Скорее всего — уже через формат порта u.3.
Сюда же добавится SAS-4 24G, расширение адресного пространства при подключении через экспандеры до пятисот или до тысячи устройств (сегодня — около 256), возможно, расширение концепции серверного слота до 16х (требуется для поддержки SSD-дисков) и использование PCI-e v.4. Ожидается также переход кабелей на оптику — появление опции подключения дисков через оптические кабели и т. д. Будущее, как известно, обладает некоторой долей непредсказуемости.
Если говорить о проектах, где можно использовать HBA, то их спектр просто огромен. Практически все типы проектов могут быть реализованы с использованием HBA. Помещаю ниже небольшой рисунок в виде инфографики, чтобы визуализировать сказанное. SAS HBA начинают выполнять роль своего рода «устройства с универсальными портами для подключения всех возможных типов дисков, и не только», что удобно, начиная с домашнего компьютера и заканчивая проектами ЦОДов. В будущем такую роль начнут выполнять 3-mode (tri-mode) HBA (поддержка SAS/SAT/NVMe-устройств).
Но ожидаемая линейка
В данной статье хотелось бы поговорить и о подходах к проектированию с использованием HBA. Но на самом деле даже в одной только области ЦОДов возможных типов проектов так много, что для этого потребовалась бы отдельная статья, хорошо если не книга — учебник.
Надо отметить, что полнофункциональный SAS HBA может оказаться неплохим помощником даже дома или на работе (например, в качестве системы для администратора, с целью обслуживания различных дисков, которые используются на предприятии или в ЦОДе: тестирование дисков, смена прошивки, подготовка к работе, снятие с рабочего режима, измерение производительности и т. д.). Без такого решения не обойтись и в том случае, если вам нужно работать дома со всеми без исключения типами дисков (SAS/SATA, SSD/HDD, 512/4K, SMR/CMR), а также с SW RAID-томами на их основе. Особенно если при этом надо использовать большой набор различных OS. К слову, по сравнению с процессорами или графическими платами для энтузиастов это не такие уж большие затраты.
В наше время не очень сложно найти корзину SAS3 12G на четыре диска 2,5″ для типичного отсека 5,25″, которых в десктопном корпусе при желании может быть достаточно много. В такой же отсек можно установить корзину zero-effort hot swap SATA для дисков 2,5″ и 3,5″. Она будет выполнять две важные функции — быструю загрузку и смену любых других OS, которые нужны в работе, и подключение к SAS HBA дисков SATA 3,5″. Единственный недостаток — невозможность подключения SAS-дисков 3,5«: их производится мало, но работа с ними может потребоваться. Здесь проблема решится кабелем, который поможет подключить их к SAS HBA напрямую, без Hot Swap-корзины. Для SAS-дисков (или SAS + SATA) кабель должен обладать особым разъемом. И вам потребуется, например, Microchip Adaptec HBA 1100 или 1200, которые «заберет» один слот 8х или 16х в вашей системе.