СКСТ

СКСТ
Стабильный релиз
3.8 / 15 января 2024 г. ( 2024-01-15 )
Репозиторийgithub.com/SCST-project/scst
Написано вС
Операционная системалинукс
ТипБлочное хранение
ЛицензияСтандартная общественная лицензия GNU
Веб-сайтscst.sf.net

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

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

SCST конкурирует с LIO Target с той же целью предоставления универсального целевого модуля SCSI внутри ядра Linux. [7] Для более узкой цели предоставления цели Linux iSCSI , старые модули IET и STGT также пользуются поддержкой отрасли. [8]

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

Архитектура

Архитектура СКСТ

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. [13]
  • С каждой командой SCSI связан один конечный автомат . Это позволяет одному потоку команд обрабатывать несколько команд SCSI одновременно.
  • Даже при использовании нескольких потоков на одно устройство хранения все эти потоки совместно используют один и тот же контекст планировщика ввода-вывода. Такое совместное использование значительно повышает производительность при использовании, например, планировщика ввода-вывода CFQ .
  • Векторный кэш scatter-gather. Этот кэш позволяет избежать необходимости выделять память через ядро ​​для каждой команды SCSI.
  • Доступ без блокировки к определенным структурам данных, необходимым для обработки команд SCSI. Это также означает, что ввод-вывод должен быть приостановлен, прежде чем любая из структур данных, к которым осуществляется доступ без блокировки, может быть изменена. [14]
  • Команды SCSI могут быть отправлены целевым драйвером ядру SCST из контекста softirq. Это приводит к меньшему количеству переключений контекста по сравнению с необходимостью отправки команд SCSI из контекста потока. [15]

История

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

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

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

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

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

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

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

Также в 2009 году компания Emulex анонсировала целевой драйвер для адаптерных карт Emulex Fibre Channel / FCoE . [28] [29] [30]

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

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

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

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

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

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

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

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

Смотрите также

