Apple Mac e dispositivos sofisticados. LTO, SAS, Fibre Channel, eSATA

O tópico deste artigo é conectar dispositivos externos ao Mac por meio de interfaces SAS, Fibre Channel (FC) e eSATA. Faça imediatamente uma reserva de que, para resolver o problema de acesso a esses dispositivos, existe uma maneira saudável: montar um PC barato, instalar uma placa controladora HBA SAS ou FC (por exemplo, o adaptador LSI mais simples), conectar seus dispositivos a esse controlador, instalar qualquer Linux no PC e trabalhar do Mac através da rede. Mas é banal e desinteressante. Vamos seguir o caminho do hardcore e conectar nossos dispositivos diretamente ao Mac.

O que precisamos para isso:
- uma quantia decente de dinheiro para comprar novos equipamentos ou boa sorte em leilões no eBay (onde, com um pouco de esforço, você pode comprar o equipamento necessário das gerações anteriores 10 vezes mais barato que a lista de preços);
- Este artigo.

Para trabalhar com fita magnética (atualmente representada quase universalmente pelo formato LTO), você deve ter uma unidade de fita (unidade de fita) ou uma biblioteca de fitas do padrão LTO. Este é um dispositivo bastante caro para a compra inicial (de centenas de milhares de rublos), mas vale o dinheiro sensato ao comprar um usado. Como as gerações LTO mudam aproximadamente a cada dois anos e a compatibilidade é limitada a duas gerações, o mercado secundário está suficientemente saturado com dispositivos operáveis ​​de quatro anos ou mais, ou seja, o ano anterior e além. Se você compra um novo dispositivo para fins comerciais, entende por que precisa. Se você deseja comprar para casa e família, pode considerar esta opção como uma maneira de arquivar informações (já que a própria mídia é muito barata por 1 gigabyte).

A partir da geração LTO-5 (e na parte LTO-4), os dispositivos de fita magnética são conectados ao computador via interface SAS ou FC (geralmente existem duas versões de cada dispositivo)

Por outro lado, a Apple gentilmente nos fornece em nosso Mac Interface USB-C (funcionando via USB, Thunderbolt 3 ou protocolos DisplayPort), às vezes uma interface Ethernet, bem como adaptadores proprietários Thunderbolt 3 - Thunderbolt 2 e Thunderbolt - FireWire 800. Uma

situação desesperadora? Na verdade não. Felizmente, o barramento Thunderbolt pode operar no modo PCIe e fornecer a capacidade de conectar placas PCIe da mesma maneira como se fossem instaladas diretamente dentro da caixa do computador. Por esse motivo, são possíveis extensões para a configuração de hardware do Mac, haveria um adaptador e drivers apropriados.

A maneira conceitualmente mais simples de resolver o problema é usar uma caixa externa para adaptadores PCIe com interface Thunderbolt (sistema de expansão de placas PCIe), na qual você pode instalar um controlador (adaptador de barramento de host, HBA) SAS ou FC. Por exemplo, essas caixas são produzidas pela Sonnet e várias outras. Há uma nuance: nem todo controlador é adequado para nós, mas apenas temos um driver para o macOS. Existem apenas algumas dessas placas e as mais baratas e populares (por exemplo, o mesmo LSI) não estão incluídas em seu número. Felizmente, a Sonnet teve o problema de compilar uma tabela de compatibilidade de placas PCIe para vários sistemas operacionais por meio da interface Thunderbolt.

Outra solução é comprar um conversor pronto para o conversor de interface Thunderbolt-SAS ou Thunderbolt-FC, que, de fato, é um conjunto pronto da caixa e do controlador. A ATTO é mais conhecida nesta área , mas também são encontrados produtos de outras empresas.

Observe que nem todos os controladores SAS e FC são certificados para cumprir o padrão LTO, pois isso por si só custa dinheiro. Alguns fabricantes escrevem diretamente que a operação de seus controladores com unidades de fita não é fornecida.

