СКСТ
![]() | |
Стабильная версия | 3.6
/ 17 января 2022 г. |
---|---|
Репозиторий | github |
Написано в | С |
Операционная система | Линукс |
Тип | Блочное хранилище |
Лицензия | Стандартная общественная лицензия GNU |
Веб-сайт | ПКСТ |
SCST — это GPL , лицензированный по лицензии стек целевого программного обеспечения SCSI . Целями разработки этого программного стека являются высокая производительность, высокая надежность, строгое соответствие существующим стандартам 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 , после того как в 2013 году Fusion-io приобрела стартап ID7, который стал движущей силой SCST. [9] [10] [11] и после того, как SanDisk приобрела Fusion-io в 2014 году. [12]
Архитектура
[ редактировать ]
СКСТ состоит из трех групп модулей:
- Ядро 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 . планировщика ввода-вывода
- Векторный кэш разброса и сбора данных. Этот кэш позволяет избежать выделения памяти через ядро для каждой команды SCSI.
- Безблокировочный доступ к определенным структурам данных, необходимым для обработки команд SCSI. Это также означает, что ввод-вывод должен быть приостановлен, прежде чем можно будет изменить любую из структур данных, к которым осуществляется доступ без блокировки. [14]
- Команды SCSI могут передаваться целевым драйвером ядру SCST из контекста softirq. Это приводит к меньшему количеству переключений контекста по сравнению с необходимостью отправлять команды SCSI из контекста потока. [15]
История
[ редактировать ]В 2000 году целевая структура SCSI была разработана Лабораторией совместимости Университета Нью-Гэмпшира (UNH-IOL). Хотя целевая реализация 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 для семейства Ethernet-адаптеров Chelsio T2. [21]
В 2006 году был добавлен целевой драйвер для карт LSI/MPT. [22] Позже в этом году был добавлен инструмент scstadmin. Этот инструмент позволяет сохранять и восстанавливать конфигурацию SCST из файла или в файл. [23]
В 2007 году целевой патч UNH-IOL iSCSI в проекте SCST был заменен ответвлением IET. [24]
В 2008 году SRP . компания Mellanox подарила целевой драйвер [25] Позже этот драйвер был оптимизирован Бартом Ван Ашем. [26]
В 2009 году Marvell предоставила целевой драйвер для своих карт SAS. [27]
целевой драйвер для карт адаптеров Emulex Fibre Channel / FCoE . Также в 2009 году компания Emulex анонсировала [28] [29] [30]
В том же году в SCST был добавлен интерфейс sysfs рядом с уже существующим интерфейсом procfs.
В 2010 году целевой драйвер FCoE был предоставлен Cisco. [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 Гбит/с, а также объявила о том, что возьмет на себя сопровождение целевого драйвера QLogic SCST. [36]
В 2016 году была добавлена поддержка асинхронного буферизованного и прямого файлового ввода-вывода, а также более мощная инфраструктура измерения задержки.
В 2019 году ядро SCST было изменено таким образом, что ввод-вывод продолжает работать на полной скорости, если LUN или устройство хранения данных добавлено или удалено.
См. также
[ редактировать ]- оптоволоконный канал
- Оптоволоконный канал через Ethernet (FCoE)
- ИнфиниБэнд
- iSCSI
- Протокол SCSI RDMA (SRP)
Ссылки
[ редактировать ]- ^ Ван Аш, Барт (19 августа 2015 г.). SCST, целевая структура SCSI (PDF) . LinuxCon North America 2015. Сиэтл.
- ^ Болховитин, Владислав (20 декабря 2012 г.). «Пользователи ПКСТ» .
- ^ «Новый мировой рекорд VMmark по облачным вычислениям, установленный с помощью Cisco UCS, VMware и Fusion-io» . Фьюжн-ио. 10 мая 2013. Архивировано из оригинала 2 июля 2014 года . Проверено 12 августа 2018 г.
- ^ «HP достигла двух новых показателей виртуализации VMmark №1 с помощью ION Data Accelerator» . Фьюжн-ио. 12 сентября 2013. Архивировано из оригинала 16 июня 2014 года . Проверено 12 августа 2018 г.
- ^ «HP достигает мировых рекордов по производительности виртуализации блейд-серверов 2P и серверов, монтируемых в стойку, в тесте VMmark 2.5.1» (PDF) . ХП. Октябрь 2013.
- ^ «K2 превысил два миллиона операций ввода-вывода в секунду при использовании единой флэш-системы хранения данных» . Каминарио. 4 октября 2012 г.
- ^ «История двух целей SCSI [LWN.net]» .
- ^ Флориан Хаас, « Реплицируйте все! Высокодоступное хранилище iSCSI с DRBD и кардиостимулятором », (Linux iSCSI: раздел «Повесть о четырех целях») Linux Journal, выпуск № 217, май 2012 г.
- ^ Мейер, Дэвид (18 марта 2013 г.). «Fusion-io приобретает фирму программно-определяемых систем хранения данных ID7 для работы с SCST» . Гигаом . Проверено 20 июля 2014 г.
- ^ О'Брайен, Кевин (18 марта 2013 г.). «Fusion-io приобретает ID7, разработчиков SCST» . Проверено 20 июля 2014 г.
- ^ «Fusion-io ID7 — ускорение общего хранилища с помощью программно-конфигурируемых решений» . Фьюжн-ио . Архивировано из оригинала 4 августа 2014 года . Проверено 12 августа 2018 г.
- ^ Айер, Джей (23 июля 2014 г.). «SanDisk завершает приобретение Fusion-io» . СанДиск .
- ^ Эдж, Джейк (3 апреля 2012 г.). «Саммит по управлению хранилищем, файловой системой и памятью Linux 2012 — день 1» .
- ^ Ван Аш, Барт (25 декабря 2012 г.). «Более тонкая блокировка в SCST» .
- ^ Болховитин, Владислав; Ван Аш, Барт (26 сентября 2012 г.). «SCST README» .
- ^ Палекар, Ашиш; Ганапати, Нарендран; Чадда, Аншул; Рассел, Роберт Д. (2001). «Проектирование и реализация цели Linux SCSI для сетей хранения данных». Материалы 5-й ежегодной выставки и конференции Linux . 5 . Ассоциация USENIX: 11–18. CiteSeerX 10.1.1.61.2706 .
- ^ Болховитин, Владислав. «ОБЪЯВЛЯЕМ универсальный целевой средний уровень SCSI для Linux (SCST) с целевыми драйверами» .
- ^ Фудзита, Томонори; Масанори, Огавара (2004). «Анализ целевого программного обеспечения iSCSI» . Материалы международного семинара по архитектуре сетей хранения данных и параллельному вводу-выводу - SNAPI '04 . АКМ. стр. 25–32. дои : 10.1145/1162628.1162632 . ISBN 9781450378222 . S2CID 14730273 .
{{cite book}}
: CS1 maint: дата и год ( ссылка ) - ^ Фудзита, Томонори (1 июня 2004 г.). «Корпоративная цель iSCSI» .
- ^ Фудзита, Томонори (1 марта 2005 г.). «ОБЪЯВЛЕНИЕ целевого корпоративного программного обеспечения iSCSI» .
- ^ Смит, Рэнди (7 сентября 2005 г.). «Chelsio представляет семейство продуктов iSCSI следующего поколения, обеспечивающее прорыв в производительности и плотности портов» . Челсио.
- ^ Хаббинга, Эрик (13 декабря 2006 г.). «Целевой драйвер LSI/MPT» .
- ^ Бюхлер, Марк Р. (14 ноября 2006 г.). «Первоначальная фиксация scstadmin» .
- ^ Болховитин, Владислав (15 августа 2007 г.). «Первоначальная фиксация iSCSI-SCST» .
- ^ Фам, Ву (17 мая 2008 г.). «Первоначальная фиксация целевого драйвера SRP» .
- ^ Ван Аш, Барт (20 декабря 2010 г.). «ИСПРАВЛЕНИЕ 4/7 scst: Добавить целевой драйвер SRP» .
- ^ Ян, Энди (14 апреля 2009 г.). «Целевой драйвер для карт Marvell 88SE64xx(3G) и 88SE94xx(6G) SAS» .
- ^ Болховитин, Владислав (8 июля 2009 г.). «ОБЪЯВЛЕНИЕ о поддержке целевого драйвера SCST для адаптеров Emulex lpfc FC/FCoE» .
- ^ Лейн, Кэтрин (15 сентября 2009 г.). «SDK повышает ценность и расширяет рыночные возможности для разработчиков решений для хранения данных в центрах обработки данных» . Эмулекс. Архивировано из оригинала 15 октября 2009 года . Проверено 10 августа 2018 г.
- ^ «Комплект разработчика программного обеспечения TargetConnect: ускорение, упрощение и улучшение разработки целевых драйверов» . Эмулекс. 15 сентября 2009 года. Архивировано из оригинала 14 октября 2009 года . Проверено 10 августа 2018 г.
- ^ Эйхолт, Джо (20 февраля 2010 г.). «Первоначальная фиксация целевого драйвера FCoE» .
- ^ Ван Аш, Барт (20 декабря 2010 г.). «ИСПРАВЛЕНИЕ 5/7 ibmvstgt: Порт с tgt на SCST» .
- ^ Ван Аш, Барт (11 мая 2011 г.). «PATCH scst: добавить неявную поддержку ALUA» .
- ^ Ван Аш, Барт (17 марта 2013 г.). «ИСПРАВЛЕНИЕ ib_srpt: добавлена поддержка QLogic InfiniBand HCA» .
- ^ Бурман, Ян (21 января 2014 г.). «ПАТЧ 0/9 Поддержка iSER для SCST» .
- ^ Григсби, Дуэйн (20 мая 2014 г.). «Поддержка QLogic 16G FC/FCoE HBA» .
Внешние ссылки
[ редактировать ]- Enterprise Storage OS (ESOS) — высокопроизводительная платформа хранения данных на уровне блоков с открытым исходным кодом.
- Билл Чайлдерс, OpenFiler: сетевое устройство хранения данных с открытым исходным кодом , выпуск журнала Linux 181, май 2009 г.
- Эррол Нил, SSD + ZFS/bcache/EnhanceIO + SCST = гибридный массив хранения данных? , ha-guru.com, 22 июля 2014 г.