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

O tema deste artigo é conectar dispositivos externos a un Mac mediante interfaces SAS, Fibre Channel (FC) e eSATA. Digamos inmediatamente que para resolver o problema de acceder a este tipo de dispositivos, hai unha forma para unha persoa sa: constrúe un PC barato, conecte unha tarxeta controladora HBA SAS ou FC (por exemplo, un simple adaptador LSI), conecte os seus dispositivos a este controlador, instale calquera Linux no PC e traballe desde Mac a través da rede. Pero isto é banal e pouco interesante. Seguiremos a ruta do hardcore e conectaremos os nosos dispositivos directamente a Mac.

O que necesitamos para iso:
– unha cantidade decente de diñeiro para mercar equipos novos ou boa sorte nas poxas en eBay (onde, cun pouco de esforzo, podes mercar o equipo necesario das xeracións anteriores 10 veces máis barato que o prezo de lista);
- Este artigo.

Para traballar con cinta magnética (agora representada case universalmente no formato LTO), debes ter unha unidade de cinta LTO (streamer) ou biblioteca de cintas. Este é un dispositivo bastante caro para a compra inicial (de centos de miles de rublos), pero paga a pena unha cantidade razoable de diñeiro ao comprar usado. Dado que as xeracións LTO cambian aproximadamente cada dous anos e a compatibilidade está limitada a dúas xeracións, o mercado secundario está bastante saturado de dispositivos viables de catro anos ou máis, é dicir. a xeración anterior e máis aló. Se compra un dispositivo novo con fins comerciais, vostede mesmo comprende por que o precisa. Se queres mercar para a túa casa e familia, podes considerar esta opción como unha forma de arquivar información (xa que os propios medios son moi baratos por 1 gigabyte).

A partir da xeración LTO-5 (e parcialmente LTO-4), os dispositivos para traballar con cinta magnética están conectados no hardware ao ordenador mediante unha interface SAS ou FC (normalmente hai dúas versións de cada dispositivo).

Por outra banda, Apple amablemente ofrécenos unha interface USB-C no noso Mac (que funciona mediante os protocolos USB, Thunderbolt 3 ou DisplayPort), ás veces unha interface Ethernet, así como Thunderbolt 3 - Thunderbolt 2 e Thunderbolt - FireWire 800 propietarios. adaptadores.

Estancamento? En realidade non. Afortunadamente, Thunderbolt pode funcionar en modo PCIe e permitir que as tarxetas PCIe se conecten do mesmo xeito que se instalasen directamente dentro da carcasa do ordenador. Debido a isto, calquera expansión da configuración de hardware de Mac é posible, sempre que haxa un adaptador e controladores axeitados.

Conceptualmente, a forma máis sinxela de resolver o problema é unha caixa externa para adaptadores PCIe cunha interface Thunderbolt (sistema de expansión de tarxetas PCIe), na que pode instalar un adaptador de bus SAS ou FC Host (HBA). Por exemplo, tales caixas son producidas pola empresa Soneto e algúns outros. Aquí hai un matiz: non todos os controladores son axeitados para nós, senón só un que ten un controlador para macOS. Só hai algunhas placas deste tipo, e as máis baratas e populares (por exemplo, o mesmo LSI) non están incluídas no seu número. Afortunadamente, Sonnet tomouse a molestia de compilar táboa de compatibilidade Tarxetas PCIe con varios SO a través da interface Thunderbolt.

Outra solución é mercar un conversor de interface Thunderbolt - SAS ou Thunderbolt - FC preparado, que, de feito, é un conxunto listo dunha caixa e un controlador. A empresa máis famosa desta zona ATTO, pero tamén hai produtos doutras empresas.

Teña en conta que non todos os controladores SAS e FC están certificados para cumprir co estándar LTO, xa que isto en si mesmo custa diñeiro. Algúns fabricantes escriben directamente que os seus controladores non están deseñados para funcionar con unidades de cinta.

