天天看點

[CentOS 7.6]消失的磁盤空間

前段時間,同僚向我回報,有台伺服器的業務停止運作了,讓我檢查下。

先介紹下這台伺服器的基本情況,作業系統為CentOS 7.6 64位,磁盤有2塊,一塊是200多G的系統盤;另一塊是8T的資料盤,挂載在/app-data目錄下。

我檢視了伺服器之後,發現原因是根目錄的磁盤空間滿了。于是删除了業務程式的部分日志,但也隻空出來幾個G的空間,于是想看下是哪些檔案占用了根目錄的磁盤空間。

使用df指令檢視檔案系統的磁盤使用情況(以下是正常之後的情況):

[CentOS 7.6]消失的磁盤空間

從上圖中可以看到,根目錄"/"挂載的是磁盤sda的一個分區/dev/sda3,容量為220G,已用24G,可用空間為197G,已使用空間百分比為11%。

但那天檢視時,可用空間為13M,已用100%。

另外,磁盤sdb的/dev/sdb1分區大小為7.3T,挂載在/app-data目錄下。

使用du指令檢視根目錄下,各檔案、檔案夾占用的空間的大小:

[CentOS 7.6]消失的磁盤空間

上圖中,usr、home和var檔案夾大小加起來,有24G多一點,其他的可忽略不計,和df指令查出來的已用空間是相符合的。

app-data檔案夾雖然有56G,但因為挂載在磁盤b上,是以其大小不計入根目錄的占用空間。

是以當時就比較奇怪,根目錄下190多G的空間哪裡去了。經過仔細詢問得知,該伺服器一開始是在沒有挂載磁盤sdb的情況下運作的,後來客戶加購了資料盤,并挂載到/app-data目錄下,正常運作了幾天,然後磁盤就滿了。

看來問題出現在挂載上。于是停止了業務程式,

umount /dev/sdb1
           

此時再du一下,發現/app-data檔案夾達195G。也就是說,原來沒資料盤b的時候,業務運作了一段時間,資料都存在系統盤sda的/app-data檔案夾下。但是将資料盤挂載的時候,沒有将系統盤裡的資料遷移到資料盤,就直接挂載上去了。導緻系統盤的這部分空間就這麼“消失”了。

後面删除了大部分測試資料,将有用的資料mv到/app-data1檔案夾下,清空/app-data檔案夾,再挂載資料盤。然後将/app-data1檔案夾下的資料遷移到資料盤,最後删除/app-data1檔案夾。

再df一下,發現磁盤空間都回來了。

繼續閱讀