实验:磁盘inode耗尽故障模拟并修复

  • 实验:磁盘资源耗尽故障模拟并修复

    1.环境描述:

    磁盘空间显示还有,但无法存储东西,inode已经占满。(大量的碎片文件和小文件占用的inode的使用)

    2.实验案例演示:

    第一,模拟i节点耗尽故障

             1.添加一块硬盘,分区格式化,挂载

             1>fdisk/dev/sdb--->n-->p-->1-->几次回车跳出-->w

             2>mkfs.ext3/dev/sdb1

             3>mkdir/wang

             4>mount/dev/sdb1 /wang

             5>df-i /wang   确认该文件系统中i节点的使用情况

             显示结果:

             文件系统   Inode 已用(I) 可用(I) 已用(I)% 挂载点

    /dev/sdb1   327680 13   327667   1%   /wang

    第二,编写测试程序,耗尽i节点

             1>vim cai.sh

             具体内容如下:

             #!/bin/bash

             i=1

             while[ $i -le 327668 ]

             do

             touch/wang/a$i

             leti++

             done

    第三,执行脚本并验证i节点占用情况

             1>shcai.sh &

             2>df-i /wang

             显示结果:

             文件系统        Inode 已用(I) 可用(I) 已用(I)% 挂载点

    /dev/sdb1      327680 327680  0     100% /wang

             3>尝试创建文件

             touch/wang/file

             显示结果:

             touch:无法创建“/wang/file”:设备上没有空间

             4>查看磁盘剩余空间

             df-hT /wang

             显示结果:

             文件系统         1K-块  已用    可用 已用% 挂载点

    /dev/sdb1      5029504 28184 4722792    1% /wang  

    第四,修复i节点耗尽故障

             rm-rf /wang/a*   (如果提示:命令提示参数列表过长 find . -name "a*" | xargs rm -rf "a*")

            

    实验步骤:

    [root@a ~]# fdisk –l               //查看磁盘设备

    [root@a ~]# fdisk /dev/sdb         //对新加的硬盘分区

    [root@a ~]# cat /proc/partitions      //查看内核是否识别出,分区的硬盘,如果没有,刷新

    major minor #blocks  name          

      8        0   20971520 sda

      8        1     524288 sda1

      8        2   18349056 sda2

      8        3    2097152 sda3

      8       16   10485760 sdb

      8       17    5242880 sdb1     //以识别

     11        0    8491008 sr0

    [root@a ~]# mke2fs -t ext4 /dev/sdb1      //对分区进行格式化,写入文件系统。

    [root@a ~]#mkdir  /wang                                     //创建挂载点

    [root@a ~]# mount /dev/sdb1  /wang/      //将硬盘挂载到wang

    [root@a ~]# df -i /dev/sdb1                                          //查看inode使用情况,还有327667可用

    文件系统        Inode 已用(I) 可用(I) 已用(I)% 挂载点

    /dev/sdb1      327680      13 327667       1% /wang

    [root@a ~]# vim cai.sh                        //创建脚本,将inode填满,模拟故障

    [root@a ~]# sh cai.sh                              //运行shell脚本

    touch: 无法创建"/wang/a327668":设备上没有空间

    [root@a ~]# df -i /wang/                            //查看是否把磁盘的inode写满了

    文件系统        Inode 已用(I) 可用(I) 已用(I)% 挂载点

    /dev/sdb1      327680 327680       0     100% /wang

    [root@a ~]# df /wang/                                  //而可用空间还很多

    文件系统         1K-块  已用    可用 已用% 挂载点

    /dev/sdb1      5029504 28184 4722792    1% /wang

    [root@a ~]#touch /wang/file                              //尝试创建文件

    touch: 无法创建"/wang/file":设备上没有空间                          

    [root@a wang]#find . -name "a*" | xargs rm -rf "a*"           //rm删除

    [root@a ~]# df-i /wang                                                                                       //又可以写东西了

    文件系统        Inode 已用(I) 可用(I) 已用(I)% 挂载点

    /dev/sdb1      327680      13 327667       1% /wang

猜你喜欢

转载自blog.csdn.net/qq_41816540/article/details/83510872