企业案例1:no space left on device 磁盘空间不足。因为 block 满了。
seq 100000000 >/tmp/big
#第一个里程碑-看看到底哪里满了
[root@oldboyedu01-nb ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 8.8G 0 100% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
#第二个里程碑-是哪一个目录占得空间大,最终定位到目录或文件
[root@oldboyedu01-nb ~]# du -sh /*|grep G
1.1G /usr
7.4G /var
[root@oldboyedu01-nb ~]# du -sh /var/*|grep G
7.3G /var/log
[root@oldboyedu01-nb ~]# du -sh /var/log/*|grep G
7.3G /var/log/messages
[root@oldboyedu01-nb ~]# ls -lh /var/log/messages
-rw------- 1 root root 7.3G Oct 16 19:20 /var/log/messages
#第三个里程碑-问清楚是否可以删除,然后再操作
企业案例2:如果向磁盘写入数据提示如下错误: No space left on device(磁盘空间不足),通过 df -h 查看磁盘空间,发现没满,请问可能原因是什么?企业场景什么情况下会导致这个问题发生?
因为inode 用光了。
模拟环境的命令。
mkdir -p /app/logs
dd if=/dev/zero of=/dev/sdc bs=8K count=10
ls -l /dev/sdc
mkfs.ext4 /dev/sdc
mount -o loop /dev/sdc /app/logs
[root@oldboyedu01-nb ~]# cd /app/logs/
[root@oldboyedu01-nb logs]# touch stu{1..6}.log
touch: cannot touch `stu6.log': No space left on device
[root@oldboyedu01-nb logs]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.6G 6.9G 19% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
/dev/sdc 73K 14K 55K 21% /app/logs
[root@oldboyedu01-nb logs]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 593344 58530 534814 10% /
tmpfs 488562 1 488561 1% /dev/shm
/dev/sda1 51200 39 51161 1% /boot
/dev/sdc 16 16 0 100% /app/logs
企业案例3:一个100M(100000K)的磁盘分区,分别写入1K的文件或写入1M的文件,分别可以写多少个?
1K文件虽小,但是block一般默认4K,即使1K的数据也会占用4K大小,比如大家创建一个空文件,然后du -sk 看看大小是多少。(如果大家此时认为应该100000/4的话,那么你就掉坑了。
别忘了存储数据,消耗的不光是block还有inode,inode默认只有256K(centos6),每个文件至少占用一个block的同时还会占用一个inode)。
1M的数据他刚好能被4整除。所以不会浪费空间,大约为100个左右,inode充足。
总上对于大文件一般inode是足够的,大文件基本也不会浪费空间,整除就可以;但是对于小文件来说,inode是不足够的,因此能够存储的数量就是inode的数量。