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

El tema de este artículo es conectar dispositivos externos a la Mac a través de interfaces SAS, Fibre Channel (FC) eSATA. Inmediatamente haga una reserva de que para resolver el problema de acceso a dichos dispositivos, hay una forma saludable: ensamblar una PC barata, pegar allí una tarjeta controladora HBA SAS o FC (por ejemplo, el adaptador LSI más simple), conectar sus dispositivos a este controlador, instalar cualquier Linux en la PC y trabajar desde Mac a través de la red. Pero es banal y poco interesante. Seguiremos el camino del hardcore y conectaremos nuestros dispositivos directamente a la Mac.

Lo que necesitaremos para esto:
- una cantidad decente de dinero para comprar nuevos equipos, o buena suerte en subastas en eBay (donde, con un poco de esfuerzo, puede comprar el equipo requerido de generaciones anteriores 10 veces más barato que la lista de precios);
- Este artículo.

Para trabajar con cinta magnética (actualmente representada casi universalmente por el formato LTO), debe tener una unidad de cinta (unidad de cinta) o una biblioteca de cintas del estándar LTO. Este es un dispositivo bastante caro para la compra inicial (de cientos de miles de rublos), pero vale la pena el dinero razonable al comprar uno usado. Dado que las generaciones LTO cambian aproximadamente cada dos años, y la compatibilidad se limita a dos generaciones, el mercado secundario está suficientemente saturado con dispositivos operables de cuatro años o más, es decir. el año anterior al pasado y más allá. Si compra un nuevo dispositivo con fines comerciales, usted mismo comprende por qué lo necesita. Si desea comprar para el hogar y la familia, puede considerar esta opción como una forma de archivar información (ya que los medios en sí son muy baratos por 1 gigabyte).

Comenzando con la generación LTO-5 (y en parte LTO-4), los dispositivos de cinta magnética se conectan a la computadora a través de la interfaz SAS o FC (generalmente hay dos versiones de cada dispositivo).

Por otro lado, Apple nos brinda amablemente en nuestra Mac Interfaz USB-C (que funciona a través de protocolos USB, Thunderbolt 3 o DisplayPort), a veces una interfaz Ethernet, así como adaptadores patentados Thunderbolt 3 - Thunderbolt 2 y Thunderbolt - FireWire 800. ¿Una

situación desesperada? Realmente no. Afortunadamente, el bus Thunderbolt puede operar en modo PCIe y proporcionar la capacidad de conectar tarjetas PCIe de la misma manera que si estuvieran instaladas directamente dentro de la caja de la computadora. Debido a esto, cualquier extensión a la configuración de hardware de Mac es posible, habría un adaptador y controladores apropiados.

La forma conceptualmente más simple de resolver el problema es utilizar una caja externa para adaptadores PCIe con interfaz Thunderbolt (sistema de expansión de tarjeta PCIe), en la que puede instalar un controlador (adaptador de bus host, HBA) SAS o FC. Por ejemplo, tales cajas son producidas por Sonnet y varios otros. Hay un matiz: no todos los controladores son adecuados para nosotros, pero solo tenemos un controlador para macOS. Solo hay unas pocas de estas tarjetas, y las más baratas y populares (por ejemplo, la misma LSI) no están incluidas en su número. Afortunadamente, Sonnet tuvo el problema de compilar una tabla de compatibilidad de tarjetas PCIe para varios sistemas operativos a través de la interfaz Thunderbolt.

Otra solución es comprar un convertidor listo para el convertidor de interfaz Thunderbolt-SAS o Thunderbolt-FC, que, en esencia, es un ensamblaje listo para usar de la caja y el controlador. ATTO es mejor conocido en esta área , pero también se encuentran productos de otras compañías.

Tenga en cuenta que no todos los controladores SAS y FC están certificados para cumplir con el estándar LTO, ya que esto solo cuesta dinero. Algunos fabricantes escriben directamente que no se proporciona el funcionamiento de sus controladores con unidades de cinta.

Para completar la imagen, notamos que la compañía mLogic produce un dispositivo, que es una unidad IBM LTO-8 en una carcasa externa, en la que el convertidor SAS a Thunderbolt 3 se integra de inmediato. Sin embargo, esto es aún más exótico que todo lo anterior, especialmente según los estándares de nuestra área. Dudo que este dispositivo se pueda importar legalmente a Rusia (las unidades LTO contienen herramientas criptográficas, y los fabricantes como IBM y HP, por este motivo, reciben el permiso de importación FSB para cada modelo).

Además, consideraremos, por ejemplo, un conjunto específico de equipos, cuyo propietario se convirtió en el autor como resultado de varias adquisiciones exitosas, pero el principio general debe mantenerse para todas las opciones.

Entonces tenemos el siguiente equipo para trabajar con cinta:
- Computadora Apple Mac mini 2018 con macOS 10.15 Catalina, que tiene puertos USB-C con soporte para Thunderbolt 3;
- Adaptador Apple Thunderbolt 3 / Thunderbolt 2;
- Cable Apple Thunderbolt 2;
- Convertidor de interfaz ATTO ThunderLink SH 1068 (2 * Thunderbolt / 2 * SAS-2);
- Cable SAS SFF-8088 - SFF-8088;
- unidad de cinta LTO-5 IBM TS2350;
- Cartuchos LTO-5, cartucho de limpieza.