Para completar, observamos que a empresa mLogic produz um dispositivo, que é uma unidade IBM LTO-8 em um caso externo, no qual o conversor SAS para Thunderbolt 3. é imediatamente integrado, o que é ainda mais exótico do que o exposto acima, especialmente pelos padrões de nossa área. Duvido que esse dispositivo possa ser legalmente importado para a Rússia (as unidades LTO contêm ferramentas criptográficas, e fabricantes como IBM e HP, por esse motivo, recebem permissão de importação FSB para cada modelo).

Além disso, consideraremos, por exemplo, um conjunto específico de equipamentos, cujo proprietário se tornou o autor como resultado de várias aquisições bem-sucedidas, mas o princípio geral deve ser mantido para todas as opções.

Portanto, temos o seguinte equipamento para trabalhar com fita:
- computador Apple Mac mini 2018 com macOS 10.15 Catalina, que possui portas USB-C com suporte para Thunderbolt 3;
- Adaptador Apple Thunderbolt 3 / Thunderbolt 2;
- cabo Apple Thunderbolt 2;
- conversor de interface ATTO ThunderLink SH 1068 (2 * Thunderbolt / 2 * SAS-2);
- cabo SAS SFF-8088 - SFF-8088;
- unidade de fita LTO-5 IBM TS2350;
- cartuchos LTO-5, cartucho de limpeza.

Agora, como eles dizem, com todo esse lixo, tentaremos decolar.

Baixe a versão mais recente do driver ThunderLink SH 1068 no site da ATTO (aparentemente, para nossa conveniência, ela é combinada com o driver SH 2068 e está localizada na seção 2068, que é gravada apenas dentro do próprio arquivo de driver) e no utilitário de configuração ATTO.

imagem

O driver, é claro, precisa ser instalado. Antes de tais ações, o autor recomenda sempre fazer uma captura instantânea do sistema de arquivos APFS do disco de inicialização com o comando

tmutil localsnapshot


ou uma cópia de backup do disco de inicialização, se houver HFS +. Você nunca sabe o que. Então será fácil reverter a partir de um instantâneo.

Além disso, inexperiente, mas mostrando a devida diligência, a mente sem dúvida estará inclinada a ler atentamente as instruções da ATTO para instalar o driver e executá-lo. O resultado é tadam! - deixamos o sistema operacional travado no estágio de inicialização. Aqui, podemos usar um instantâneo a partir do qual você pode se recuperar chamando Time Machine da partição de recuperação ou apagar manualmente um kext do catálogo de extensões do kernel da mesma partição de recuperação (o autor geralmente não recomenda fazer isso).

Por que isso acontece? Porque a Apple cuidou de nós. Nas versões recentes do macOS, não é fácil levar e incorporar códigos estranhos ao processo de inicialização. Bons programadores da Apple bloquearam esse comportamento destrutivo. Mais precisamente, eles o bloquearam pela metade quando a espera do driver é introduzida, mas o próprio driver não é, então tudo simplesmente trava.

O que uma mente sofisticada deve fazer antes de instalar um driver? Primeiro, dê o comando:

csrutil status


Se em resposta a isso obtivermos:

Status da Proteção de Integridade do Sistema: ativado.


isso significa que bons programadores da Apple cuidam de nós, de modo que nada acontecerá até que desligemos sua maravilhosa proteção. Para fazer isso, reinicializamos na partição de recuperação (⌘R), chamamos o terminal e executamos o comando:

csrutil disable


Depois disso, reinicializamos no sistema operacional e, em seguida, instalamos o driver e, ao mesmo tempo, o utilitário de configuração ATTO (em princípio, o utilitário de configuração é necessário apenas para diagnóstico e não é necessário durante a operação normal). No processo, quando solicitado, confirmamos a autorização ATTO nas configurações do sistema. Após a instalação, você pode reiniciar novamente na partição de recuperação e dar o comando

