LIO (alvo SCSI) - LIO (SCSI target)

LIO Target
LIO Target - targetcli screenshot.png
LIO Linux SCSI Target
Autor (es) original (is) Nicholas Bellinger
Jerome Martin
Desenvolvedor (s) Datera, Inc.
lançamento inicial 14 de janeiro de 2011 ( 14/01/2011 )
Repositório github .com / open-iscsi
Escrito em C, Python
Sistema operacional Linux
Disponível em C, Python
Modelo Armazenamento em bloco
Licença GNU General Public License
Local na rede Internet linux-iscsi .org

Na computação, o Linux-IO ( LIO ) Target é uma implementação de código aberto do destino SCSI que se tornou o padrão incluído no kernel do Linux . Internamente, o LIO não inicia sessões, mas em vez disso fornece um ou mais números de unidade lógica (LUNs), aguarda comandos SCSI de um iniciador SCSI e executa as transferências de dados de entrada / saída necessárias. LIO oferece suporte a estruturas de armazenamento comuns, incluindo FCoE , Fibre Channel , IEEE 1394 , iSCSI , extensões iSCSI para RDMA (iSER), protocolo SCSI RDMA (SRP) e USB . Ele está incluído na maioria das distribuições Linux ; o suporte nativo para LIO em QEMU / KVM , libvirt e OpenStack torna o LIO também uma opção de armazenamento para implantações em nuvem.

O LIO é mantido pela Datera, Inc., um fornecedor de sistemas e software de armazenamento do Vale do Silício . Em 15 de janeiro de 2011, o mecanismo de destino LIO SCSI foi mesclado com a linha principal do kernel Linux , na versão 2.6.38 do kernel, lançada em 14 de março de 2011. Módulos de malha adicionais foram mesclados em versões Linux subsequentes.

Um módulo de destino SCSI genérico concorrente para Linux é o SCST . Para o propósito mais restrito de fornecer um alvo Linux iSCSI , os módulos IET ("iSCSI Enterprise Target") e STGT ("SCSI Target Framework") mais antigos também contam com suporte da indústria.

Fundo

O padrão SCSI fornece uma abstração semântica extensível para dispositivos de armazenamento de dados de computador e, como tal, tornou-se uma " língua franca " para sistemas de armazenamento de dados. Os padrões SCSI T10 definem os comandos e protocolos do processador de comandos SCSI (enviados em CDBs SCSI ) e as interfaces elétricas e ópticas para várias implementações.

Um iniciador SCSI é o ponto de extremidade que inicia uma sessão SCSI . Um destino SCSI é o nó de extremidade que aguarda os comandos do iniciador e executa as transferências de dados de E / S necessárias . O destino SCSI geralmente exporta um ou mais LUNs para os iniciadores operarem.

O LIO Linux SCSI Target implementa um destino SCSI genérico que fornece acesso remoto à maioria dos tipos de dispositivos de armazenamento de dados em todas as malhas e protocolos de armazenamento predominantes. O LIO não acessa diretamente os dados nem se comunica diretamente com os aplicativos. LIO fornece uma abstração altamente eficiente, independente e transparente de malha para a semântica de vários tipos de dispositivos de armazenamento de dados.

Arquitetura

Image
Arquitetura LIO

LIO implementa uma arquitetura modular e extensível em torno de um mecanismo de processamento de comandos SCSI paralelizado versátil e altamente eficiente. O mecanismo de destino SCSI implementa a semântica de um destino SCSI.

O mecanismo de destino LIO SCSI é independente de módulos de malha específicos ou tipos de backstore. Portanto, o LIO oferece suporte para misturar e combinar qualquer número de tecidos e backstores ao mesmo tempo. O mecanismo de destino LIO SCSI implementa um conjunto abrangente de recursos SPC-3 / SPC-4 com suporte para recursos de ponta, incluindo reservas persistentes SCSI-3 / SCSI-4 (PRs), Atribuição de unidade lógica assimétrica SCSI-4 (ALUA), APIs VMware vSphere para integração de matriz (VAAI), T10 DIF , etc.

LIO é configurável por meio de uma API de kernel baseada em configfs e pode ser gerenciado por meio de uma interface de linha de comando e API ( targetcli ).

Alvo SCSI

O conceito de destino SCSI não se restringe estritamente a dispositivos físicos em um barramento SCSI, mas fornece um modelo generalizado para todos os receptores em uma malha SCSI lógica. Isso inclui sessões SCSI em interconexões sem nenhum barramento SCSI físico. Conceitualmente, o destino SCSI fornece um serviço ou servidor de armazenamento em bloco genérico neste cenário.

Backstores

