- A+
根目录空间不足的原因
1.1 inode已满
block虽然还有剩余,但inode已经用满,因此在创建新目录或文件时,系统提示磁盘空间不足,inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是 block,block是用来存储数据用的,而inode就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。
现象:
使用df -Th有剩余空间但是无法继续使用
(查看inode占用命令:df -i)
解决方法
删除无用的临时文件,释放inode
遍历寻找0字节的文件,并删除。
1 |
find / -type f -size 0 -exec rm {} \; |
根目录下包括所有的目录,而有些目录是挂了盘的,这些目录不会占用根目录下的系统磁盘空间。
出现根目录空间不足的情况只要关注那些未挂盘的文件大小,使用du命令查看各个目录的大小(只显示一层目录)
1.2 大文件过多
使用du命令查看各个目录的大小 (只显示一层目录)
1 |
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共享存储,然后将挂载。在把里面的东西拷贝过去。
1 2 3 4 5 |
[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 |
1 2 3 4 5 6 7 8 9 10 11 |
[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:根目录扩容
使用场景:设备的存储空间已占满,并且已经清理过了,而且其它硬盘均已满,服务器物理硬件支持添加硬盘
添加一块新硬盘
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
[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 字节 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
[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. 正在同步磁盘。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
[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. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
[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 ~]# |