解决Linux根目录空间不足

根目录空间不足的原因

1.1 inode已满

block虽然还有剩余,但inode已经用满,因此在创建新目录或文件时,系统提示磁盘空间不足,inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是 block,block是用来存储数据用的,而inode就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。

现象:

使用df -Th有剩余空间但是无法继续使用
(查看inode占用命令:df -i)
在这里插入图片描述
解决方法

删除无用的临时文件,释放inode

遍历寻找0字节的文件,并删除。

find / -type f -size 0 -exec rm {} \;

根目录下包括所有的目录,而有些目录是挂了盘的,这些目录不会占用根目录下的系统磁盘空间。
出现根目录空间不足的情况只要关注那些未挂盘的文件大小,使用du命令查看各个目录的大小(只显示一层目录)

1.2 大文件过多

使用du命令查看各个目录的大小 (只显示一层目录)

du -ah --max-depth=1 /

在这里插入图片描述

1.3 日志文件太多

Linux系统运行时会产生日志文件,可以讲日志文件远程备份,或者是拷贝到其它的硬盘

在这里插入图片描述
如果以上方法都不可以,可以使用软连接的方法,或者是对根目录扩容

解决方法

2.1 软连接

将占用空间大的目录复制到另一个磁盘上面,或者是nfs提供的存储上面

例如
一台服务器A(IP:20.0.0.105)上的/opt/nfs的文件过大,可以在另一台服务器B(IP:20.0.0.104)上安装nfs共享存储,然后将挂载。在把里面的东西拷贝过去。

[root@serverb ~]# yum -y install nfs-utils rpcbind
[root@serverb ~]# vi /etc/exports

/opt 20.0.0.0/24(rw)
[root@serverb ~]# systemctl start nfs
[root@servera ~]# showmount -e 20.0.0.104
Export list for 20.0.0.104:
/opt 20.0.0.0/24
[root@servera ~]# mkdir centos
[root@servera ~]# mount 20.0.0.104:/opt /centos/
[root@servera ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
···········
20.0.0.104:/opt         nfs4       39G  2.4G   36G    7% /centos
[root@servera ~]# cp -R /opt/nfs/* /centos/
[root@servera ~]# ln -s /centos/ /opt/nfs

2.2:根目录扩容

使用场景:设备的存储空间已占满,并且已经清理过了,而且其它硬盘均已满,服务器物理硬件支持添加硬盘

添加一块新硬盘

[root@localhost ~]# init 6  #硬盘很少有支持热插拔的,需要重启

连接断开
连接成功

[root@localhost ~]# fdisk -l

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009ed77

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   125829119    61864960   8e  Linux LVM

磁盘 /dev/mapper/centos-root:41.1 GB, 41120956416 字节,80314368 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-home:20.1 GB, 20073938944 字节,39206912 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xf60c7ee0 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

[root@localhost ~]# mkfs -t xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242624, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# lvm
lvm> pvcreate /dev/sdb1
WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y
  Wiping xfs signature on /dev/sdb1.
  Physical volume "/dev/sdb1" successfully created.
lvm> vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <59.00 GiB
  PE Size               4.00 MiB
  Total PE              15103
  Alloc PE / Size       15102 / 58.99 GiB
  Free  PE / Size       1 / 4.00 MiB
  VG UUID               Cnl1hp-dBeF-55rw-KU0p-co0L-FiSn-5Nrs2d
   
lvm> vgextend centos /dev/sdb1
  Volume group "centos" successfully extended
lvm> vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               78.99 GiB
  PE Size               4.00 MiB
  Total PE              20222
  Alloc PE / Size       15102 / 58.99 GiB
  Free  PE / Size       5120 / 20.00 GiB
  VG UUID               Cnl1hp-dBeF-55rw-KU0p-co0L-FiSn-5Nrs2d
   
lvm> lvextend -l +5120 /dev/mapper/centos-root
  Size of logical volume centos/root changed from <38.30 GiB (9804 extents) to <58.30 GiB (14924 extents).
  Logical volume centos/root successfully resized.
lvm> lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                OeHFno-diSX-xWuQ-K8j6-tdpT-D0KE-YB3jxG
  LV Write Access        read/write
  LV Creation host, time localhost, 2021-02-01 22:26:07 -0500
  LV Status              available
  # open                 1
  LV Size                <58.30 GiB
  Current LE             14924
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
   
  --- Logical volume ---
  LV Path                /dev/centos/home
  LV Name                home
  VG Name                centos
  LV UUID                ne6xL1-fepP-cE9h-WJzc-12Kw-FVzK-NNYU6i
  LV Write Access        read/write
  LV Creation host, time localhost, 2021-02-01 22:26:07 -0500
  LV Status              available
  # open                 1
  LV Size                <18.70 GiB
  Current LE             4786
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
   
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                7mtj59-3PN7-1UbZ-QiJa-He5b-hGTz-SCpicW
  LV Write Access        read/write
  LV Creation host, time localhost, 2021-02-01 22:26:07 -0500
  LV Status              available
  # open                 2
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1
   
lvm> exit
  Exiting.

[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        39G  1.5G   37G    4% /
devtmpfs                devtmpfs  898M     0  898M    0% /dev
tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
tmpfs                   tmpfs     910M  9.6M  901M    2% /run
tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  146M  869M   15% /boot
/dev/mapper/centos-home xfs        19G   33M   19G    1% /home
tmpfs                   tmpfs     182M     0  182M    0% /run/user/0
[root@localhost ~]# xfs_growfs /dev/mapper/centos-root 
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=2509824 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=10039296, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=4902, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 10039296 to 15282176
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        59G  1.5G   57G    3% /
devtmpfs                devtmpfs  898M     0  898M    0% /dev
tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
tmpfs                   tmpfs     910M  9.6M  901M    2% /run
tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  146M  869M   15% /boot
/dev/mapper/centos-home xfs        19G   33M   19G    1% /home
tmpfs                   tmpfs     182M     0  182M    0% /run/user/0
[root@localhost ~]# 

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_50345511/article/details/113949866