Para completar a imaxe, observamos que mLogic produce arranxo, que é unha unidade IBM LTO-8 nunha carcasa externa, na que se integra inmediatamente un conversor SAS a Thunderbolt 3. Isto, con todo, é algo aínda máis exótico que todo o descrito anteriormente, especialmente polos estándares da nosa rexión. Dubido que este dispositivo se poida importar legalmente a Rusia (as unidades LTO conteñen funcións criptográficas e fabricantes como IBM e HP reciben permiso de importación FSB para cada modelo por este motivo).

A continuación, consideraremos, como exemplo, un conxunto específico de equipos, cuxo propietario se converteu o autor como resultado de varias adquisicións exitosas, pero o principio xeral debe manterse para todas as opcións.

Polo tanto, temos os seguintes equipos para traballar con cinta:
– Ordenador Apple Mac mini 2018 con macOS 10.15 Catalina, con portos USB-C con compatibilidade con Thunderbolt 3;
– Adaptador Apple Thunderbolt 3 / Thunderbolt 2;
- Cable Apple Thunderbolt 2;
– Conversor de interface ATTO ThunderLink SH 1068 (2 * Thunderbolt / 2 * SAS-2);
– Cable SAS SFF-8088 – SFF-8088;
– unidade de cinta LTO-5 IBM TS2350;
– Cartuchos LTO-5, cartucho de limpeza.

Agora, como din, con todas estas cousas imos tentar despegar.

Descargamos do sitio web de ATTO a última versión do controlador ThunderLink SH 1068 (aparentemente, para a nosa comodidade, está combinado co controlador SH 2068 e está situado na sección 2068, que está escrita só no arquivo co controlador) e o Utilidade de configuración ATTO.

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

O controlador, por suposto, necesita instalación. Antes de tales accións, o autor aconsella facer sempre unha instantánea do sistema de ficheiros APFS do disco de arranque co comando

tmutil localsnapshot

ou unha copia de seguridade do disco de arranque, se ten HFS+. Nunca sabes. Entón será fácil retroceder desde a instantánea.

A continuación, a mente sen experiencia, pero coa dilixencia debida, estará sen dúbida inclinada a ler atentamente as instrucións de instalación do controlador ATTO e seguilas. Como resultado - tadam! – obtemos un sistema operativo que se colga na fase de carga. Aquí poderemos necesitar unha instantánea da que podemos recuperala chamando a Time Machine desde a partición de recuperación, ou desde a mesma partición de recuperación podemos borrar manualmente o kext enfermo do directorio de extensións do núcleo (o autor xeralmente non recomenda facelo).

Por que está a suceder isto? Porque Apple coidou de nós. Nas versións recentes de macOS, non podes inxectar facilmente código estranxeiro no proceso de inicio. Os bos programadores de Apple bloquearon este comportamento destrutivo. Máis precisamente, bloqueárono á metade, cando se implementa a expectativa do condutor, pero o propio condutor non o é, polo que todo se conxela.

Que debe facer unha mente sofisticada antes de instalar un controlador? Primeiro, dá o comando:

csrutil status

Se en resposta a el recibimos:

Estado da protección da integridade do sistema: activada.

entón isto significa que os bos programadores de Apple preocúpanse por nós, polo que nada nos funcionará ata que desactivemos a súa marabillosa protección. Para iso, reinicie a partición de recuperación (⌘R), chame ao terminal e emita o comando:

csrutil disable

Despois diso, reiniciamos o sistema de traballo e só entón instalamos o controlador e, ao mesmo tempo, a utilidade de configuración ATTO (en principio, a utilidade de configuración é necesaria só para diagnósticos e non é necesaria durante o funcionamento normal). Durante o camiño, cando se lle pregunta, confirmamos a autorización ATTO na configuración do sistema. Despois da instalación, pode reiniciar de novo na partición de recuperación e dar o comando

csrutil enable

Apple está a coidar de nós de novo.

Agora temos unha interface compatible con controladores para dispositivos SAS externos (ou FC, se se utilizou un conversor FC). Pero como traballar coa cinta a nivel lóxico?

