场景一:新增磁盘扩容
场景
Linux在安装时没有考虑应用或应用数据的快速扩展,导致磁盘空间不足,需要进行添加新磁盘扩容。
现状查看
登录Linux并进行硬盘及分区和挂载点查看信息。
查看逻辑卷详细信息
[root@ElementServer ~]# lvdisplay
--- Logical volume ---
LV Path /dev/almalinux/root
LV Name root
VG Name almalinux
LV UUID 4sbvFd-oA24-HMJV-dLln-KiTp-iwDn-kjkAwE
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-08-30 14:13:55 +0800
LV Status available
# open 1
LV Size 541.18 GiB
Current LE 138543
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/almalinux/home
LV Name home
VG Name almalinux
LV UUID E6FaSZ-yz5X-cdJ0-3t2X-wpsj-pLPE-7lmsOx
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-08-30 14:13:56 +0800
LV Status available
# open 1
LV Size 50.00 GiB
Current LE 12800
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
--- Logical volume ---
LV Path /dev/almalinux/swap
LV Name swap
VG Name almalinux
LV UUID hxF0JC-XUEc-l3zQ-TToB-AdTr-SI0y-po9ULJ
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-08-30 14:13:56 +0800
LV Status available
# open 2
LV Size 7.81 GiB
Current LE 2000
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
[root@ElementServer ~]#
进行以上操作后我们得知,硬盘分为3个逻辑分区分别是
- almalinux-root:系统的根分区,包含了操作系统的核心文件和目录。所有的系统文件、应用程序和库文件都存储在这个分区中。
- almalinux-swap:交换空间(swap space),当系统内存不足时,操作系统会使用这个分区来临时存储数据,以确保系统的稳定运行。
- almalinux-home:用于存储用户的个人文件和数据。每个用户在这个分区中都有自己的目录,用于存放文档、下载、配置文件等。
而在非特殊的常规情况下,我们只需要扩容根目录即可达到扩容效果(如果有单独的逻辑卷挂载其中一个目录如/opt则需要另行查看)。
磁盘添加
在Linux中,如果是物理磁盘一般是sda,虚拟机中磁盘一般是vda。
如果是物理机添加磁盘,务必要保证底层磁盘的可靠性,使用如RAID1甚至RAID5来提高可靠性。
现在,在当前虚拟机下添加一块50GB的磁盘。
磁盘扩容
主要注意这里如果出现错误如Device /dev/vdb not found (or ignored by filtering)
,首先检查磁盘是否成功识别,通过lsblk检查,如正常识别则使用命令dd if=/dev/urandom of=/dev/vdb bs=512 count=64
测试磁盘写入再重新尝试。
此时再通过命令vgs
查看卷信息,发现VFree已经识别了对应的空闲空间。
接下来对逻辑卷进行扩容,前期我们提到有3个逻辑卷,我们主要对almalinux-root进行扩容,因为他挂载的是根目录。
有2种方式可以进行扩容:
lvextend -L +50g /dev/almalinux/root
:使用固定容量进行扩容,好处是可以自定义扩容容量,特别是需要对多个逻辑卷进行扩容时。坏处是有可能需要多次判断容量才能全部扩容完毕。lvextend -l +100%FREE /dev/almalinux/root
:使用全部可用空间来扩容,好处是不用查看还剩可以扩容的空间直接一步到位的扩容。
这个命令参数的区别是:
-L
选项:
- 用途: 用于指定逻辑卷的新大小。
- 示例:
lvextend -L +50G /dev/almalinux/root
表示将逻辑卷的大小增加50GB。 - 格式:
-L [+]Size[kKmMgGtT]
,其中Size
是新的大小,可以用+
表示增加的大小。
-l
选项:
- 用途: 用于指定逻辑卷的新大小,以物理扩展(PE)的数量为单位。
- 示例:
lvextend -l +100%FREE /dev/almalinux/root
表示将逻辑卷扩展到卷组中所有剩余的可用空间。 - 格式:
-l [+]LogicalExtentsNumber[%{VG|LV|PVS|FREE|ORIGIN}]
,其中LogicalExtentsNumber
是新的逻辑扩展数量,可以用+
表示增加的数量。
-L 选项用于指定具体的大小,而 -l 选项用于指定逻辑扩展的数量或百分比。
自此扩容完成,可以比较开始的/dev/mapper/almalinux-root容量,开始时为541G,扩容后为591G。
场景二:原磁盘原地扩容
场景
原有磁盘通过原地扩容如云服务器磁盘原地扩容(如单磁盘50GB扩容至100GB)、虚拟机磁盘原地扩容(如单磁盘50GB扩容至100GB),符合本场景。
现状查看
通过parted -l和lsblk查看当前硬盘空间状况。
扩容原磁盘
此时可以看到vda磁盘共计容量650G,vda1作为启动分区分配了1G,vda2只分配了599G供使用,我们的主要思路就是通过划分区利用刚扩容的这50G。
我们可以通过cfdisk这个工具来实现。
可以看到出现了一个新的vda3正式刚才我们建立的新分区,此时可以参考场景一的后部分来操作:(1)创建物理卷(2)卷组扩容。
此时可以看到根目录已经有591.2G空间,/home目录50G空间,符合扩容完成条件,扩容完成。
评论前必须登录!
注册