Ссылки

  1. ^ Ван Ашше, Барт (19 августа 2015 г.). SCST, целевая платформа SCSI (PDF) . LinuxCon North America 2015. Сиэтл.
  2. Болховитин, Владислав (20 декабря 2012 г.). «Пользователи SCST».
  3. ^ "Новый мировой рекорд VMmark Cloud Computing установлен с Cisco UCS, VMware и Fusion-io". Fusion-io. 10 мая 2013 г. Архивировано из оригинала 2 июля 2014 г. Получено 12 августа 2018 г.
  4. ^ "HP Achieves Two New #1 VMmark Virtualization Benchmarks with ION Data Accelerator". Fusion-io. 12 сентября 2013 г. Архивировано из оригинала 16 июня 2014 г. Получено 12 августа 2018 г.
  5. ^ "HP устанавливает мировые рекорды по производительности виртуализации двухпроцессорных блейд-серверов и двухпроцессорных стоечных серверов по результатам теста VMmark 2.5.1" (PDF) . HP. Октябрь 2013 г.
  6. ^ «K2 достигает двух миллионов IOPS с использованием одной системы хранения All-Flash». Каминарио. 4 октября 2012 г.
  7. ^ «Рассказ о двух целях SCSI [LWN.net]».
  8. ^ Флориан Хаас, «Реплицируйте все! Высокодоступное хранилище iSCSI с DRBD и Pacemaker», (раздел Linux iSCSI: история четырех целей) Linux Journal Issue #217, май 2012 г.
  9. ^ Мейер, Дэвид (18 марта 2013 г.). «Fusion-io выбирает фирму программно-определяемого хранилища ID7 для SCST chops». Gigaom . Получено 20 июля 2014 г.
  10. ^ О'Брайен, Кевин (18 марта 2013 г.). "Fusion-io приобретает ID7, разработчиков SCST" . Получено 20 июля 2014 г.
  11. ^ "Fusion-io ID7 - Ускорение общего хранилища с помощью программно-определяемых решений". Fusion-io . Архивировано из оригинала 4 августа 2014 г. . Получено 12 августа 2018 г. .
  12. Айер, Джей (23 июля 2014 г.). «SanDisk завершает приобретение Fusion-io». SanDisk .
  13. Эдж, Джейк (3 апреля 2012 г.). «Саммит по управлению хранилищами, файловыми системами и памятью Linux 2012 — день 1».
  14. Ван Аш, Барт (25 декабря 2012 г.). «Более тонкая блокировка в SCST».
  15. ^ Болховитин, Владислав; Ван Аш, Барт (26 сентября 2012 г.). «SCST README».
  16. ^ Palekar, Ashish; Ganapathy, Narendran; Chadda, Anshul; Russell, Robert D. (2001). «Проектирование и реализация Linux SCSI target для сетей хранения данных». Труды 5-й ежегодной выставки и конференции Linux . 5. Ассоциация USENIX: 11–18. CiteSeerX 10.1.1.61.2706 . 
  17. ^ Болховитин, Владислав. «АНОНСИРОВАНО Generic SCSI Target Middle Level для Linux (SCST) с целевыми драйверами».
  18. ^ Фудзита, Томонори; Масанори, Огавара (2004). «Анализ целевого программного обеспечения iSCSI». Труды международного семинара по архитектуре сетей хранения данных и параллельному вводу-выводу - SNAPI '04 . ACM. стр. 25–32. doi :10.1145/1162628.1162632. ISBN 9781450378222. S2CID  14730273.
  19. Фудзита, Томонори (1 июня 2004 г.). «iSCSI Enterprise Target».
  20. ^ Фудзита, Томонори (1 марта 2005 г.). «АНОНСИРОВАНО корпоративное целевое программное обеспечение iSCSI».
  21. ^ Смит, Рэнди (7 сентября 2005 г.). «Chelsio представляет семейство продуктов iSCSI следующего поколения, отличающееся прорывами в производительности и плотности портов». Chelsio.
  22. Хаббинга, Эрик (13 декабря 2006 г.). «Целевой драйвер LSI/MPT».
  23. ^ Бюхлер, Марк Р. (14 ноября 2006 г.). «Первоначальная фиксация scstadmin».
  24. Болховитин, Владислав (15 августа 2007 г.). «Начальная фиксация iSCSI-SCST».
  25. ^ Фам, Ву (17 мая 2008 г.). «Первоначальная фиксация целевого драйвера SRP».
  26. Ван Аш, Барт (20 декабря 2010 г.). «ИСПРАВЛЕНИЕ 4/7 scst: Добавить целевой драйвер SRP».
  27. ^ Ян, Энди (14 апреля 2009 г.). «Целевой драйвер для карт Marvell 88SE64xx(3G) и 88SE94xx(6G) SAS».
  28. Болховитин, Владислав (8 июля 2009 г.). «ОБЪЯВЛЕНИЕ о поддержке драйвера SCST Target для адаптеров Emulex lpfc FC/FCoE».
  29. ^ Лейн, Кэтрин (15 сентября 2009 г.). «SDK приносит повышенную ценность и расширяет рыночные возможности разработчикам решений для хранения данных в центрах обработки данных». Emulex. Архивировано из оригинала 15 октября 2009 г. Получено 10 августа 2018 г.
  30. ^ "TargetConnect Software Developer Kit: Accelerate, Simplify and Enhance Target Driver Development". Emulex. 15 сентября 2009 г. Архивировано из оригинала 14 октября 2009 г. Получено 10 августа 2018 г.
  31. Эйкхольт, Джо (20 февраля 2010 г.). «Первоначальная фиксация целевого драйвера FCoE».
  32. Ван Аш, Барт (20 декабря 2010 г.). «ИСПРАВЛЕНИЕ 5/7 ibmvstgt: Порт с tgt на SCST».
  33. Ван Аш, Барт (11 мая 2011 г.). «PATCH scst: добавить неявную поддержку ALUA».
  34. Ван Аш, Барт (17 марта 2013 г.). «ИСПРАВЛЕНИЕ ib_srpt: добавить поддержку QLogic InfiniBand HCA».
  35. ^ Берман, Ян (21 января 2014 г.). «Поддержка iSER PATCH 0/9 для SCST».
  36. Григсби, Дуэйн (20 мая 2014 г.). «Поддержка HBA 16G FC/FCoE от QLogic».
  • Enterprise Storage OS (ESOS) — высокопроизводительная платформа хранения данных на уровне блоков с открытым исходным кодом.
  • Билл Чайлдерс, OpenFiler: сетевое устройство хранения данных с открытым исходным кодом, Linux Journal, выпуск 181, май 2009 г.
  • Эррол Нил, SSD + ZFS/bcache/EnhanceIO + SCST = гибридный массив хранения?, ha-guru.com, 22 июля 2014 г.
Взято с "https://en.wikipedia.org/w/index.php?title=SCST&oldid=1248236886"