Como sabe a mente inexperta pero erudita, calquera sistema compatible con Unix admite unidades de cinta a nivel do núcleo e as utilidades básicas do sistema, que inclúen principalmente mt (xestor de cinta) e tar (arquivador que admite traballar con arquivos en cinta). Non obstante, que pode dicir unha mente sofisticada sobre isto? Calquera sistema compatible con Unix, excepto macOS. Apple coidou de nós eliminando o soporte para dispositivos de cinta do seu código.

Pero é realmente imposible devolver este código portando as utilidades estándar de Unix de código aberto a macOS? A boa noticia é que Tolis (que non estou enlazando) xa o fixo no seu produto Tolis Tape Tools. A mala noticia é que a mencionada empresa custa 399 dólares para usar os resultados do seu traballo. As estimacións deste feito poden variar, pero o autor persoalmente non está preparado para pagar a alguén 400 dólares por un código que foi escrito na súa maioría por persoas completamente diferentes e que estivo en uso aberto desde a década de 1970, polo que o autor está a facer esta pregunta por si mesmo. considera pechado. (Por certo, hai un proxecto gratuíto abandonado nun estado vago en Github IOSCSITape sobre o mesmo tema).

Afortunadamente, existe a corporación IBM no mundo, cuxos apetitos comerciais están a unha escala completamente diferente e, polo tanto, non se manifestan en cada pequena cousa. En particular, desenvolveu o sistema de ficheiros de cinta LTFS de código aberto, que tamén se distribúe para macOS.

A advertencia aquí é que os diferentes fabricantes de dispositivos de cinta lanzan as súas propias versións de LTFS para admitir os seus dispositivos. Dado que o autor usa unha unidade de cinta IBM, instalou LTFS de IBM. As unidades de terceiros poden requirir os seus propios portos LTFS. E hai unha implementación universal de openLTFS en Github e Homebrew.

É importante para nós que LTFS use a función de partición de medios e, polo tanto, poida funcionar con dispositivos e cartuchos a partir da xeración LTO-5.

Entón, no noso caso, descargamos IBM Spectrum Archive Single Drive Edition para macOS desde o sitio web de IBM, que inclúe a implementación LTFS. Sen aventuras, instalamos o produto usando o seu propio instalador. No camiño, tamén instala o paquete FUSE, e na configuración do sistema terá que confirmar a autorización dun programador intelixente chamado Anatol Pomozov, de quen neste caso depende toda a IBM. Respecto e respecto por este home.

É recomendable escribir inmediatamente a liña no ficheiro /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local:

opción single-drive sync_type=time@1

que especifica que a cinta está montada por defecto e que o búfer de gravación se restablece despois de 1 minuto de inactividade (o predeterminado son 5 minutos).

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

Finalmente, todo está listo para conectarse. Conectamos a cadea: Mac – adaptador T3/T2 – cable Thunderbolt – conversor ATTO – cable SAS – unidade de cinta (a elección de varios portos no Mac, conversor e unidade non é importante). Acende o conversor. Acende a unidade de cinta. Agardamos a que a unidade complete a inicialización segundo a súa indicación.

Damos o comando:

ltfs -o device_list

Hurra! Obtemos (da forma habitual de diagnóstico de IBM):

307 LTFS14000I LTFS iniciando, versión LTFS 2.4.2.0 (10418), nivel de rexistro 2.
307 LTFS14058I Especificación de formato LTFS versión 2.4.0.
307 LTFS14104I Lanzado por "ltfs -o lista_dispositivos".
307 LTFS14105I Este binario está creado para Mac OS X.
A versión 307 LTFS14106I GCC é 4.2.1 compatible con Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Versión do núcleo: Versión do núcleo Darwin 19.4.0: mércores 4 de marzo 22:28:40 PST 2020; raíz:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS17085I Complemento: cargando o backend de cinta “iokit”.
Lista de dispositivos de cinta:.
Nome do dispositivo = 0, ID do provedor = IBM, ID do produto = ULT3580-TD5, Número de serie = **********, Nome do produto = [ULT3580-TD5].

