Linux 服务器上查看磁盘空间使用量:
$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg-data-lv-data ext4 6.8T 6.2T 318G 96% /data
Size是6.8T,Used 是 6.2T,Avail 应该是 0.4T (400G),为什么显示只有318G?
磁盘空间使用量的计算中存在一个常见的误解。
实际上,"Avail"(可用空间)并不仅仅是 "Size"(总空间)减去 "Used"(已使用空间)的结果。
在Linux中,"Avail" 表示文件系统中尚未分配给任何文件的空间,而不仅仅是空闲空间。
因此,"Avail" 的计算还受到预留空间、文件系统结构等因素的影响,这可能导致实际可用空间比直接将 "Size" 减去 "Used" 所得到的值要少。
在你的情况中,因为预留空间等因素,导致实际可用空间只有318G,而不是预期的0.4T(400G)。
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 3.5G 0 rom
vda 252:0 0 500G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 119G 0 part
├─openeuler-root 253:0 0 70G 0 lvm /
├─openeuler-swap 253:1 0 12G 0 lvm [SWAP]
└─openeuler-home 253:2 0 37G 0 lvm /home
# parted /dev/vda print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 537GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1075MB 1074MB primary ext4 boot
2 1075MB 129GB 128GB primary lvm
# parted /dev/vda mkpart primary ext4 129GB 500G
Information: You may need to update /etc/fstab.
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 3.5G 0 rom
vda 252:0 0 500G 0 disk
├─vda1 252:1 0 1G 0 part /boot
├─vda2 252:2 0 119G 0 part
│ ├─openeuler-root 253:0 0 70G 0 lvm /
│ ├─openeuler-swap 253:1 0 12G 0 lvm [SWAP]
│ └─openeuler-home 253:2 0 37G 0 lvm /home
└─vda3 252:3 0 345.7G 0 part
根据你提供的信息,通过parted命令将/dev/vda分为了三个分区:vda1(1GB)、vda2(119GB)和新创建的vda3(345.7GB)。
从这些信息来看, vda3确实应该有380GB的存储空间剩余。然而,这种存储空间损失可能是由于磁盘分区对齐问题造成的。
在进行磁盘分区时,通常会有一些预留的空间用于对齐,这可能导致实际可用空间少于理论计算的空间。
此外,文件系统的使用也会占用一些空间,如inode表、日志等。
这些因素都可能导致实际可用空间少于分区大小的计算值。
如果需要更精确地计算磁盘空间的使用情况,可以使用工具如du或df来查看详细信息。