Контроллер дискового массива — это устройство, которое управляет физическими дисками и представляет их компьютеру как логические единицы . Он почти всегда реализует аппаратный RAID , поэтому его иногда называют RAID-контроллером . Он также часто обеспечивает дополнительный дисковый кэш .
Контроллер дискового массива часто неоднозначно сокращается до контроллера диска , который также может относиться к схеме, отвечающей за управление операциями внутреннего диска.
Контроллер дискового массива предоставляет внешние и внутренние интерфейсы.
Один контроллер может использовать разные протоколы для внутренней и внешней связи. Многие корпоративные контроллеры используют FC на внешнем интерфейсе и SATA на внутреннем.
В современной корпоративной архитектуре контроллеры дисковых массивов (иногда также называемые процессорами хранения или SP [1] ) являются частями физически независимых корпусов , таких как дисковые массивы, размещенные в сети хранения данных (SAN) или серверах сетевых хранилищ (NAS). .
Эти внешние дисковые массивы обычно приобретаются как интегрированная подсистема RAID-контроллеров, дисковых накопителей, источников питания и программного обеспечения для управления. Контроллеры должны обеспечивать расширенные функциональные возможности (разные поставщики называют их по-разному):
Простой контроллер дискового массива может поместиться внутри компьютера либо в виде карты расширения PCI , либо просто встроен в материнскую плату . Такой контроллер обычно обеспечивает функциональность адаптера главной шины (HBA) для экономии физического пространства. Поэтому его иногда называют адаптером RAID .
По состоянию на февраль 2007 года Intel начала интегрировать собственный контроллер Matrix RAID в свои более дорогие материнские платы, обеспечивая контроль над 4 устройствами и двумя дополнительными разъемами SATA, а также всего 6 соединений SATA (3 Гбит / с каждый). Для обратной совместимости также имеется один разъем IDE, позволяющий подключить 2 устройства ATA (100 Мбит/с).[обновлять]
Хотя аппаратные RAID-контроллеры были доступны в течение долгого времени, они всегда требовали дорогих жестких дисков SCSI и были нацелены на рынок серверов и компьютеров высокого класса. Преимущества технологии SCSI включают возможность подключения до 15 устройств на одной шине, независимую передачу данных, горячую замену , гораздо более высокое среднее время безотказной работы .
Примерно в 1997 году, с появлением ATAPI-4 (и, следовательно, Ultra-DMA-Mode 0 , который обеспечивал быструю передачу данных с меньшей загрузкой ЦП ), первые RAID-контроллеры ATA были представлены в виде карт расширения PCI. Эти RAID-системы пробились на потребительский рынок, где пользователи хотели получить отказоустойчивость RAID, не вкладывая средства в дорогие диски SCSI.
Диски ATA позволяют создавать RAID-системы с меньшими затратами, чем SCSI, но большинству RAID-контроллеров ATA не хватает выделенного буфера или высокопроизводительного оборудования XOR для расчета четности. В результате ATA RAID работает относительно плохо по сравнению с большинством SCSI RAID-контроллеров. Кроме того, безопасность данных страдает, если нет резервной батареи для завершения записи, прерванной отключением электроэнергии.
Поскольку аппаратные RAID-контроллеры представляют собой собранные тома RAID , операционным системам не обязательно выполнять полную настройку и сборку каждого контроллера. Очень часто в программном драйвере с открытым исходным кодом реализованы только базовые функции , а расширенные функции предоставляются через двоичные объекты непосредственно производителем оборудования.
Обычно 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. .