Apple Mac y dispositivos sofisticados. LTO, SAS, canal de fibra, eSATA

El tema de este artículo es la conexión de dispositivos externos a una Mac a través de interfaces SAS, Fibre Channel (FC) y eSATA. Digamos de inmediato que existe un método saludable para resolver el problema de acceder a dichos dispositivos: construya una PC económica, conecte una tarjeta controladora HBA SAS o FC (por ejemplo, un simple adaptador LSI), conecte sus dispositivos a este controlador , instale cualquier Linux en la PC y trabaje desde Mac a través de la red. Pero esto es banal y poco interesante. Tomaremos la ruta más dura y conectaremos nuestros dispositivos. directamente a Mac.

Lo que necesitamos para esto:
– una cantidad decente de dinero para comprar nuevos equipos, o buena suerte en las subastas de eBay (donde, con un poco de esfuerzo, se pueden comprar los equipos necesarios de generaciones anteriores 10 veces más baratos que el precio de lista);
- Este artículo.

Para trabajar con cinta magnética (ahora representada casi universalmente en formato LTO), debe tener una unidad de cinta LTO (transmisor) o una biblioteca de cintas. Este es un dispositivo bastante caro para la compra inicial (de cientos de miles de rublos), pero vale una cantidad razonable de dinero cuando se compra usado. Dado que las generaciones LTO cambian aproximadamente cada dos años y la compatibilidad se limita a dos generaciones, el mercado secundario está bastante saturado con dispositivos viables de cuatro años o más, es decir, la anteúltima generación y más allá. Si compra un dispositivo nuevo con fines comerciales, usted mismo comprenderá por qué lo necesita. Si desea comprar para su hogar y su 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).

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

Por otro lado, Apple amablemente nos proporciona una interfaz USB-C en nuestro Mac (que funciona mediante los protocolos USB, Thunderbolt 3 o DisplayPort), a veces una interfaz Ethernet, así como Thunderbolt 3 propietario - Thunderbolt 2 y Thunderbolt - FireWire 800. adaptadores.

¿Estancamiento? No precisamente. Afortunadamente, Thunderbolt puede funcionar en modo PCIe y permitir que las tarjetas PCIe se conecten de la misma manera que si estuvieran instaladas directamente dentro de la carcasa de la computadora. Debido a esto, es posible cualquier ampliación de la configuración del hardware de Mac, siempre que exista un adaptador y controladores adecuados.

Conceptualmente, la forma más sencilla de resolver el problema es una caja externa para adaptadores PCIe con interfaz Thunderbolt (sistema de expansión de tarjetas PCIe), en la que se puede instalar un adaptador de bus de host (HBA) SAS o FC. Por ejemplo, estas cajas son producidas por la empresa. Soneto y algunos otros. Aquí hay un matiz: no todos los controladores son adecuados para nosotros, solo uno que tenga un controlador para macOS. Hay solo unas pocas placas de este tipo, y las más baratas y populares (por ejemplo, la misma LSI) no están incluidas en su número. Afortunadamente, Sonnet se tomó la molestia de compilar tabla de compatibilidad Tarjetas PCIe con varios SO a través de interfaz Thunderbolt.

Otra solución es comprar un convertidor de interfaz Thunderbolt - SAS o Thunderbolt - FC ya preparado, que, de hecho, es un conjunto listo para usar de una caja y un controlador. La empresa más famosa de esta zona. ATTO, pero también hay productos de otras empresas.

Tenga en cuenta que no todos los controladores SAS y FC están certificados para cumplir con el estándar LTO, ya que esto en sí mismo cuesta dinero. Algunos fabricantes escriben directamente que sus controladores no están diseñados para funcionar con unidades de cinta.

Para completar el cuadro, observamos que mLogic produce устройство, que es una unidad IBM LTO-8 en una carcasa externa, en la que se integra inmediatamente un convertidor SAS a Thunderbolt 3. Esto, sin embargo, es algo aún más exótico que todo lo descrito anteriormente, especialmente para los estándares de nuestra región. Dudo que este dispositivo pueda siquiera importarse legalmente a Rusia (las unidades LTO contienen funciones criptográficas y, por este motivo, fabricantes como IBM y HP reciben permiso de importación FSB para cada modelo).