Ahora, como dicen, con toda esta basura intentaremos despegar.

Descargue la última versión del controlador ThunderLink SH 1068 del sitio web de ATTO (aparentemente, para nuestra comodidad, se combina con el controlador SH 2068 y se encuentra en la sección 2068, que está escrita solo dentro del archivo del controlador) y la utilidad de configuración ATTO.

imagen

El controlador, por supuesto, necesita ser instalado. Antes de tales acciones, el autor aconseja siempre hacer una instantánea del sistema de archivos APFS del disco de arranque con el comando

tmutil localsnapshot


o una copia de seguridad del disco de arranque, si hay HFS +. Nunca se sabe qué. Entonces será fácil retroceder desde una instantánea.

Además, sin experiencia, pero mostrando la debida diligencia, la mente, sin duda, se inclinará a leer cuidadosamente las instrucciones ATTO para instalar el controlador y ejecutarlo. El resultado es tadam! - Obtenemos el sistema operativo colgando en la etapa de arranque. Aquí podemos usar una instantánea de la que puede recuperarse llamando a Time Machine desde la partición de recuperación, o puede borrar manualmente un kext enfermo del catálogo de extensiones del kernel desde la misma partición de recuperación (el autor generalmente no recomienda hacer esto).

¿Por qué sucede? Porque Apple nos cuidó. En versiones recientes de macOS, no es fácil tomar e incrustar código extraño en el proceso de arranque. Los buenos programadores de Apple han bloqueado ese comportamiento destructivo. Más precisamente, lo bloquearon a la mitad cuando se introduce la espera del conductor, pero el controlador en sí no, por lo que todo se cuelga.

¿Qué debe hacer una mente sofisticada antes de instalar un controlador? Primero, da el comando:

csrutil status


Si en respuesta a eso obtenemos:

Estado de protección de integridad del sistema: habilitado.


Esto significa que los buenos programadores de Apple nos cuidan, por lo que nada saldrá de nosotros hasta que apaguemos su maravillosa protección. Para hacer esto, reiniciamos en la partición de recuperación (⌘R), llamamos a la terminal y damos el comando:

csrutil disable


Después de eso, reiniciamos en el sistema de trabajo, y luego instalamos el controlador, y al mismo tiempo la utilidad de configuración ATTO (en principio, la utilidad de configuración es necesaria solo para diagnósticos y no es necesaria durante la operación normal). En el proceso, cuando se nos solicita, confirmamos la autorización ATTO en la configuración del sistema. Después de la instalación, puede reiniciar nuevamente en la partición de recuperación y dar el comando

csrutil enable


Apple nos cuida de nuevo.

Ahora tenemos una interfaz compatible con el controlador para dispositivos SAS externos (o FC, si se utilizó el convertidor FC). ¿Pero cómo trabajar con la cinta a un nivel lógico?

Como es sabido por una mente inexperta pero erudita, cualquier sistema compatible con Unix admite unidades de cinta en el nivel del núcleo y las principales utilidades del sistema, que incluyen principalmente mt (gestión de cintas) y tar (un archivador con soporte para trabajar con archivos de cinta) . Sin embargo, ¿qué especificará la mente sofisticada? Cualquier sistema compatible con Unix, excepto macOS . Apple se preocupó por nosotros al eliminar el soporte para dispositivos de cinta de su código.

Pero, ¿es realmente imposible devolver este código al portar las utilidades de código abierto estándar de código abierto a macOS? La buena noticia es que Tolis ya ha hecho esto (un enlace que no proporciono) en su producto Tolis Tape Tools. La mala noticia es que dicha compañía estima el uso de los resultados de su trabajo en 399 dólares estadounidenses. Las estimaciones de este hecho pueden ser diferentes, pero el autor personalmente no está preparado para pagarle a alguien 400 dólares por un código, en su mayor parte escrito por personas completamente diferentes y utilizado abiertamente desde la década de 1970, y por lo tanto este problema es para el autor considera cerrado. (Por cierto, hay un proyecto IOSCSITape gratuito sobre el mismo tema en el github en un estado vago ).

Afortunadamente, hay una corporación IBM en el mundo cuyos apetitos comerciales son de una escala completamente diferente y, por lo tanto, no aparecen en cada pequeña cosa. En particular, desarrolló el sistema de archivos de cinta LTFS de código abierto, que también se distribuye para macOS.

Hay un matiz en que diferentes fabricantes de dispositivos de cinta lanzan sus propias versiones de LTFS que admiten sus dispositivos. Como el autor usa la unidad de cinta IBM, también instaló LTFS. Las unidades de terceros pueden necesitar sus propios puertos LTFS. Y hay una implementación universal de openLTFS en github y homebrew.