Os backstores fornecem ao destino SCSI acesso generalizado a dispositivos de armazenamento de dados, importando-os por meio de drivers de dispositivo correspondentes. Os backstores não precisam ser dispositivos SCSI físicos.

Os tipos de mídia de backstore mais importantes são:

  • Bloco : O driver de bloco permite o uso de dispositivos de bloco do Linux brutos como backstores para exportação via LIO. Isso inclui dispositivos físicos, como HDDs , SSDs , CDs / DVDs , discos RAM , etc., e dispositivos lógicos, como volumes RAID de software ou hardware ou volumes LVM .
  • Arquivo : O driver de arquivo permite usar arquivos que podem residir em qualquer sistema de arquivos Linux ou sistema de arquivos em cluster como backstores para exportação via LIO.
  • Raw : O driver raw permite o uso de memória não estruturada como backstores para exportação via LIO.

Como resultado, o LIO fornece um modelo generalizado para exportar armazenamento em bloco.

Módulos de tecido

Os módulos de malha implementam o front-end do destino SCSI encapsulando e abstraindo as propriedades das várias interconexões com suporte. Os seguintes módulos de malha estão disponíveis.

FCoE

Image
Armazenamento combinado e rede local

O módulo de malha Fibre Channel over Ethernet (FCoE) permite o transporte de tráfego de protocolo Fibre Channel (FCP) em redes Ethernet sem perdas . A especificação, suportada por um grande número de fornecedores de rede e armazenamento, faz parte do padrão Comitê Técnico T11 FC-BB-5.

LIO oferece suporte a todos os NICs Ethernet padrão.

O módulo de malha FCoE foi contribuído pela Cisco e Intel e lançado com o Linux 3.0 em 21 de julho de 2011.

Fibre Channel

Fibre Channel é uma tecnologia de rede de alta velocidade usada principalmente para redes de armazenamento. É padronizado no Comitê Técnico T11 do Comitê Internacional de Padrões de Tecnologia da Informação (INCITS).

O módulo de malha Fibre Channel QLogic suporta velocidades de 4 e 8 gigabits com os seguintes HBAs:

  • QLogic 2400 Series (QLx246x), 4GFC
  • QLogic 2500 Series (QLE256x), 8GFC (totalmente qualificado)

O módulo de malha Fibre Channel e o driver de baixo nível (LLD) foram lançados com o Linux 3.5 em 21 de julho de 2012.

Com o Linux 3.9, os seguintes HBAs e CNAs QLogic também são suportados:

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

Isso torna o LIO o primeiro destino de código aberto a oferecer suporte a Fibre Channel de 16 gigabit.

IEEE 1394

Image
LIO Firewire Target para Mac OS X

O módulo fabric FireWire SBP-2 permite que o Linux exporte dispositivos de armazenamento local via IEEE 1394 , para que outros sistemas possam montá-los como um dispositivo de armazenamento IEEE 1394 comum.

IEEE 1394 é um padrão de interface de barramento serial para comunicações de alta velocidade e transferência de dados isócrona em tempo real. Ele foi desenvolvido pela Apple como "FireWire" no final da década de 1980 e início da década de 1990, e os computadores Macintosh oferecem suporte ao "modo de disco de destino FireWire" desde 1999.

O módulo fabric FireWire SBP-2 foi lançado com o Linux 3.5 em 21 de julho de 2012.

iSCSI

O módulo de malha iSCSI ( Internet Small Computer System Interface ) permite o transporte de tráfego SCSI em redes IP padrão.

Ao transportar sessões SCSI em redes IP, o iSCSI é usado para facilitar as transferências de dados em intranets e para gerenciar o armazenamento em longas distâncias. O iSCSI pode ser usado para transmitir dados em redes locais (LANs), redes de longa distância (WANs) ou na Internet e pode permitir o armazenamento e recuperação de dados independentes e transparentes do local.

O módulo LIO iSCSI fabric também implementa vários recursos iSCSI avançados que aumentam o desempenho e a resiliência, como conexões múltiplas por sessão (MC / S) e níveis de recuperação de erro 0-2 (ERL = 0,1,2).

LIO oferece suporte a todos os NICs Ethernet padrão.

O módulo de malha iSCSI foi lançado com o Linux 3.1 em 24 de outubro de 2011.

iSER

As redes que oferecem suporte ao acesso remoto direto à memória (RDMA) podem usar o módulo de malha iSCSI Extensions for RDMA (iSER) para transportar o tráfego iSCSI . O iSER permite que os dados sejam transferidos diretamente para dentro e para fora dos buffers de memória do computador SCSI remoto sem cópias intermediárias de dados ( colocação direta de dados ou DDP) usando RDMA. O RDMA é compatível com redes InfiniBand , em Ethernet com redes de data center bridging (DCB) por meio de RDMA sobre Ethernet Convergente (RoCE) e em redes Ethernet padrão com controladores de mecanismo de descarregamento TCP aprimorados iWARP .

