stringtranslate.com

LIO (целевой SCSI)

Linux -IO Target (LIO) — это реализация интерфейса SCSI с открытым исходным кодом , входящая в состав ядра Linux . [1]

В отличие от инициаторов, которые начинают сеансы, LIO функционирует как цель, представляя один или несколько логических номеров устройств (LUN) инициатору SCSI , получая команды SCSI и управляя передачей входных/выходных данных. [2]

LIO поддерживает широкий спектр протоколов хранения и транспортных фабрик, включая, помимо прочего, Fibre Channel over Ethernet (FCoE), Fibre Channel , IEEE 1394 и iSCSI . [3]

Он используется в нескольких дистрибутивах Linux и является популярным выбором для облачных сред благодаря своей интеграции с такими инструментами, как QEMU / KVM , libvirt и OpenStack . [4]

Проект LIO поддерживается Datera, Inc. , [ сомнительнообсудить ] поставщиком решений для хранения данных из Кремниевой долины. 15 января 2011 года LIO был объединен с основной веткой ядра Linux с версией 2.6.38, которая была официально выпущена 14 марта 2011 года. [5] [6] Последующие версии ядра Linux представили дополнительные модули fabric для расширения его совместимости. [ необходима цитата ]

LIO конкурирует с другими целевыми модулями SCSI в экосистеме Linux. SCSI Target Framework (SCST) [7] является выдающейся альтернативой для общей функциональности цели SCSI, в то время как для целей, специфичных для iSCSI, старые iSCSI Enterprise Target (IET) и SCSI Target Framework (STGT) также получили отраслевое признание. [8] [9]

Фон

Стандарт SCSI обеспечивает расширяемую семантическую абстракцию для устройств хранения данных компьютера и используется с системами хранения данных. Стандарты SCSI T10 [10] определяют команды [11] и протоколы процессора команд SCSI (отправляемые в SCSI CDB ), а также электрические и оптические интерфейсы для различных реализаций.

Инициатор SCSI — это конечная точка, которая инициирует сеанс SCSI . Цель SCSI — это конечная точка, которая ждет команд инициатора и выполняет требуемые передачи данных ввода-вывода . Цель SCSI обычно экспортирует один или несколько LUN для работы инициаторов.

LIO Linux SCSI Target реализует универсальную цель SCSI, которая обеспечивает удаленный доступ к большинству типов устройств хранения данных по всем распространенным структурам хранения и протоколам. LIO не имеет прямого доступа к данным и не взаимодействует напрямую с приложениями.

Архитектура

Архитектура ЛИО

LIO реализует модульную и расширяемую архитектуру вокруг параллельного механизма обработки команд SCSI. [12]

Целевой движок LIO SCSI не зависит от конкретных модулей фабрики или типов backstore. Таким образом, LIO поддерживает одновременное смешивание и сопоставление любого количества фабрик и backstore. Целевой движок LIO SCSI реализует комплексный набор функций SPC-3/SPC-4 [13] с поддержкой высокопроизводительных функций, включая SCSI-3/SCSI-4 Persistent Reservations (PRs), SCSI-4 Asymmetric Logical Unit Assignment (ALUA), VMware vSphere APIs for Array Integration (VAAI), [14] T10 DIF и т. д.

LIO настраивается через API ядра на основе configfs [15] и может управляться через интерфейс командной строки и API ( targetcli ).

SCSI-цель

Концепция цели SCSI не ограничивается физическими устройствами на шине SCSI, а вместо этого предоставляет обобщенную модель для всех приемников на логической структуре SCSI. Это включает сеансы SCSI через межсоединения без какой-либо физической шины SCSI вообще. Концептуально цель SCSI предоставляет общую службу или сервер блочного хранения в этом сценарии.

Back-stores

Back-stores предоставляют SCSI-цели обобщенный доступ к устройствам хранения данных, импортируя их через соответствующие драйверы устройств. Back-stores не обязательно должны быть физическими устройствами SCSI.

