openEuler-22.03 盘符重启会改变飘移解决方法
openEuler-22.03 盘符重启会改变飘移解决方法
盘符漂移的原因:
1、 linux系统分配SCSI磁盘的机制是:根据插槽号顺序扫描磁盘(异步),每个SCSI盘有15个分区盘符可分配。
2、linux系统启动时,盘符分配机制:SCSI驱动探测到SCSI盘时分配盘符,先完成扫描任务的磁盘先分配空闲盘符。如果有槽位没有插入SCSI盘,不会保留盘符。如果该槽位后续热插入磁盘,则往后分配盘符。
3、linux系统热插拔SCSI盘时,盘符分配机制:SCSI盘被热拔时,原来的槽位和盘符会被释放。后续再热插SCSI盘时,不管是哪个槽位,系统根据未分配的index,按顺序分配盘符(不会再使用被拔除的盘符)。
解决办法:
要解决磁盘盘符漂移问题,一劳永逸的方法就是将磁盘槽位与盘符名做绑定;添加磁盘绑定的补丁。如果只针对磁盘挂载问题,可通过按标签或UUID挂载的方式解决。
方案1:根据ID访问磁盘(/dev/disk/by-id)
适用于裸盘无文件系统场景
方案2:根据挂载路径访问磁盘(/dev/disk/by-path)
适用于磁盘插槽位置不变场景
方案3:根据文件系统UUID访问磁盘(/dev/disk/by-uuid)
适用于有文件系统场景
存在硬盘故障raid卡等异常,进行更换uuid会变化,导致不能进入系统或者业务受损
注意:使用dd等类似命令把某个分区的内容写到另外一个分区,两个分区会有相同的uuid
这里使用类似方案1的策略,但是使用了udev对磁盘进行别名映射
通过命令
ls -l /dev/disk/by-id
查看磁盘的serial id
scsi开头的序列号是磁盘的serial id
wwn开头的序列号是磁盘的world wide name
在/etc/udev/rules.d/目录下新建文件99-rules.rules添加以下内容
KERNEL=="sd*", SUBSYSTEM=="block", ENV{ID_SERIAL}=="3600000.......", ENV{DEVTYPE}=="disk", SYMLINK+="huawei/disk01", OWNER="root", GROUP="disk", MODE="0660"
完成后使用
udevadm trigger --type=devices --action=change
使配置生效
用别名测试磁盘读写
可以在fstab中使用/huawei/disk01代替sda,由于/huawei/disk01绑定了这张硬盘的serial id所以在发生漂移的情况下也不影响和盘符相关的业务、系统功能。
- 点赞
- 收藏
- 关注作者
评论(0)