PostgreSQL 高级认证考试         PostgreSQL 中级认证考试(DBA 方向)         PostgreSQL 初级认证考试         EULER(欧拉)操作系统,見证RHCE的代表性!         19cOCP 9月周末班 正在授课 欢迎试听         RHCE9 9月周末班 正在授课 欢迎试学         PGCE 认证专家,周末班报名中,欢迎垂询         数据库运维工程师招聘         RHCE认证培训钜惠学习         OCP认证培训组团活动特惠中!!!         

linux小知识,linux盘符漂移问题处理方法

更新时间: 2021-03-19 16:57

Linux管理多块磁盘时,会按磁盘加载的顺序依次给磁盘命名为/dev/sda, /dev/sdb... 这种命名规则就会导致,
一块磁盘在发生热插拔或系统重启后,盘符可能发生变化,会影响到一些依赖磁盘盘符工作的应用程序,比如
fstab里按盘符名来挂载。


要解决磁盘盘符漂移问题,一劳永逸的方法就是将磁盘槽位与盘符名做绑定;

如果只针对磁盘挂载到问题,可通过按标签或UUID挂载的方式解决,下文将简单介绍下方案。

如下所示的fstab,系统启动时,会自动执行每一行挂载动作,将/dev/sdc挂载到/data/disk1,其它依此类推。
如果磁盘发生热插拔,磁盘的盘符由原来的/dev/sdc变成了/dev/sde,那么fstab就不能正确挂载第一块磁盘。


/dev/sdc /data/disk1 ext4 defaults,noatime 0 0
/dev/sdd /data/disk2 ext4 defaults,noatime 0 0

为了保证在发生盘符漂移时,磁盘仍能正常挂载,首先对fstab做如下改进,按磁盘标签来挂载;比如第一行
的含义是,将标签为disk1的磁盘挂载到/data/disk1。


LABEL=disk1 /data/disk1    ext4    defaults,noatime 0 0
LABEL=disk2 /data/disk2    ext4    defaults,noatime 0 0

重庆思庄红帽.jpg
接下来的问题就是如何给磁盘设置标签,针对ext系列的文件系统,可通过e*label来设置标签;也可在磁盘
format时设置标签。


mke4fs /dev/sdc -L disk1
或者 mke4fs /dev/sdc; e4label /dev/sdc disk1

通过上述设置后,磁盘/dev/sdc就拥有了标签disk1,在fstab里挂载拥有disk1标签的磁盘,即挂载/dev/sdc
,即使这块磁盘的盘符发生了变化,由于其标签没变,fstab也能正确的将其挂载;通过mke4fs或e4label设
置的标签,标签实际上是跟文件系统绑定的,是文件系统超级块的一部分,可通过tune4fs查询到。


设置标签后,如果磁盘上的文件系统被重新格式化,则其原来设置的标签也就不复存在了,这也正是标签机
制不足的地方;如果要解决这个问题,可通过在fstab里按UUID来挂载磁盘,UUID对于磁盘来说是不变的,
不论其盘符、标签是否变化;但使用UUID的缺陷在于灵活性不足,不利于大批量部署。


UUID=356gedv8-6753-31d1-9a09-g3bei19dag56 /data/disk1    ext4    defaults,noatime 0 0
UUID=3a67fbad-2da1-4c3b-9a76-b488ea24d391 /data/disk1    ext4    defaults,noatime 0 0

开班信息MORE>>

课程名称 开课时间 上课类型 状态
OCP培训 12月 周末班 授课中...
RHCE培训 12月 周末班 授课中...
OCP培训 2025年1月 精英班 报名中...
PGCE 专家 12月 周末班 报名中...
OCM培训 12月 周末班 报名中...
RHCE培训 常年 周末班 报名中...
MySQL培训 常年 周末班 报名中...
<<