Наиболее важными типами носителей для резервного копирования являются:

В результате LIO предоставляет обобщенную модель для экспорта блочного хранилища.

Тканевые модули

Модули Fabric реализуют front-end цели SCSI путем инкапсуляции и абстрагирования свойств различных поддерживаемых соединений. Доступны следующие модули Fabric.

FCoE

Комбинированное хранилище и локальная вычислительная сеть

Модуль Fibre Channel over Ethernet (FCoE) позволяет транспортировать трафик протокола Fibre Channel (FCP) через сети Ethernet без потерь . Спецификация, поддерживаемая большим количеством поставщиков сетей и систем хранения, является частью стандарта Технического комитета T11 FC-BB-5. [16]

LIO поддерживает все стандартные сетевые карты Ethernet.

Модуль FCoE Fabric был предоставлен Cisco и Intel и выпущен вместе с Linux 3.0 21 июля 2011 года. [17]

Оптоволоконный канал

Fibre Channel — это высокоскоростная сетевая технология, в основном используемая для сетей хранения данных. Она стандартизирована в Техническом комитете T11 [18] Международного комитета по стандартам информационных технологий (INCITS).

Модуль QLogic Fibre Channel Fabric поддерживает скорости 4 и 8 гигабит со следующими HBA:

Модуль Fibre Channel Fabric [19] и драйвер низкого уровня [20] (LLD) были выпущены вместе с Linux 3.5 21 июля 2012 года. [21]

В Linux 3.9 также поддерживаются следующие QLogic HBA и CNA:

Это делает LIO первым решением с открытым исходным кодом, поддерживающим 16-гигабитный Fibre Channel.

IEEE 1394

LIO Firewire Target для Mac OS X

Модуль FireWire SBP-2 позволяет Linux экспортировать локальные устройства хранения данных через IEEE 1394 , чтобы другие системы могли монтировать их как обычные устройства хранения данных IEEE 1394.

IEEE 1394 — это стандарт интерфейса последовательной шины для высокоскоростной связи и изохронной передачи данных в реальном времени. Он был разработан Apple как «FireWire» в конце 1980-х и начале 1990-х годов, а компьютеры Macintosh поддерживают «режим целевого диска FireWire» с 1999 года. [22]

Модуль FireWire SBP-2 Fabric был выпущен вместе с Linux 3.5 21 июля 2012 года. [21] [23]

iSCSI

Модуль коммутационной матрицы iSCSI ( Internet Small Computer System Interface ) позволяет передавать трафик SCSI по стандартным IP-сетям.

iSCSI используется для упрощения передачи данных по интрасетям и управления хранением на больших расстояниях, осуществляя сеансы SCSI по IP-сетям. iSCSI может использоваться для передачи данных по локальным вычислительным сетям (LAN), глобальным вычислительным сетям (WAN) или Интернету, а также может обеспечивать хранение и извлечение данных независимо от местоположения и прозрачно для местоположения.

Модуль LIO iSCSI Fabric также реализует ряд расширенных функций iSCSI, которые повышают производительность и отказоустойчивость, например, несколько подключений на сеанс (MC/S) и уровни восстановления после ошибок 0–2 (ERL=0,1,2).

LIO поддерживает все стандартные сетевые карты Ethernet.

Модуль iSCSI Fabric был выпущен вместе с Linux 3.1 24 октября 2011 года. [24]

iSER

Сети, поддерживающие удаленный прямой доступ к памяти (RDMA), могут использовать модуль структуры iSCSI Extensions for RDMA (iSER) для транспортировки трафика iSCSI . iSER позволяет передавать данные напрямую в буферы памяти удаленного компьютера SCSI и из них без промежуточных копий данных ( прямое размещение данных или DDP) с помощью RDMA. [25] RDMA поддерживается в сетях InfiniBand , в сетях Ethernet с мостами центров обработки данных (DCB) через RDMA через конвергентный Ethernet (RoCE) и в стандартных сетях Ethernet с улучшенными контроллерами разгрузки TCP iWARP .

