Linux容易因停电而损坏吗?


10

我公司的系统管理员说Linux容易因停电而受到干扰。他们说Windows机器总是能在断电后幸存,但是Linux机器经常变得无法恢复(即,您无法再引导机器)。之所以出现这种情况,是因为他们告诉我电力公司将关闭我们办公室的电源很长时间,因此管理员希望我关闭所有我自己在停机前可以访问的Linux机器。

我以为Linux应该很健壮?
我的问题是-我应该运行一些程序来避免Linux机箱因断电而受到干扰吗?


2
好吧,不管是什么操作系统问题,停电都会影响任何计算机,这仅仅是因为正在运行的每个进程都停止了。总是最好让机器自行关闭,因为这样所有进程都可以正常停止。
Doktoro Reichard

h,我知道这一点。问题是,由于某种原因,Linux是否比Windows更脆弱,如果是,我是否可以采取一些措施来提高其健壮性(例如,以某种方式强制其更频繁地刷新磁盘缓存)。
泰勒·德登

2
我的回答可能是概括性的且包含所有方面的内容:无论您做什么,总是有某处发生故障的风险。如果Linux更脆弱,我将其留给那些可以专门回答的人。我的个人经验(在Windows和OSX上)向我表明,除非我做我要关心的输出(例如模拟),否则它们很容易反弹。也许您应该添加的是机器的使用方式。
Doktoro Reichard

“我是否应该运行一些程序来避免我的Linux机器被断电所破坏?” 问题是在硬件级别上,您可以在此处运行的唯一有帮助的命令是“关闭计算机”。如果您对此感到担心,我建议您使用UPS(尽管如果计算机数量很多,这样做会很快变得昂贵)
大卫(David)

7
永远是一个大词,它也是错误的。停电期间Windows可能会损坏。为什么没有备用电池并将系统配置为关机?我可以肯定地说,任何说“总是”的人在99.99999%的时间内都是错误的。
Ramhound

Answers:


14

linux比Windows更脆弱吗?
答案是:取决于

在这种情况下,当有人说“无法启动”时,我将其翻译为“文件系统损坏”,并且对原始问题的回答是或否取决于您所使用的文件系统。

Windows不允许您为Linux系统允许的文件系统提供所有选择。您几乎永远不会看到非NTFS Windows系统。NTFS内置了一些功能,可以在断电时提供帮助,例如日记文件事务在发生故障时可以回滚。

Linux机顶盒可以具有此功能,而不能。这完全取决于服务器的设置方式。如果服务器使用ext2 1,则在电源出现故障时,您很容易受到文件损坏的影响。将其与使用Btrfs之类的系统进行比较,该系统比NTFS具有更多的数据完整性功能。

因此,如果您只与sys2交谈的sysadmin曾经与ext2系统一起工作过,那么他可能是对的,但是如果您使用另一个文件系统,则他可能是错的。


1:长期以来,Ext2是Debian和Red Hat Linux的默认设置。现在,它主要已被Ext3取代,而Ext3具有与NTFS相同的数据完整性功能。


带有日记记录和非NTFS文件事务的文件系统如何处理?我毫不怀疑,如果某些事情中断了,Windows中缺乏完整而完整的功能会导致更好的稳定性。
Ramhound

3
我在底部的注释中提到,Ext3与NTFS处于同一级别。我相信系统管理员可能只使用过Ext2文件系统,从他的角度来看,他是正确的。就像您只接触Fat32文件系统并且从未看过NTFS一样,您对Windows也会有类似的感觉(Fat32上的Windows版本在断电时文件损坏的历史非常糟糕)
Scott Chamberlain

