經過命令「du–sk」, 「du–Ask」 的區別,談談如何在有保護的文件系統中查看文件或文件夾的大小

咱們都知道,在Windows中,右鍵單擊一個文件或文件夾,選屬性(Properties)能夠看到這個文件或文件夾的大小。而這個大小是文件的原始大小,即邏輯大小(logical size)。即一個1KB的文本文件,經過這種方式,看到的大小就是1KB, 咱們這裏說的是「size」。node


嚴格上來講,Windows上顯示出來的是兩個size,一個叫作「size」,另外一個叫作「size on disk」. 此兩者的區別,大體以下:Windows在格式化磁盤的時候,會選擇使用什麼文件系統來format,而且,一樣的文件系統在格式化的時候也能夠指定allocation unit (即cluster)的大小。 這個allocation unit的大小就是文件系統上尋址的最小單位。即假設咱們format一塊磁盤的時候,選擇了NTFS,而且選擇了allocation unit的大小是64KB,那麼若是咱們往這塊盤上放一個1KB的文件,那麼同時就會有63KB的空間被浪費掉。這時, 在文件上點右鍵,看屬性,就會發現size是1KB,而size on disk是64KB。linux

如何查看Windows的某一塊盤的allocation unit是多大呢?操作系統

假設咱們想看C盤,那麼可使用命令:3d

    fsutil fsinfo ntfsinfo c:unix


Linux下也能夠查看一樣的概念,這個概念在Linux下叫作Sector。orm

查看全部分區,可使用命令:blog

    fdisk –lip


然而,在有保護的文件系統上,好比Isilon的OneFS,那麼文件的大小就有了變化。並且當OneFS上啓用了壓縮功能,那麼這個文件的大小如何查看就更是個值得仔細琢磨一下的問題了。get


OneFS默認的文件保護等級是2d:1n, 便可以容忍任意兩塊磁盤同時壞掉或者一個節點的丟失。要達到這個保護等級,對於小文件來講就是須要3份拷貝,對於大文件來講就是要增長FEC的數據塊,從而能夠計算對丟失的數據進行恢復。那麼2d:1n的保護等級會對一個比較大的文件增長多少數據塊呢?說來有點複雜,這取決於Isilon cluster包含多少個節點。具體請看下圖:it

clip_image001


看2d:1n的一列,能夠看到,集羣小的時候每4個數據塊就添加兩個FEC數據塊,集羣大的時候能夠每16個數據塊添加兩個FEC塊。


說了這麼多,如今回到正題,假設我有一個logical size(即原始文件大小)爲48MB的文件,假如把它存儲在一個4個節點的2d:1n的Isilon cluster上,那麼OneFS會以8*6+8*2= 64MB的空間來存儲這個文件。那麼我該使用什麼命令來查看從而獲得文件的原始大小48MB和實際存儲這個文件所消耗的磁盤空間64MB呢?


在FreeBSD操做系統上,能夠經過以下命令來獲得:

du –sh

使用這個命令來獲得文件或文件夾實際佔用的磁盤空間,若是是上文的例子,那麼這個命令會獲得64MB。(實際上,若是使用du –sk命令的話,獲得的會是「文件的數據的大小」,與「inode的三份mirror大小24KB」的和)。


du –Ash

使用這個命令來獲得文件或文件夾的logical size,這個命令會獲得48MB。


在一臺普通的H500上,查看文件大小的命令結果以下:

image

在開啓了壓縮的環境裏,這個差距可能會更大,以下:

image


===============

Why is There a Big Difference Between ‘Size’ and ‘Size on Disk’?

https://www.howtogeek.com/180369/why-is-there-a-big-difference-between-size-and-size-on-disk/

How can I view the allocation unit size of a NTFS partition in Vista?

https://stackoverflow.com/questions/81236/how-can-i-view-the-allocation-unit-size-of-a-ntfs-partition-in-vista

HOW TO FIND BLOCK SIZE IN LINUX AND UNIX

https://www.linuxnix.com/find-block-size-linux/

Finding the sector size of a partition

https://unix.stackexchange.com/questions/2668/finding-the-sector-size-of-a-partition

相關文章
相關標籤/搜索