日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

文件系統(tǒng)那些事兒,你學(xué)會(huì)了嗎?

來源: 責(zé)編: 時(shí)間:2024-02-06 10:12:16 332觀看
導(dǎo)讀引言“Everything is a file(一切皆文件)”是UNIX世界里的名言,也是UNIX系統(tǒng)的設(shè)計(jì)思想之一。在其之后演變出眾多UNIX、Linux,如開源的FreeBSD、OpenBSD、GNU/Linux或商業(yè)的AIX、HP-UX、Solaris等均繼承了該思想。不論是

引言

“Everything is a file(一切皆文件)”是UNIX世界里的名言,也是UNIX系統(tǒng)的設(shè)計(jì)思想之一。在其之后演變出眾多UNIX、Linux,如開源的FreeBSD、OpenBSD、GNU/Linux或商業(yè)的AIX、HP-UX、Solaris等均繼承了該思想。不論是普通文件、目錄、字符設(shè)備、塊設(shè)備、socket套接字、網(wǎng)絡(luò)設(shè)備等,對操作系統(tǒng)來說都是文件。雖然類型不同,但操作系統(tǒng)都提供了一套統(tǒng)一的接口,即文件系統(tǒng)來對上述各種文件統(tǒng)一管理。本文講述了G行文件系統(tǒng)使用中遇到的一些有趣問題和解決辦法,供大家參考。tea28資訊網(wǎng)——每日最新資訊28at.com

tea28資訊網(wǎng)——每日最新資訊28at.com

1、文件系統(tǒng)的基本功能

文件系統(tǒng)是操作系統(tǒng)的重要組成部分,定義了把文件存儲(chǔ)于硬盤時(shí)的數(shù)據(jù)結(jié)構(gòu)及管理方式。硬盤是由很多扇區(qū)組成,為了訪問硬盤中的數(shù)據(jù),就必須在文件和扇區(qū)之間建立聯(lián)系,比如需要知道文件從哪個(gè)扇區(qū)開始、一共占多少個(gè)扇區(qū)、文件有什么屬性……這就是文件系統(tǒng)要做的事情。tea28資訊網(wǎng)——每日最新資訊28at.com

一個(gè)操作系統(tǒng)通常會(huì)建立多個(gè)文件系統(tǒng),每個(gè)文件系統(tǒng)都有獨(dú)立和完整的結(jié)構(gòu),當(dāng)一個(gè)文件系統(tǒng)出現(xiàn)問題不會(huì)影響到其他文件系統(tǒng)。通過文件系統(tǒng)還可以實(shí)現(xiàn)配額管理,限制用戶的存儲(chǔ)空間容量,防止用戶無限制地使用存儲(chǔ)空間。tea28資訊網(wǎng)——每日最新資訊28at.com

 一般來說,文件系統(tǒng)是和操作系統(tǒng)緊密結(jié)合在一起的,不同類型的操作系統(tǒng)默認(rèn)使用不同的文件系統(tǒng),比如AIX的jfs2文件系統(tǒng)、HP-UX的vxfs文件系統(tǒng)、Linux的ext4文件系統(tǒng)等。tea28資訊網(wǎng)——每日最新資訊28at.com

tea28資訊網(wǎng)——每日最新資訊28at.com

2、文件系統(tǒng)和LVM

文件系統(tǒng)通常建立在LVM(Logical Volume Manager)之上?;贚VM的管理功能,將硬盤或硬盤分區(qū)組合起來,創(chuàng)建一個(gè)邏輯層給文件系統(tǒng)使用,實(shí)現(xiàn)了靈活、方便、動(dòng)態(tài)地管理各種存儲(chǔ)設(shè)備。各類UNIX/Linux在LVM管理上大同小異,如下圖所示:tea28資訊網(wǎng)——每日最新資訊28at.com

tea28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片tea28資訊網(wǎng)——每日最新資訊28at.com

硬盤(或使用SCSI等協(xié)議連接的外置存儲(chǔ))在LVM中被標(biāo)記為物理卷(PV,Physical Volume),多個(gè)PV組成一個(gè)卷組(VG,Volume Group),然后,在VG中劃分出多個(gè)邏輯卷(LV,Volume Group),最后將LV格式化成文件系統(tǒng)(FS,F(xiàn)ile System)供用戶使用。這樣,一個(gè)文件系統(tǒng)的大小就突破了物理硬盤空間連續(xù)性的限制,也可以跨多個(gè)硬盤,提供更大的存儲(chǔ)空間。LVM也可用于提升I/O性能,通過對LV邏輯卷設(shè)置條帶化,使I/O落在多個(gè)PV物理卷上。tea28資訊網(wǎng)——每日最新資訊28at.com

