在Linux中,你可以使用两种不同的方法来管理存储空间:直接格式化分区并挂载到路径,以及使用LVM(逻辑卷管理)技术创建逻辑卷然后挂载。

  1. 直接格式化分区和挂载实例操作篇章: 点击前往

    • 区别:直接格式化分区是指在物理磁盘上创建一个分区,然后对该分区执行文件系统格式化,并将其挂载到文件系统中的特定路径。这种方法是最基本的磁盘管理方式,没有额外的逻辑层。
    • 好处:直接格式化分区的好处包括简单、直接,不需要额外的管理工具。这种方法适用于简单的存储需求,特别是当你只有一个磁盘且不需要对其进行复杂的管理时。
  2. 使用LVM技术创建逻辑卷然后挂载:(本篇通过lvm技术给已存在逻辑卷扩容)

    对于 VG 卷组和 LV 逻辑卷操作看这两篇文章

    —— VG 卷组操作:点击前往

    —— 逻辑卷操作:点击前往

    • 区别:LVM是一种高级的磁盘管理技术,它将物理卷(Physical Volumes)组合成卷组(Volume Group),然后从卷组中划分出逻辑卷(Logical Volumes)。逻辑卷可以动态调整大小,可以将多个物理卷合并为一个逻辑卷,还可以创建快照等强大功能。
    • 好处:使用LVM技术创建逻辑卷的好处包括:
      • 灵活性:逻辑卷的大小可以根据需要进行调整,无需重新分区或重新格式化。
      • 可靠性:LVM提供了冗余和故障恢复机制,如镜像和RAID等。
      • 管理简便:通过LVM,你可以使用一组统一的命令来管理多个磁盘,并且可以对逻辑卷进行高级操作,如快照、迁移和扩展等。

总之,使用LVM技术创建逻辑卷提供了更高级、更灵活的磁盘管理功能,尤其适用于需要动态调整大小、实施冗余和故障恢复等复杂存储需求的场景。而直接格式化分区和挂载则更简单直接,适用于较为简单的存储需求。具体选择哪种方案应根据你的需求和实际情况来决定。


磁盘扩容

image-20231113103654059

注意:无论扩容还是缩减一定记得备份!!!

介绍

LVM(Logical Volume Manager)是一种用于管理磁盘存储的技术,它在操作系统级别上提供了对存储设备的灵活管理和控制。LVM 的主要优势在于可以动态地调整逻辑卷的大小、创建快照、合并存储空间以及实现容错和数据保护。

LVM 主要由以下几个核心组件组成:

  1. Physical Volumes(PV):物理卷是实际的硬盘分区或者整块硬盘,它们被 LVM 用来创建逻辑卷。多个物理卷可以组合成一个卷组(Volume Group)。
  2. Volume Group(VG):卷组是由一个或多个物理卷组成的存储池,它为逻辑卷的创建和管理提供了基础。
  3. Logical Volumes(LV):逻辑卷是从卷组中分配出来的虚拟磁盘空间,它类似于传统磁盘分区,但具有更大的灵活性,可以动态调整大小和移动到不同的物理卷。

通过这些组件,LVM 提供了一系列功能:

  1. 动态调整大小:逻辑卷的大小可以在不影响数据完整性的情况下动态扩展或收缩。这使得管理员可以根据需求灵活地管理存储空间,而无需关注底层硬件细节。
  2. 数据保护:LVM 支持创建快照,可以在不影响原始数据的情况下捕获文件系统的状态,以便进行备份或测试。此外,LVM 还支持 RAID 技术,可以在卷组级别实现数据冗余和容错能力。
  3. 灵活的存储管理:LVM 允许管理员在不中断正在运行的系统的情况下重新分配存储空间,合并多个物理卷,或移动数据以优化性能。

总的来说,LVM 技术为管理和利用存储空间提供了更大的灵活性和可管理性,同时也增强了系统对存储故障和数据丢失的抵御能力。

扩容

以下示例:给根路径扩容到1T空间

[1] 查看根路径所在逻辑卷空间

1
lvdisplay -v

当前根路径下逻辑卷空间:100G

根下逻辑卷路径为:/dev/ubuntu-vg/ubuntu-lv

[2] 查看VG卷组空间

1
vgdisplay
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
root@ubuntu:~# vgdisplay 
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <498.00 GiB #VG卷组总空间
PE Size 4.00 MiB
Total PE 127487
Alloc PE / Size 25600 / 100.00 GiB # 当前空间
Free PE / Size 101887 / <398.00 GiB #剩余可扩容的空间
VG UUID 7VfFQ1-HLxt-Noty-N7sM-wqee-JSqz-7qoqIK

