Контроллер дискового массива — это устройство, которое управляет физическими дисковыми накопителями и представляет их компьютеру как логические единицы . Он почти всегда реализует аппаратный RAID , поэтому его иногда называют RAID-контроллером . Он также часто обеспечивает дополнительный дисковый кэш .
Контроллер дискового массива часто двусмысленно сокращается до контроллера диска , что также может относиться к схеме, отвечающей за управление внутренними операциями дискового накопителя.
Контроллер дискового массива предоставляет интерфейсы front-end и back-end.
Один контроллер может использовать разные протоколы для back-end и front-end связи. Многие корпоративные контроллеры используют FC на front-end и SATA на back-end.
В современной корпоративной архитектуре контроллеры дисковых массивов (иногда также называемые процессорами хранения данных или SP [1] ) являются частями физически независимых корпусов , таких как дисковые массивы , размещенные в сети хранения данных (SAN) или серверах сетевых хранилищ (NAS) .
Эти внешние дисковые массивы обычно приобретаются как интегрированная подсистема RAID-контроллеров, дисковых накопителей, блоков питания и программного обеспечения для управления. Контроллеры должны обеспечивать расширенную функциональность (разные поставщики называют их по-разному):
Простой контроллер дискового массива может поместиться внутри компьютера, либо как карта расширения PCI , либо просто встроенный в материнскую плату . Такой контроллер обычно сам по себе обеспечивает функциональность адаптера шины хоста (HBA) для экономии физического пространства. Поэтому его иногда называют RAID-адаптером .
С февраля 2007 года Intel начала интегрировать собственный контроллер Matrix RAID в свои более дорогие материнские платы, обеспечивая управление 4 устройствами и дополнительными 2 разъемами SATA, и в общей сложности 6 подключений SATA (по 3 Гбит/с каждое). Для обратной совместимости также присутствует один разъем IDE, способный подключать 2 устройства ATA (100 Мбит/с).[обновлять]
Хотя аппаратные RAID-контроллеры были доступны в течение длительного времени, они всегда требовали дорогих жестких дисков SCSI и были нацелены на серверный и высокопроизводительный вычислительный рынок. Преимущества технологии SCSI включают возможность подключения до 15 устройств на одной шине, независимую передачу данных, горячую замену , гораздо более высокий средний показатель времени безотказной работы (MTBF) .
Около 1997 года с появлением ATAPI-4 (и, соответственно, Ultra-DMA-Mode 0 , который обеспечивал быструю передачу данных с меньшей загрузкой ЦП ) были представлены первые контроллеры ATA RAID в виде карт расширения PCI. Эти RAID-системы вышли на потребительский рынок, где пользователи хотели отказоустойчивости RAID без необходимости вкладывать средства в дорогие диски SCSI.
Диски ATA позволяют создавать RAID-системы с меньшими затратами, чем с SCSI, но большинство контроллеров ATA RAID не имеют выделенного буфера или высокопроизводительного оборудования XOR для вычисления четности. В результате ATA RAID работает относительно плохо по сравнению с большинством контроллеров SCSI RAID. Кроме того, страдает безопасность данных, если нет резервной батареи для завершения записи, прерванной отключением питания.
Поскольку аппаратные RAID-контроллеры представляют собой собранные RAID -тома, операционные системы не обязаны строго реализовывать полную конфигурацию и сборку для каждого контроллера. Очень часто в программном драйвере с открытым исходным кодом реализованы только базовые функции , а расширенные функции предоставляются через двоичные BLOB-файлы непосредственно производителем оборудования.
Обычно RAID-контроллеры можно полностью настроить через BIOS карты до загрузки операционной системы , а после загрузки операционной системы фирменные утилиты настройки доступны от производителя каждого контроллера, поскольку точный набор функций каждого контроллера может быть специфичным для каждого производителя и продукта. В отличие от сетевых интерфейсных контроллеров для Ethernet , которые обычно можно настроить и обслуживать полностью через общие парадигмы операционной системы, такие как ifconfig в Unix , без необходимости использования каких-либо сторонних инструментов, каждый производитель каждого RAID-контроллера обычно предоставляет свои собственные фирменные программные инструменты для каждой операционной системы, которую он считает поддерживаемой, обеспечивая привязку к поставщику и способствуя проблемам надежности. [2]
Например, в FreeBSD , чтобы получить доступ к конфигурации RAID-контроллеров Adaptec , пользователям необходимо включить уровень совместимости Linux и использовать инструментарий Linux от Adaptec, [3] что потенциально ставит под угрозу стабильность, надежность и безопасность их настройки, особенно если учитывать долгосрочную перспективу. [2] Однако это во многом зависит от контроллера и от того, доступна ли соответствующая документация по оборудованию для написания драйвера, а некоторые контроллеры имеют версии своих утилит настройки с открытым исходным кодом, например, mfiutil
и mptutil
доступны для FreeBSD начиная с FreeBSD 8.0 (2009), [4] [5], а также mpsutil
/ mprutil
с 2015, [6] каждый из которых поддерживает только свои соответствующие драйверы устройств, что приводит к раздуванию кода .
Некоторые другие операционные системы реализовали собственные общие фреймворки для взаимодействия с любым RAID-контроллером и предоставляют инструменты для мониторинга состояния тома RAID, а также упрощения идентификации дисков с помощью мигания светодиодов, управления сигналами тревоги, обозначений дисков горячего резерва и очистки данных § RAID из операционной системы без необходимости перезагрузки в BIOS карты. Например, такой подход был принят OpenBSD в 2005 году с ее драйвером псевдоустройства bio(4) и утилитой bioctl , которые предоставляют статус тома и позволяют управлять светодиодами/сигнализацией/горячим резервом, а также датчиками (включая датчик диска ) для мониторинга работоспособности; [7] этот подход впоследствии был принят и расширен NetBSD в 2007 году. [8]
В bioctl набор функций намеренно сведен к минимуму, чтобы каждый контроллер мог поддерживаться инструментом одинаково; первоначальная настройка контроллера должна выполняться через BIOS карты [7] , но после первоначальной настройки весь ежедневный мониторинг и ремонт должны быть возможны с помощью унифицированных и универсальных инструментов, для чего и предназначен bioctl.