Es importante para nosotros que LTFS use la función de partición de medios y, por lo tanto, pueda funcionar con dispositivos y cartuchos, comenzando con la generación LTO-5.

Entonces, en nuestro caso, descargamos el producto IBM Spectrum Archive Single Drive Edition para macOS desde el sitio web de IBM, que solo incluye la implementación de LTFS. Sin aventuras, instalamos el producto con nuestro propio instalador. En el proceso, también instala el paquete FUSE, mientras que en la configuración del sistema deberá confirmar la autorización de un programador inteligente llamado Anatol Pomozov, del cual en este caso depende todo IBM. Respeto y respeto por esta persona.

Se recomienda escribir inmediatamente la línea en el archivo /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local:

opción single-drive sync_type = time @ 1


especificando el montaje de la cinta por defecto con el reinicio del búfer de grabación después de 1 minuto de inactividad (por defecto 5 minutos).

imagen

Finalmente, todo está listo para conectarse. Conectamos la cadena: Mac - Adaptador T3 / T2 - Cable Thunderbolt - Convertidor ATTO - Cable SAS - Unidad de cinta (la elección de varios puertos en la Mac, el convertidor y la unidad no es importante). Encienda la energía del convertidor. Encienda la unidad de cinta. Estamos esperando la inicialización de la unidad por su indicación.

Le damos el comando:

ltfs -o device_list


¡Hurra! Obtenemos (de la manera de diagnóstico habitual para IBM):

307 LTFS14000I LTFS iniciando, LTFS versión 2.4.2.0 (10418), nivel de registro 2.
307 LTFS14058I Especificación de formato LTFS versión 2.4.0.
307 LTFS14104I Lanzado por "ltfs -o device_list".
307 LTFS14105I Este binario está construido para Mac OS X.
307 LTFS14106I La versión GCC es 4.2.1 Apple Clang 4.1 compatible ((tags / Apple / clang-421.11.66)).
307 LTFS17087I Versión de kernel: Darwin Kernel Versión 19.4.0: mié 4 de marzo 22:28:40 PST 2020; raíz: xnu-6153.101.6 ~ 15 / RELEASE_X86_64.
307 LTFS17085I Plugin: Carga del backend de cinta "iokit".
Lista de dispositivos de cinta:.
Nombre del dispositivo = 0, ID del proveedor = IBM, ID del producto = ULT3580-TD5, Número de serie = **********, Nombre del producto = [ULT3580-TD5].


Insertamos el cartucho, esperamos la descarga y formateamos:

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


Aquí, el parámetro -d especifica el número de la unidad (siempre cero si es el único, pero no puede omitir este comando), -n es el nombre de la cinta (puede omitirlo) y el parámetro -r requiere que el contenido de los archivos .DS_Store no exceda el tamaño 10 megabytes, en la sección de índice (es decir, destinada a directorios) de la cinta en lugar de la sección de datos.

La vida misteriosa en la unidad de cinta se ha ido. Estamos esperando un par de minutos, obtenemos la respuesta:

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) devuelve -20501.
LTFS30865I READ_ATTR devuelve un campo no válido en CDB (-20501) 0.
LTFS30836I No se puede leer el atributo (-20501).
LTFS11336I El atributo no existe. Ignora el error esperado.
LTFS17235I Escribir índice de NO_BARCODE en un (Motivo: Formato, 0 archivos) 9068025555.
LTFS17236I Escribió índice de NO_BARCODE (a, **********).
LTFS15013I El UUID de volumen es: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I La capacidad de volumen es de 1425 GB.
LTFS30854I La protección de bloque lógico está deshabilitada.
LTFS15024I Medio formateado con éxito.


Monte la cinta formateada:

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


Obtenemos un par de minutos más de funcionamiento del disco, 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.


¡Y aquí está, nuestra cinta en el escritorio, llamada Test (ltfs)! La cinta sin nombre recibirá el nombre OSXFUSE Volumen 0 (ltfs).

Ahora puedes trabajar con ella.

imagen

En realidad, debe tener en cuenta que es aconsejable no abusar de la visualización del contenido de los directorios de cinta en las ventanas del buscador, ya que esta es una operación increíblemente costosa para LTFS, pero es mejor trabajar con comandos de terminal, o simplemente volcar el directorio de copia de seguridad en masa en la cinta, como se muestra en la ventana de arriba.

Por cierto, hay una utilidad de IBM especialmente escrita ltfs_copy y sus clones diseñados para una copia más eficiente entre la cinta y el disco, pero hasta ahora el autor no ha podido encontrarlos en el dominio público durante las búsquedas de superficie.

Puede desmontar la cinta con el comando:

umount /Volumes/LTFS


o simplemente tíralo a la canasta.

En realidad, hay algún tipo de shells gráficos para macOS en la naturaleza para facilitar estas acciones, pero ¿tenemos miedo, después de tales perversiones, de escribir algunas líneas en el terminal?

Como efecto secundario, tenemos la oportunidad de conectar unidades externas eSATA a través de un cable SAS / 4 * eSATA.

imagen

All Articles