热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

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

篇首语:本文由编程笔记#小编为大家整理,主要介绍了记一次生产上因fstab配置错误造成的应用拉起失败相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了记一次生产上因fstab配置错误造成的应用拉起失败相关的知识,希望对你有一定的参考价值。



一、背景

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

二、生产环境模拟

1.模拟文件系统

[root@node01 ]# lvcreate -L +10G -n logs root-vg
[root@node01
]# 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

2.模拟生产目录结构

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

[root@node01 ~]# cd /home
[root@node01 /home]# mkdir loong
[root@node01 /home]# cd loong/
[root@node01 /home/loong]# mkdir log

3.模拟应用和日志文件

[root@node01 /home/loong]# touch {1..5}.txt
[root@node01 /home/loong]# touch app{1..10

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

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

[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

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

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

[root@node01 /home/loong/logs]# more /etc/fsta

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

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

三、生产环境复现

1.重启服务器

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

[root@node01 ~]# init

2.文件检查

记一次生产上因fstab配置错误造成的应用拉起失败_日志文件_05

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

3.手动恢复

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

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

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

[root@node01 /home/loong/logs]# mount /dev/root-vg/logs /home/loong/logs

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

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

4.问题解决

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

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

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

四、总结

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

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


推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 解决php错误信息不显示在浏览器上的方法
    本文介绍了解决php错误信息不显示在浏览器上的方法。作者发现php中的各种错误信息并不显示在浏览器上,而是需要在日志文件中查看。为了解决这个问题,作者提供了一种解决方式:通过修改php.ini文件中的display_errors参数为On,并重启服务。这样就可以在浏览器上直接显示php错误信息了。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有