O módulo de fabric iSER foi desenvolvido em conjunto pela Datera e Mellanox Technologies e lançado pela primeira vez com o Linux 3.10 em 30 de junho de 2013.

SRP

O módulo de malha SCSI RDMA Protocol (SRP) permite o transporte de tráfego SCSI através de redes RDMA (veja acima). Em 2013, o SRP era mais amplamente usado do que o iSER, embora seja mais limitado, já que o SCSI é apenas um protocolo ponto a ponto, enquanto o iSCSI é totalmente roteável. O módulo de malha SRP suporta os seguintes adaptadores de canal de host Mellanox (HCAs):

  • Mellanox ConnectX-2 VPI PCIe Gen2 HCAs (x8 pistas), porta única / dupla QDR 40 Gbit / s
  • Mellanox ConnectX-3 VPI PCIe Gen3 HCAs (x8 pistas), porta única / dupla FDR 56 Gbit / s
  • Mellanox ConnectX-IB PCIe Gen3 HCAs (x16 pistas), porta única / dupla FDR 56 Gbit / s

O módulo de malha SRP foi lançado com Linux 3.3 em 18 de março de 2012.

Em 2012, a c't magazine mediu quase 5000 MB / s de throughput com LIO SRP Target em uma porta Mellanox ConnectX-3 no modo FDR de 56 Gbit / s em um sistema Sandy Bridge PCI Express 3.0 com quatro memórias flash Fusion-IO ioDrive PCI Express cartões.

USB

O módulo de malha USB Gadget permite que o Linux exporte dispositivos de armazenamento local via Universal Serial Bus (USB), para que outros sistemas possam montá-los como um dispositivo de armazenamento comum.

O USB foi projetado em meados da década de 1990 para padronizar a conexão de periféricos de computador e também se tornou comum para dispositivos de armazenamento de dados.

O módulo de malha USB Gadget foi lançado com o Linux 3.5 em 21 de julho de 2012.

targetcli

targetcli é uma interface de linha de comando (CLI) de gerenciamento de nó único de espaço do usuário para LIO. Ele suporta todos os módulos de malha e é baseado em uma arquitetura modular extensível, com módulos de plug-in para módulos de malha adicionais ou funcionalidade.

targetcli fornece uma CLI que usa uma biblioteca de destino genérica subjacente por meio de uma API bem definida. Assim, a CLI pode ser facilmente substituída ou complementada por uma IU com outras metáforas, como uma GUI.

targetcli é implementado em Python e consiste em três módulos principais:

  • o rtslib e API subjacentes .
  • o configshell , que encapsula os atributos específicos da malha nos arquivos 'spec' correspondentes.
  • o próprio shell targetcli .

Instruções detalhadas sobre como configurar destinos LIO podem ser encontradas no wiki LIO.

Distribuições Linux

targetcli e LIO estão incluídos na maioria das distribuições Linux por padrão. Aqui está uma visão geral sobre os mais populares, juntamente com as datas de inclusão inicial:

Distribuição Versão Liberar Arquivo Instalação Fonte git Documentação
Alpine Linux 2,5 07-11-2011 Espelho Alpine Linux apk add targetcli-fb targetcli-fb.git Como
CentOS 6,2 20/12/2011 Espelho CentOS su -c 'yum install fcoe-target-utils' targetcli-fb.git Notas Técnicas
Debian 7.0 (" chiado ") 04/05/2013 Pool Debian su -c 'apt-get install targetcli' targetcli.git LIO Wiki
Fedora 16 08/11/2011 Fedora Rawhide su -c 'yum install targetcli' targetcli-fb.git Wiki de destino
openSUSE 12,1 08/11/2011 Requer instalação manual de repositórios Datera targetcli.git .
RHEL 6,2 16/11/2011 Fedora Rawhide su -c 'yum install fcoe-target-utils' targetcli-fb.git Notas Técnicas
Scientific Linux 6,2 16/02/2012 SL Mirror su -c 'yum install fcoe-target-utils' targetcli-fb.git Notas Técnicas
SLES 11 SP3 MR 2013-12 - su -c 'zypper in targetcli' targetcli.git LIO Wiki
Ubuntu 12.04 LTS (preciso) 26/04/2012 Universo Ubuntu sudo apt-get install targetcli targetcli.git LIO Wiki

Veja também

Notas

Referências

links externos