A continuación, consideraremos, como 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.

Por eso disponemos del siguiente equipo para trabajar con cinta:
– Computadora Apple Mac mini 2018 con macOS 10.15 Catalina, con puertos USB-C compatibles con 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 todo esto vamos a intentar despegar.

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

Apple Mac y dispositivos sofisticados. LTO, SAS, canal de fibra, eSATA

El controlador, por supuesto, necesita instalación. Antes de tales acciones, el autor recomienda tomar siempre 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 tiene HFS+. Nunca sabes. Entonces será fácil retroceder desde la instantánea.

A continuación, la mente inexperta pero diligente sin duda se inclinará a leer atentamente las instrucciones de instalación del controlador ATTO y seguirlas. Como resultado, ¡tadam! – obtenemos un sistema operativo que se bloquea en la etapa de carga. Aquí es posible que necesitemos una instantánea de la cual podamos recuperarnos llamando a Time Machine desde la partición de recuperación, o desde la misma partición de recuperación podemos borrar manualmente el kext enfermo del directorio de extensiones del kernel (el autor generalmente no recomienda hacer esto).

¿Por qué está pasando esto? Porque Apple nos cuidó. En versiones recientes de macOS, no es posible inyectar fácilmente código externo en el proceso de arranque. Los buenos programadores de Apple han bloqueado este comportamiento destructivo. Más precisamente, lo bloquearon a mitad de camino, cuando se cumplieron las expectativas del conductor, pero el conductor en sí no, por lo que todo simplemente se congela.

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

csrutil status

Si en respuesta recibimos:

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

Entonces esto significa que los buenos programadores de Apple se preocupan por nosotros, por lo que nada nos saldrá bien hasta que desactivemos su maravillosa protección. Para hacer esto, reinicie en la partición de recuperación (⌘R), llame a la terminal y emita el comando:

csrutil disable

Después de esto, reiniciamos el sistema en funcionamiento y solo entonces 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óstico y no es necesaria durante el funcionamiento normal). En el camino, cuando se nos solicite, 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 vuelve a cuidar de nosotros.

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

Como sabe una mente inexperta pero erudita, cualquier sistema compatible con Unix admite unidades de cinta a nivel del kernel y utilidades básicas del sistema, que incluyen principalmente mt (administración de cintas) y tar (archivador que admite trabajar con archivos en cinta). Sin embargo, ¿qué puede decir una mente sofisticada al respecto? Cualquier sistema compatible con Unix, excepto MacOS. Apple se encargó de nosotros eliminando de su código la compatibilidad con dispositivos de cinta.

Pero, ¿es realmente imposible devolver este código trasladando las utilidades estándar de código abierto de Unix a macOS? La buena noticia es que Tolis (al cual no estoy vinculado) ya ha hecho esto en su producto Tolis Tape Tools. La mala noticia es que la empresa mencionada cuesta 399 dólares por utilizar los resultados de su trabajo. Las estimaciones de este hecho pueden variar, pero el autor personalmente no está dispuesto a pagarle a alguien 400 dólares por un código que en su mayoría fue escrito por personas completamente diferentes y que ha estado en uso abierto desde la década de 1970, por lo que el autor se hace esta pregunta por sí mismo. considera cerrado. (Por cierto, hay un proyecto gratuito abandonado en un estado vago en Github IOSCSITape sobre el mismo tema).

Afortunadamente, en el mundo existe la corporación IBM, cuyos apetitos comerciales están en una escala completamente diferente y, por lo tanto, no se manifiestan en cada detalle. En particular, desarrolló el sistema de archivos de cinta LTFS de código abierto, que también se distribuye para macOS.

La advertencia aquí es que diferentes fabricantes de dispositivos de cinta lanzan sus propias versiones de LTFS para admitir sus dispositivos. Como el autor utiliza una unidad de cinta IBM, instaló LTFS de IBM. Las unidades de terceros pueden requerir sus propios puertos LTFS. Y existe una implementación universal de openLTFS en Github y Homebrew.

Para nosotros es importante que LTFS utilice la función de partición de medios y, por lo tanto, pueda funcionar con dispositivos y cartuchos a partir de la generación LTO-5.

