?快年底了,小心不打“招呼”就損壞!原本可幸免于難的Linux系統(tǒng)和文件數(shù)據(jù)意外如何避免?
是的,這就快到年底了,技術(shù)的或管理的工作都要進(jìn)入收尾階段。作為技術(shù)人員,有時(shí)候最怕關(guān)鍵時(shí)刻出的那點(diǎn)意外。
人家美國(guó)佬總結(jié)了一個(gè)定律叫【墨菲定律】,你之前曾擔(dān)心容易出問題的,往往后面就真的容易出問題的概率非常大。
只是不確定什么時(shí)候發(fā)生而已(發(fā)生了就呵呵了~~)。
所以今天向各位提個(gè)醒,提早做檢查預(yù)防和本文接下來指出的一些方面的準(zhǔn)備。
還記得經(jīng)典的藍(lán)屏嗎?
不一樣的面孔,熟悉的味道 —— 啟動(dòng)異常在Linux里面是這樣的:
好吧,這是旁邊同事斷電重啟后崩潰的電腦。我的極少出現(xiàn)故障,因?yàn)槲乙炎龊枚嘀仡A(yù)防措施。
本文接下來復(fù)盤和總結(jié)操作系統(tǒng)和Linux下容易發(fā)生的各種意外損壞情況,如何提前檢測(cè)和預(yù)防。很實(shí)用,一定要看到最底部哦。
Linux系統(tǒng)一般容易在哪些方面出問題
Linux 系統(tǒng)的穩(wěn)定性通常是非常好的,但在某些情況下,仍然可能出現(xiàn)穩(wěn)定性問題。以下是一些可能導(dǎo)致 Linux 系統(tǒng)不穩(wěn)定的常見原因:
- 硬件故障:硬件故障是導(dǎo)致系統(tǒng)不穩(wěn)定的常見原因之一。例如,磁盤故障、內(nèi)存故障、CPU 故障等都可能導(dǎo)致系統(tǒng)崩潰或無法啟動(dòng)。
- 內(nèi)核錯(cuò)誤:內(nèi)核是 Linux 系統(tǒng)的核心,如果內(nèi)核出現(xiàn)錯(cuò)誤,可能會(huì)導(dǎo)致系統(tǒng)不穩(wěn)定。例如,內(nèi)核 遇到無法處理的異常(panic)等都可能導(dǎo)致系統(tǒng)崩潰。
- 文件系統(tǒng)損壞:文件系統(tǒng)是存儲(chǔ) Linux 系統(tǒng)數(shù)據(jù)的重要組成部分,如果文件系統(tǒng)損壞,可能會(huì)導(dǎo)致系統(tǒng)無法啟動(dòng)或數(shù)據(jù)丟失。
- 軟件沖突:在 Linux 系統(tǒng)中安裝軟件時(shí),可能會(huì)出現(xiàn)軟件沖突或錯(cuò)誤安裝,導(dǎo)致系統(tǒng)不穩(wěn)定。
- 系統(tǒng)更新問題:在更新 Linux 系統(tǒng)時(shí),如果更新過程中出現(xiàn)錯(cuò)誤,可能會(huì)導(dǎo)致系統(tǒng)不穩(wěn)定。
- 惡意軟件:惡意軟件可能會(huì)導(dǎo)致系統(tǒng)不穩(wěn)定,例如病毒、木馬等。
- 過度負(fù)載:如果系統(tǒng)負(fù)載過高,可能會(huì)導(dǎo)致系統(tǒng)不穩(wěn)定,例如內(nèi)存不足、CPU 占用率過高等。
- 配置錯(cuò)誤:Linux 系統(tǒng)的配置文件非常重要,如果配置文件出現(xiàn)錯(cuò)誤,可能會(huì)導(dǎo)致系統(tǒng)不穩(wěn)定。
以上是一些可能導(dǎo)致 Linux 系統(tǒng)不穩(wěn)定的常見原因。
存儲(chǔ)硬件的故障和預(yù)防
日常我們用得最多也最重要的是文件數(shù)據(jù),所以硬盤之類的存儲(chǔ)設(shè)備故障要加以預(yù)防。
目前硬盤分為機(jī)械硬盤(HDD)和固態(tài)硬盤(SSD)。
機(jī)械硬盤的壽命通常取決于多種因素,例如使用環(huán)境、使用方式、工作負(fù)載等。一般機(jī)械硬盤的壽命在 3 到 5 年之間,但在良好的使用條件下,它們可以持續(xù)更長(zhǎng)時(shí)間。
SSD 硬盤的壽命一般比機(jī)械硬盤長(zhǎng),通常在 5 到 10 年之間,但這也取決于 SSD 硬盤的質(zhì)量和使用條件,如寫入次數(shù)的限制。SSD 硬盤的寫入次數(shù)是有限的,當(dāng)寫入次數(shù)達(dá)到一定數(shù)量時(shí),SSD 硬盤的性能可能會(huì)下降。因此,為了延長(zhǎng) SSD 硬盤的壽命,建議減少不必要的寫入操作,例如適用于機(jī)械硬盤的磁盤碎片整理,就完全不適用于 SSD 硬盤。
如果您在Windows下喜歡經(jīng)常個(gè)硬盤做磁盤碎片整理,從今天起就要知道Windows的磁盤碎片整理功能對(duì)于 SSD 來說只會(huì)加速消耗 SSD 硬盤的壽命。而 Linux 下的文件系統(tǒng)其實(shí)沒有“碎片整理”一說,因?yàn)長(zhǎng)inux的主流的文件系統(tǒng)(如ext4、xfs等),在開發(fā)設(shè)計(jì)之初就是對(duì)碎片友好的,能最優(yōu)化地使用磁盤的可用空間,而無需碎片整理。
對(duì)于服務(wù)器存儲(chǔ)來說,由于硬件設(shè)備常年累月持續(xù)運(yùn)行,服務(wù)器硬盤幾乎就以硬盤最大壽命在持續(xù)損耗。那么在部署Linux系統(tǒng)之前,就應(yīng)當(dāng)以RAID1、RAID5、RAID6、RAID10等帶有數(shù)據(jù)冗余災(zāi)備規(guī)格的磁盤陣列方式進(jìn)行磁盤初始化,然后再規(guī)劃文件系統(tǒng)、部署Linux系統(tǒng),規(guī)劃業(yè)務(wù)數(shù)據(jù)的冗余存儲(chǔ)方式(如分布式存儲(chǔ)、多機(jī)房冗余、異地冗余、定期備份、冷熱備份、使用支持快照的文件系統(tǒng)進(jìn)行備份),以多措并舉,保護(hù)最重要資源——數(shù)據(jù)。
舉個(gè)成功的例子,備份數(shù)據(jù)的習(xí)慣,讓某工程師成功避免了一場(chǎng)血的教訓(xùn)
某次電腦開機(jī)后,王工像往常一樣處理工作中的業(yè)務(wù)。為了傳輸 文件A到遠(yuǎn)端Linux系統(tǒng)下,通過拖拽文件到mobaxterm 軟件(一款SSH客戶端)的方式,進(jìn)度顯示上傳100% 已完成,他順便把本地文件徹底刪了。但由于未知原因觸發(fā)了該mobaxterm 軟件的BUG,mobaxterm報(bào)錯(cuò)后自動(dòng)關(guān)閉。此后再檢查遠(yuǎn)端的Linux系統(tǒng)下卻沒有文件A。
由于遠(yuǎn)端Linux系統(tǒng)不允許重啟或掛載恢復(fù)數(shù)據(jù),而本地文件A已徹底刪除(刪除得太自信了)。領(lǐng)導(dǎo)說文件A 非常重要,不允許丟失,馬上要用!否則后果很嚴(yán)重!你懂的!
OK,想起前一天下班前及時(shí)、完整備份過文件A到其他磁盤。不然真的要被KILL了。。。
這劇情,就像過山車一樣。不過這個(gè)習(xí)慣確實(shí)多次避免了【墨菲定律】的悲劇在這位工程師工作中的影響。
通過上面的例子,牽扯出硬件之外的另一個(gè)重要話題——軟件層面的預(yù)防:
軟件和文件數(shù)據(jù)相關(guān)的可靠性
建議在工作中多借助云端軟件,避免本地軟件故障帶來的損失。
又一個(gè)例子,某財(cái)務(wù)小姐姐最開始給客戶記錄財(cái)務(wù),都是保存到U盤隨身攜帶。某次在別的電腦U盤無法識(shí)別,經(jīng)過一通操作后,U盤在她自己電腦竟然也無法識(shí)別了。使用數(shù)據(jù)恢復(fù)軟件掃描也無法恢復(fù)(導(dǎo)致數(shù)據(jù)丟失的原因,比如U盤硬件故障、被惡意軟件破壞等,總之?dāng)?shù)據(jù)看起來沒了)。最終只能尋求專業(yè)的數(shù)據(jù)恢復(fù)公司解決,為了找回重要的財(cái)務(wù)記錄,恢復(fù)這個(gè)16GB的 U盤的數(shù)據(jù)的費(fèi)用,花了千把元。非??上А?/p>
而如果是資深財(cái)務(wù)人員,往往會(huì)借助內(nèi)網(wǎng)財(cái)務(wù)系統(tǒng)或 PaaS平臺(tái)的財(cái)務(wù)系統(tǒng) 等,讓數(shù)據(jù)在線存儲(chǔ)。數(shù)據(jù)存儲(chǔ)的可靠性,交由專業(yè)的云廠商。
即使個(gè)人財(cái)務(wù),也可以借助云的力量,比如使用WPS Office的自動(dòng)定時(shí)保存功能,WPS自動(dòng)備份到云端功能。而且WPS 也支持Linux,對(duì)于工程師來說也非常實(shí)用。WPS的年費(fèi)也不高,你值得擁有~
個(gè)人知識(shí)庫(kù)的管理,也可以借助飛書、釘釘、企業(yè)微信等的知識(shí)庫(kù)工具(支持Linux系統(tǒng)),實(shí)現(xiàn)個(gè)人知識(shí)庫(kù)上云備份的效果。
文件備份還可以基于跨平臺(tái)的網(wǎng)盤軟件(如堅(jiān)果云 就提供了非常好的跨平臺(tái)的網(wǎng)盤客戶端,支持目錄自動(dòng)備份到云端功能、支持WebDav API開發(fā)實(shí)現(xiàn)自定義的備份效果)。
所以,使用云端軟件備份保護(hù)本地?cái)?shù)據(jù),是一個(gè)人人可實(shí)現(xiàn)的,簡(jiǎn)單可行的方式。利用好云備份,可達(dá)到花小錢,受大利的效果。
Linux文件系統(tǒng)的數(shù)據(jù)可靠性機(jī)制
數(shù)據(jù)管理最常見的問題是數(shù)據(jù)寫入不一致,諸如在文件系統(tǒng)沒有完成寫入的時(shí)候突然斷電,這種情況并不算特別少見,Linux提供了下面的兩種方式解決斷電數(shù)據(jù)狀態(tài)不一致的問題:
- 文件系統(tǒng)的日志 :通常出現(xiàn)在ext4和xfs、btrfs等主流的文件系統(tǒng)。文件系統(tǒng)的日志特性可以確保文件系統(tǒng)的一致性,即使在系統(tǒng)崩潰或突然斷電的情況下,也可以通過日志恢復(fù)文件系統(tǒng)的數(shù)據(jù),日志可以記錄文件系統(tǒng)的所有操作,并在需要時(shí)驗(yàn)證文件系統(tǒng)的數(shù)據(jù)。,加快文件系統(tǒng)的恢復(fù)速度。日志功能還可以提高文件系統(tǒng)的性能,因?yàn)樗鼫p少了往文件系統(tǒng)的實(shí)際寫入的操作次數(shù)。
- 寫時(shí)復(fù)制機(jī)制 :也是主流文件系統(tǒng)大多支持的一個(gè)特性。寫時(shí)復(fù)制是一種文件系統(tǒng)的優(yōu)化技術(shù),它可以減少文件系統(tǒng)的寫入操作,提高文件系統(tǒng)的性能和可靠性。在寫時(shí)復(fù)制技術(shù)中,當(dāng)文件系統(tǒng)需要修改某個(gè)文件的數(shù)據(jù)時(shí),它并不會(huì)直接修改原始數(shù)據(jù),而是將原始數(shù)據(jù)復(fù)制到一個(gè)新的位置,并在新位置上進(jìn)行修改。這樣可以減少文件系統(tǒng)的寫入操作,提高文件系統(tǒng)的性能和可靠性。
支持日志保護(hù)的文件系統(tǒng)
使用日志處理情況要多一些,因?yàn)槿罩镜姆绞骄邆湟欢ǖ目勺x性也方便恢復(fù),操作主要分為下面兩個(gè)步驟:
- 數(shù)據(jù)修改之前把原子操作記錄到日志當(dāng)中。
- 宕機(jī)恢復(fù)的時(shí)候根據(jù)日志記錄內(nèi)容還原文件狀態(tài)。如果異常情況發(fā)生在日志記錄之前,可以直接丟棄寫入一部分的日志并且回滾,當(dāng)作文件狀態(tài)沒有更改過。而如果異常狀態(tài)發(fā)生在原子操作的過程之后,則根據(jù)日志的記錄把操作重新執(zhí)行一遍即可。
Linux下的現(xiàn)代文件系統(tǒng),如ext4和xfs、btrfs文件系統(tǒng)都支持寫入前的日志記錄功能, 這大大提高了抗斷電損壞的能力。適合作為桌面Linux和服務(wù)器Linux的文件系統(tǒng)格式。
Linux文件系統(tǒng)的數(shù)據(jù)一致性自動(dòng)修復(fù)方式
如果Linux文件系統(tǒng)的數(shù)據(jù)不一致了,在分區(qū)被掛載使用之前,會(huì)自動(dòng)先進(jìn)行分區(qū)數(shù)據(jù)自建修復(fù),成功后才會(huì)掛載使用。
幾乎所有的文件系統(tǒng)都有通用的fsck命令進(jìn)行恢復(fù),如ext4文件系統(tǒng)的修復(fù)可用 fsck.ext4命令,xfs文件系統(tǒng)的修復(fù)可用 fsck.xfs(或xfs_repair)。其他文件系統(tǒng)的修復(fù)命令類似。
例如,以下錯(cuò)誤,說明文件系統(tǒng)XFS需要使用xfs_repair 修復(fù)后方能掛載使用:
Linux fsck(file system check)命令用于檢查與修復(fù) Linux 文件系統(tǒng)。fsck命令的基本語(yǔ)法:
fsck [-sACVRP] [-t fstype] [--] [fsck-options] filesys [...]
(未完待續(xù))