tea28資訊網(wǎng)——每日最新資訊28at.com

3、文件系統(tǒng)使用中遇到的典型問題

文件系統(tǒng)雖然有上述各種優(yōu)點(diǎn),但是實(shí)際使用中也遇到過形形色色的問題,接下來我們分享幾個(gè)有代表性的文件系統(tǒng)問題。tea28資訊網(wǎng)——每日最新資訊28at.com

案例1:某服務(wù)器在編譯Tuxedo ubb配置文件時(shí),編譯報(bào)錯(cuò),并且沒有日志生成。tea28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片tea28資訊網(wǎng)——每日最新資訊28at.com

從官方錯(cuò)誤編碼解釋分析:編譯文件所在的目錄中,存在目錄名過長(大于78個(gè)字符)或目錄結(jié)構(gòu)權(quán)限錯(cuò)誤。tea28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片tea28資訊網(wǎng)——每日最新資訊28at.com

但檢查確認(rèn)該ubb所在的目錄中,不存在過長的目錄名。嘗試將權(quán)限都改成了777,編譯仍然報(bào)錯(cuò)。tea28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片tea28資訊網(wǎng)——每日最新資訊28at.com

對編譯命令進(jìn)行truss跟蹤,發(fā)現(xiàn)編譯命令在檢查當(dāng)前路徑的權(quán)限時(shí)報(bào)EACCES錯(cuò)。EACCES錯(cuò)誤的說明是“Search permission is denied on a component of the path prefix.”,Search permission也就是x(執(zhí)行)位的權(quán)限。tea28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片tea28資訊網(wǎng)——每日最新資訊28at.com

根據(jù)報(bào)錯(cuò)提示,執(zhí)行檢查命令,也驗(yàn)證了Permission denied錯(cuò)誤。通過AIX官方文檔資料確認(rèn),在AIX操作系統(tǒng)中,所有的jfs/jfs2文件系統(tǒng)都有兩套權(quán)限:文件系統(tǒng)權(quán)限和文件系統(tǒng)掛載點(diǎn)目錄權(quán)限。用戶要對文件系統(tǒng)和掛載點(diǎn)目錄都有r和x(searchable)的權(quán)限才能正常使用。卸載文件系統(tǒng)后,對掛載點(diǎn)目錄賦權(quán)755,重新掛載文件系統(tǒng),編譯順利通過。tea28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片tea28資訊網(wǎng)——每日最新資訊28at.com

案例 2:某個(gè)批量任務(wù)每天自動(dòng)創(chuàng)建 24 個(gè)目錄(每小時(shí) 1個(gè))。某天運(yùn)行該任務(wù)時(shí)突然報(bào)錯(cuò),顯示不能創(chuàng)建目錄。tea28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片tea28資訊網(wǎng)——每日最新資訊28at.com

按照錯(cuò)誤提示,手工檢查當(dāng)前文件系統(tǒng)空間和 inode 使用率都不高。該批量任務(wù)報(bào)錯(cuò)前創(chuàng)建了 9 個(gè)目錄,手工嘗試創(chuàng)建第 10個(gè)目錄也失敗了,報(bào)錯(cuò)信息和批量任務(wù)的報(bào)錯(cuò)信息一致。tea28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片tea28資訊網(wǎng)——每日最新資訊28at.com

進(jìn)一步排查發(fā)現(xiàn)批量任務(wù)腳本中對歷史文件打包備份后僅是清理了文件而未刪除目錄,導(dǎo)致目錄累計(jì)越來越多。當(dāng)前目錄下的子目錄一共 32767 個(gè),懷疑是一個(gè)目錄下的子目錄數(shù)量達(dá)到了上限。對這些歷史子目錄進(jìn)行清理后,新子目錄創(chuàng)建成功。tea28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片tea28資訊網(wǎng)——每日最新資訊28at.com

我們對 AIX、HP-UX、Linux 等操作系統(tǒng)進(jìn)行了測試,結(jié)果表明 AIX 和 HP-UX 的文件系統(tǒng)的目錄有 32768 個(gè)子目錄的限制,Linux 內(nèi)核版本小于等于 3.0.101 是有 32000 子目錄限制。于是,我們將一個(gè)目錄下的子目錄數(shù)量統(tǒng)計(jì)加入巡檢和監(jiān)控,當(dāng)發(fā)現(xiàn)子目錄數(shù)量接近 30000 時(shí)會(huì)自動(dòng)通知管理員進(jìn)行清理。tea28資訊網(wǎng)——每日最新資訊28at.com