Модуль iSER Fabric был разработан совместно компаниями Datera и Mellanox Technologies и впервые выпущен в Linux 3.10 30 июня 2013 года. [26]

СРП

Модуль структуры протокола SCSI RDMA (SRP) позволяет транспортировать трафик SCSI через сети RDMA (см. выше). По состоянию на 2013 год SRP использовался шире, чем iSER, хотя он и более ограничен, поскольку SCSI является только одноранговым протоколом, тогда как iSCSI полностью маршрутизируется. Модуль структуры SRP поддерживает следующие адаптеры каналов хоста Mellanox (HCA):

Модуль SRP Fabric был выпущен вместе с Linux 3.3 18 марта 2012 года. [27]

В 2012 году журнал c't измерил пропускную способность почти 5000 МБ/с с LIO SRP Target через один порт Mellanox ConnectX-3 в режиме FDR 56 Гбит/с на системе Sandy Bridge PCI Express 3.0 с четырьмя картами флэш-памяти Fusion-IO ioDrive PCI Express.

USB

Модуль USB Gadget Fabric позволяет Linux экспортировать локальные устройства хранения данных через универсальную последовательную шину (USB), чтобы другие системы могли монтировать их как обычные устройства хранения данных.

USB был разработан в середине 1990-х годов для стандартизации подключения компьютерных периферийных устройств , а также стал общепринятым для устройств хранения данных.

Модуль USB Gadget Fabric был выпущен вместе с Linux 3.5 21 июля 2012 года. [28]

Targetcli

targetcli — это интерфейс командной строки (CLI) для управления одним узлом в пользовательском пространстве для LIO. [29] Он поддерживает все модули фабрики и основан на модульной расширяемой архитектуре с подключаемыми модулями для дополнительных модулей фабрики или функциональности.

targetcli предоставляет CLI, который использует базовую универсальную целевую библиотеку через четко определенный API. Таким образом, CLI может быть легко заменен или дополнен пользовательским интерфейсом с другими метафорами, такими как GUI.

targetcli реализован на Python и состоит из трех основных модулей:

Подробные инструкции по настройке целей LIO можно найти на вики LIO. [29]

Дистрибутивы Linux

targetcli и LIO включены в большинство дистрибутивов Linux по умолчанию. Вот обзор самых популярных из них, вместе с первоначальными датами включения:

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

Примечания

  1. ^ Выпуск дистрибутива, в который LIO был включен первым.
  2. ^ RHEL 6 включал LIO, но он был по умолчанию только для целей FCoE, тогда как STGT использовался для iSCSI. В RHEL 7 beta LIO является по умолчанию для FCoE, iSCSI и Mellanox InfiniBand iSER/SRP. [31]

