lsblk与df -h显示的size不一致

问题描述

Centos7系统盘分区情况,sda盘下有三个分区,分别为sda1、sda2、sda3,在sda3分区下有三个逻辑卷,分别是rhel-root挂载到/、rhel-swap、rhel-home挂载到/home。使用lvresize命令将rhel-root的size从50G加到了600G,使用lsblk命令查看确实是600G,但是使用df -h命令查看的时候rhel-root还是50G

问题分析

使用 lvresize 命令扩展逻辑卷的大小后,文件系统的大小并没有自动更新。需要手动扩展文件系统以使其占用新的空间。

解决方案

检查文件系统类型

df -T /  # 查看根文件系统的类型

扩展文件系统

# 如果文件系统是XFS,则使用`xfs_growfs`命令扩展,该命令操作的是挂载点
xfs_growfs /
# 文件系统是ext4则使用resize2fs,注意,该命令操作的是设备文件,不是挂载点
resize2fs /dev/mapper/rhel-root # ext4

思考1:为什么df -h和lsblk查询出的结果不一致呢?这两个命令的区别是什么?

df -hlsblk 查询出的大小不一致,主要是因为这两个命令关注的是不同的层面。

  • lsblklsblk 显示的是块设备(如磁盘、分区、逻辑卷)的物理大小。它显示的是底层存储设备的实际容量,包括未被文件系统使用的部分。例如,如果你扩展了一个分区或逻辑卷,lsblk 会显示新的、更大的容量。
  • df -hdf -h 显示的是文件系统的使用情况。它显示的是文件系统当前管理的容量,包括已用空间和可用空间。如果文件系统没有扩展,即使底层存储设备的容量增加了,df -h 仍然会显示旧的、较小的容量。

思考2:逻辑卷和文件系统是什么关系?

逻辑卷(Logical Volume, LV)文件系统(File System, FS) 是两个不同的概念,它们分别负责不同的任务。

  • 逻辑卷(LV):逻辑卷是存储层的一部分,它提供了底层存储设备的抽象。当你使用 lvresize 命令扩展逻辑卷时,实际上是在增加逻辑卷的大小,使其能够容纳更多的数据。这个操作只是分配了更多的物理空间给逻辑卷,但还没有告诉文件系统如何使用这些额外的空间。
  • 文件系统(FS):文件系统是操作系统用来组织和管理数据的结构。文件系统有自己的元数据,记录了文件的位置、大小、权限等信息。文件系统在初始化时会根据分配的空间大小进行设置,如果逻辑卷的大小增加了,文件系统并不会自动感知并使用这些新的空间。
  • 为什么不会自动更新:文件系统在初始化时已经确定了其管理的空间范围。即使底层的逻辑卷大小增加了,文件系统也不会自动扩展其管理的空间,因为这样做可能会导致数据损坏或不一致。因此,需要手动告知文件系统新的空间已经可用,并让文件系统重新调整其内部结构以利用这些新的空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值