案例 3:一個(gè)業(yè)務(wù)系統(tǒng)做壓力穩(wěn)定性測試時(shí),發(fā)現(xiàn)四臺(tái)應(yīng)用服務(wù)器中的一臺(tái)交易響應(yīng)變慢。查看這臺(tái)服務(wù)器上的應(yīng)用日志,發(fā)現(xiàn)有接近 15 秒的“斷檔”,沒有記錄。而同一時(shí)段的其他 3 臺(tái)應(yīng)用服務(wù)器的日志記錄均是連貫的。tea28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片tea28資訊網(wǎng)——每日最新資訊28at.com

查看這臺(tái)故障服務(wù)器的性能數(shù)據(jù),發(fā)現(xiàn)故障時(shí)段 vxfsd 進(jìn)程竟然占用了 8 顆 CPU。應(yīng)用日志所在的目錄就是一個(gè)單獨(dú)的 vxfs文件系統(tǒng),vxfsd 又是 vxfs 文件系統(tǒng)的主進(jìn)程,因此定位是 vxfs故障導(dǎo)致應(yīng)用日志無法寫入。tea28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片tea28資訊網(wǎng)——每日最新資訊28at.com

進(jìn)一步排查發(fā)現(xiàn)這臺(tái)服務(wù)器應(yīng)用日志文件系統(tǒng)的 lastid 計(jì)數(shù)器值遠(yuǎn)遠(yuǎn)小于其他 3 臺(tái)服務(wù)器的數(shù)值。tea28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片tea28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片tea28資訊網(wǎng)——每日最新資訊28at.com

查看 vxfs 的官方文檔確認(rèn):lastid 計(jì)數(shù)器最大值是 2 的30 次方,約等于 10 億 7 千萬。超過最大值后,vxfsd 進(jìn)程就會(huì)對 vxfs 文件系統(tǒng)元數(shù)據(jù)(包括 lastid)自動(dòng)重置,重置耗時(shí) 15秒,期間會(huì)影響 I/O。tea28資訊網(wǎng)——每日最新資訊28at.com

了解 vxfs 這個(gè)特性后,我們部署了巡檢和監(jiān)控:當(dāng)一個(gè) vxfs文件系統(tǒng)的 lasitd 達(dá)到 8 億時(shí)通知管理員。管理員選擇業(yè)務(wù)低峰時(shí)段主動(dòng)對 lastid 這一元數(shù)據(jù)進(jìn)行手工重置,避免在業(yè)務(wù)高峰時(shí)段因?yàn)?lastid 自動(dòng)重置影響系統(tǒng)性能。tea28資訊網(wǎng)——每日最新資訊28at.com

tea28資訊網(wǎng)——每日最新資訊28at.com

tea28資訊網(wǎng)——每日最新資訊28at.com

4、展望

隨著硬件技術(shù)的發(fā)展,文件系統(tǒng)技術(shù)也在不斷創(chuàng)新。尤其是SSD 閃存盤的普及,需要文件系統(tǒng)提供與之相適應(yīng)的文件管理方式,如 BTRFS 的 COW(Copy On Write)方式,避免頻繁擦寫 SSD,提升了 I/O 性能也延長了 SSD 的使用壽命。再有,ZFS 等新一代文件系統(tǒng)自身就具備了對硬盤的條帶化和鏡像能力,已經(jīng)不需要LVM 的支持了。但是,無論文件系統(tǒng)功能如何演進(jìn),它的基本原理沒有改變,值得我們深入探究。tea28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-74666-0.html文件系統(tǒng)那些事兒,你學(xué)會(huì)了嗎?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: .NET輕量級(jí)ORM框架Dapper.NET的高級(jí)應(yīng)用實(shí)例詳解

下一篇: 面向AI工程的五大JavaScript工具

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 五常市| 齐河县| 迭部县| 锡林郭勒盟| 兴安盟| 台安县| 石泉县| 曲靖市| 息烽县| 樟树市| 柳林县| 宽城| 宝鸡市| 孟津县| 隆化县| 宝山区| 嘉禾县| 文登市| 黄大仙区| 青阳县| 瓮安县| 马山县| 丰原市| 五莲县| 榆树市| 上饶市| 阳朔县| 乐亭县| 安陆市| 盐亭县| 民勤县| 施甸县| 鄂尔多斯市| 驻马店市| 于都县| 开原市| 江川县| 措美县| 内丘县| 玛沁县| 丰城市|