重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 310|回复: 0
打印 上一主题 下一主题

[基础命令] UDEV设置中KERNEL== 使用sd* 和 dm-*的区别

[复制链接]
跳转到指定楼层
楼主
发表于 2025-11-2 17:29:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 郑全 于 2025-11-2 17:33 编辑

在 UDEV 规则中,KERNEL=="sd*"和KERNEL=="dm-*"分别匹配不同类型的设备,核心区别在于它们对应的设备类型和底层技术,具体差异如下:
一、核心差异:设备类型与来源
规则
匹配的设备类型
底层技术 / 场景            
设备节点示例               
KERNEL=="sd*"
物理 SCSI/SATA 磁盘(或模拟 SCSI 的设备)
直接对应物理磁盘、USB 硬盘、单路径 SAN/iSCSI 磁盘等
/dev/sda、/dev/sdb1
KERNEL=="dm-*"
逻辑设备映射(Device Mapper)设备
基于内核 Device Mapper 框架的虚拟设备
/dev/dm-0、/dev/dm-1


二、详细解析1. KERNEL=="sd*":匹配物理磁盘或单路径设备
  • 设备本质:
    sd*是 Linux 对 SCSI 协议设备的默认命名(SCSI Disk 的缩写),包括:
    • 物理 SATA/SCSI 硬盘(如服务器内置硬盘);
    • USB 移动硬盘(模拟 SCSI 协议);
    • 存储阵列的单条路径设备(如未配置多路径时,SAN/iSCSI 磁盘可能直接显示为sda、sdb)。
  • 特点:
    • 直接对应物理链路的设备,名称可能随系统重启、设备插拔而变化(如重启后原sda可能变为sdc);
    • 可包含分区(如sda1、sda2),规则中sd*会同时匹配磁盘(sda)和分区(sda1),若需仅匹配磁盘可写为sd[a-z]。
  • 典型用途:
    识别物理磁盘(如本地硬盘),或在未启用多路径的环境中绑定存储设备。
2. KERNEL=="dm-*":匹配逻辑映射设备
  • 设备本质:
    dm-*是内核 Device Mapper 框架生成的虚拟设备,由dmsetup工具管理,包括:
    • 多路径设备(如multipath聚合的逻辑盘,对应/dev/mapper/mpath0的底层设备dm-0);
    • LVM 逻辑卷(如/dev/vg0/lv0对应的底层dm-1);
    • 加密设备(如LUKS加密卷对应的dm-2);
    • RAID 逻辑设备(如软 RAID 通过 Device Mapper 实现的设备)。
  • 特点:
    • 是物理设备的上层逻辑抽象,不直接对应物理磁盘,而是依赖底层设备(如多路径dm-0可能对应sda、sdb等多条路径);
    • 名称dm-*由内核动态分配,通常通过符号链接(如/dev/mapper/mpath0)对外提供固定访问点。
  • 典型用途:
    识别多路径逻辑设备、LVM 卷等虚拟设备,确保规则作用于最终的逻辑设备而非底层物理路径。
三、使用场景对比
场景
适合的规则
原因分析
绑定本地物理硬盘
KERNEL=="sd*"
本地硬盘直接以sda、sdb形式存在,无逻辑映射层。
绑定多路径存储的逻辑设备
KERNEL=="dm-*"
多路径设备通过 Device Mapper 生成dm-*,需匹配逻辑层而非底层sda/sdb。
绑定 LVM 逻辑卷或加密设备
KERNEL=="dm-*"
这些设备本质是 Device Mapper 的虚拟设备,dm-*是其底层标识。
Oracle RAC 的 ASM 磁盘(多路径)
KERNEL=="dm-*"
需绑定多路径聚合后的逻辑设备,避免单路径故障影响。
临时识别 USB 硬盘
KERNEL=="sd*"
USB 设备通常模拟为 SCSI 设备,以sd*命名。


四、注意事项
  • 多路径环境的坑:
    若在多路径环境中误用KERNEL=="sd*",规则会匹配底层物理路径(如sda、sdb),而非聚合后的逻辑设备(dm-*)。当某条路径故障时,设备名可能失效,导致应用中断。
    正确做法:多路径设备应匹配dm-*,或通过/dev/mapper/下的符号链接(如mpath0)绑定。
  • 规则优先级:
    sd*和dm-*可能存在依赖关系(如dm-*依赖sda/sdb),配置规则时需注意顺序,避免底层设备规则覆盖上层逻辑设备规则。
  • 精准匹配:
    若需进一步区分,可结合其他条件(如SUBSYSTEM=="block"限定块设备,ENV{DM_UUID}匹配多路径设备的 UUID 等)。

总结:sd*对应物理 / 单路径设备,dm-*对应逻辑映射设备,核心是根据设备的 “物理层” 还是 “逻辑层” 选择匹配规则,尤其在多路径、LVM 等场景中,dm-*更可靠。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-17 23:46 , Processed in 0.204314 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表