国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

排查網(wǎng)站數(shù)據(jù)存儲(chǔ)故障

2020-12-31 09:34:00河南劉進(jìn)京
網(wǎng)絡(luò)安全和信息化 2020年3期
關(guān)鍵詞:磁盤日志命令

■河南 劉進(jìn)京

某單位的Web服務(wù)器使用的是LNMP架構(gòu),采用CentOS 7.X系統(tǒng),在其上運(yùn)行公司的網(wǎng)站。為了便于和客戶交流,在其中提供了留言板模塊,最近卻出現(xiàn)了比較奇怪的問題。

當(dāng)用戶試圖在其中添加各種信息,并上傳文件等內(nèi)容時(shí),出現(xiàn)諸如“上傳失敗,服務(wù)器錯(cuò)誤”等的提示信息,但是網(wǎng)站卻可以正常訪問。Web服務(wù)器的運(yùn)行看起來比較正常,監(jiān)控程序也沒有收到相關(guān)的報(bào)警信息。

故障排查

對(duì)于這種情況,最直觀的判斷是數(shù)據(jù)庫出現(xiàn)故障,或是磁盤空間耗盡的問題。因?yàn)樘峤坏臄?shù)據(jù)最終是保存到磁盤中的,如果磁盤存在問題,自然會(huì)造成上述故障。

進(jìn)入“/usr/local/mysql/data”路徑,使用“tail-f xxx.log”之類的命令查看MySQL相關(guān)日志信息,沒有發(fā)現(xiàn)可疑信息,這說明MySQL數(shù)據(jù)庫本身不存在明顯的問題。進(jìn)入Tomcat的運(yùn)行路徑下的“l(fā)ogs”目錄,執(zhí)行“tail-f catalina.out”命令,發(fā)現(xiàn)存在“Java.lang.RuntimeException:Can not make directory:file:/web/data/html/xxx”的提示,說明在指定的目錄下無法創(chuàng)建文件,該目錄就是網(wǎng)站的存儲(chǔ)路徑。

進(jìn)入到該目錄,執(zhí)行“mkdir”命令,隨便建立一個(gè)目錄進(jìn)行測(cè)試,顯示“cannot create directory:Readonly file system”信息,這說明該路徑所在的分區(qū)出現(xiàn)了故障,導(dǎo)致無法寫入數(shù)據(jù)。執(zhí)行“dmesg | more”命令,顯示sdb1分區(qū)出現(xiàn)“Remounting filesyatem read-only”警告,該磁盤設(shè)備掛載在上述“/web/data/”路徑下。但是MySQL的數(shù)據(jù)是保存在其他分區(qū)中的,該分區(qū)處于正常狀態(tài),所以MySQL是可以正常運(yùn)行的,不會(huì)產(chǎn)生錯(cuò)誤信息。但當(dāng)用戶上傳文件時(shí),因?yàn)槲募4嬖凇?web/data/html”目錄下,因?yàn)樵撃夸泴?duì)應(yīng)的分區(qū)是只讀的,所以操作無法進(jìn)行。

磁盤分區(qū)之所以出現(xiàn)只讀故障,可能由多種原因造成。EXT4、XFS等常用的文件系統(tǒng)擁有很強(qiáng)的自動(dòng)修復(fù)功能,對(duì)于簡(jiǎn)單的磁盤故障,系統(tǒng)可以自動(dòng)修復(fù)。當(dāng)遇到比較嚴(yán)重的問題,例如當(dāng)大量讀寫數(shù)據(jù)時(shí)突然掉電等,就會(huì)造成無法修復(fù)。系統(tǒng)為保證數(shù)據(jù)的一致性,會(huì)暫時(shí)屏蔽文件系統(tǒng)的寫操作,將文件系統(tǒng)變成只讀狀態(tài),就會(huì)造成無法寫入數(shù)據(jù)的問題。

該Web服務(wù)器采用的是XFS文件系統(tǒng),是日志文件系統(tǒng),可以有效解決因?yàn)楦鞣N原因造成的元數(shù)據(jù)不一致的問題。其原理是在進(jìn)入文件系統(tǒng)寫操作時(shí),會(huì)進(jìn)行一系列的步驟來實(shí)現(xiàn)。例如,在inode中添加指向數(shù)據(jù)塊指針,從Data Block Bitmap中分配數(shù)據(jù)庫,將數(shù)據(jù)寫入數(shù)據(jù)庫等。XFS文件系統(tǒng)會(huì)將這些環(huán)節(jié)預(yù)先記錄下來,并保存在Journal日志空間,只有日志保存完成后才會(huì)執(zhí)行實(shí)際的寫操作,即將元數(shù)據(jù)和用戶數(shù)據(jù)寫入磁盤中。