Entonces, en nuestro caso, descargamos IBM Spectrum Archive Single Drive Edition para macOS del sitio web de IBM, que incluye la implementación de LTFS. Sin aventuras, instalamos el producto utilizando su propio instalador. En el camino, también instala el paquete FUSE, y en la configuración del sistema tendrá que confirmar la autorización de un programador inteligente llamado Anatol Pomozov, de quien en este caso depende toda IBM. Respeto y respeto a este hombre.

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

opción de unidad única sync_type=time@1

que especifica que la cinta se monta de forma predeterminada y el búfer de grabación se restablece después de 1 minuto de inactividad (el valor predeterminado es 5 minutos).

Apple Mac y dispositivos sofisticados. LTO, SAS, canal de fibra, eSATA

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 Mac, convertidor y unidad no es importante). Encienda la alimentación del convertidor. Encienda la alimentación de la unidad de cinta. Esperamos a que el disco complete la inicialización según su indicación.

Damos el comando:

ltfs -o device_list

¡Hurra! Obtenemos (en la forma habitual de diagnóstico de IBM):

307 LTFS14000I LTFS iniciando, versión LTFS 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á diseñado para Mac OS X.
307 LTFS14106I La versión GCC es 4.2.1 Compatible con Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Versión del kernel: Darwin Kernel Versión 19.4.0: miércoles 4 de marzo a las 22:28:40 PST de 2020; raíz:xnu-6153.101.6~15/RELEASE_X86_64.
307 Complemento LTFS17085I: Cargando el 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].

Inserte el casete, espere a que se cargue y formatee:

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

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

La vida misteriosa comenzó en la unidad de cinta. Esperamos un par de minutos y recibimos la siguiente respuesta:

LTFS15000I Iniciando mkltfs, LTFS versión 2.4.2.0 (10418), nivel de registro 2.
LTFS15041I Lanzado por "mkltfs -d 0 -nTest -r size=10M/name=.DS_Store".
LTFS15042I Este binario está creado para Mac OS X.
La versión LTFS15043I GCC es 4.2.1 Compatible con Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
LTFS17087I Versión del kernel: Darwin Kernel Versión 19.4.0: miércoles 4 de marzo a las 22:28:40 PST de 2020; raíz:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Formateando el dispositivo '0'.
LTFS15004I Tamaño de bloque de volumen LTFS: 524288.
LTFS15005I Política de colocación de particiones de índice: tamaño=10M/nombre=.DS_Store.

LTFS11337I Actualizar indicador de índice sucio (1): NO_BARCODE (0x0x1021081e0).
Complemento LTFS17085I: Cargando el backend de cinta “iokit”.
LTFS30810I Abrir un dispositivo a través del controlador iokit (0).
LTFS30814I El ID del proveedor es IBM.
LTFS30815I La identificación del producto es 'ULT3580-TD5'.
LTFS30816I La revisión del firmware es H976.
LTFS30817I El número de serie de la unidad es **********.
LTFS17160I El tamaño máximo de bloque de dispositivo es 1048576.
LTFS11330I Cargando cartucho.
LTFS30854I La protección del bloque lógico está inhabilitada.
LTFS11332I Carga exitosa.
LTFS17157I Cambio de la configuración de la unidad al modo de escritura en cualquier lugar.
LTFS15049I Comprobando el medio (montaje).
LTFS30854I La protección del bloque lógico está inhabilitada.
LTFS15010I Creando la partición de datos b en la partición SCSI 1.
LTFS15011I Creando la partición de índice a en la partición SCSI 0.
LTFS17165I Restableciendo la proporción de capacidad del medio.
LTFS11097I Partición del medio.
LTFS11100I Escritura de etiqueta en la partición b.
LTFS11278I Escritura de índice en la partición b.
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. Ignore el error esperado.
LTFS17235I Índice de escritura de NO_BARCODE en b (Motivo: formato, 0 archivos) **********.
LTFS17236I Escribí el índice de NO_BARCODE (b, **********).
LTFS11337I Actualizar indicador de índice sucio (0): NO_BARCODE (0x0x1021081e0).
LTFS11100I Escritura de etiqueta en la partición a.
LTFS11278I Escritura de índice en la partición 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. Ignore el error esperado.
LTFS17235I Escritura del índice de NO_BARCODE en (Motivo: formato, 0 archivos) 9068025555.
LTFS17236I Escribí el índice de NO_BARCODE (a, **********).
LTFS15013I Volume UUID is: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I La capacidad del volumen es 1425 GB.
LTFS30854I La protección del bloque lógico está inhabilitada.
LTFS15024I Medio formateado correctamente.

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 y diagnóstico de la unidad:

