天天看點

inode工作原理

inode的工作原理:

      如果把blcok比作書中的内容,那麼inode就是inode就是這個書的目錄,inode中記錄檔案的是檔案的中繼資料資訊,如:權限、大小、屬主屬組、時間戳、以及資料塊所在的位置等資訊,blcok中存儲的才是真正的資料

      block:每個blcok預設大小是4k(建立檔案系統的時候可以修改),且每個blcok隻能給一個檔案使用,例如,有一個1k的檔案,把該檔案放到block中,那麼塊中剩餘的3k也不能用, blcok的大小需要根據實際應用情況來定,例如,現在把塊大小設定為1k,現有一個10k的檔案,那麼就需要10個塊,這樣就導緻了尋址時間過長,會導緻性能下降,如果現在把塊設定為10k,就有一個1k的檔案,那麼就會導緻空間的浪費,是以塊大小需要根據實際情況來定。

      inode:inode也是需要占據block塊的

            直接指針:前12個inode指針,指向12個4k的block塊,是以一共可指向48k的檔案。

            間接指針:第13inode,每次指向一個block就會消耗4byte,那麼一個塊是4k,裡面存放中繼資料,一共可以指向1024個塊,是以可指向的檔案大小為4K*1024=4M

            三重指針:如果将間接指針指向的1024個塊中存放inode,那麼就會指向1024*1024*4=4G個檔案。

inode工作原理

      檔案查找過程舉例:查找/a/b/c 中的c檔案

            首先,系統根據根inode可以檢視到根目錄下所有檔案的名稱和對應的inode編号,這樣就可以找到a檔案和對應的inode編号,在a的inode編号找到a對應的inode,然後就可以看到a目錄下面所有檔案的名稱和對應的inode編号,這樣就找到了b檔案和對應的inode編号,根據b的inode編号就可以找到b的inode,這樣就可以看到b目錄下所有檔案的名稱和inode,這樣就可以找到c檔案了。

     cp與inode:建立檔案

     rm與inode:

            删除原檔案的inode,把資料塊放到空閑清單中,此時誤删的資料還可以恢複,如果有新檔案導入,會通過超級快查找,哪些塊已經被使用,哪些塊還有剩餘,則會重新擷取新的inode,在配置設定空閑塊,此時之前删除的檔案就不能恢複了。

     mv與inode:  

            如果在一個分區,就是僅僅改了指針映射的位置,inode沒有變化。

            如果不在一個分區,就是先複制資料到目标檔案,然後删除源檔案。

繼續閱讀