El mapeador de dispositivos es un marco proporcionado por el kernel de Linux para mapear dispositivos de bloques físicos a dispositivos de bloques virtuales de nivel superior . Constituye la base del administrador de volúmenes lógicos (LVM), los RAID por software y el cifrado de disco dm-crypt , y ofrece características adicionales como instantáneas del sistema de archivos . [ 1 ]
El mapeador de dispositivos funciona transfiriendo datos desde un dispositivo de bloques virtual, proporcionado por el propio mapeador, a otro dispositivo de bloques. Los datos también pueden modificarse durante la transferencia, lo que se realiza, por ejemplo, cuando el mapeador de dispositivos proporciona cifrado de disco o simula un comportamiento de hardware poco fiable.
Este artículo se centra en la implementación del mapeador de dispositivos en el kernel de Linux, pero la funcionalidad del mapeador de dispositivos también está disponible en NetBSD y DragonFly BSD . [ 2 ] [ 3 ]
Uso
Las aplicaciones (como LVM2 y Enterprise Volume Management System (EVMS)) que necesitan crear nuevos dispositivos mapeados se comunican con el mapeador de dispositivos a través de la libdevmapper.sobiblioteca compartida , que a su vez emite ioctls al /dev/mapper/controlnodo del dispositivo . [ 4 ] La configuración del mapeador de dispositivos también se puede examinar y configurar de forma interactiva —o desde scripts de shell —utilizando la utilidad. [ 5 ] [ 6 ]
Ambos componentes del espacio de usuario tienen su código fuente mantenido junto con el código fuente de LVM2. [ 7 ]
Características