307 LTFS14000I LTFS iniciando, versión LTFS 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 /Volumes/LTFS/”.
307 LTFS14105I Este binario está diseñado para Mac OS X.
307 LTFS14106I La versión GCC es 4.2.1 Compatible con Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Versión del kernel: Darwin Kernel Versión 19.4.0: miércoles 4 de marzo a las 22:28:40 PST de 2020; raíz:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS14063I El tipo de sincronización es "tiempo", el tiempo de sincronización es 60 segundos.
307 Complemento LTFS17085I: Cargando el backend de cinta “iokit”.
307 Complemento LTFS17085I: Cargando backend iosched “unificado”.
307 LTFS14095I Configure el modo de escritura en cualquier lugar del dispositivo de cinta para evitar la expulsión del cartucho.
307 LTFS30810I Abrir un dispositivo a través del controlador iokit (0).
307 LTFS30814I El ID del proveedor es IBM.
307 LTFS30815I La identificación del producto es 'ULT3580-TD5'.
307 LTFS30816I La revisión del firmware es H976.
307 LTFS30817I El número de serie de la unidad es **********.
307 LTFS17160I El tamaño máximo de bloque del dispositivo es 1048576.
307 LTFS11330I Cargando cartucho.
307 LTFS30854I La protección del bloque lógico está deshabilitada.
307 LTFS11332I Carga exitosa.
307 LTFS17157I Cambio de la configuración de la unidad al modo de escritura en cualquier lugar.
307 LTFS11005I Montaje del volumen.
307 LTFS30854I La protección del bloque lógico está deshabilitada.
307 LTFS17227I Atributo de cinta: Proveedor = IBM.
307 LTFS17227I Atributo de cinta: Nombre de aplicación = LTFS.
307 LTFS17227I Atributo de cinta: Versión de la aplicación = 2.4.2.0.
307 LTFS17227I Atributo de cinta: Etiqueta mediana =.
307 LTFS17228I Atributo de cinta: ID de localización de texto = 0x81.
307 LTFS17227I Atributo de cinta: Código de barras =.
307 LTFS17227I Atributo de cinta: Versión del formato de aplicación = 2.4.0.
307 LTFS17228I Atributo de cinta: Estado de bloqueo de volumen = 0x00.
307 LTFS17227I Atributo de cinta: nombre del grupo de medios =.
307 LTFS14111I La configuración inicial se completó correctamente.
307 LTFS14112I Invoque el comando 'montar' para comprobar el resultado de la configuración final.
307 LTFS14113I El punto de montaje especificado aparece en la lista si se realizó correctamente.

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

Ahora puedes trabajar con él.

Apple Mac y dispositivos sofisticados. LTO, SAS, canal de fibra, eSATA

En general, debe tenerse en cuenta que es recomendable no abusar de la visualización del contenido de los directorios de cintas 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 restablecer el directorio de copia de seguridad de forma masiva en la cinta, como se muestra en la ventana de arriba.

Por cierto, existe una utilidad IBM ltfs_copy especialmente escrita y sus clones, diseñados para una copia más eficiente entre cinta y disco, pero hasta ahora el autor no ha podido encontrarlos en el dominio público con una búsqueda superficial.

Puedes desmontar la cinta con el comando:

umount /Volumes/LTFS

o simplemente tirarlo a la basura.

De hecho, en la naturaleza existen algún tipo de shells gráficos para macOS para facilitar estas acciones, pero después de tales perversiones, ¿deberíamos tener miedo de escribir algunas líneas en el terminal?

Como efecto secundario, tenemos la oportunidad de conectar unidades eSATA externas mediante un cable SAS/4*eSATA.

Apple Mac y dispositivos sofisticados. LTO, SAS, canal de fibra, eSATA

Fuente: habr.com

Añadir un comentario