root@ubuntu:~#

[3] 把剩余卷组空间分给根路径逻辑卷

1
2
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
resize2fs /dev/ubuntu-vg/ubuntu-lv
1
2
3
4
5
6
7
8
9
root@ubuntu:~# lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from 100.00 GiB (25600 extents) to <498.00 GiB (127487 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
root@ubuntu:~# resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 13, new_desc_blocks = 63
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 130546688 (4k) blocks long.
root@ubuntu:~#

**注意:**不同文件系统类型使用不同的指令。

xfs文件系统类型使用xfs_groufs进行扩容。

1
xfs_growfs 逻辑卷完整路径(如/dev/vg1/lv1)

ext文件系统类型用resize2fs命令进行扩容。

1
resize2fs 逻辑卷完整路径(如/dev/vg1/lv1)

当前根路径逻辑卷空间

1
lvdisplay
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
root@ubuntu:~# lvdisplay 
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID CRdFXA-z5pS-K4jA-Wevg-4UZK-Y47L-iMj3Uv
LV Write Access read/write
LV Creation host, time ubuntu-server, 2023-08-30 15:08:07 +0000
LV Status available
# open 1
LV Size <498.00 GiB
Current LE 127487
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

root@ubuntu:~#

当前根路径下逻辑卷空间:498G

当前卷组空间:

1
vgdisplay
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
root@ubuntu:~# vgdisplay 
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <498.00 GiB
PE Size 4.00 MiB
Total PE 127487
Alloc PE / Size 127487 / <498.00 GiB
Free PE / Size 0 / 0 #可以看到已经没有可以扩容的空间了
VG UUID 7VfFQ1-HLxt-Noty-N7sM-wqee-JSqz-7qoqIK

root@ubuntu:~#

[3] 给卷组扩容

把新加入的磁盘创建成物理卷加入卷组

​ 1、查看根路径所在VG卷组名称

1
lvdisplay $(df -hT | grep -w / | awk '{print $1}')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
root@ubuntu:~# lvdisplay $(df -hT | grep -w / | awk '{print $1}')
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID CRdFXA-z5pS-K4jA-Wevg-4UZK-Y47L-iMj3Uv
LV Write Access read/write
LV Creation host, time ubuntu-server, 2023-08-30 15:08:07 +0000
LV Status available
# open 1
LV Size 100.00 GiB
Current LE 25600
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

root@ubuntu:~#

​ 查询得知VG Name :ubuntu-vg

​ 2、给卷组增加空间

** 注意:下面将整个磁盘给根路径的逻辑卷扩容,所以不进行分区,如果想要分给不同的逻辑卷记得先分区

1
2
3
4
5
6
pvcreate /dev/sdb
vgextend ubuntu-vg /dev/sdb
pvscan
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
resize2fs /dev/ubuntu-vg/ubuntu-lv
df -hT
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
root@ubuntu:~# pvcreate /dev/sdb  #创建物理卷
Physical volume "/dev/sdb" successfully created.
root@ubuntu:~# vgextend ubuntu-vg /dev/sdb #给ubuntu-vg 这个卷组扩容
Volume group "ubuntu-vg" successfully extended
root@ubuntu:~# pvscan #查看物理卷所属的VG卷组
PV /dev/sda3 VG ubuntu-vg lvm2 [<498.00 GiB / 0 free]
PV /dev/sdb VG ubuntu-vg lvm2 [<526.00 GiB / <526.00 GiB free]
Total: 2 [1023.99 GiB] / in use: 2 [1023.99 GiB] / in no VG: 0 [0 ]
root@ubuntu:~# lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv 把剩余的100%空间都分给/dev/ubuntu-vg/ubuntu-lv逻辑卷
Size of logical volume ubuntu-vg/ubuntu-lv changed from <498.00 GiB (127487 extents) to <1.02 TiB (266238 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
root@ubuntu:~# resize2fs /dev/ubuntu-vg/ubuntu-lv #刷新文件系统
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 63, new_desc_blocks = 130
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 272627712 (4k) blocks long.

root@ubuntu:~# df -hT
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 195M 1.3M 194M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv ext4 1.0T 4.9G 976G 1% /
tmpfs tmpfs 972M 0 972M 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 ext4 2.0G 126M 1.7G 7% /boot
tmpfs tmpfs 195M 4.0K 195M 1% /run/user/0
root@ubuntu:~#

扩容完成。