​快年底了,小心不打“招呼”就损坏!原本可幸免于难的Linux系统和文件数据意外如何避免?

系统 Linux
本文来复盘和总结操作系统和 Linux 下容易发生的各种意外损坏情况,如何提前检测和预防。

是的,这就快到年底了,技术的或管理的工作都要进入收尾阶段。作为技术人员,有时候最怕关键时刻出的那点意外。

人家美国佬总结了一个定律叫【墨菲定律】,你之前曾担心容易出问题的,往往后面就真的容易出问题的概率非常大。

只是不确定什么时候发生而已(发生了就呵呵了~~)。

所以今天向各位提个醒,提早做检查预防和本文接下来指出的一些方面的准备。

还记得经典的蓝屏吗?

不一样的面孔,熟悉的味道 —— 启动异常在Linux里面是这样的:

好吧,这是旁边同事断电重启后崩溃的电脑。我的极少出现故障,因为我已做好多重预防措施。

本文接下来复盘和总结操作系统和Linux下容易发生的各种意外损坏情况,如何提前检测和预防。很实用,一定要看到最底部哦。

Linux系统一般容易在哪些方面出问题

Linux 系统的稳定性通常是非常好的,但在某些情况下,仍然可能出现稳定性问题。以下是一些可能导致 Linux 系统不稳定的常见原因:

  1. 硬件故障:硬件故障是导致系统不稳定的常见原因之一。例如,磁盘故障、内存故障、CPU 故障等都可能导致系统崩溃或无法启动。
  2. 内核错误:内核是 Linux 系统的核心,如果内核出现错误,可能会导致系统不稳定。例如,内核 遇到无法处理的异常(panic)等都可能导致系统崩溃。
  3. 文件系统损坏:文件系统是存储 Linux 系统数据的重要组成部分,如果文件系统损坏,可能会导致系统无法启动或数据丢失。
  4. 软件冲突:在 Linux 系统中安装软件时,可能会出现软件冲突或错误安装,导致系统不稳定。
  5. 系统更新问题:在更新 Linux 系统时,如果更新过程中出现错误,可能会导致系统不稳定。
  6. 恶意软件:恶意软件可能会导致系统不稳定,例如病毒、木马等。
  7. 过度负载:如果系统负载过高,可能会导致系统不稳定,例如内存不足、CPU 占用率过高等。
  8. 配置错误:Linux 系统的配置文件非常重要,如果配置文件出现错误,可能会导致系统不稳定。

以上是一些可能导致 Linux 系统不稳定的常见原因。

存储硬件的故障和预防

日常我们用得最多也最重要的是文件数据,所以硬盘之类的存储设备故障要加以预防。

目前硬盘分为机械硬盘(HDD)和固态硬盘(SSD)。

机械硬盘的寿命通常取决于多种因素,例如使用环境、使用方式、工作负载等。一般机械硬盘的寿命在 3 到 5 年之间,但在良好的使用条件下,它们可以持续更长时间。

SSD 硬盘的寿命一般比机械硬盘长,通常在 5 到 10 年之间,但这也取决于 SSD 硬盘的质量和使用条件,如写入次数的限制。SSD 硬盘的写入次数是有限的,当写入次数达到一定数量时,SSD 硬盘的性能可能会下降。因此,为了延长 SSD 硬盘的寿命,建议减少不必要的写入操作,例如适用于机械硬盘的磁盘碎片整理,就完全不适用于 SSD 硬盘。

如果您在Windows下喜欢经常个硬盘做磁盘碎片整理,从今天起就要知道Windows的磁盘碎片整理功能对于 SSD 来说只会加速消耗 SSD 硬盘的寿命。而 Linux 下的文件系统其实没有“碎片整理”一说,因为Linux的主流的文件系统(如ext4、xfs等),在开发设计之初就是对碎片友好的,能最优化地使用磁盘的可用空间,而无需碎片整理。

对于服务器存储来说,由于硬件设备常年累月持续运行,服务器硬盘几乎就以硬盘最大寿命在持续损耗。那么在部署Linux系统之前,就应当以RAID1、RAID5、RAID6、RAID10等带有数据冗余灾备规格的磁盘阵列方式进行磁盘初始化,然后再规划文件系统、部署Linux系统,规划业务数据的冗余存储方式(如分布式存储、多机房冗余、异地冗余、定期备份、冷热备份、使用支持快照的文件系统进行备份),以多措并举,保护最重要资源——数据。

举个成功的例子,备份数据的习惯,让某工程师成功避免了一场血的教训

某次电脑开机后,王工像往常一样处理工作中的业务。为了传输 文件A到远端Linux系统下,通过拖拽文件到mobaxterm 软件(一款SSH客户端)的方式,进度显示上传100% 已完成,他顺便把本地文件彻底删了。但由于未知原因触发了该mobaxterm 软件的BUG,mobaxterm报错后自动关闭。此后再检查远端的Linux系统下却没有文件A。

由于远端Linux系统不允许重启或挂载恢复数据,而本地文件A已彻底删除(删除得太自信了)。领导说文件A 非常重要,不允许丢失,马上要用!否则后果很严重!你懂的!

OK,想起前一天下班前及时、完整备份过文件A到其他磁盘。不然真的要被KILL了。。。

这剧情,就像过山车一样。不过这个习惯确实多次避免了【墨菲定律】的悲剧在这位工程师工作中的影响。

