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 предоставляет общую службу или сервер блочного хранения в этом сценарии.
Back-stores предоставляют SCSI-цели обобщенный доступ к устройствам хранения данных, импортируя их через соответствующие драйверы устройств. Back-stores не обязательно должны быть физическими устройствами SCSI.
Наиболее важными типами носителей для резервного копирования являются:
В результате LIO предоставляет обобщенную модель для экспорта блочного хранилища.
Модули Fabric реализуют front-end цели SCSI путем инкапсуляции и абстрагирования свойств различных поддерживаемых соединений. Доступны следующие модули Fabric.
Модуль 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.
Модуль 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 ( 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]
Сети, поддерживающие удаленный прямой доступ к памяти (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 Gadget Fabric позволяет Linux экспортировать локальные устройства хранения данных через универсальную последовательную шину (USB), чтобы другие системы могли монтировать их как обычные устройства хранения данных.
USB был разработан в середине 1990-х годов для стандартизации подключения компьютерных периферийных устройств , а также стал общепринятым для устройств хранения данных.
Модуль USB Gadget Fabric был выпущен вместе с Linux 3.5 21 июля 2012 года. [28]
targetcli — это интерфейс командной строки (CLI) для управления одним узлом в пользовательском пространстве для LIO. [29] Он поддерживает все модули фабрики и основан на модульной расширяемой архитектуре с подключаемыми модулями для дополнительных модулей фабрики или функциональности.
targetcli предоставляет CLI, который использует базовую универсальную целевую библиотеку через четко определенный API. Таким образом, CLI может быть легко заменен или дополнен пользовательским интерфейсом с другими метафорами, такими как GUI.
targetcli реализован на Python и состоит из трех основных модулей:
Подробные инструкции по настройке целей LIO можно найти на вики LIO. [29]
targetcli и LIO включены в большинство дистрибутивов Linux по умолчанию. Вот обзор самых популярных из них, вместе с первоначальными датами включения:
{{cite web}}
: CS1 maint: numeric names: authors list (link)