Mapeador de dispositivos


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 . Constituye la base del administrador de volumen lógico (LVM), los RAID de software y el cifrado de disco dm-crypt , y ofrece funciones adicionales, como instantáneas del sistema de archivos . [1]

El mapeador de dispositivos funciona pasando datos de un dispositivo de bloque virtual, 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 comportamiento de hardware no confiable.

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]

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‍—‌o desde scripts de shell‍ —‌mediante la dmsetup(8)utilidad. [5] [6]

Ambos componentes del espacio de usuario tienen su código fuente mantenido junto con la fuente LVM2. [7]

Las funciones proporcionadas por el mapeador de dispositivos incluyen mapeos lineales, rayados 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, crypt target cifra los datos que pasan a través del dispositivo especificado mediante el uso de Crypto API del kernel de Linux . [1]


La posición de los objetivos del mapeador de dispositivos dentro de varias capas de la pila de almacenamiento del kernel de Linux . [8]