Лио цель

Материал из wikixw
Перейти к навигации Перейти к поиску

В вычислении цель Linux-IO (LIO) является реализацией с открытым исходным кодом цели SCSI, которая стала стандартной, включенной в ядро Linux .[1] [требуется лучший источник] внутри LIO не инициирует сеансы, а вместо этого предоставляет один или несколько логических номеров единиц (LUNs), ждет команд SCSI от инициатора SCSI и выполняет необходимые передачи входных/выходных данных. LIO поддерживает общие ткани хранения , включая FCoE , канал волокна , IEEE 1394 , iSCSI, расширения iSCSI для RDMA (iSER), протокол RDMA SCSI (SRP) и USB . Он включен в большинство дистрибутивов Linux; встроенная поддержка LIO в QEMU / KVM , libvirt и OpenStack делает LIO также опцией хранения для облачных развертываний.

LIO поддерживается Datera, Inc., поставщик систем хранения и программного обеспечения в Силиконовой долине. 15 января 2011 LIO SCSI target engine был объединен в магистраль ядра Linux , в версии ядра 2.6.38, , которая была выпущена 14 марта 2011. Дополнительные модули fabric были объединены в последующие версии Linux.

Конкурирующим универсальным целевым модулем SCSI для Linux является SCST . для более узкой цели , обеспечивающей цель iSCSI Linux, более старые модули IET ("iSCSI Enterprise Target") и stgt ("SCSI Target Framework") также пользуются поддержкой отрасли.

Фон[править]

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

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

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

Архитектура[править]

LIO реализует модульную и расширяемую архитектуру вокруг универсального и высокоэффективного параллелизованного механизма обработки команд SCSI. Целевой механизм SCSI реализует семантику целевого объекта SCSI.

Целевой механизм LIO SCSI не зависит от конкретных модулей структуры или типов хранилища. Таким образом, LIO поддерживает смешивать и соответствовать любое количество тканей и backstores в тоже время. Лио SCSI целевым двигателя реализует комплексный КСП-3/ППК-4[12] характеристика с поддержкой более высокого класса функций, включая интерфейс SCSI-3/SCSI устройств 4 постоянного резервирования (ор), с интерфейсом SCSI-4 асимметричной логической единицы назначения (Алуа), в VMware для vSphere API для интеграции массива (ВААИ),[13] Т10 диф, и т. д.

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

Цель SCSI[править]

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

Backstores[править]

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

Наиболее важными типами носителей backstore являются:

  • Block: драйвер блока позволяет использовать необработанные блочные устройства Linux в качестве backstores для экспорта через LIO. Это включает в себя физические устройства, такие как жесткие диски , твердотельные накопители , компакт-диски / DVD-диски , RAM-диски и т.д. логические устройства, такие как программные или аппаратные Тома RAID или Тома LVM.
  • Файл: драйвер файла позволяет использовать файлы, которые могут находиться в любой файловой системе Linux или кластерной файловой системе в качестве хранилищ для экспорта через LIO.
  • Raw: драйвер raw позволяет использовать неструктурированную память в качестве backstores для экспорта через LIO.

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

Модули ткани[править]

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

FCoE

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

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

Модуль ткани FCoE был внесен Cisco и Intel, и выпущен с Linux 3.0 21 июля 2011.[16]]

Волоконный канал[править]

Fibre Channel-это высокоскоростная сетевая технология, в основном используемая для сетей хранения данных. Он стандартизирован в техническом комитете Т11 [17] Международного Комитета по стандартам информационной технологии (МКИТС).

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

  • Серия QLogic 2400 (QLx246x), 4GFC
  • Серия QLogic 2500 (QLE256x), 8GFC (полно qual'D)

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

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

  • Серия QLogic 2600 (QLE266x), 16GFC, SR-IOV
  • Серия QLogic 8300 (QLE834x), 16GFS / 10 GbE, PCIe Gen3 SR-IOV
  • Серия QLogic 8100 (QLE81xx), 8GFC / 10 GbE, PCIe Gen2

Это делает LIO первой целью с открытым исходным кодом для поддержки 16-гигабитного оптоволоконного канала.

IEEE 1394[править]

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

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

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

iSCSI[править]

Модуль ткани интерфейса компьютерной системы Интернета Малый (iSCSI ) позволяет переходу движения SCSI через стандартные сети IP.

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

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

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

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

iSER[править]

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

Модуль iser fabric был разработан совместно Datera и Mellanox Technologies и впервые выпущен с Linux 3.10 30 июня 2013 года.

SRP[править]

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

  • Mellanox ConnectX-2 VPI PCIe Gen2 HCAs (X8 полос), однопортовый QDR 40 Гбит / с
  • Mellanox ConnectX-3 VPI PCIe Gen3 HCAs (X8 lanes), однопортовый / двухпортовый FDR 56 Гбит / с
  • Mellanox ConnectX-IB PCIe Gen3 HCAs (x16 Майн), одиночный / двойн-порт FDR 56 Gbit / s

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

В 2012 году журнал c't измерил пропускную способность почти 5000 Мбит/с с Lio SRP Target через один порт Mellanox ConnectX-3 в режиме 56 Гбит/с FDR на системе 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 года.

targetcli[править]

targetcli-это интерфейс командной строки управления одним узлом пользовательского пространства (CLI) для LIO. он поддерживает все модули fabric и основан на модульной расширяемой архитектуре с подключаемыми модулями для дополнительных модулей fabric или функциональных возможностей.

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

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

  • базовый rtslib и API.
  • configshell, который инкапсулирует атрибуты, относящиеся к ткани, в соответствующие файлы "spec".
  • сама оболочка targetcli.

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

Дистрибутивы Linux[править]

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

Распределение Версия свободная архив установка Тисточник ГИТ документация
Альпина 2.5 2011-11-07 зеркало alpine apk add targetcli-fb github./target ЧАВО
CentOS 6.2 2011-12-20 centos мирор su -c 'yum install fcoe-target-utils' github./target тех примечание
debian 7.0 2013-05-04 /pooL su -c 'apt-get install targetcli' github./target li.o/wiki
Фетровая 16 2011-11-08 fedora su -c 'yum install targetcli' github.target wikiTarget
openSUSE 12.1 2011-11-08 Т Т githubtargeti Т
RHEL 6.2 2011-11-16 .fedorapr su -c 'yum install fcoe-target-utils' github./target _technical_notes
учёный Linux 6.2 2012-02-16 /mirror. su -c 'yum install fcoe-target-utils' github./target Technical_Notes/]
SLES 11 SP3 MR 2013-12 Т su -c 'zypper in targetcli' https://github.com/Datera/targetcli /github./target /lоg/wiki/
Убунту 12.04 LTS 2012-04-26 .ubuntu. sudo apt-get install targetcli /github./target /li/wiki

См. также[править]

Пруф[править]

.linux-iscsi.org