CentOS手动分区mount挂载分区总是报错



全篇以centos7.2为例分区以平台6.0安装的/optmount掛载分区分区为例,阐述方案和实施细则

有些mount挂载分区目录比较重要,执行着服务器的主要功能为防止对该分区的破坏或者随意写入導致空间占满,可以采用只读mount挂载分区分区方案:

  • 防止意外或蓄意破坏分区文件
  • 防止分区被随意写入文件占满

实现对/optmount挂载分区分区的权限限制前期考虑有以下方案:

  1. 修改目标分区mount挂载分区脚本/etc/fstab,以ro方式mount挂载分区从系统级别解决
  2. 现有分区不动,修改docker镜像加载分区的方式为ro保证docker启动的进程不能随意写入该分区
  • 方案1实现起来改动范围广,但能彻底解决需求问题入选
  • 方案2改动小,但限制不彻底docker外的进程和囚为因素无法限制,放弃

1.修改系统启动分区mount挂载分区脚本

系统启动时默认会调用/etc/fstab来执行mount挂载分区,修改/optmount挂载分区为ro只读

2.整体修改/opt目录进程移出写权限,保留执行和读权限

筛选有写权限的进程模块

  • lsof 筛选FD属性u和w为写权限
 

把所有写权限指向的文件修改到其他目录

实现/opt目录只讀,需收回现有安装进程的所有写权限让其移出到另外一个目录,例如:

  • 写日志log移出到/mnt/log单独mount挂载分区分区
  • 进程的临时运行数据,移出箌/opt/data单独mount挂载分区分区

波及较广不做具体阐述。

3.提供脚本供需要时放开或收回写权限

因该目录有升级或临时修改需求需要一个放开写权限的和使用完收回写权限的方法,提供两个shell脚本供使用者放开和收回权限:

在平台放开rw权限进行升级完成后,收回ro时总是报错:

  • 用fuser -vm和 lsof 排查所有的进程确认/opt 收回了写权限,一度陷入僵局

  • 多次尝试发现升级文件后必出该问题,从升级角度入手排查

    1. 升级会删除老文件写入新文件可能还有人对已删除文件的使用
    2. 很多文件读写、修改还没来得及落盘
    1. 当进程启动后,删除替换其原有二进制文件进程不会跟随更新,仍指向已删除文件
    2. 排查对已删除文件仍在使用的方法( epmd 还在使用已删除的文件信息)
    1. 查出删除后仍在运行程序杀掉该进程重启(kill -9 17387) 释放指向的巳删除文件信息
    2. 执行sync命令,使文件缓存buffer数据及时落盘 和 更新超块
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

解决办法:需要安装nfs-utls包,并且开启rpcbind服务
其中rpcbind是一个RPC服务,主要是在nfs共享时候负责通知客户端,服务器的nfs端口号的。

# 然后可以正常进行挂盘 # 挂盘完成别忘了在/etc/fstab添加配置否则服务器重新启动你挂的盘就看不到了,需要重新挂

發布了25 篇原创文章 · 获赞 13 · 访问量 3万+

我要回帖

更多关于 分区挂载 的文章

 

随机推荐