
1、磁盘故障:
1.1 inode满的情况下如何处理:
1.1.1搭建环境:
第1个里程碑-创建100k的文件
[root@oldboyedu59 ~]# dd if=/dev/zero of=/tmp/100k bs=1k count=100
100+0 records in
100+0 records out
102400 bytes (102 kB) copied, 0.000433072 s, 236 MB/s
第2个里程碑-格式化
[root@oldboyedu59 ~]# file /tmp/100k
/tmp/100k: data
[root@oldboyedu59 ~]# mkfs.ext4 /tmp/100k
mke2fs 1.42.9 (28-Dec-2013)
/tmp/100k is not a block special device.
Proceed anyway? (y,n) y
Filesystem too small for a journal
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
16 inodes, 100 blocks
5 blocks (5.00%) reserved for the super user
First data block=1
1 block group
8192 blocks per group, 8192 fragments per group
16 inodes per group
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
第3个里程碑-挂载
[root@oldboyedu59 ~]# mkdir -p /app/log
[root@oldboyedu59 ~]# mount /tmp/100k /app/log/
第4个里程碑模拟inode满了
[root@oldboyedu59 ~]# cd /app/log/
[root@oldboyedu59 /app/log]# touch oldboy{01..10}.txt
touch: cannot touch ‘oldboy06.txt’: No space left on device
touch: cannot touch ‘oldboy07.txt’: No space left on device
touch: cannot touch ‘oldboy08.txt’: No space left on device
touch: cannot touch ‘oldboy09.txt’: No space left on device
touch: cannot touch ‘oldboy10.txt’: No space left on device
1.1.2如何处理inode满的情况:
第一步检查block是否满:
[root@oldboyedu59 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 99G 1.8G 98G 2% /
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.6M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 197M 105M 93M 54% /boot
/dev/sdb1 98M 5.3M 93M 6% /data
tmpfs 199M 0 199M 0% /run/user/0
/dev/loop0 93K 14K 72K 17% /app/log
第二步检查inode是否满:
[root@oldboyedu59 ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 51801600 64784 51736816 1% /
devtmpfs 250795 412 250383 1% /dev
tmpfs 253511 1 253510 1% /dev/shm
tmpfs 253511 753 252758 1% /run
tmpfs 253511 16 253495 1% /sys/fs/cgroup
/dev/sda1 102400 326 102074 1% /boot
/dev/sdb1 51712 3 51709 1% /data
tmpfs 253511 1 253510 1% /run/user/0
/dev/loop0 16 16 0 100% /app/log
第三步解决办法:
找出系统中目录大于1MB的 然后确认之后删除下面的小文件;
使用命令:du -sh /*|sort -rn 进行查找文件系统较大的目录文件,然后进行删除。
备注:[root@oldboyedu59 ~]# ll -hd guoav/
drwxr-xr-x 2 root root 1.2M May 13 11:49 guoav/
目录的block的大小 block里面存放的是文件名(目录下的文件名(inode)存放在上级目录的block里面,所以目录的大小,实际也就是其下面文件inode的大小)
1.2 block满且无进程服务占用的情况下如何处理磁盘故障:
第一步:
df -h 命令检查block使用情况;
第二步:
使用du -sh /*|sort -rn 命令对文件或目录一层一层进行排查
第三步:
对文件目录进行确认之后删除。
1.3 block满且进程服务占用的情况下如何处理磁盘
注:Linux文件删除原理:
Linux彻底删除1个文件的条件:
1.没有入口(rm 硬链接数为0) oldboy.txt /etc/hosts
2.没有人使用这个文件(进程调用数为0) 重启这个服务
yum install lsof -y
lsof list open files 显示系统中所有被打开的文件(使用中)
1.3.1创建环境:模拟文件没有被彻底删除导致磁盘空间不足:
第1步:给系统日志写入大量数据,让其block扩大。
seq 500000000 >>/var/log/messages
第2步:删除/var/log/messages
1.3.2检查block空间的当前使用情况:
[root@wuxin-123 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 6.4G 13G 34% /
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.7M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 197M 105M 93M 54% /boot
tmpfs 199M 0 199M 0% /run/user/0
/dev/loop0 93K 14K 72K 17% /app/log
1.3.3检查block空间的实际使用情况:
[root@wuxin-123 /]# du -sh /var/log/*|sort -h
4.6G /var/log/messages
[root@wuxin-123 /]# ll -h /var/log/messages
-rw------- 1 root root 4.6G May 13 23:44 /var/log/messages
此时发现文件已经删除,但是还在占用磁盘空间
1.3.4检查都有什么进程正在使用它:
[root@wuxin-123 /]# lsof |grep delete
rsyslogd 7261 root 6w REG 8,3 4889020971 696001 /var/log/messages (deleted)
in:imjour 7261 7274 root 6w REG 8,3 4889020971 696001 /var/log/messages (deleted)
rs:main 7261 7275 root 6w REG 8,3 4889020971 696001 /var/log/messages (deleted)
1.3.5关闭程序进程,释放block空间:
systemctl restart rsyslog.service abrtd.service
1.3.6检查block空间的当前使用情况:
[root@wuxin-123 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.9G 17G 10% /
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.7M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 197M 105M 93M 54% /boot
tmpfs 199M 0 199M 0% /run/user/0
/dev/loop0 93K 14K 72K 17% /app/log
故障已处理
1.4 如何增加swap
添加文件系统
[root@oldboyedu59 ~]# dd if=/dev/zero of=/tmp/500m bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes (524 MB) copied, 5.14645 s, 102 MB/s
格式化:
[root@oldboyedu59 ~]# mkswap /tmp/500m
Setting up swapspace version 1, size = 511996 KiB
no label, UUID=6ba0befd-aeaf-4dd4-88b0-07cab2af6f61
增加权限以及挂载
[root@oldboyedu59 ~]# chmod 600 /tmp/500m
[root@oldboyedu59 ~]# swapon /tmp/500m
查看:
[root@oldboyedu59 ~]# free -h
total used free shared buff/cache available
Mem: 1.9G 204M 76M 2.3M 1.7G 1.5G
Swap: 1.5G 32M 1.5G
网友评论