誰(shuí)偷了我的云主機(jī)文件?!五大場(chǎng)景避坑指南

2022-10-12    分類(lèi): 網(wǎng)站建設(shè)

誰(shuí)偷了我的云主機(jī)文件?!五大場(chǎng)景避坑指南

在云主機(jī)的日常運(yùn)維工作中,我們的工程師經(jīng)常會(huì)遇到用戶(hù)上報(bào)的文件丟失類(lèi)問(wèn)題,原因多種多樣,這些問(wèn)題對(duì)用戶(hù)造成了或大或小的困擾?,F(xiàn)將其中較典型的場(chǎng)景梳理出來(lái),希望能夠幫助大家規(guī)避掉這些風(fēng)險(xiǎn),防止重復(fù)踩坑。

場(chǎng)景一:云主機(jī)重啟后文件丟失

現(xiàn)象:

用戶(hù)上報(bào):我的云主機(jī)重啟后,上面存放的數(shù)據(jù)怎么沒(méi)了,是不是云主機(jī)有問(wèn)題啊?!

分析:

與用戶(hù)溝通后確認(rèn),是用戶(hù)存儲(chǔ)在/dev目錄下面的文件不見(jiàn)了。很明顯,用戶(hù)數(shù)據(jù)存儲(chǔ)在文件系統(tǒng)類(lèi)型為tmpfs的/dev目錄,tmpfs文件系統(tǒng)默認(rèn)存儲(chǔ)在內(nèi)存中而非持久化的磁盤(pán),所以重啟主機(jī)后數(shù)據(jù)丟失。

解析:

1、何為tmpfs?

tmpfs是一種基于內(nèi)存的臨時(shí)文件系統(tǒng),數(shù)據(jù)存儲(chǔ)在ram中,性能非常好。

2、Linux系統(tǒng)有哪些tmpfs?

/dev、/dev/shm、/sys/fs/cgroup、/run/user/0等,tmpfs文件系統(tǒng)默認(rèn)為內(nèi)存總大小的一半。通過(guò)df 命令可以看到哪些卷是tmpfs文件系統(tǒng)(Filesystem列顯示為tmpfs):

誰(shuí)偷了我的云主機(jī)文件?!五大場(chǎng)景避坑指南

建議:

1、tmpfs只用于程序/應(yīng)用的緩存;

2、不建議將數(shù)據(jù)放在tmpfs中(除非可承受數(shù)據(jù)丟失的風(fēng)險(xiǎn))。

場(chǎng)景二:誤執(zhí)行rm命令

現(xiàn)象:

用戶(hù)上報(bào):云主機(jī)重啟后ping不通,或者系統(tǒng)一些服務(wù)啟動(dòng)不了,系統(tǒng)關(guān)鍵文件丟失等等。

分析:

1、通過(guò)虛擬化的控制臺(tái)看到,OS卡在開(kāi)機(jī)界面并且報(bào)大量的命令不存在;