Insira o casete, agarde a que se cargue e formatee:

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

Aquí o parámetro -d especifica o número da unidade (sempre cero se é o único, pero non se pode omitir neste comando), -n é o nome da cinta (podes omitilo) e o parámetro -r require colocar o contido de ficheiros .DS_Store que non superen o tamaño de 10 megabytes, na sección de índice (é dicir, destinada a directorios) da cinta en lugar da sección de datos.

A vida misteriosa comezou na unidade de cinta. Agardamos un par de minutos e recibimos a seguinte resposta:

LTFS15000I Iniciando mkltfs, versión LTFS 2.4.2.0 (10418), nivel de rexistro 2.
LTFS15041I Lanzado por "mkltfs -d 0 -nTest -r size=10M/name=.DS_Store".
LTFS15042I Este binario está creado para Mac OS X.
A versión LTFS15043I GCC é 4.2.1 Compatible con Apple Clang 4.1 ((etiquetas/Apple/clang-421.11.66)).
LTFS17087I Versión do núcleo: Versión do núcleo Darwin 19.4.0: mércores 4 de marzo ás 22:28:40 PST de 2020; raíz:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Dispositivo de formato '0'.
LTFS15004I Tamaño do bloque de volume LTFS: 524288.
LTFS15005I Política de colocación de particións de índice: size=10M/name=.DS_Store.

LTFS11337I Actualizar indicador de índice sucio (1) - NO_BARCODE (0x0x1021081e0).
Complemento LTFS17085I: cargando o backend de cinta “iokit”.
LTFS30810I Apertura dun dispositivo mediante o controlador iokit (0).
O ID de provedor LTFS30814I é IBM.
O ID de produto LTFS30815I é "ULT3580-TD5".
A revisión do firmware LTFS30816I é H976.
A serie da unidade LTFS30817I é **********.
LTFS17160I O tamaño máximo do bloque do dispositivo é 1048576.
Cartucho de carga LTFS11330I.
LTFS30854I A protección do bloque lóxico está desactivada.
LTFS11332I Carga exitosa.
LTFS17157I Cambiando a configuración da unidade ao modo de escritura en calquera lugar.
LTFS15049I Comprobación do medio (montura).
LTFS30854I A protección do bloque lóxico está desactivada.
LTFS15010I Creación da partición de datos b na partición SCSI 1.
LTFS15011I Creando partición de índice a na partición SCSI 0.
LTFS17165I Restablecendo a proporción de capacidade do medio.
LTFS11097I Particionar o medio.
LTFS11100I Etiqueta de escritura na partición b.
LTFS11278I Escribindo índice na partición b.
LTFS30808I READ_ATTR (0x8c) devolve -20501.
LTFS30865I READ_ATTR devolve un campo non válido en CDB (-20501) 0.
LTFS30836I Non se pode ler o atributo (-20501).
LTFS11336I O atributo non existe. Ignora o erro esperado.
LTFS17235I Escritura do índice de NO_BARCODE en b (Motivo: formato, 0 ficheiros) **********.
LTFS17236I Escribiu o índice de NO_BARCODE (b, **********).
LTFS11337I Actualizar indicador de índice sucio (0) - NO_BARCODE (0x0x1021081e0).
LTFS11100I Escribir a etiqueta na partición a.
LTFS11278I Escribindo índice na partición a.
LTFS30808I READ_ATTR (0x8c) devolve -20501.
LTFS30865I READ_ATTR devolve un campo non válido en CDB (-20501) 0.
LTFS30836I Non se pode ler o atributo (-20501).
LTFS11336I O atributo non existe. Ignora o erro esperado.
LTFS17235I Escribindo índice de NO_BARCODE nun (Motivo: formato, 0 ficheiros) 9068025555.
LTFS17236I Escribiu o índice de NO_BARCODE (a, **********).
LTFS15013I Volume UUID is: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I A capacidade de volume é de 1425 GB.
LTFS30854I A protección do bloque lóxico está desactivada.
LTFS15024I Medio formatouse correctamente.