csrutil enable


A Apple cuida de nós novamente.

Agora, temos uma interface suportada por driver para dispositivos SAS externos (ou FC, se o conversor FC foi usado). Mas como trabalhar com a fita em um nível lógico?

Como é sabido por uma mente inexperiente, mas erudita, qualquer sistema compatível com Unix suporta unidades de fita no nível do kernel e os principais utilitários do sistema, que incluem principalmente mt (gerenciamento de fitas) e tar (um arquivador que suporta o trabalho com arquivos de fita) . No entanto, o que a mente sofisticada especificará? Qualquer sistema compatível com Unix, exceto o macOS . A Apple se preocupou conosco removendo o suporte para dispositivos de fita de seu código.

Mas é realmente impossível retornar esse código portando os utilitários de código-fonte aberto padrão para o macOS? A boa notícia é que a Tolis já fez isso (um link para o qual eu não forneço) em seu produto Tolis Tape Tools. A má notícia é que a referida empresa estima o uso dos resultados de seu trabalho em 399 dólares. As estimativas desse fato podem ser diferentes, mas o autor, pessoalmente, não está pronto para pagar a alguém 400 dólares por um código, na maioria das vezes escrito por pessoas completamente diferentes e usado abertamente desde a década de 1970, e, portanto, esta questão é para o autor. considera fechado. (A propósito, existe um projeto IOSCSITape gratuito sobre o mesmo tópico no github em um estado vago ).

Felizmente, existe uma corporação IBM no mundo cujos apetites comerciais são de uma escala completamente diferente e, portanto, não aparecem em todas as pequenas coisas. Em particular, ela desenvolveu o sistema de arquivos de fita LTFS de código aberto, que também é distribuído para o macOS.

Há uma nuance em que diferentes fabricantes de dispositivos de fita lançam suas próprias versões do LTFS que suportam seus dispositivos. Como o autor usa a unidade de fita IBM, o LTFS também foi instalado pela IBM. As unidades de terceiros podem precisar de suas próprias portas LTFS. E existe uma implementação universal do openLTFS no github e no homebrew.

É importante para nós que o LTFS use a função de partição de mídia e, portanto, possa trabalhar com dispositivos e cartuchos, começando com a geração LTO-5.

Portanto, no nosso caso, baixamos o produto IBM Spectrum Archive Single Drive Edition para macOS no site da IBM, que inclui apenas a implementação do LTFS. Sem nenhuma aventura, instalamos o produto com nosso próprio instalador. No processo, ele também instala o pacote FUSE e, nas configurações do sistema, você precisará confirmar a autorização de um programador inteligente chamado Anatol Pomozov, do qual, neste caso, toda a IBM depende. Respeito e respeito por essa pessoa.

É aconselhável escrever a linha imediatamente: /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local:

opção unidade única sync_type = time @ 1


especificando a montagem da fita por padrão com a redefinição do buffer de gravação após 1 minuto de inatividade (padrão 5 minutos).

imagem

Finalmente, tudo está pronto para se conectar. Conectamos a cadeia: adaptador Mac - T3 / T2 - cabo Thunderbolt - conversor ATTO - cabo SAS - unidade de fita (a escolha de várias portas no Mac, o conversor e a unidade não é importante). Ligue a energia do conversor. Ligue a energia da unidade de fita. Estamos aguardando a inicialização do drive por sua indicação.

Nós damos o comando:

ltfs -o device_list


Viva! Nós obtemos (da maneira usual de diagnóstico para a IBM):

