LIO (alvo SCSI) - LIO (SCSI target)
|
LIO Linux SCSI Target
| |
| Autor (es) original (is) | Nicholas Bellinger Jerome Martin |
|---|---|
| Desenvolvedor (s) | Datera, Inc. |
| lançamento inicial | 14 de janeiro de 2011 |
| Repositório | github |
| 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 |
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
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
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
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
- A pilha de software de destino SCST Linux SCSI
- Fibre Channel
- Fibre Channel over Ethernet (FCoE)
- IEEE 1394 / Firewire
- InfiniBand
- iSCSI
- Extensões iSCSI para RDMA (iSER)
- Protocolo SCSI RDMA (SRP)
- USB
Notas
Referências
links externos
- Website oficial
- Site da Datera
| Linha do tempo LIO | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Liberar | Detalhes | 2011 | 2012 | 2013 | 2014 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ||||||||||
| 4.x | Versão | 4,1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Recurso | Núcleo Alvo | Loopback | FCoE | iSCSI | Perf |
SRP |
CM WQ |
FC USB 1393 |
vHost | Perf | Diversos | 16 GFC | iSER | Diversos | VAAI | Diversos |
DIF Ref's NPIV |
iSER DIF | |||||||||||||||||||||||||||||||||||||||
| Linux | 2.6.38 | 2.6.39 | 3,0 | 3,1 | 3,2 | 3,3 | 3,4 | 3,5 | 3,6 | 3,7 | 3,8 | 3,9 | 3,10 | 3,11 | 3,12 | 3,13 | 3,14 | 3,15 | |||||||||||||||||||||||||||||||||||||||