No space left on device

如果向磁盤寫入數據提示如下錯誤:No space left on device,是什麼原因造成的?應該怎麼解決?


下面來看一下具體分析:

  1. 磁盤被分區格式化爲ext3/ext4文件系統後會生成一定數量的inode和block;

  2. inode稱爲索引節點,它的作用是存放文件的屬性信息以及作爲文件的索引;

  3. ext3/ext4 文件系統的block存放的是文件的實際內容;

  4. 在ext3/ext4 文件系統下,每個block的大小一般有1k,2k,4k等。其中引導分區等爲1k,其他普通分區爲4k(CentOS6);

  5. 文件系統中Block的數量要大於inode的數量。



提示:No space left on device 可能的原因有2種:

1、block滿了,大文件或日誌文件不斷寫入導致的;

2、inode滿了,當企業中小文件特別多(一般都是<4k)的時候容易發生這個問題;


通過df -h 查看磁盤空間,下面通過模擬環境來看一下,Block和inode分別被佔滿的情況


  • 模擬環境(VMware12Pro+CentOS6.8 2.6.32-642.el6.x86_64)

mkdir -p /app/logs
dd if=/dev/zero of=/dev/sdc bs=8k count=10
ls -l /dev/sdc
mkfs.ext4 /dev/sdc
tune2fs -c -1 /dev/sdc
mount -o loop /dev/sdc /app/logs/
[root@KLeth0 logs]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       6.9G  1.9G 4.7G  29% /
tmpfs           491M     0 491M   0% /dev/shm
/dev/sda1       190M   33M 147M  19% /boot
/dev/sdc         73K 2.0K   67K   3% /app/logs

磁盤Block被佔滿的情況,解決方案:通過轉移或刪除大文件解決

[root@KLeth0 ~]# cp /bin/ls /app/logs/
cp: writing `/app/logs/ls': No space left on device
[root@KLeth0 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       6.9G  1.9G 4.7G  29% /
tmpfs           491M     0 491M   0% /dev/shm
/dev/sda1       190M   33M 147M  19% /boot
/dev/sdc         73K  70K     0 100% /app/logs


磁盤inode被佔滿的情況,解決方案:將小文件刪除或合併

[root@KLeth0 ~]# cd /app/logs/
[root@KLeth0 logs]# touch str{1..10}
touch: cannot touch `str5': No space left on device
touch: cannot touch `str6': No space left on device
touch: cannot touch `str7': No space left on device
touch: cannot touch `str8': No space left on device
touch: cannot touch `str9': No space left on device
touch: cannot touch `str10': No space left ondevice
[root@KLeth0 logs]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       6.9G  1.9G 4.7G  29% /
tmpfs           491M     0 491M   0% /dev/shm
/dev/sda1       190M   33M 147M  19% /boot
/dev/sdc         73K 2.0K   67K   3% /app/logs     #磁盤空間未滿
[root@KLeth0 logs]# df -i
Filesystem     InodesIUsed  IFree IUse% Mounted on
/dev/sda3      462384 58823403561   13% /
tmpfs          125517     1 125516   1% /dev/shm
/dev/sda1       51200    38 51162    1% /boot
/dev/sdc           16   16      0  100% /app/logs      #磁盤inode被佔滿



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