前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次生产上因fstab配置错误造成的应用拉起失败

记一次生产上因fstab配置错误造成的应用拉起失败

作者头像
loong576
发布2021-12-05 09:25:21
3610
发布2021-12-05 09:25:21
举报
文章被收录于专栏:运维ABC运维ABC

一、背景

云上虚机做切换演练,应用架构为集群模式,服务器上也部署了自启动脚本,理论上只要重启服务器然后检查应用和业务状态就行,但是重启后应用启动不了,手动执行自启动脚本或手动执行应用拉起命令也失败。

二、生产环境模拟

1.模拟文件系统

代码语言:javascript
复制
[root@node01 <sub>]# lvcreate -L +10G -n logs root-vg
[root@node01 </sub>]# mkfs.xfs /dev/root-vg/logs
[root@node01 ~]# mount /dev/root-vg/logs /home/loong/logs

新建lv logs,文件系统挂载点为/home/loong/logs,此时文件系统/home和/home/loong/logs使用率都为1%。

记一次生产上因fstab配置错误造成的应用拉起失败_/etc/fstab
记一次生产上因fstab配置错误造成的应用拉起失败_/etc/fstab

2.模拟生产目录结构

目录结构说明:/home/loong为应用目录,存储了应用包、启停命令等内容;/home/loong/logs为日志目录,存储了应用的日志。

代码语言:javascript
复制
[root@node01 ~]# cd /home
[root@node01 /home]# mkdir loong
[root@node01 /home]# cd loong/
[root@node01 /home/loong]# mkdir log

3.模拟应用和日志文件

代码语言:javascript
复制
[root@node01 /home/loong]# touch {1..5}.txt
[root@node01 /home/loong]# touch app{1..10
记一次生产上因fstab配置错误造成的应用拉起失败_生产环境_02
记一次生产上因fstab配置错误造成的应用拉起失败_生产环境_02

app1--app10和1.txt--5.txt模拟应用目录/home/loong下的应用文件

代码语言:javascript
复制
[root@node01 /home/loong]# cd logs/
[root@node01 /home/loong/logs]# dd if=/dev/zero bs=100M count=3 of=/home/loong/logs/error.log 
[root@node01 /home/loong/logs]# dd if=/dev/zero bs=100M count=3 of=/home/loong/logs/info.log 
[root@node01 /home/loong/logs]# dd if=/dev/zero bs=100M count=3 of=/home/loong/logs/alert.lo

模拟日志error.log、info.log和alert.log,大小都为300M

记一次生产上因fstab配置错误造成的应用拉起失败_/etc/fstab_03
记一次生产上因fstab配置错误造成的应用拉起失败_/etc/fstab_03

可以看到此时文件系统/home/loong/logs使用率已经涨到了10%

4.模拟生产/etc/fstab配置

代码语言:javascript
复制
[root@node01 /home/loong/logs]# more /etc/fsta
记一次生产上因fstab配置错误造成的应用拉起失败_日志文件_04
记一次生产上因fstab配置错误造成的应用拉起失败_日志文件_04

文件系统/dev/mapper/root--vg-logs的挂载点被错误的设置为/home/loong

三、生产环境复现

1.重启服务器

服务器重启前在应用目录/home/loong下我们可以看到txt和app文件,在日志目录/home/loong/logs可以看到3个日志文件,现在重启服务器,模拟生产切换

代码语言:javascript
复制
[root@node01 ~]# init 

2.文件检查

记一次生产上因fstab配置错误造成的应用拉起失败_生产环境_05
记一次生产上因fstab配置错误造成的应用拉起失败_生产环境_05

重启服务器后检查文件,发现应用目录下/home/loong的所有txt和app文件丢失,呈现的是原来的3个日志文件。

3.手动恢复

首先umount /home/loong,如果执行不成功可以用fuser -k /home/loong命令杀掉暂用该目录的进程

记一次生产上因fstab配置错误造成的应用拉起失败_生产环境_06
记一次生产上因fstab配置错误造成的应用拉起失败_生产环境_06

手动的umount /home/loong后发现该目录原来的txt和app文件已经能被看到,但是logs目录下还为空

代码语言:javascript
复制
[root@node01 /home/loong/logs]# mount /dev/root-vg/logs /home/loong/logs
记一次生产上因fstab配置错误造成的应用拉起失败_生产环境_07
记一次生产上因fstab配置错误造成的应用拉起失败_生产环境_07

手动挂载并重新登陆/home/loong/logs后看到了3个日志目录。

4.问题解决

修改/etc/fstab,将日志挂载点修改为正确的/home/loong/logs

记一次生产上因fstab配置错误造成的应用拉起失败_生产环境_08
记一次生产上因fstab配置错误造成的应用拉起失败_生产环境_08

修改完后再次重启验证,发现日志挂载点正常,应用和日志目录文件均正常,问题解决。

四、总结

晚上做变更的时候nginx应用各种方式都起不来,报配置有误,仔细检查各个配置文件没发现有什么问题,然后检查应用目录,发现里面的文件很不正常,包和启停脚本都丢失了,而且还多了日志文件,于是怀疑是挂载的问题,检查/etc/fstab文件果然是配置有误。

/etc/fstab是用来存放文件系统的静态信息的文件,当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。该文件很重要,一定要配置正确,否则可能会引起大问题。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-12-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、背景
  • 二、生产环境模拟
    • 1.模拟文件系统
      • 2.模拟生产目录结构
        • 3.模拟应用和日志文件
          • 4.模拟生产/etc/fstab配置
          • 三、生产环境复现
            • 1.重启服务器
              • 2.文件检查
                • 3.手动恢复
                  • 4.问题解决
                  • 四、总结
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档