• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

      ■河南 劉進京

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

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

      故障排查

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

      進入“/usr/local/mysql/data”路徑,使用“tail-f xxx.log”之類的命令查看MySQL相關(guān)日志信息,沒有發(fā)現(xiàn)可疑信息,這說明MySQL數(shù)據(jù)庫本身不存在明顯的問題。進入Tomcat的運行路徑下的“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)站的存儲路徑。

      進入到該目錄,執(zhí)行“mkdir”命令,隨便建立一個目錄進行測試,顯示“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是可以正常運行的,不會產(chǎn)生錯誤信息。但當(dāng)用戶上傳文件時,因為文件保存在“/web/data/html”目錄下,因為該目錄對應(yīng)的分區(qū)是只讀的,所以操作無法進行。

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

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

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

      故障修復(fù)

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

      例如,執(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ù)指定備份會話標(biāo)簽,“-M”參數(shù)指定設(shè)備的標(biāo)簽。執(zhí)行“xfs_repair/dev/sdb1”命令,開始對目標(biāo)分區(qū)進行修復(fù)操作。

      根據(jù)提示信息,可以看到修復(fù)過程實際上分為7個步驟,當(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”命令,表示僅僅對文件系統(tǒng)進行檢查操作,不修改文件系統(tǒng)任何數(shù)據(jù)。如果在加載分區(qū)時出現(xiàn)失敗,說明XFS文件系統(tǒng)的Journal Replay動作出錯,很可能Journal日志已經(jīng)損壞,這說明錯誤難以正?;謴?fù)??梢詧?zhí)行“xfs_repair-L/dev/sdb1”命令,來清除Journal Log信息。當(dāng)然,清除日志存在風(fēng)險,在之前最好對目標(biāo)分區(qū)進行備份。

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

      猜你喜歡
      磁盤日志命令
      只聽主人的命令
      一名老黨員的工作日志
      華人時刊(2021年13期)2021-11-27 09:19:02
      扶貧日志
      心聲歌刊(2020年4期)2020-09-07 06:37:14
      解決Windows磁盤簽名沖突
      電腦愛好者(2019年2期)2019-10-30 03:45:31
      修改磁盤屬性
      移防命令下達后
      游學(xué)日志
      磁盤組群組及iSCSI Target設(shè)置
      創(chuàng)建VSAN群集
      這是人民的命令
      丹江口市| 太仆寺旗| 包头市| 蛟河市| 新和县| 新野县| 安义县| 锡林浩特市| 开阳县| 黔东| 罗江县| 漳平市| 山阳县| 蓬安县| 苍南县| 宣城市| 双峰县| 车致| 宁海县| 若尔盖县| 巴塘县| 卓资县| 宜宾市| 华坪县| 区。| 平乡县| 木里| 屏南县| 天津市| 台江县| 迭部县| 南召县| 镇巴县| 靖西县| 商丘市| 阳曲县| 苏尼特左旗| 巧家县| 大港区| 徐水县| 南陵县|