bioctl - bioctl
| Autor (es) original (es) | Marco Peereboom (2005) |
|---|---|
| Desarrollador (es) | El proyecto OpenBSD |
| Versión inicial | 23 de agosto de 2005 |
| Repositorio | / sbin / bioctl |
| Escrito en | C |
| Sistema operativo | OpenBSD desde 3.8 (2005); NetBSD desde 4.0 (2007) |
| Tipo | Gestión de RAID y supervisión del sistema |
| Licencia | Licencia BSD |
| Sitio web | bioctl (8) |
El controlador de pseudodispositivo bio (4) y la utilidad bioctl (8) implementan una interfaz genérica de administración de volumen RAID en OpenBSD y NetBSD . La idea detrás de este software es similar a ifconfig , donde una sola utilidad del sistema operativo se puede usar para controlar cualquier controlador RAID usando una interfaz genérica , en lugar de tener que depender de muchas utilidades de administración de RAID personalizadas y propietarias específicas para cada RAID de hardware dado. fabricante. Las características incluyen la supervisión del estado de salud de las matrices, el control de la identificación mediante el parpadeo de los LED y la gestión de alarmas sonoras, y la especificación de discos de repuesto en caliente . Además, la configuración en OpenBSD también se delega a bioctl; mientras que la creación inicial de volúmenes y la configuración del hardware RAID se deja en la BIOS de la tarjeta como no esencial después de que el sistema operativo ya se haya iniciado. La interfaz entre el kernel y el área de usuario se realiza a través de la llamada al sistema a través del pseudodispositivo .
softraidioctl/dev/bio
Descripción general
Se considera que el subsistema bio / bioctl es una parte importante en la defensa de OpenBSD por la documentación de hardware abierto, y el título de la versión 3.8 y la canción principal se dedicaron al tema: Hackers of the Lost RAID . El desarrollo tuvo lugar durante una época de controversia en la que Adaptec se negó a publicar la documentación de hardware adecuada que era necesaria para que el controlador aac (4) funcionara de manera confiable, lo que siguió con OpenBSD deshabilitando el soporte para el controlador.
En el comentario de la versión 3.8, los desarrolladores expresan la ironía del supuesto propósito de los controladores RAID de hardware de proporcionar confiabilidad, a través de la redundancia y la reparación, mientras que en realidad muchos proveedores esperan que los administradores de sistemas instalen y dependan de enormes blobs binarios para poder ser evaluados. estado del volumen y servicio de sus matrices de discos . Específicamente, OpenBSD está haciendo una referencia al modus operandi de FreeBSD , donde la documentación del controlador aac (4) para Adaptec sugiere específicamente habilitar la capa de compatibilidad de Linux para usar las utilidades de administración (donde la documentación ni siquiera explica dónde exactamente estas deben obtenerse utilidades de, o qué versiones serían compatibles, evidentemente porque las herramientas propietarias pueden haber caducado).
Del mismo modo, los desarrolladores de OpenBSD decidieron concentrarse intencionalmente en admitir solo las características más básicas de cada controlador, que son uniformes en todas las marcas y variaciones; específicamente, el hecho de que la configuración inicial de cada controlador debe realizarse a través del BIOS de la tarjeta nunca se mantuvo en secreto de ningún anuncio de bio / bioctl. Esto se puede contrastar con el enfoque adoptado por FreeBSD, por ejemplo, donde existen utilidades individuales para varios controladores RAID independientes y la interfaz de cada utilidad es independiente entre sí; específicamente, en marzo de 2019, FreeBSD incluye utilidades dispositivo específicas separadas llamadas mfiutil, mptutil, mpsutil/ mprutily sesutil,, cada uno de los cuales proporciona muchas opciones con al menos diferencias sutiles en la interfaz para la configuración y la gestión de los controladores, contribuye a la hinchazón de código , para no mencione cualquier controlador adicional para el que no exista tal herramienta como software de código abierto . En OpenBSD 6.4 (2018), una docena de controladores se registran en el marco biológico.
Los drivesensores
El monitoreo del estado de cada unidad lógica también se duplica en los marcos de monitoreo de hardware y sus correspondientes utilidades en ambos sistemas donde bioctl está disponible: hw.sensors con sensores en OpenBSD y sysmon envsys con envstat y powerd en NetBSD . Por ejemplo, en OpenBSD desde la versión 4.2, el estado de los sensores de la unidad podría monitorearse automáticamente simplemente iniciando los sensores sin que se requiera ninguna configuración específica. Se están convirtiendo más controladores para usar los marcos de bio y sensores con cada versión.
SES / SAF-TE
En OpenBSD, tanto SCSI Enclosure Services (SES) como SAF-TE también son compatibles desde OpenBSD 3.8 (2005), y ambos cuentan con LED parpadeando a través de bio y bioctl (mediante la implementación de BIOCBLINK ioctl ), lo que ayuda a los administradores del sistema a identificar los dispositivos dentro de los gabinetes. al servicio. Además, tanto los controladores SES como SAF-TE en OpenBSD cuentan con soporte para una combinación de sensores de temperatura y ventilador, PSU , bloqueo de puertas e indicadores de alarma; Todos estos datos de sensores auxiliares se exportan al marco hw.sensors en OpenBSD, y se pueden monitorear a través de herramientas familiares como sysctl , SNMP y Sensorsd .
A partir de 2019, en NetBSD , un controlador SES / SAF-TE más antiguo de la NASA de 2000 todavía está en su lugar, que no está integrado con bio o envsys , pero tiene sus propios archivos de dispositivo con una interfaz ioctl única , con su propio SCSI personalizado. -herramientas de área de usuario específicas; esta implementación más antigua también estuvo disponible en OpenBSD entre 2000 y 2005, y se eliminó en 2005 (junto con sus herramientas de usuario) justo antes de que se introdujeran los nuevos controladores alternativos basados en bio- y hw.sensors; SES y SAF-TE ahora se mantienen como dos controladores separados en OpenBSD, pero ya no requieren ninguna utilidad de usuario personalizada separada, lo que reduce el exceso de código y la cantidad de líneas de código fuente .