偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

開發(fā) 前端
隨著硬件技術(shù)的發(fā)展,文件系統(tǒng)技術(shù)也在不斷創(chuàng)新。尤其是SSD 閃存盤的普及,需要文件系統(tǒng)提供與之相適應(yīng)的文件管理方式,如 BTRFS 的 COW(Copy On Write)方式,避免頻繁擦寫 SSD,提升了 I/O 性能也延長了 SSD 的使用壽命。

引言

“Everything is a file(一切皆文件)”是UNIX世界里的名言,也是UNIX系統(tǒng)的設(shè)計思想之一。在其之后演變出眾多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)使用中遇到的一些有趣問題和解決辦法,供大家參考。

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

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

一個操作系統(tǒng)通常會建立多個文件系統(tǒng),每個文件系統(tǒng)都有獨立和完整的結(jié)構(gòu),當(dāng)一個文件系統(tǒng)出現(xiàn)問題不會影響到其他文件系統(tǒng)。通過文件系統(tǒng)還可以實現(xiàn)配額管理,限制用戶的存儲空間容量,防止用戶無限制地使用存儲空間。

 一般來說,文件系統(tǒng)是和操作系統(tǒng)緊密結(jié)合在一起的,不同類型的操作系統(tǒng)默認(rèn)使用不同的文件系統(tǒng),比如AIX的jfs2文件系統(tǒng)、HP-UX的vxfs文件系統(tǒng)、Linux的ext4文件系統(tǒng)等。

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

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

圖片圖片

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

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

文件系統(tǒng)雖然有上述各種優(yōu)點,但是實際使用中也遇到過形形色色的問題,接下來我們分享幾個有代表性的文件系統(tǒng)問題。

案例1:某服務(wù)器在編譯Tuxedo ubb配置文件時,編譯報錯,并且沒有日志生成。

圖片圖片

從官方錯誤編碼解釋分析:編譯文件所在的目錄中,存在目錄名過長(大于78個字符)或目錄結(jié)構(gòu)權(quán)限錯誤。

圖片圖片

但檢查確認(rèn)該ubb所在的目錄中,不存在過長的目錄名。嘗試將權(quán)限都改成了777,編譯仍然報錯。

圖片圖片

對編譯命令進(jìn)行truss跟蹤,發(fā)現(xiàn)編譯命令在檢查當(dāng)前路徑的權(quán)限時報EACCES錯。EACCES錯誤的說明是“Search permission is denied on a component of the path prefix.”,Search permission也就是x(執(zhí)行)位的權(quán)限。

圖片圖片

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

圖片圖片

案例 2:某個批量任務(wù)每天自動創(chuàng)建 24 個目錄(每小時 1個)。某天運行該任務(wù)時突然報錯,顯示不能創(chuàng)建目錄。

圖片圖片

按照錯誤提示,手工檢查當(dāng)前文件系統(tǒng)空間和 inode 使用率都不高。該批量任務(wù)報錯前創(chuàng)建了 9 個目錄,手工嘗試創(chuàng)建第 10個目錄也失敗了,報錯信息和批量任務(wù)的報錯信息一致。

圖片圖片

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

圖片圖片

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

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

圖片圖片

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

圖片圖片

進(jìn)一步排查發(fā)現(xiàn)這臺服務(wù)器應(yīng)用日志文件系統(tǒng)的 lastid 計數(shù)器值遠(yuǎn)遠(yuǎn)小于其他 3 臺服務(wù)器的數(shù)值。

圖片圖片

圖片圖片

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

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

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),它的基本原理沒有改變,值得我們深入探究。

責(zé)任編輯:武曉燕 來源: 匠心獨運維妙維效
相關(guān)推薦

2023-01-13 11:55:05

TY子系統(tǒng)設(shè)備

2024-01-19 08:25:38

死鎖Java通信

2024-02-04 00:00:00

Effect數(shù)據(jù)組件

2023-07-26 13:11:21

ChatGPT平臺工具

2023-01-10 08:43:15

定義DDD架構(gòu)

2023-08-01 12:51:18

WebGPT機器學(xué)習(xí)模型

2024-01-02 12:05:26

Java并發(fā)編程

2023-06-08 07:34:19

HDFS小文件壓縮包

2023-10-10 11:04:11

Rust難點內(nèi)存

2024-05-06 00:00:00

InnoDBView隔離

2024-07-31 08:39:45

Git命令暫存區(qū)

2023-01-30 09:01:54

圖表指南圖形化

2022-07-08 09:27:48

CSSIFC模型

2023-12-12 08:02:10

2024-08-06 09:47:57

2023-01-13 16:46:38

CRM系統(tǒng)建設(shè)

2024-03-06 08:28:16

設(shè)計模式Java

2022-06-16 07:50:35

數(shù)據(jù)結(jié)構(gòu)鏈表

2022-12-06 07:53:33

MySQL索引B+樹

2023-01-31 08:02:18

點贊
收藏

51CTO技術(shù)棧公眾號