我完全错过了脚注:-(
Ramhound,

+1表示正在使用和记录的不同文件系统。
Doktoro Reichard

最佳答案+1
Pimp Juice IT

3

不,在突然停电时,Linux在本质上并没有Windows强大。在任何一种操作系统的情况下,可能会发生的情况是,在断电的确切时刻将东西写入硬盘驱动器上的文件系统,并且(历史上)这可能会损坏文件系统。

解决此问题的方法是使用日记文件系统,该文件系统根据其写入信息的方式不受此问题的影响。我相信,NTFS也是大多数新文件系统-包括Ext3和ExT4(Linux最常见的文件系统)。因此,只要您使用日记文件系统,就不会遇到此问题。

后来就停机引导过程中,如果你有一个数据库(我看MYSQL,Postgres并没有从这个苦),你可能有类似的问题与MySQL数据库- MYSQL往往不是特别强劲(谷歌符合ACID MYSQL的这个话题)。如果您的MySQL设置不兼容ACID,则可以通过在重启时强制检查索引来解决此问题。

另一种观点(有点受累,可能对Windows不公平)是-Linux盒比Windows盒更可靠(根据正常运行时间和重新启动的需要来衡量)-因此,当Linux盒重启失败时,这可能是硬件问题是由年老引起的,而不是软件问题-但由于更频繁的重启,可能会更快地检测到出现故障的Windows框)


1

取决于发行版和所拥有的文件系统,它可能或多或少容易受到攻击。如果您知道有计划的停电,则绝对应该手动关闭(并花费一些时间进行维护,例如对系统进行吸尘或重新布线...)对于那些计划外的停电,请获取具有Linux关闭软件的UPS系统,这样您就不必不用担心,无论如何,您都应该运行此程序。对于大多数Linux发行版,都有一个APCUPSD文件可用,如果不是,请与发行版一起检查以查看其中已经存在或可用的文件,请确保它将关闭您的系统在依赖它之前会干净利落。


-9

我对此问题进行了一些研究,发现我的IT部门所说的基本上是正确的,Linux比Windows更容易断电。原因是inode表在Linux / unix中的工作方式。由于它是无序列表,并且会不断被修改,因此重要的静态文件(如内核二进制文件)与毫无价值的文件(如临时文件)之间没有分隔。这意味着关键系统文件的inode条目不断被重写,这显然是一个非常糟糕的设计。实际上,与非必需文件相比,关键系统文件实际上更可能在任何给定时间写入其inode条目。断电时,它往往会炸毁inode表中正在写入的任何部分,其中很可能不包含指向系统文件的指针。系统文件本身是完整无缺的,但是用于查找它们的目录已损坏。磁盘缓存会使情况变得更糟,这会增加inode表损坏区域的大小。

在Windows中,即使是旧的FAT文件系统也比这更强大。FAT也有一个表,但它是有序表,因此它没有将系统文件与临时文件混在一起。通常,系统文件都位于目录的一个区域中,因此不太可能经常写入该区域。此外,FAT具有备份目录,因此即使该目录已损坏,它也将还原为备份。这意味着使用FAT,即使电源中断,用户也不会丢失任何文件链接,即使是临时文件也是如此。但是,在Linux中,由于不断写入inode表,因此实际上可以确保用户在电源故障时无法访问文件。

唯一可以减轻这种情况的方法是关闭磁盘缓存。


2
-1。请提供链接,文章,来源等来支持您的主张,我将撤消我的不赞成。您指的是什么Linux文件系统?
卡米尔Maciorowski

泰勒-您确实读过斯科特·张伯伦(Scott Chamberlain)在问题上发布的答案,对吗?您是否100%确信解释这些inode表存储Linux文件(包括OS系统文件)的指针的方式是这种方法适用于所有当前Linux文件系统的方式,因为您可以选择多个,所以可以选择其中的一个,而有些确实有更多选择健壮的文件元数据inode /新闻发布/事务控件比其他控件(包括某些甚至比NTFS更强大的控件)所解释的吗?也许您是系统,或者您所写的系统是因为使用了较旧的Linux文件系统,因此您明智地选择了吗?
Pimp Juice IT

我发现这个答案(以及整个问题)成为笑话的主要原因是Linux / Unix支持Internet,而不是Windows。如果中断很容易使Linux / Unix系统崩溃,那么Internet将无法运行。另外,如果使用常规方式快速打开和关闭电源,那么使用Linux的路由器将毫无用处。
JakeGould

这个答案不只是不好的。这简直是​​胡说八道。这个答案中陈述的事实都不是非常准确的。
duskwuff -inactive
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.