307 LTFS14000I LTFS inicial, LTFS versão 2.4.2.0 (10418), nível de log 2.
307 LTFS14058I LTFS Format Specification versão 2.4.0.
307 LTFS14104I Lançado por "ltfs -o device_list".
307 LTFS14105I Este binário foi criado para o Mac OS X. A
versão do GCC do LT7147307 é a 4.2.1 Compatível com Apple Clang 4.1 ((tags / Apple / clang-421.11.66)).
307 LTFS17087I Versão do kernel: Darwin Kernel versão 19.4.0: quarta-feira, 4 de março 22:28:40 PST 2020; raiz: xnu-6153.101.6 ~ 15 / RELEASE_X86_64.
307 LTFS17085I Plugin: Carregando o backend de fita "iokit".
Lista de dispositivos de fita:.
Nome do dispositivo = 0, ID do fornecedor = IBM, ID do produto = ULT3580-TD5, Número de série = **********, Nome do produto = [ULT3580-TD5].


Nós inserimos o cartucho, aguardamos o download e o formato:

mkltfs -d 0 -nTest -r "size=10M/name=.DS_Store"


Aqui, o parâmetro -d especifica o número da unidade (sempre zero se for o único, mas não pode ser omitido deste comando), -n é o nome da fita (você pode omitir) e o parâmetro -r requer que o conteúdo dos arquivos .DS_Store não exceda o tamanho 10 megabytes, na seção de índice (ou seja, destinada a diretórios) da fita em vez da seção de dados.

A vida misteriosa na unidade de fita se foi. Estamos aguardando alguns minutos, temos a resposta:

LTFS15000I Starting mkltfs, LTFS version 2.4.2.0 (10418), log level 2.
LTFS15041I Launched by «mkltfs -d 0 -nTest -r size=10M/name=.DS_Store».
LTFS15042I This binary is built for Mac OS X.
LTFS15043I GCC version is 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
LTFS17087I Kernel version: Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Formatting device '0'.
LTFS15004I LTFS volume blocksize: 524288.
LTFS15005I Index partition placement policy: size=10M/name=.DS_Store.

LTFS11337I Update index-dirty flag (1) — NO_BARCODE (0x0x1021081e0).
LTFS17085I Plugin: Loading «iokit» tape backend.
LTFS30810I Opening a device through iokit driver (0).
LTFS30814I Vendor ID is IBM.
LTFS30815I Product ID is 'ULT3580-TD5 '.
LTFS30816I Firmware revision is H976.
LTFS30817I Drive serial is **********.
LTFS17160I Maximum device block size is 1048576.
LTFS11330I Loading cartridge.
LTFS30854I Logical block protection is disabled.
LTFS11332I Load successful.
LTFS17157I Changing the drive setting to write-anywhere mode.
LTFS15049I Checking the medium (mount).
LTFS30854I Logical block protection is disabled.
LTFS15010I Creating data partition b on SCSI partition 1.
LTFS15011I Creating index partition a on SCSI partition 0.
LTFS17165I Resetting the medium's capacity proportion.
LTFS11097I Partitioning the medium.
LTFS11100I Writing label to partition b.
LTFS11278I Writing index to partition b.
LTFS30808I READ_ATTR (0x8c) returns -20501.
LTFS30865I READ_ATTR returns Invalid Field in CDB (-20501) 0.
LTFS30836I Cannot read attribute (-20501).
LTFS11336I The attribute does not exist. Ignore the expected error.
LTFS17235I Writing index of NO_BARCODE to b (Reason: Format, 0 files) **********.
LTFS17236I Wrote index of NO_BARCODE (b, **********).
LTFS11337I Update index-dirty flag (0) — NO_BARCODE (0x0x1021081e0).
LTFS11100I Writing label to partition a.
LTFS11278I Writing index to partition a.
LTFS30808I READ_ATTR (0x8c) retorna -20501.
LTFS30865I READ_ATTR retorna Campo inválido no CDB (-20501) 0.
LTFS30836I Não é possível ler o atributo (-20501).
LTFS11336I O atributo não existe. Ignore o erro esperado.
LTFS17235I Gravando o índice de NO_BARCODE em um (Motivo: Formato, 0 arquivos) 9068025555.
LTFS17236I Gravou o índice de NO_BARCODE (a, **********).
LTFS15013I O UUID do volume é: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I A capacidade do volume é 1425 GB.
LTFS30854I A proteção de bloco lógico está desativada.
LTFS15024I Meio formatado com sucesso.


