inode和block的理解

2022-02-17 05:10:01 字數 2332 閱讀 1887

什麼是inode和block?

所謂的inode就是索引節點(index node)的意思,在每乙個儲存裝置被格式化建立檔案系統後,所有的檔案大致被分為了兩部分,分別是inode和block。

其中inode用來儲存檔案屬性資訊,其中包括了檔案大小,檔案的歸屬者,檔案的歸屬組,許可權,型別,修改時間,以及指向檔案實體資料(block)的指標。

其實inode和block之間的關係就像是一本書一樣,inode是一本書的目錄,一本書會有很多內容,乙個知識點或者乙個故事會佔很多頁,乙個block就相當於書中的一頁內容。

所以說一般情況下乙個inode會對應乙個或多個block。

inode總結:

磁碟分割槽後格式化為etx4檔案系統後,產生一定數量的inode和block

inode存放檔案屬性資訊以及指向檔案實體的指標

ext3/ext4檔案系統block存放檔案的實際資料

inode表現形式為一串數字,不同檔案對應的inode在os中是唯一的

ext3/ext4檔案系統下,正常情況乙個檔案建立有且只能占用乙個inode和至少占用乙個block,大檔案占用多個block,如果乙個block未佔完,剩餘空間也無法使用

簡單了解了inode和block後,下面說乙個關於block與磁碟i/o效能的基礎調優。

磁碟在讀取資料的時候,是按照block為單位來讀取的。

其實block的大小與業務與磁碟的i/o效能有著密不可分的關係。

block並非越大越好或者越小越好,還是要看業務,下面就舉兩個例子。

如果遇到這種單個檔案特別小(小於乙個block),而且這種小檔案特別多,block設定的太大則對block是一種浪費!這是因為乙個檔案不管有多小,它都會占用乙個inode和一整個block,假如說乙個block的大小為4k,磁碟裡有乙個小檔案是1k,那麼這個小檔案會把4k的一整個block全部占用,剩下的3k就白白浪費掉了。

如果單個檔案很大的情況下,block設定的很小,就需要讀取多個block,這對磁碟i/o是一種消耗(因為每讀取乙個block都會消耗磁碟i/o,磁碟每次讀取都是以block為單位的)

如果單個檔案很大,適當的加大block的大小則會提高磁碟的讀取效率,減少了磁碟的i/o。

當block設定的太小,則會影響大檔案的讀取效率,如果block設定的太小,那麼儲存乙個大檔案就需要很多很多block,在讀取資料的時候就需要到很多block中去讀取內容,剛剛說過,磁碟每次讀取內容都是以block為單位的,每讀取乙個block都會浪費一次磁碟i/o,所以,磁碟讀取大檔案的效率就回大大降低~

block 的大小一般有1k,2k,4k,除引導分割槽1k外,其他分割槽為4k。

block總結:

磁碟讀取資料是按block為單位讀取

乙個檔案可能占有多個block,每讀取乙個block就會消耗一次磁碟io,想提公升io效能,盡可以一次讀取盡量多。

乙個block只能存放乙個檔案,也就是無**件多小,這個block剩餘空間浪費掉了,假如乙個檔案大小為4k,但是乙個小檔案1k,3k剩餘空間被浪費了,磁碟io是衡量磁碟效能重要指標。

效能

簡單了解了inode和block後,下面說乙個關於block與磁碟i/o效能的基礎調優。

磁碟在讀取資料的時候,是按照block為單位來讀取的。

其實block的大小與業務與磁碟的i/o效能有著密不可分的關係。

block並非越大越好或者越小越好,還是要看業務,下面就舉兩個例子。

如果遇到這種單個檔案特別小(小於乙個block),而且這種小檔案特別多,block設定的太大則對block是一種浪費!這是因為乙個檔案不管有多小,它都會占用乙個inode和一整個block,假如說乙個block的大小為4k,磁碟裡有乙個小檔案是1k,那麼這個小檔案會把4k的一整個block全部占用,剩下的3k就白白浪費掉了。

如果單個檔案很大的情況下,block設定的很小,就需要讀取多個block,這對磁碟i/o是一種消耗(因為每讀取乙個block都會消耗磁碟i/o,磁碟每次讀取都是以block為單位的)

如果單個檔案很大,適當的加大block的大小則會提高磁碟的讀取效率,減少了磁碟的i/o。

當block設定的太小,則會影響大檔案的讀取效率,如果block設定的太小,那麼儲存乙個大檔案就需要很多很多block,在讀取資料的時候就需要到很多block中去讀取內容,剛剛說過,磁碟每次讀取內容都是以block為單位的,每讀取乙個block都會浪費一次磁碟i/o,所以,磁碟讀取大檔案的效率就回大大降低~

注意

乙個檔案的檔名,存放於上級目錄的block中。

多個檔案可以占用同乙個inode(linux的硬鏈結就是這個原理)

但是乙個block只能屬於乙個檔案。

inode和block的關係

1 磁碟被分割槽格式化檔案系統後,會分為inode和block兩部分 2 inode存放檔案的屬性以及指向檔案實體的指標 block的位置 檔名不在inode裡,一般上級目錄的block裡。3 訪問檔案的過程,通過檔名 上一級目錄的block inode號碼 inode blocaks.4 inod...

block和split的理解

兩者是從不同的角度來定義的 hdfs以固定大小的block為基本單位儲存資料 分布式檔案系統,實際儲存角度,物理儲存單位 而mapreduce以split作為處理單位 程式設計模型角度,邏輯單位 對於檔案中的一行記錄,可能會劃分到不同的block中,也可能劃分到不同的split中。split是邏輯上...

inode簡單理解

在讀 鳥哥的linux私房菜 基礎學習篇 時遇到了inode這麼個概念,好吧,這裡先記錄下 說到inode,首先必須要提及下 作業系統 中磁碟儲存器的管理一節。磁碟裝置是一種相當複雜的機電裝置 比較詳細的介紹可以參考blog硬碟內部硬體結構和工作原理詳解 磁碟裝置可以包括乙個或多個物理碟片,每個磁碟...