2、掛載鏡像進(jìn)入系統(tǒng)后,通過(guò)less /root/.bash_history查看用戶(hù)的操作記錄,可能看到rm -rf / 、rm -rf 、rm -rf . /*(點(diǎn)號(hào)與斜杠之間有空格)、rm -rf ./ 等之類(lèi)的命令,導(dǎo)致大量的系統(tǒng)目錄及文件被刪除掉;

3、執(zhí)行rpm -Va |grep miss 命令校驗(yàn)丟失的系統(tǒng)文件(對(duì)于不是通過(guò)rpm包安裝的文件無(wú)法校驗(yàn))。

建議:

1、慎重使用rm命令,尤其時(shí)帶上-r 及-f 參數(shù)時(shí); 可以加上-i參數(shù)進(jìn)行刪除確認(rèn);

2、出現(xiàn)誤操作時(shí),要第一次時(shí)間停掉磁盤(pán)的寫(xiě)入,再想辦法恢復(fù),避免被刪除文件的磁盤(pán)空間被覆蓋;

3、對(duì)于刪除的系統(tǒng)文件,可以從其他正常的系統(tǒng)通過(guò)拷貝的方式還原;

4、對(duì)于一些系統(tǒng)文件或配置文件,還可以通過(guò)yum reinstall 包名/yum update 包名 命令重新安裝/升級(jí)安裝來(lái)還原。

場(chǎng)景三:文件系統(tǒng)損壞(FIO)

現(xiàn)象:

用戶(hù)上報(bào):在云主機(jī)上運(yùn)行的 MySQL數(shù)據(jù)庫(kù)異常。

分析:

1、通過(guò)監(jiān)控看到云主機(jī)的IOWAIT比較高,懷疑和IO限制有關(guān):

誰(shuí)偷了我的云主機(jī)文件?!五大場(chǎng)景避坑指南

2、放開(kāi)云主機(jī)磁盤(pán)限制后,仍然出現(xiàn)異常;MySQL服務(wù)不斷的在crash,并且備機(jī)與主機(jī)的現(xiàn)象一樣,打印如下日志:

誰(shuí)偷了我的云主機(jī)文件?!五大場(chǎng)景避坑指南

3、DBA定位,反饋 MySQL的數(shù)據(jù)文件有問(wèn)題。

4、在備機(jī)上發(fā)現(xiàn),mysql 數(shù)據(jù)文件所在卷的文件系統(tǒng)有異常并且異常比較嚴(yán)重,在該卷上創(chuàng)建創(chuàng)建文件也會(huì)失?。?/p>

誰(shuí)偷了我的云主機(jī)文件?!五大場(chǎng)景避坑指南

5、通過(guò)history命令分析root用戶(hù)操作記錄,發(fā)現(xiàn)用戶(hù)使用fio命令對(duì)/dev/vdb磁盤(pán)(/data卷所在的磁盤(pán))直接進(jìn)行壓測(cè),壓測(cè)有隨機(jī)寫(xiě)、順序?qū)懀皇菍?xiě)/data目錄:

誰(shuí)偷了我的云主機(jī)文件?!五大場(chǎng)景避坑指南

6、MySQL主節(jié)點(diǎn)也有執(zhí)行相同的 fio 操作,由于fio是繞過(guò)文件系統(tǒng)層直接對(duì)塊設(shè)備進(jìn)行操作,磁盤(pán)的真實(shí)數(shù)據(jù)已經(jīng)被覆蓋,導(dǎo)致文件已經(jīng)嚴(yán)重破壞,MySQL數(shù)據(jù)庫(kù)無(wú)法解析錯(cuò)誤的數(shù)據(jù)文件,從而crash。

7、2臺(tái)MySQL主機(jī)的/data卷數(shù)據(jù)已經(jīng)不可靠,需要重新格式化/data卷,并通過(guò)備份節(jié)點(diǎn)進(jìn)行恢復(fù)數(shù)據(jù)。

建議:

1、生產(chǎn)環(huán)境要慎用 fio 工具,應(yīng)該在上線前進(jìn)行壓測(cè);

2、使用 fio 命令時(shí),—filename 參數(shù)一定不要直接指定塊設(shè)備(如/dev/sda、/dev/vdb等),而要指定一個(gè)普通文件,可以先touch一個(gè)空文件,再指定這個(gè)文件名。

誰(shuí)偷了我的云主機(jī)文件?!五大場(chǎng)景避坑指南

測(cè)試完成后,再刪除該文件即可,不然會(huì)占用 -size 參數(shù)所指定的空間。

場(chǎng)景四:文件系統(tǒng)損壞(DD)

現(xiàn)象:

用戶(hù)上報(bào):云主機(jī)文件訪問(wèn)異常。

分析:

1、云主機(jī)數(shù)據(jù)卷上的文件無(wú)訪問(wèn),并且ls也異常,報(bào)【Structure needs cleaning】錯(cuò)誤:

誰(shuí)偷了我的云主機(jī)文件?!五大場(chǎng)景避坑指南

2、通過(guò)dmesg及 /var/log/messages日志文件看到有大量xfs文件系統(tǒng)的報(bào)錯(cuò):

誰(shuí)偷了我的云主機(jī)文件?!五大場(chǎng)景避坑指南

3、通過(guò)history命令分析root用戶(hù)操作記錄,發(fā)現(xiàn)root用戶(hù)有使用dd 命令對(duì) /dev/vdb 磁盤(pán)(/data卷所在的磁盤(pán))直接進(jìn)行壓測(cè),對(duì)/dev/vdb磁盤(pán)寫(xiě)零:

誰(shuí)偷了我的云主機(jī)文件?!五大場(chǎng)景避坑指南

建議:

1、生產(chǎn)環(huán)境要慎用 dd 工具,應(yīng)該在上線前進(jìn)行壓測(cè);

2、使用 dd 命令時(shí) of 參數(shù)一定不要直接指定塊設(shè)備(如/dev/sda、/dev/vdb等)要指定一個(gè)普通文件。

如下:

誰(shuí)偷了我的云主機(jī)文件?!五大場(chǎng)景避坑指南

場(chǎng)景五:數(shù)據(jù)盤(pán)被誤刪除

現(xiàn)象:

用戶(hù)上報(bào):云磁盤(pán)被誤刪除。

分析:

1、登錄云門(mén)戶(hù)查看云磁盤(pán)的刪除時(shí)間,由于云資源是延遲一段時(shí)間再刪除的,短時(shí)間內(nèi)還可以找回被刪除的資源:

誰(shuí)偷了我的云主機(jī)文件?!五大場(chǎng)景避坑指南

2、在虛擬化控制臺(tái),確認(rèn)磁盤(pán)是否已經(jīng)刪除(State狀態(tài)要為Ready):

誰(shuí)偷了我的云主機(jī)文件?!五大場(chǎng)景避坑指南

3、如果尚未刪除,可以將云磁盤(pán)重新attach到主機(jī);

4、在云門(mén)戶(hù)同步云磁盤(pán)信息。

建議:

1、云磁盤(pán)的刪除操作請(qǐng)謹(jǐn)慎,誤刪后數(shù)據(jù)真得無(wú)法恢復(fù);

2、刪除操作前先確認(rèn):

A. 在主機(jī)上通過(guò)lsof -n、df -h、lvs/pvs/vgs、lsblk等工具確認(rèn)磁盤(pán)是否在使用、是否用于擴(kuò)容的卷;

B. 對(duì)于非用于擴(kuò)容的卷,確認(rèn)后,先umount卷、并且清除/etc/fstab中掛載點(diǎn)的信息;

C. 用于擴(kuò)容的卷無(wú)法直接刪除,刪除會(huì)導(dǎo)致原卷出現(xiàn)異常;

3、出現(xiàn)誤操作時(shí),要第一時(shí)間聯(lián)系恢復(fù),否則磁盤(pán)會(huì)被物理清理。

云計(jì)算云主機(jī)數(shù)據(jù)文件

新聞名稱(chēng):誰(shuí)偷了我的云主機(jī)文件?!五大場(chǎng)景避坑指南
本文來(lái)源:http://muchs.cn/news16/204766.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)虛擬主機(jī)、網(wǎng)站設(shè)計(jì)公司網(wǎng)站改版、關(guān)鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)