El mapeador de dispositivos es un marco proporcionado por el kernel de Linux para mapear dispositivos de bloques físicos en dispositivos de bloques virtuales de nivel superior . Forma la base del administrador de volumen lógico (LVM), los RAID de 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 pasando datos desde un dispositivo de bloque virtual, que es proporcionado por el propio mapeador de dispositivos, a otro dispositivo de bloque. Los datos también se pueden modificar en la transición, lo que se realiza, por ejemplo, en el caso de un mapeador de dispositivos que proporciona cifrado de disco o simulación de un comportamiento de hardware no 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 asignados se comunican con el asignador de dispositivos a través de la libdevmapper.so
biblioteca compartida , que a su vez emite ioctls al /dev/mapper/control
nodo del dispositivo . [4] La configuración del mapeador de dispositivos también se puede examinar y configurar de forma interactiva — fromo desde scripts de shell — utilizando la utilidad. [5] [6]
Ambos de estos dos componentes del espacio de usuario tienen su código fuente mantenido junto con la fuente LVM2. [7]
Características
Las funciones proporcionadas por el mapeador de dispositivos incluyen mapeos lineales, seccionados y de error , así como objetivos de criptas 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, cripta objetivo encripta los datos que pasan a través del dispositivo especificado, mediante el uso del núcleo de Linux API Crypto . [1]
Los siguientes destinos de mapeo están disponibles: [1] [5]
- caché : permite la creación de volúmenes híbridos mediante el uso de unidades de estado sólido (SSD) como cachés para unidades de disco duro (HDD)
- clonar : permitirá el uso antes de que se complete una transferencia.
- crypt : proporciona cifrado de datos mediante el uso de Crypto API del kernel de Linux
- retraso : retrasa las lecturas y / o escrituras en diferentes dispositivos (utilizado para pruebas)
- era : se comporta de manera similar al objetivo lineal, mientras 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 (utilizados para pruebas)
- flakey : simula un comportamiento no confiable periódico (utilizado para pruebas)
- lineal : asigna un rango continuo de bloques a otro dispositivo de bloque
- espejo : asigna un dispositivo lógico reflejado , al tiempo que proporciona redundancia de datos
- multipath : admite el mapeo dedispositivos multipath mediante el uso de sus grupos de rutas
- raid : ofrece una interfaz para el controlador RAID ( md ) del software del kernel de Linux
- snapshot y snapshot-origin : se utilizan para la creación de instantáneas LVM, como parte del esquema de copia en escritura subyacente
- rayado : distribuye los datos en todos los dispositivos físicos, con el número de rayas y el tamaño del fragmento de trazado 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
- cero : un equivalente de
/dev/zero
, todas las lecturas devuelven bloques de ceros y las escrituras se descartan
Aplicaciones
Las siguientes características y proyectos del kernel de Linux se crean sobre el mapeador de dispositivos:
- cryptsetup : utilidad utilizada para configurar convenientemente 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-integration: destino de mapeo que proporciona integridad de datos , ya sea mediante la suma de comprobación o la verificación criptográfica, [10] [11] también se utiliza con LUKS [12]
- dm-log-writes - destino de mapeo que usa dos dispositivos, pasando por el primer dispositivo y registrando las operaciones de escritura realizadas en el segundo dispositivo [13]
- dm-verity: valida los bloques de datos contenidos en un sistema de archivos con una lista de valores hash criptográficos, desarrollada como parte del proyecto Chromium OS [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 bloque dentro del kernel de Linux
- Docker : utiliza el mapeador de dispositivos para crear almacenamiento de copia en escritura para contenedores de software.
- DRBD (dispositivo de bloque replicado distribuido)
- EVMS (obsoleto)
- - utilidad llamada desde hotplug al crear y eliminar mapas de dispositivos
- LVM2 : administrador de volumen lógico para el kernel de Linux
- Versión Linux de TrueCrypt
- VDO - Optimizador de datos virtuales
Referencias
- ^ a b c "Administración de Logical Volume Manager, Apéndice A. El asignador de dispositivos" . Red Hat . Consultado el 29 de septiembre de 2013 .
- ^ "Manual de interfaces del núcleo de NetBSD: dm (4)" . netbsd.gw.com . 2008-08-30 . Consultado el 25 de enero de 2015 .
- ^ "Páginas del manual en línea de DragonFly: dm (4)" . dragonflybsd.org . 2010-07-28 . Consultado el 6 de junio de 2014 .
- ^ "libdevmapper.h" . sourceware.org . Consultado el 29 de septiembre de 2013 .
- ^ a b "dmsetup (8) - Página de manual de Linux" . man.cx . Consultado el 22 de octubre de 2013 .
- ^ "Administración de Logical Volume Manager" . Apéndice A.2. El comando dmsetup . Red Hat . Consultado el 29 de septiembre de 2013 .
- ^ "Página de recursos del mapeador de dispositivos" . 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 bloque" . Kernel de Linux 3.15 . kernelnewbies.org. 2014-06-08 . Consultado el 15 de junio de 2014 .
- ^ "integridad-dm" . proyecto cryptosetup. 2018-04-30 . Consultado el 8 de mayo de 2018 .
- ^ "destino de integridad dm" . kernel.org . 2017-05-13 . Consultado el 8 de mayo de 2018 .
- ^ "cryptsetup - administrar volúmenes encriptados dm-crypt y LUKS" . 2018-01-01 . Consultado el 8 de mayo de 2018 .
- ^ "Documentación del kernel de Linux: Documentation / device-mapper / log-writes.txt" . kernel.org . 2015-05-29 . 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
- Mapeador de dispositivos en casa en Red Hat
- "Derecho a sus propios dispositivos" . Gaceta de Linux . Mayo de 2005. - un artículo que ilustra el uso de varios objetivos del mapeador de dispositivos
- herramienta de espacio de usuario para configurar el software RAID utilizando varios formatos de metadatos RAID
- Soporte de múltiples rutas en el mapeador de dispositivos , LWN.net , 23 de febrero de 2005, por Jonathan Corbet