在 sda1 RHEL 上缺少超过 100GB 的空间

Wif*_*ost 1 linux raid redhat disk-space-utilization

我有一个带有 RAID 5 的服务器设置,使用 (3) 个 500GB 驱动器,1 个作为备用,因此在 RAID 中未使用。所以在我看来,我从 990GB 开始,RAID 5 就位。在查看 DF 或内置磁盘空间实用程序时,我只看到总共大约 882GB,我如何才能找到 100+GB 的空间?我怎样才能取回它?

我检查了 RAID 5 BIOS,我看到了所有的空间。

我试过手动查看和通过终端命令查看,但没有运气。

Filesystem     -      1K-blocks   -   Used Available - Use% - Mounted on
/dev/mapper/vg_web-lv_root
                       838084192  48368700 747153060   7%      /
tmpfs                   12104644       592  12104052   1%     /dev/shm
/dev/sda1               495844      121546    348698   26%    /boot
/dev/mapper/vg_web-lv_home
                       82569904    259136  78116468      1%    /home

    Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_web-lv_root

                          800G   47G  713G   7%      /
tmpfs                      12G  592K   12G   1%      /dev/shm
/dev/sda1                 485M  119M  341M  26%      /boot
/dev/mapper/vg_web-lv_home
                           79G  254M   75G   1%      /home
Run Code Online (Sandbox Code Playgroud)

给你的更多信息,我现在肯定我没有得到我所有的 GB

--- Physical volume ---
PV Name               /dev/sda2
VG Name               vg_web
PV Size               930.89 GiB / not usable 3.00 MiB
Run Code Online (Sandbox Code Playgroud)

VGS

VG     #PV #LV #SN Attr   VSize   VFree 
vg_web   1   3   0 wz--n- 930.88g 13.29g
Run Code Online (Sandbox Code Playgroud)

LVS

LV      VG     Attr      LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
lv_home vg_web -wi-ao---  80.00g                                             
lv_root vg_web -wi-ao--- 812.00g                                             
lv_swap vg_web -wi-ao---  25.59g       
Run Code Online (Sandbox Code Playgroud)

在我通过 lvm 和 vgs 找到上述信息后,我已经发现我的所有空间都占了

Mad*_*ter 8

抱歉,您的硬盘空间已全部占用。

首先,在 denary (base-10) GB(由驱动器制造商使用)和二进制 (base-2) GB(由某些 Linux 工具使用)之间存在转换因子。二进制千兆字节 (GiB) 是 2^30 字节,而十进制千兆字节 (GB) 是 10^9;前者大约 7%。 其次,LVM vg 中有一些未分配的空间,并且有些分区不是您的根。 最后,还有 5% 的开销是mkfs为 root 预留的。

让我们一步一步来。你认为你应该有 1000GB。那是 1000*10^9/2^30=931.3GiB,这是您的/dev/sda.

你失去485MiB到/dev/sda1/boot分区。所以这应该给你 931.3-485/2*10=930.83GiB。这几乎恰好是什么pvs,你是在音量告诉vg_web

lvs然后告诉我们那930.9GiB被分配到三个逻辑卷(lv_rootlv_home,和lv_swap)。有 13.3GiB 的空间未分配,我们稍后会回来讨论。

您的根分区是一个 812GiB 卷,我怀疑这是您最担心的分区,因为它是您的大部分空间所在。文件系统有开销;也就是说,结构文件系统,而不是存储在其中的数据,它们占用磁盘空间。它们包括超级块、超级块的副本、块条目等,文件系统底层的所有元数据。 本文试图量化元数据的大小,并说 ext2 使用大约 1.6% 的空间用于 FS 开销(它指出 ext3/4 更大,但补充说开销完全降低到日志的大小,我怀疑在 1TB FS 上的意义要小得多;本文是基于 1GB 测试 FS 编写的)。812 减去 1.6% = 812*0.984 = 799.0GiB,这几乎就是df -h我们在/分区中所拥有的。该/home分区受此影响,也。

然后还有著名的 5% 默认为 root 用户保留,这就是为什么可用和已用列的总和为 760GiB (713+47);800*0.95=760。该/home分区受此影响,也。

你能做些什么呢?大多数情况下,什么都没有。HDD 制造商将继续使用 denary GB,因为它使他们的驱动器看起来更大;你需要一个交换分区;文件系统有开销;这些都没有商量余地。

可以重新调整根 FS,以便保留少于 5%;命令tune2fs会告诉你怎么做;我自己不会低于 1%。您可以将vg_root卷扩展到未分配的 13.3GiB;有很多文章告诉你如何做到这一点,所以我不会在这里介绍。对于 13GiB 来说,这有点小题大做,但您现在可能已经感觉精力充沛了。

所以希望从这里你可以看到你所有的硬盘空间都被占用了。

  • 谢谢你,pkhamre!我一直只是用“fs 开销、四舍五入等”来解决这个问题,但决定真正运行一次数字会很有趣! (2认同)