Device Mapper是一种组合多个块设备变成一个逻辑块设备的机制。软raid就是一种dm
Device Mapper的设计实现主要分为三层:
- Mapped Device: 映射出的逻辑设备
- Mapping Table: 映射规则表
- Taget Device: 底层的实际设备(可以是物理的块设备,也可以是Device Mapper映射出的逻辑设备),根据组合规则的不同,实际设备的使用方式不一样,区分为不同的类型。
对内核来说,可以把逻辑设备当作一种普通的block_device
dm-io为device mapper提供同步或者异步的io服务
dm-io一共有四种dm_io_mem_type类型(老一点的内核版本只有前面三种,Flashcache主要使用DM_IO_BVEC):
关于dm更详细的请看
https://www.ibm.com/developerworks/cn/linux/l-devmapper/index.html