Linux kernel Linux内核中dm和md之间的区别是什么?

Linux kernel Linux内核中dm和md之间的区别是什么?,linux-kernel,Linux Kernel,Linux内核中的dm(dmsetup)和md(mdadm)模块之间有什么区别?[两者似乎都是逻辑卷管理器]哦,是的,还有lvm(lvm)。所有这些之间有什么区别?md是多个设备。它是Linux内核中的RAID实现,自内核2.0版起就可以使用。它允许您创建RAID级别0、10、4、5和6。它有各种优化,比如利用SSE和MMX指令。这是Linux中的标准软件RAID dm是设备映射器。Linux内核框架允许您将一个设备映射到另一个设备(一个或多个)。这与创建可以在/dev/mapper目录中访问的

Linux内核中的dm(dmsetup)和md(mdadm)模块之间有什么区别?[两者似乎都是逻辑卷管理器]哦,是的,还有lvm(lvm)。所有这些之间有什么区别?

md是多个设备。它是Linux内核中的RAID实现,自内核2.0版起就可以使用。它允许您创建RAID级别0、10、4、5和6。它有各种优化,比如利用SSE和MMX指令。这是Linux中的标准软件RAID

dm是设备映射器。Linux内核框架允许您将一个设备映射到另一个设备(一个或多个)。这与创建可以在/dev/mapper目录中访问的虚拟设备(映射设备)类似。该设备的所有I/O都将映射到其他设备。使用设备映射器的原因是,在许多情况下,您需要映射设备,但希望重用代码

有几个驱动程序(称为dm目标)使用设备映射器,例如:

  • dm linear-将一个设备线性映射到另一个设备。这意味着您的新设备将通过LBA转换将I/O请求转换到底层设备。例如,当您从/dev/mapper/linear读取LBA 1000时,您将从/dev/sdd读取LBA 1050
  • dm stripe-将一个设备映射到多个设备,如RAID 0中所示
dm stripe和md RAID级别0之间的差异并没有那么大——只是实现不同,但我相信md RAID具有更好的性能

最后,lvm是在linux上提供逻辑卷管理功能的用户空间工具集。它使用设备映射器将卷组和逻辑卷映射到物理设备

还有一个特别令人困惑的例子-
dm raid
,您可以阅读它