文章插圖

文章插圖
概述
相信大家在做文件遷移時,會有人遇到過這樣一個奇怪的問題:相同的文件放置在不同的硬盤上面,占用存儲空間相差很大,部分目錄甚至達到2倍 。這里我們先從Linux存儲的本質開始介紹 。
Linux文件系統的存儲方式
在Linux系統中一個文件由目錄項、inode和數據塊組成,數據塊作為存儲的最小單元 。
? 目錄項:包括文件名和inode節點號 。
? Inode:又稱文件索引節點,包含文件的基礎信息以及數據塊的指針 。
? 數據塊:包含文件的具體內容 。
1、inode
理解inode,要從文件儲存說起 。文件儲存在硬盤上,硬盤的最小存儲單位叫做”扇區”(Sector),每個扇區儲存512字節(相當于0.5KB) 。
操作系統讀取硬盤的時候,不會一個扇區一個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個”塊”(block) 。這種由多個扇區組成的”塊”,是文件存取的最小單位 。”塊”的大小,最常見的是4KB,即連續八個 sector組成一個 block 。
文件數據都儲存在”塊”中,那么很顯然,我們還必須找到一個地方儲存文件的元信息,比如文件的創建者、文件的創建日期、文件的大小等等 。這種儲存文件元信息的區域就叫做inode,中文譯名為”索引節點” 。
inode也會消耗硬盤空間,所以硬盤格式化的時候,操作系統自動將硬盤分成兩個區域 。一個是數據區,存放文件數據;另一個是inode區(inode table),存放inode所包含的信息 。
磁盤存儲分析
同一個文件在不同的硬盤占用不同的磁盤空間,從本質講是這些文件的inode和block不同導致的 。而這些參數是在硬盤初始化時設定的,會不會是因為這個原因導致的呢?
通過命令dumpe2fs 查看兩塊硬盤的信息:
硬盤 1 :
判斷驗證
在 硬盤1創建一個空文件,并輸入一個空格保存,
#vi test.txt使用du –sh test.txt 發現文件大小為8K 如圖:
拷貝硬盤的文件進行對比
硬盤2:
- 服務器裝liunx系統 Linux服務器配置與管理
- jar解壓指定文件 jar包存放在哪個目錄下
- linux常用命令重啟服務 linux中重啟服務器命令
- U盤變成文件夾 u盤里的文件夾變成了文件格式怎么辦
- linux創建文件命令 liux創建文件夾
- 什么版本linux適合日常使用 目前有哪些主流的linux版本
- java字節流讀取文件怎么操作 java字節流讀取文件并且輸出到控制臺
- linux 安裝redis教程 ubuntu20.04安裝redis
- linux與unix有何相同之處 linux和unix有什么關系
- 如何打開json json文件
