SCST

редактировать
SCST
Sourceforge-scst-project-logo.gif
Стабильный выпуск 3.4 / 3 декабря 2019 г. (2019-12-03)
Репозиторий sourceforge.net / p / scst / svn / HEAD / tree / ;. github.com / bvanassche / scst
Написано вC
Операционная система Linux
Тип Блочное хранилище
Лицензия Стандартная общественная лицензия GNU
Веб-сайтscst.sourceforge.net ;. github.com / bvanassche / scst

SCST - это программный стек с лицензией GPL целевой объект SCSI. Целями разработки этого программного стека являются высокая производительность, высокая надежность, строгое соответствие существующим стандартам SCSI, простота расширения и простота использования. SCST не только поддерживает несколько протоколов SCSI (iSCSI, FC, SRP,...), но также поддерживает несколько интерфейсов локального хранилища (сквозной SCSI, блочный ввод-вывод и файл I / O), а также драйверы хранилища, реализованные в пользовательском пространстве с помощью драйвера scst_user.

Для достижения максимальной производительности SCST был реализован как набор драйверов ядра. SCST часто сочетается с программным обеспечением RAID, дедупликации данных и / или кластером высокой доступности для расширения его функциональности. Программный стек SCST является базовым программным обеспечением многих систем SAN. Несколько мировых рекордов были установлены с системами SAN, основанными на SCST.

SCST конкурирует с LIO Target с той же целью - предоставить общий целевой модуль SCSI внутри ядра Linux. Для более узкой цели, обеспечивающей Linux iSCSI target, более старые модули IET и STGT также пользуются отраслевой поддержкой.

В период с 2013 по 2017 год SCST в основном поддерживался персоналом SanDisk, после того, как Fusion-io приобрел стартап ID7 в 2013 году, движущую силу SCST, и после того, как SanDisk приобрела Fusion-io в 2014 году.

Содержание

  • 1 Архитектура
  • 2 История
  • 3 См. Также
  • 4 Ссылки
  • 5 Внешние ссылки

Архитектура

Архитектура SCST

SCST состоит из трех групп модулей:

  • Ядро SCST, независимый от протокола механизм для обработки команд SCSI.
  • Целевые драйверы, которые получают команды SCSI от инициатора SCSI, передают эти SCSI в ядро ​​SCST и отправляют обратно ответы инициатору.
  • Драйверы хранилища, также известные как обработчики устройств, которые взаимодействуют с носителем данных. Поддерживаемые интерфейсы локального хранилища: SCSI, блочное устройство, файл и scst_user. scst_user - это специальный протокол SCST, который позволяет эффективно внедрять драйверы хранилища в пользовательском пространстве.

Конфигурация всех этих модулей происходит через интерфейс sysfs. Хотя прямая настройка SCST через интерфейс sysfs удобна, инструмент под названием scstadmin позволяет управлять SCST через интерфейс sysfs, а также сохранять и восстанавливать конфигурацию SCST.

Следующие аспекты дизайна помогают SCST достичь высокой производительности, которой известен этот проект:

  • Количество потоков на устройство хранения, которое обрабатывает команды SCSI, настраивается.
  • Весь целевой драйвер и Функции драйвера запоминающего устройства, вызываемые ядром SCST, являются асинхронными, по крайней мере, когда это позволяет ядро ​​Linux. Это, например, пока невозможно выполнять асинхронный или прямой ввод-вывод из ядра Linux.
  • Один конечный автомат связан с каждой командой SCSI. Это позволяет одному командному потоку обрабатывать несколько команд SCSI одновременно.
  • Даже при использовании нескольких потоков на одно устройство хранения все эти потоки используют один и тот же контекст планировщика ввода-вывода. Такое совместное использование значительно повышает производительность при использовании, например, планировщик ввода-вывода CFQ.
  • векторный кэш с разбросом и сбором данных. Этот кеш позволяет избежать выделения памяти через ядро ​​для каждой команды SCSI.
  • Доступ без блокировки к определенным структурам данных, необходимым для обработки команд SCSI. Это также означает, что ввод-вывод должен быть приостановлен до того, как любая из структур данных, к которым осуществляется доступ без блокировки, может быть изменена.
  • SCSI-команды могут быть отправлены целевым драйвером в ядро ​​SCST из контекста softirq. Это приводит к меньшему количеству переключений контекста по сравнению с необходимостью отправки команд SCSI из контекста потока.

История

В 2000 году целевая структура SCSI была разработана Университетом Нью-Гэмпшира. Лаборатория (UNH-IOL). Хотя целевая реализация UNH-IOL SCSI поддерживает только протокол iSCSI, она была разработана таким образом, чтобы было легко добавить поддержку других протоколов хранения.

В 2004 году было объявлено о проекте SCST, обеспечение поддержки Fibre Channel и iSCSI. Первоначальная цель iSCSI в SCST была основана на реализации цели UNH-IOL iSCSI. Примерно в то же время компанией Ardis Technologies был разработан альтернативный программный стек iSCSI target.

Программное обеспечение iSCSI Enterprise Target, анонсированное в 2005 году, является дальнейшим развитием стека Ardis. Позже в 2005 году Chelsio анонсировала целевой драйвер SCST iSCSI для семейства адаптеров Chelsio T2 Ethernet.

В 2006 году был добавлен целевой драйвер для карт LSI / MPT. Позже в этом году был добавлен инструмент scstadmin. Этот инструмент позволяет сохранять и восстанавливать конфигурацию SCST из файла или в файл.

В 2007 году целевой патч UNH-IOL iSCSI в проекте SCST был заменен форком IET.

В В 2008 г. Mellanox подарила целевой драйвер SRP. Позже этот драйвер был оптимизирован Барт Ван Аше.

В 2009 году Marvell пожертвовала целевой драйвер для своих карт SAS.

Также в 2009 году целевой драйвер для Emulex Fibre Channel / адаптеры FCoE были анонсированы Emulex.

В том же году интерфейс sysfs был добавлен в SCST рядом с уже существующим интерфейсом procfs.

В 2010 году целевой драйвер FCoE был подарен Cisco, и Барт Ван Аше перенес целевой драйвер SCSI IBM System p в SCST.

2011 неявная поддержка ALUA была добавлена ​​в ядро ​​SCST и в инструмент настройки scstadmin. Три сценария инициализации (scst, iscsi-scst и qla2x00t) были объединены в один сценарий инициализации, что упростило установку и управление SCST.

В 2013 году поддержка QLogic InfiniBand HCA была добавлена ​​в целевой драйвер SRP.

В январе 2014 года Mellanox пожертвовала реализацию целевого драйвера iSER проекту SCST.

В мае 2014 QLogic сделала доступным целевой драйвер QLogic со скоростью 16 Гбит / с, а также объявила о том, что возьмет на себя поддержку целевого драйвера SCST QLogic.

В 2016 году поддержка асинхронного буферизованного и прямого файлового ввода-вывода, а также более высокая задержка добавлена ​​измерительная инфраструктура.

В 2019 ядро ​​SCST было изменено таким образом, что ввод-вывод продолжает работать на полной скорости, если LUN или устройство хранения добавляются или удаляются.

См. Также

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-06 02:56:30
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте