谁偷了我的云主机文件?!五大场景避坑指南
云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
在云主机的日常运维工作中,我们的工程师经常会遇到用户上报的文件丢失类问题,原因多种多样,这些问题对用户造成了或大或小的困扰。现将其中较典型的场景梳理出来,希望能够帮助大家规避掉这些风险,防止重复踩坑。
场景一:云主机重启后文件丢失
现象:
用户上报:我的云主机重启后,上面存放的数据怎么没了,是不是云主机有问题啊?!
分析:
与用户沟通后确认,是用户存储在/dev目录下面的文件不见了。很明显,用户数据存储在文件系统类型为tmpfs的/dev目录,tmpfs文件系统默认存储在内存中而非持久化的磁盘,所以重启主机后数据丢失。
解析:
1、何为tmpfs?
tmpfs是一种基于内存的临时文件系统,数据存储在ram中,性能非常好。
2、Linux系统有哪些tmpfs?
/dev、/dev/shm、/sys/fs/cgroup、/run/user/0等,tmpfs文件系统默认为内存总大小的一半。通过df 命令可以看到哪些卷是tmpfs文件系统(Filesystem列显示为tmpfs):
建议:
1、tmpfs只用于程序/应用的缓存;
2、不建议将数据放在tmpfs中(除非可承受数据丢失的风险)。
场景二:误执行rm命令
现象:
用户上报:云主机重启后ping不通,或者系统一些服务启动不了,系统关键文件丢失等等。
分析:
1、通过虚拟化的控制台看到,OS卡在开机界面并且报大量的命令不存在;
2、挂载镜像进入系统后,通过less /root/.bash_history查看用户的操作记录,可能看到rm -rf / 、rm -rf 、rm -rf . /*(点号与斜杠之间有空格)、rm -rf ./ 等之类的命令,导致大量的系统目录及文件被删除掉;
3、执行rpm -Va |grep miss 命令校验丢失的系统文件(对于不是通过rpm包安装的文件无法校验)。
建议:
1、慎重使用rm命令,尤其时带上-r 及-f 参数时; 可以加上-i参数进行删除确认;
2、出现误操作时,要第一次时间停掉磁盘的写入,再想办法恢复,避免被删除文件的磁盘空间被覆盖;
3、对于删除的系统文件,可以从其他正常的系统通过拷贝的方式还原;
4、对于一些系统文件或配置文件,还可以通过yum reinstall 包名/yum update 包名 命令重新安装/升级安装来还原。
场景三:文件系统损坏(FIO)
现象:
用户上报:在云主机上运行的 MySQL数据库异常。
分析:
1、通过监控看到云主机的IOWAIT比较高,怀疑和IO限制有关:
2、放开云主机磁盘限制后,仍然出现异常;MySQL服务不断的在crash,并且备机与主机的现象一样,打印如下日志:
3、DBA定位,反馈 MySQL的数据文件有问题。
4、在备机上发现,mysql 数据文件所在卷的文件系统有异常并且异常比较严重,在该卷上创建创建文件也会失败:
5、通过history命令分析root用户操作记录,发现用户使用fio命令对/dev/vdb磁盘(/data卷所在的磁盘)直接进行压测,压测有随机写、顺序写,而不是写/data目录:
6、MySQL主节点也有执行相同的 fio 操作,由于fio是绕过文件系统层直接对块设备进行操作,磁盘的真实数据已经被覆盖,导致文件已经严重破坏,MySQL数据库无法解析错误的数据文件,从而crash。
7、2台MySQL主机的/data卷数据已经不可靠,需要重新格式化/data卷,并通过备份节点进行恢复数据。
建议:
1、生产环境要慎用 fio 工具,应该在上线前进行压测;
2、使用 fio 命令时,—filename 参数一定不要直接指定块设备(如/dev/sda、/dev/vdb等),而要指定一个普通文件,可以先touch一个空文件,再指定这个文件名。
测试完成后,再删除该文件即可,不然会占用 -size 参数所指定的空间。
场景四:文件系统损坏(DD)
现象:
用户上报:云主机文件访问异常。
分析:
1、云主机数据卷上的文件无访问,并且ls也异常,报【Structure needs cleaning】错误:
2、通过dmesg及 /var/log/messages日志文件看到有大量xfs文件系统的报错:
3、通过history命令分析root用户操作记录,发现root用户有使用dd 命令对 /dev/vdb 磁盘(/data卷所在的磁盘)直接进行压测,对/dev/vdb磁盘写零:
建议:
1、生产环境要慎用 dd 工具,应该在上线前进行压测;
2、使用 dd 命令时 of 参数一定不要直接指定块设备(如/dev/sda、/dev/vdb等)要指定一个普通文件。
如下:
场景五:数据盘被误删除
现象:
用户上报:云磁盘被误删除。
分析:
1、登录云门户查看云磁盘的删除时间,由于云资源是延迟一段时间再删除的,短时间内还可以找回被删除的资源:
2、在虚拟化控制台,确认磁盘是否已经删除(State状态要为Ready):
3、如果尚未删除,可以将云磁盘重新attach到主机;
4、在云门户同步云磁盘信息。
建议:
1、云磁盘的删除操作请谨慎,误删后数据真得无法恢复;
2、删除操作前先确认:
A. 在主机上通过lsof -n、df -h、lvs/pvs/vgs、lsblk等工具确认磁盘是否在使用、是否用于扩容的卷;
B. 对于非用于扩容的卷,确认后,先umount卷、并且清除/etc/fstab中挂载点的信息;
C. 用于扩容的卷无法直接删除,删除会导致原卷出现异常;
3、出现误操作时,要第一时间联系恢复,否则磁盘会被物理清理。
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
ECS云服务器通用型g6和通用型g5如何选择?两者有何差异?
阿里云ECS云服务器通用型g6和g5的区别以及选择建议 阿里云ECS云服务器通用型g6和通用型g5实例有什么区别?通用型g5和g6都是用于性能均衡场景,CPU内存比都是1:4,本文来说说通用型g6和通用型g5的区别以及选择方法:官方文档:云服务器ECS共享标准型S6实例 ECS云服务器通用型g6和通用型g5有什么区别? 顾名思义,通用型g6是通用型g5的升级版,ECS云服务器通用型g6是第六代云服务器,性能全面提升的同时价格有所下调,如何选择?云E优站长博客建议选择通用型g6实例。 通用型g6云服务器是阿里云的第六代云服务器,第六代云服务器是基于第二代Intel至强可扩展处理器,睿频从上一代2.7Ghz提升到3.2Ghz,E2E计算性能有3-15%的提升;支持vnni指令集,对于深度学习的推理场景有2-4倍性能提升;虚拟化优化性能抖动,ping flood延时超过1ms的报文数<1/100万。 通用型g6和通用型g5区别对比表 综上,阿里云ECS云服务器通用型g6是通用型g5的升级版,性能有所提升,如何选择?新手站长网还是建议性价比放在第一位,虽然通用型g6是g5的升级版,但是通...
- 下一篇
小公司怎么选云服务器
1、服务器可扩展性由于互联网正处于快速发展当中,每一天都会新的互联网技术诞生,云服务器租用价格并不低,如果说互联网更新,主机就不能使用,那么对客户来说是不友善。选择扩展性好的云服务器,能够随时适应互联网技术快速发展。2、主机的配置合理为了使云服务器能够一直高效稳定运转,需要大家购买配置和企业网站运转差不多的。比如说企业花了很多钱购买一个高机能的云主机,但是内部配件却使用了低价的兼容组建,这就会发生低配件处于满额状态,有些配件没有工作处于闲置,这会导致整个主机的技能下降。3、服务器防护效果好为了避免市场恶意竞争而引起的恶意网站攻击,主机在安全性方面肯定是要做好功夫,通常高防云服务器的提供商为主机配置了各种防护手段,能够有效防止别人的恶意攻击。4、提供商客户口碑尽量选择那种客户口碑比较好的云服务商,一些提供商因为售后服务做不过关,而导致用户口碑很差,相信大家也不愿意选择售后服务不好的提供商,在租用前先看下对方口碑。
相关文章
文章评论
共有0条评论来说两句吧...