Las funciones que ofrece el mapeador de dispositivos incluyen asignaciones lineales, segmentadas y de errores, así como destinos de cifrado y rutas múltiples. Por ejemplo, se pueden concatenar dos discos en un volumen lógico con un par de asignaciones lineales , una para cada disco. Como otro ejemplo, el destino de cifrado encripta los datos que pasan por el dispositivo especificado, utilizando la API Crypto del kernel de Linux . [ 1 ]
A partir de 2014, los siguientes objetivos de mapeo están disponibles: [ 1 ] [ 5 ]
- Caché : permite la creación de volúmenes híbridos , utilizando unidades de estado sólido (SSD) como cachés para unidades de disco duro (HDD).
- Clonar : permitirá su uso antes de que se complete la transferencia.
- crypt : proporciona cifrado de datos mediante la API Crypto del kernel de Linux.
- Retraso : retrasa las lecturas y/o escrituras en diferentes dispositivos (se utiliza para pruebas).
- era – se comporta de manera similar al objetivo lineal, mientras que realiza un seguimiento de los bloques que se escribieron dentro de un período de tiempo definido por el usuario [ 9 ].
- error : simula errores de E/S para todos los bloques mapeados (se utiliza para pruebas).
- Flakey : simula un comportamiento periódico e inestable (se utiliza para pruebas).
- lineal : asigna un rango continuo de bloques a otro dispositivo de bloques.
- espejo : asigna un dispositivo lógico duplicado , a la vez que proporciona redundancia de datos.
- multipath : admite la asignación de dispositivos multipath mediante el uso de sus grupos de rutas.
- RAID : ofrece una interfaz para el controlador RAID por software del kernel de Linux ( md ).
- snapshot y snapshot-origin : se utilizan para la creación de instantáneas LVM, como parte del esquema subyacente de copia en escritura.
- striped : distribuye los datos en franjas entre los dispositivos físicos, con el número de franjas y el tamaño del bloque de franjas como parámetros.
- delgado : permite la creación de dispositivos más grandes que el dispositivo físico subyacente; el espacio físico se asigna solo cuando se escribe en él.
- cero – un equivalente de , todas las lecturas devuelven bloques de ceros y las escrituras se descartan
/dev/zero
Aplicaciones
Las características del kernel de Linux y los proyectos desarrollados sobre el mapeador de dispositivos incluyen lo siguiente:
- cryptsetup : utilidad que permite configurar fácilmente el cifrado de disco basado en dm-crypt.
- dm-crypt / LUKS : destino de mapeo que proporciona cifrado de volumen.
- dm-cache : destino de mapeo que permite la creación de volúmenes híbridos.
- dm-integridad : objetivo de mapeo que proporciona integridad de datos , ya sea mediante suma de comprobación o verificación criptográfica, [ 10 ] [ 11 ] también se utiliza con LUKS [ 12 ]
- dm-log-writes : destino de mapeo que utiliza dos dispositivos, pasando por el primer dispositivo y registrando las operaciones de escritura realizadas en él en el segundo dispositivo [ 13 ].
- dm-verity : valida los bloques de datos contenidos en un sistema de archivos contra una lista de valores hash criptográficos, desarrollado como parte del proyecto ChromiumOS [ 14 ].
- – proporciona acceso a configuraciones RAID "falsas" a través del mapeador de dispositivos
- DM Multipath : proporciona conmutación por error de E/S y equilibrio de carga de dispositivos de bloques dentro del kernel de Linux.
- Docker : utiliza un mapeador de dispositivos para crear almacenamiento de copia en escritura para contenedores de software.
- DRBD (Dispositivo de Bloques Replicados Distribuidos)
- EVMS (obsoleto)
- – Utilidad llamada desde hotplug al crear y eliminar mapas de dispositivos
- LVM2 : gestor de volúmenes lógicos para el kernel de Linux.
- VeraCrypt - Versión para Linux de TrueCrypt
- VDO - Optimizador de datos virtual
Referencias
- 1 2 3 "Administración del administrador de volumen lógico, Apéndice A. El asignador de dispositivos" . Red Hat . Recuperado el 29 de septiembre de 2013 .
- ↑ "Manual de interfaces del kernel de NetBSD: dm(4)" . netbsd.gw.com . 30 de agosto de 2008. Archivado del original el 19 de julio de 2014. Consultado el 25 de enero de 2015 .
- ↑ "Páginas del manual en línea de DragonFly: dm(4)" . dragonflybsd.org . 28 de julio de 2010. Consultado el 6 de junio de 2014 .
- ↑ "libdevmapper.h" . sourceware.org . Consultado el 29 de septiembre de 2013 .
- 1 2 "dmsetup(8) - Página man de Linux" . man.cx. Consultado el 22/10/2013 .
- ↑ "Administración del administrador de volúmenes lógicos" . Apéndice A.2. El comando dmsetup . Red Hat . Consultado el 29 de septiembre de 2013 .
- ↑ "Página de recursos de Device-mapper" . sourceware.org . Consultado el 29 de septiembre de 2013 .
- ↑ Werner Fischer; Georg Schönberger (1 de junio de 2015). "Diagrama de pila de almacenamiento de Linux" . Thomas-Krenn.AG . Consultado el 8 de junio de 2015 .
- ↑ "6. Capa de bloques" . Núcleo de Linux 3.15 . kernelnewbies.org. 8 de junio de 2014. Consultado el 15 de junio de 2014 .
- ↑ "dm-integridad" . Proyecto cryptosetup. 30-04-2018 . Consultado el 08-05-2018 .
- ↑ "dm-integrity target" . kernel.org . 13 de mayo de 2017. Consultado el 8 de mayo de 2018 .
- ↑ "cryptsetup - gestionar volúmenes cifrados con dm-crypt y LUKS" . 2018-01-01 . Consultado el 2018-05-08 .
- ↑ "Documentación del kernel de Linux: Documentation/device-mapper/log-writes.txt" . kernel.org . 29 de mayo de 2015. Consultado el 13 de octubre de 2015 .
- ↑ Jonathan Corbet (19 de septiembre de 2011). "dm-verity" . LWN.net . Consultado el 13 de octubre de 2015 .
Enlaces externos
- Página principal del mapeador de dispositivos en Red Hat. Archivado el 15 de marzo de 2006 en Wayback Machine.
- "Derecho a tus propios dispositivos" . Linux Gazette . Mayo de 2005. – un artículo que ilustra el uso de varios objetivos de mapeo de dispositivos
- Herramienta de espacio de usuario para configurar RAID por software utilizando varios formatos de metadatos RAID.
- Soporte para rutas múltiples en el mapeador de dispositivos , LWN.net , 23 de febrero de 2005, por Jonathan Corbet
- mapeador de dispositivos
- Software Red Hat