Monte a cinta formateada:

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

Temos un par de minutos máis de funcionamento e diagnóstico da unidade:

307 LTFS14000I LTFS iniciando, versión LTFS 2.4.2.0 (10418), nivel de rexistro 2.
307 LTFS14058I Especificación de formato LTFS versión 2.4.0.
307 LTFS14104I Lanzado por “ltfs /Volumes/LTFS/”.
307 LTFS14105I Este binario está creado para Mac OS X.
A versión 307 LTFS14106I GCC é 4.2.1 compatible con Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Versión do núcleo: Versión do núcleo Darwin 19.4.0: mércores 4 de marzo 22:28:40 PST 2020; raíz:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS14063I O tipo de sincronización é "tempo", o tempo de sincronización é de 60 segundos.
307 LTFS17085I Complemento: cargando o backend de cinta “iokit”.
307 LTFS17085I Complemento: cargando o backend iosched "unificado".
307 LTFS14095I Establece o modo de escritura do dispositivo de cinta en calquera lugar para evitar a expulsión do cartucho.
307 LTFS30810I Apertura dun dispositivo mediante o controlador iokit (0).
307 LTFS30814I ID de provedor é IBM.
307 LTFS30815I O ID do produto é "ULT3580-TD5".
307 LTFS30816I A revisión do firmware é H976.
307 LTFS30817I Unidade de serie é **********.
307 LTFS17160I O tamaño máximo do bloque do dispositivo é 1048576.
307 LTFS11330I Cartucho de carga.
307 LTFS30854I A protección do bloque lóxico está desactivada.
307 LTFS11332I Carga correcta.
307 LTFS17157I Cambio da configuración da unidade ao modo de escritura en calquera lugar.
307 LTFS11005I Montaxe do volume.
307 LTFS30854I A protección do bloque lóxico está desactivada.
307 LTFS17227I Atributo de cinta: Vendor = IBM.
307 LTFS17227I Atributo de cinta: Nome da aplicación = LTFS.
307 LTFS17227I Atributo de cinta: Versión da aplicación = 2.4.2.0.
307 LTFS17227I Atributo da cinta: Etiqueta media =.
307 LTFS17228I Atributo de cinta: ID de localización de texto = 0x81.
307 LTFS17227I Atributo da cinta: código de barras =.
307 LTFS17227I Atributo de cinta: Versión do formato da aplicación = 2.4.0.
307 LTFS17228I Atributo da cinta: Estado de bloqueo de volume = 0x00.
307 LTFS17227I Atributo de cinta: nome do grupo de medios =.
307 LTFS14111I A configuración inicial completouse correctamente.
307 LTFS14112I Invoca o comando 'mount' para comprobar o resultado da configuración final.
307 LTFS14113I O punto de montaxe especificado aparece na lista se ten éxito.

E aquí está, a nosa cinta no escritorio, chamada Test(ltfs)! A cinta sen nome chamarase OSXFUSE Volume 0 (ltfs).

Agora podes traballar con el.

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

En xeral, cómpre ter en conta que é recomendable non abusar da visualización do contido dos directorios de cintas nas fiestras do buscador, xa que esta é unha operación incriblemente cara para LTFS, pero é mellor traballar con comandos de terminal ou simplemente restablecer. o directorio de copia de seguridade en masa para a cinta, como se mostra na xanela anterior.

Por certo, existe unha utilidade IBM especialmente escrita ltfs_copy e os seus clons, deseñada para unha copia máis eficiente entre cinta e disco, pero ata agora o autor non puido atopalos no dominio público cunha procura superficial.

Podes desmontar a cinta co comando:

umount /Volumes/LTFS

ou simplemente tiralo ao lixo.

De feito, na natureza hai algún tipo de shells gráficos para macOS para facilitar estas accións, pero despois de tales perversións, deberíamos ter medo de escribir algunhas liñas no terminal?

Como efecto secundario, temos a oportunidade de conectar unidades eSATA externas mediante un cable SAS/4*eSATA.

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

Fonte: www.habr.com

Engadir un comentario