在寫入過程中如果出現(xiàn)故障,當(dāng)再次掛載文件系統(tǒng)時(shí),只需重新執(zhí)行之前保存的日志,就可以有效保證數(shù)據(jù)的一致性。該過程會(huì)通過Mount命令迅速完成,當(dāng)然這只能應(yīng)對(duì)簡(jiǎn)單的文件系統(tǒng)故障。對(duì)于嚴(yán)重的故障,只能使用fsck,xfs_repair等文件系統(tǒng)檢測(cè)程序來解決。使用這些工具,不僅僅是執(zhí)行簡(jiǎn)單的Journal Replay操作,而是對(duì)文件系統(tǒng)進(jìn)行深度的檢測(cè),檢測(cè)對(duì)象包括所有的存儲(chǔ)文件元信息的inode區(qū)域、超級(jí)區(qū)塊SuperBlock、目錄等對(duì)象。

故障修復(fù)

對(duì)于CentOX 7.X來說,使用的是XFS文件系統(tǒng),使用xfs_check命令,雖然可以對(duì)XFS文件系統(tǒng)進(jìn)行檢測(cè),但其執(zhí)行的速度太慢。相比之下,使用xfs_repair命令則效率要高的多。在執(zhí)行修復(fù)操作之前,最好對(duì)需要修復(fù)的分區(qū)進(jìn)行備份。

例如,執(zhí)行“mount-o ro,norecovery/dev/sdb1/destpath”命令,以只讀的方式將目標(biāo)分區(qū)加載到指定路徑。執(zhí)行“xfsdump-f /usr/data/backupfile/destpath-L part_dump-M part_dump”命令,將該分區(qū)的數(shù)據(jù)備份到“/usr/data/backupfile”文件中,“-L”參數(shù)指定備份會(huì)話標(biāo)簽,“-M”參數(shù)指定設(shè)備的標(biāo)簽。執(zhí)行“xfs_repair/dev/sdb1”命令,開始對(duì)目標(biāo)分區(qū)進(jìn)行修復(fù)操作。

根據(jù)提示信息,可以看到修復(fù)過程實(shí)際上分為7個(gè)步驟,當(dāng)修復(fù)完成后,執(zhí)行“mount /dev/sdb1 /destpath”命令,來掛載目標(biāo)分區(qū),執(zhí)行“xfsrestore-f/usr/data/backupfile”命令,將備份的數(shù)據(jù)恢復(fù)到目標(biāo)分區(qū)中。這樣,就將該分區(qū)恢復(fù)到了正常的狀態(tài)。如果執(zhí)行“xfs_repair-n/dev/sdb1”命令,表示僅僅對(duì)文件系統(tǒng)進(jìn)行檢查操作,不修改文件系統(tǒng)任何數(shù)據(jù)。如果在加載分區(qū)時(shí)出現(xiàn)失敗,說明XFS文件系統(tǒng)的Journal Replay動(dòng)作出錯(cuò),很可能Journal日志已經(jīng)損壞,這說明錯(cuò)誤難以正?;謴?fù)。可以執(zhí)行“xfs_repair-L/dev/sdb1”命令,來清除Journal Log信息。當(dāng)然,清除日志存在風(fēng)險(xiǎn),在之前最好對(duì)目標(biāo)分區(qū)進(jìn)行備份。

順便說一下,如果采用的是EXT4文件系統(tǒng),分區(qū)只讀故障修復(fù)方式是不同的。首先執(zhí)行“tune2fs-c 0-i 0/dev/sdb1”命令,禁止重啟后執(zhí)行全面檢測(cè)操作,否則重啟時(shí)間會(huì)過長。執(zhí)行“fuser-m/dev/sdb1”命令,檢測(cè)哪些進(jìn)程正在使用該分區(qū),之后關(guān)閉相關(guān)進(jìn)程。執(zhí)行“umount/web/data”命令,卸載故障所在磁盤分區(qū)。執(zhí)行“fsck-y/dev/sdb1”命令,對(duì)目標(biāo)分區(qū)進(jìn)行修復(fù),修復(fù)時(shí)間的長短取決于磁盤容量和文件系統(tǒng)損壞程度。如果無法修復(fù),可以根據(jù)需要選擇是否執(zhí)行刪除操作,被刪除的文件保存在對(duì)應(yīng)分區(qū)掛載點(diǎn)的lost+found目錄。修復(fù)完成后,執(zhí)行“mount/dev/sdb1/web/data”命令,完成掛載操作。

猜你喜歡
磁盤日志命令
只聽主人的命令
一名老黨員的工作日志
扶貧日志
心聲歌刊(2020年4期)2020-09-07 06:37:14
解決Windows磁盤簽名沖突
電腦愛好者(2019年2期)2019-10-30 03:45:31
修改磁盤屬性
移防命令下達(dá)后
游學(xué)日志
磁盤組群組及iSCSI Target設(shè)置
創(chuàng)建VSAN群集
這是人民的命令
高台县| 武功县| 虎林市| 凭祥市| 泰州市| 宜兰市| 绥宁县| 西盟| 阜新市| 迭部县| 北宁市| 漯河市| 陆丰市| 凤翔县| 三原县| 化隆| 湟中县| 元谋县| 攀枝花市| 丹棱县| 彭山县| 万宁市| 炎陵县| 陆河县| 湖北省| 闵行区| 九龙坡区| 东至县| 白河县| 临颍县| 会东县| 寿阳县| 瑞丽市| 侯马市| 宜昌市| 沙湾县| 锡林郭勒盟| 邻水| 平远县| 中江县| 夹江县|