Inode與block詳解

inode和block詳解

inode是什麼?

  • inode即爲index node,就是索引節點
  • inode表中包含文件系統所有文件列表
  • 一個節點是在一個表項,包含了有關文件的信息(元數據)。
  • 一個文件有且只有一個inode
  • inode中包含12個直接指針,1個間接指針,1個雙間接指針,1個三間接指針
    元數據(medata)即文件的屬性信息,包括文件的類型、權限、owner、group、鏈接數、三個時間戳,文件大小、擴展屬性,block指針

block是什麼

  • 文件數據存儲在block中
  • 每塊block只能存儲一個文件
  • block 文件系統的最小存儲單位是 1k,2k,4k,2^n

inode與block之間的關係
由上面的定義可以知道block是用來存儲文件數據的,每一個block只能存儲一個文件,並且每個block都有自己的編號,當一個文件特別大的時候,存儲該文件的block數量也會很大,而且,在沒有inode的時候讀取文件,只有當讀取完上一個block的時候纔會知道下一個block號,才能繼續讀取。這個時候因爲block的數量很大,讀取速度會很慢。inode的存在很好的解決了這一個問題,inode中除了存儲元數據之外,還會存儲block指針,當我們在讀取大文件的時候,inode中的指針會迅速找出block並將其排序之後快速讀取,大大提高了效率。
inode與block關係小結:
1.磁盤被分區格式化分區之後,會分爲inode和block兩部分
2.inode存放文件的屬性以及指向文件實體的指針(block的位置)
3.superblock用來存儲inode和block的全部信息,包括inode和block的大小,數量,以及block的使用情況。
4.創建了一個文件時會同時創建inode和block,inode用來存儲元數據和block指針,block用來存儲數據內容。
5.一個block只能被一個文件使用,所以一個block並不是越大越好,當服務器存儲的小文件居多,那麼block設置的小一點比較好,不會浪費空間。當服務器存儲的大數據居多,block設置的大一點比較好。


目錄的inode和block
在這裏,我們需要清楚一個問題,對於目錄而言,inode與block都存儲了什麼?
每個目錄也都有自己的inode,其中存儲的同樣是目錄的元數據和指針,但是目錄的block不同於文件的block,其中存儲的是文件名和文件名對應的inode號。當我們檢索某個目錄下的文件時,我們只需通過路徑找到文件名,然後在block便找到與文件名對應的inode號,隨之找到文件數據。
當我們在同區中複製我們的文件時,node是不變的,相當於我們又給文件又取了一個新的文件名,而新舊文件名對應的是同一個inode號;而當我們把文件複製到其他分區,就相當於創建看一個新文件,那麼新文件的inode將會改變。
刪除文件,同樣是只是刪除了文件名和inode號,存儲在block的數據將會被新傳進來數據覆蓋。所以刪除的文件我們都是可以恢復的,但是一旦又寫入文件,刪除的文件就會被覆蓋,也就無法再回復了。


本文屬於個人對inode和block的理解,敘述可能不是特別容易理解,希望多多批評指正!
要相信現在所經歷的i艱難困苦都是上天做好的安排!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章