ext4的延遲分配特性(delalloc)保證檔案在磁碟中的連續,提高檔案的讀寫效能,但是卻增加了丟資料的概率。
hadoop和hbase中建議將延遲分配特性關閉。
可以使用下面的方法關閉延遲分配
linux檔案系統的一些概念:
superblock:記錄檔案系統的整體資訊,包含inode/block的大小、總量、使用量、剩餘量,以及檔案系統的格式,檔案系統掛載時間,最近一次資料寫入時間,最近一次校驗磁碟的時間等。
inode:記錄檔案的屬性,乙個檔案占用乙個inode,inode大小(ext2中)大約為128b,並記錄檔案資料所在的block號碼,具體來說包含的資訊如下:
block:實際記錄檔案的內容,若檔案太大,則會占用多個block,通常的block大小有1k,2k,4k三種,這裡核心記錄block資訊的資料結構是bitmap。
block group:硬碟分割槽上所有的block被聚在一起分成幾個大的block group。其中每個block group中有多少個block是固定的。從上面的圖可以看出來!每個block group都相對應乙個group descriptor,每個group descriptor當中有幾個重要的block指標,指向block group中的inode table、block bitmap和inode bitmap。
使用dumpe2fs命令可以查詢某塊裝置上superblock和blockgroup的詳細資訊。
hard link:硬鏈結,硬鏈結檔案和原始檔案對應同乙個inode號碼,增加硬鏈結檔案一般不改變磁碟的空間與inode數目,通常硬鏈結檔案不能跨越檔案系統建立,並且不能生成目錄的鏈結檔案。
symbolic link:符號鏈結,建立乙個新的檔案,讀取該檔案時會讓資料讀取指向它link的檔案的檔名,和原始檔案的inode號碼不同。
扇區是硬體裝置傳送資料的基本單位,而塊是vfs(虛擬檔案系統)和檔案系統傳送資料的基本單位,乙個塊對應磁碟上乙個或多個相鄰的扇區,而vfs系統將其看成是乙個單一的資料單元。
扇區:為了達到可接受的效能,硬碟和類似的裝置快速傳送幾個相鄰位元組的資料。塊裝置的每次資料傳輸操作都是作用於一組稱為扇區的相鄰位元組。大部分磁碟裝置中,乙個扇區的大小是512位元組。
塊:它必須是扇區大小的整數倍,因為每個塊必須包含整數個扇區。因此在80x86體系結構中,允許塊的大小為512,1024,2048和4096位元組。每個塊在ram中都有自己的緩衝區。
ext3與ext4的比較:
ext4的延遲分配
ext4檔案系統在應用程式呼叫write的時候並不為快取頁面分配對應的物理磁碟塊,當檔案的快取頁面真正要被重新整理至磁碟中時,ext4會為所有未分配物理磁碟塊的頁面快取分配盡量連續的磁碟塊。linux檔案系統vfs層總是將應用程式的寫入請求分割成頁面 預設大小4kb 為單位,對於每個頁面,vfs會檢...
Ext4使用總結(四)Ext4跨命名空間 引用
呼叫端ext的載入配置 ext.loader.setconfig 在公用的命名域內,可以做action,event,logic等的處理,如下圖 在plugin中的controller資料夾中的commoncontroller中,可以定義如下的頁面引用 refs displayitem,引用了不同命名...
ext4使用總結(四)Ext4跨命名空間 引用
呼叫端ext的載入配置 ext.loader.setconfig 在公用的命名域內,可以做action,event,logic等的處理,如下圖 img 在plugin中的controller資料夾中的commoncontroller中,可以定義如下的頁面引用 refs displayitem,引用了...