Ссылки

  1. ^ Цель. 323328-001. linux-iscsi.org. 2012-10-23 . Получено 2012-12-25 .
  2. ^ RFC 7144 — Требования и последствия интерфейса iSCSI для центров обработки данных (апрель 2014 г.)
  3. ^ RFC 7144 — Требования и последствия интерфейса iSCSI для центров обработки данных (апрель 2014 г.)
  4. ^ "Рассказ о двух целях SCSI". Lwn.net. Архивировано из оригинала 2014-02-02. Получено 2014-01-20.
  5. ^ Линус Торвальдс (14.01.2011). "Тривиальное слияние". Kernel.org . Получено 28.09.2019 .
  6. ^ Торстен Лимхейс (2 марта 2011 г.). «Журнал ядра: появится в версии 2.6.38 (Часть 4) — Хранилище». Хейзе Онлайн.
  7. ^ "Рассказ о двух целях SCSI". Lwn.net. Архивировано из оригинала 2014-02-02 . Получено 2014-01-20 .
  8. ^ Хаас, Флориан (май 2012 г.). «Реплицируйте все! Высокодоступное хранилище iSCSI с DRBD и Pacemaker». Linux Journal . Архивировано из оригинала 2014-01-20 . Получено 28-09-2019 .
  9. ^ Болховитин, Владислав (2018-04-11). "SCST vs STGT". Generic SCSI Target Subsystem for Linux . Получено 2019-04-01 .
  10. ^ Технический комитет T10. "Интерфейсы хранения SCSI". t10.org . Получено 24.12.2012 .{{cite web}}: CS1 maint: numeric names: authors list (link)
  11. ^ Справочное руководство по командам SCSI (PDF) . 100293068, Rev. C. Scotts Valley: Seagate Technology. Апрель 2010 г. Архивировано из оригинала (PDF) 2012-07-31 . Получено 2012-12-25 .
  12. ^ Беллинджер, Николас (2009). Текущее состояние и будущее iSCSI на платформе Linux (PDF) . Конференция Linux Plumbers.
  13. ^ Ральф Вебер (17.01.2011). "Основные команды SCSI - 4 (SPC-4)". t10.org . Получено 07.03.2011 .
  14. ^ LIO Linux SCSI Target (2012-12-23). ​​"VAAI". linux-iscsi.org . Получено 2012-12-25 .
  15. ^ Джонатан Корбет (2005-08-24). "Configfs - введение". lwn.net . Получено 2011-03-07 .
  16. ^ "Fibre Channel: Backbone - 5 revision 2.00" (PDF) . Американский национальный стандарт по информационным технологиям, Техническая группа T11 Международного комитета по стандартам информационных технологий . 4 июня 2009 г. Получено 05.05.2011 .
  17. ^ Линус Торвальдс (2011-04-18). "[SCSI] tcm_fc: Добавление поставщика FC_FC4 (tcm_fc) для поддержки цели FCoE (TCM - целевое ядро)". Kernel.org . Получено 2019-09-28 .
  18. ^ "T11 Home Page". t11.org . Получено 2012-12-25 .
  19. ^ Линус Торвальдс (15.05.2012). "[SCSI] tcm_qla2xxx: Добавить модуль структуры серии >= 24xx для целевого ядра". Kernel.org . Получено 28.09.2019 .
  20. ^ Линус Торвальдс (15.05.2012). "[SCSI] qla2xxx: Добавить инфраструктуру целевого режима LLD для серий >= 24xx". Kernel.org . Получено 28.09.2019 .
  21. ^ аб Торстен Лимхейс (3 июля 2012 г.). «Журнал ядра: появление версии 3.5 (Часть 2) — Файловые системы и хранилище». Хейзе онлайн . Проверено 14 января 2013 г.
  22. ^ "Как использовать и устранять неполадки в режиме целевого диска FireWire". apple.com . Получено 24.12.2012 .
  23. ^ Линус Торвальдс (15.04.2012). "sbp-target: Начальное слияние поддержки режима цели firewire/ieee-1394". Kernel.org . Получено 28.09.2019 .
  24. ^ Линус Торвальдс (27.07.2011). "iSCSI merge". Kernel.org . Получено 28.09.2019 .
  25. ^ RFC  5041
  26. ^ Линус Торвальдс (2013-04-30). "Объединить ветку 'for-next-merge'". Kernel.org . Получено 2019-09-28 .
  27. ^ Линус Торвальдс (18.01.2012). "InfiniBand/SRP merge". Kernel.org . Получено 28.09.2019 .
  28. ^ "Объединить ветку 'usb-target-merge'". Kernel.org . Получено 28.09.2019 .
  29. ^ ab LIO Linux SCSI Target (2012-12-09). "Targetcli". linux-iscsi.org. Архивировано из оригинала 2013-03-02 . Получено 2012-12-25 .
  30. ^ Джером Мартин (2011-08-03). "Пакет rtslib". daterainc.com . Получено 2012-12-25 .
  31. ^ "Глава 6. Хранение". Access.redhat.com . Получено 2014-01-20 .

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