CentOS服务器磁盘槽位和盘符怎么绑定才不错乱
做实施交付常被客户问一句:这台服务器十几块盘,今天 sde 是数据盘,明天换一块、加一块,盘符全错位了,巡检脚本和台账全对不上——能不能把槽位和盘符绑死,以后怎么动都不乱?能。而且这件事的黄金时机是装机那天,不是漂了之后。
先交代一句背景:sd 名字按发现顺序流动的来龙去脉,上一篇热插拔救场文里讲透了,这里只说结论——指望顺序不变是不现实的,正解是给每块盘一个跟硬件身份或物理槽位挂钩的固定名字,再让所有引用走固定名。绑定的做法分三层,一层比一层贴身。
头一层是引用层兜底。fstab、应用配置、脚本里全部改成 UUID 或 /dev/disk/by-uuid/ 引用,数据库这类对设备名敏感的软件同样按 UUID 指定存储路径。做到这一步,sd 名字怎么漂都伤不到业务,这是底线,代价也小。第二层,udev 别名层。在 /etc/udev/rules.d/ 下写规则,锚点有两种选法:按盘的硬件身份锚——序列号、WWN(by-id 路径),盘插在哪个槽位名字都跟着盘走,适合「认盘」的场景,比如数据库盘换槽位也必须是它;按物理槽位锚——设备路径(by-path、KERNELS 匹配),换了盘名字依然钉在槽位上,适合「认槽位」的场景,比如热备件位轮换。先想清楚业务要认哪个,再下笔写规则,SYMLINK 出 /dev/data01 这类业务名,udevadm 重载生效。第三层,多路径层。盘经过多路径软件管理的机器,在 multipath.conf 里给 wwid 起 alias,操作系统和应用看到的是 /dev/mapper/别名,天然不漂,前面两层可以少做。
交付验收要有硬标准:连续重启两遍,再拔插一次备件盘,lsblk 的输出与磁盘规划表逐项对照,名字、挂载点、UUID 三样零漂移才算过。udev 规则文件和磁盘规划表一起归进竣工资料,后期任何人接手都不用猜。
预防三条:动槽位之前先翻规划表,确认没有引用踩在旧路径上;新加盘当天补 udev 规则和台账,不过夜;规则文件改一处备份一处。至于盘符已经乱了想先收拾回来的,处置顺序在上一篇,两篇配合看。
贵州诚鑫致达科技交付存储服务器,验收单里固定有一栏盘符规则核对——连开十次机盘序都一致,这一栏才算签字。