通过上面的例子,牵扯出硬件之外的另一个重要话题——软件层面的预防:

软件和文件数据相关的可靠性

建议在工作中多借助云端软件,避免本地软件故障带来的损失。

又一个例子,某财务小姐姐最开始给客户记录财务,都是保存到U盘随身携带。某次在别的电脑U盘无法识别,经过一通操作后,U盘在她自己电脑竟然也无法识别了。使用数据恢复软件扫描也无法恢复(导致数据丢失的原因,比如U盘硬件故障、被恶意软件破坏等,总之数据看起来没了)。最终只能寻求专业的数据恢复公司解决,为了找回重要的财务记录,恢复这个16GB的 U盘的数据的费用,花了千把元。非常可惜。

而如果是资深财务人员,往往会借助内网财务系统或 PaaS平台的财务系统 等,让数据在线存储。数据存储的可靠性,交由专业的云厂商。

即使个人财务,也可以借助云的力量,比如使用WPS Office的自动定时保存功能,WPS自动备份到云端功能。而且WPS 也支持Linux,对于工程师来说也非常实用。WPS的年费也不高,你值得拥有~

个人知识库的管理,也可以借助飞书、钉钉、企业微信等的知识库工具(支持Linux系统),实现个人知识库上云备份的效果。

文件备份还可以基于跨平台的网盘软件(如坚果云 就提供了非常好的跨平台的网盘客户端,支持目录自动备份到云端功能、支持WebDav API开发实现自定义的备份效果)。

所以,使用云端软件备份保护本地数据,是一个人人可实现的,简单可行的方式。利用好云备份,可达到花小钱,受大利的效果。

Linux文件系统的数据可靠性机制

数据管理最常见的问题是数据写入不一致,诸如在文件系统没有完成写入的时候突然断电,这种情况并不算特别少见,Linux提供了下面的两种方式解决断电数据状态不一致的问题:

  • 文件系统的日志 :通常出现在ext4和xfs、btrfs等主流的文件系统。文件系统的日志特性可以确保文件系统的一致性,即使在系统崩溃或突然断电的情况下,也可以通过日志恢复文件系统的数据,日志可以记录文件系统的所有操作,并在需要时验证文件系统的数据。,加快文件系统的恢复速度。日志功能还可以提高文件系统的性能,因为它减少了往文件系统的实际写入的操作次数。
  • 写时复制机制 :也是主流文件系统大多支持的一个特性。写时复制是一种文件系统的优化技术,它可以减少文件系统的写入操作,提高文件系统的性能和可靠性。在写时复制技术中,当文件系统需要修改某个文件的数据时,它并不会直接修改原始数据,而是将原始数据复制到一个新的位置,并在新位置上进行修改。这样可以减少文件系统的写入操作,提高文件系统的性能和可靠性。

支持日志保护的文件系统

使用日志处理情况要多一些,因为日志的方式具备一定的可读性也方便恢复,操作主要分为下面两个步骤:

  • 数据修改之前把原子操作记录到日志当中。
  • 宕机恢复的时候根据日志记录内容还原文件状态。如果异常情况发生在日志记录之前,可以直接丢弃写入一部分的日志并且回滚,当作文件状态没有更改过。而如果异常状态发生在原子操作的过程之后,则根据日志的记录把操作重新执行一遍即可。

Linux下的现代文件系统,如ext4和xfs、btrfs文件系统都支持写入前的日志记录功能, 这大大提高了抗断电损坏的能力。适合作为桌面Linux和服务器Linux的文件系统格式。

Linux文件系统的数据一致性自动修复方式

如果Linux文件系统的数据不一致了,在分区被挂载使用之前,会自动先进行分区数据自建修复,成功后才会挂载使用。

几乎所有的文件系统都有通用的fsck命令进行恢复,如ext4文件系统的修复可用 fsck.ext4命令,xfs文件系统的修复可用 fsck.xfs(或xfs_repair)。其他文件系统的修复命令类似。

例如,以下错误,说明文件系统XFS需要使用xfs_repair 修复后方能挂载使用:

Linux fsck(file system check)命令用于检查与修复 Linux 文件系统。fsck命令的基本语法:

fsck [-sACVRP] [-t fstype] [--] [fsck-options] filesys [...]

(未完待续)

责任编辑:赵宁宁 来源: 深入理解Linux
相关推荐

2024-01-10 09:34:15

2017-11-29 14:25:58

2022-01-26 00:20:19

运营商套餐业务

2018-04-15 16:01:12

Windows 10微软windows更新

2009-03-30 08:39:01

iphone苹果移动OS

2009-06-30 10:40:28

Linux

2009-07-02 19:07:25

Linux

2015-09-14 10:03:23

云锁定网络服务云供应商

2011-03-01 09:04:54

Sun前CEOSolarisLinux

2019-12-03 10:04:18

程序员招聘开发

2010-08-02 16:15:20

ibmdwLinux

2009-06-21 08:20:53

2021-10-22 14:38:30

Apache Cass数据库

2020-02-05 09:53:03

Windows 10系统文件Windows

2017-12-13 12:30:33

LinuxUnix文件系统

2010-08-05 11:03:55

创建分区文件系统

2019-03-04 11:30:07

修复Windows 10系统文件

2020-05-29 12:29:25

华为云

2018-01-10 12:42:09

Linux磁盘文件系统

2021-07-28 05:01:29

Lombok前端测试
点赞
收藏

51CTO技术栈公众号