Monte a fita formatada:

sudo mkdir /Volumes/LTFS
sudo chmod 777 /Volumes/LTFS/
sudo ltfs /Volumes/LTFS


Temos mais alguns minutos de operação do inversor, diagnósticos:

307 LTFS14000I LTFS starting, LTFS version 2.4.2.0 (10418), log level 2.
307 LTFS14058I LTFS Format Specification version 2.4.0.
307 LTFS14104I Launched by «ltfs /Volumes/LTFS/».
307 LTFS14105I This binary is built for Mac OS X.
307 LTFS14106I GCC version is 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Kernel version: Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS14063I Sync type is «time», Sync time is 60 sec.
307 LTFS17085I Plugin: Loading «iokit» tape backend.
307 LTFS17085I Plugin: Loading «unified» iosched backend.
307 LTFS14095I Set the tape device write-anywhere mode to avoid cartridge ejection.
307 LTFS30810I Opening a device through iokit driver (0).
307 LTFS30814I Vendor ID is IBM.
307 LTFS30815I Product ID is 'ULT3580-TD5 '.
307 LTFS30816I Firmware revision is H976.
307 LTFS30817I Drive serial is **********.
307 LTFS17160I Maximum device block size is 1048576.
307 LTFS11330I Loading cartridge.
307 LTFS30854I Logical block protection is disabled.
307 LTFS11332I Load successful.
307 LTFS17157I Changing the drive setting to write-anywhere mode.
307 LTFS11005I Mounting the volume.
307 LTFS30854I Logical block protection is disabled.
307 LTFS17227I Tape attribute: Vendor = IBM.
307 LTFS17227I Tape attribute: Application Name = LTFS.
307 LTFS17227I Tape attribute: Application Version = 2.4.2.0.
307 LTFS17227I Tape attribute: Medium Label =.
307 LTFS17228I Tape attribute: Text Localization ID = 0x81.
307 LTFS17227I Tape attribute: Barcode =.
307 LTFS17227I Tape attribute: Application Format Version = 2.4.0.
307 LTFS17228I Tape attribute: Volume Lock Status = 0x00.
307 LTFS17227I Tape attribute: Media Pool name =.
307 LTFS14111I Initial setup completed successfully.
307 LTFS14112I Invoke 'mount' command to check the result of final setup.
307 LTFS14113I Specified mount point is listed if succeeded.


E aqui está ela, nossa fita na área de trabalho, chamada Teste (ltfs)! A fita sem nome receberá o nome OSXFUSE Volume 0 (ltfs).

Agora você pode trabalhar com ela.

imagem

Na verdade, lembre-se de que é aconselhável não abusar da exibição do conteúdo dos diretórios de fita nas janelas do fader, pois essa é uma operação incrivelmente cara para LTFS, mas é melhor trabalhar com comandos do terminal ou simplesmente despejar a cópia de backup em massa na fita, como mostrado na janela acima.

A propósito, existe um utilitário IBM especialmente escrito ltfs_copy e seus clones projetados para uma cópia mais eficiente entre fita e disco, mas até agora o autor não conseguiu encontrá-los em domínio público durante pesquisas de superfície.

Você pode desmontar a fita com o comando:

umount /Volumes/LTFS


ou apenas jogue-o na cesta.

Na verdade, existem alguns tipos de shells gráficos para o macOS na natureza para facilitar essas ações, mas após essas perversões, temos medo de digitar algumas linhas no terminal?

Como efeito colateral, temos a oportunidade de conectar unidades eSATA externas por meio de um cabo SAS / 4 * eSATA.

imagem

All Articles