Linux PV物理卷的建立、查看和删除(附带实例)
虽然使用图形界面建立 LVM 更加方便,但是这种方式建立的 LVM 只能在安装系统时才能配置。而 LVM 最主要的作用是在不丢失数据和不停机的情况下对分区进行扩容,因此我们一定会在系统安装完成之后,使用命令模式对 LVM 调整分区空间。
也就是说,在日常工作中使用命令对 LVM 进行配置更为常见,接下来我们在命令模式下实现 LVM。
我们使用分区和硬盘分别建立 PV(Physical Volume,物理卷):
需要注意的是,分区的系统 ID 不再是 Linux 默认的“Linuxfile system”,而需要改成“Linux LVM”。在/dev/nvme0n1硬盘中划分 2 个分区,每个分区的大小为 10GB,执行结果如下:
在建立 PV 时,我们既可以把某个分区创建成 PV,也可以把整块硬盘创建成 PV。如果要也整块硬盘创建成 PV,那么硬盘不需要提前分区,直接创建 PV 即可,命令如下:
首先,我们会看到 pvscan 命令。此命令可以用来查询系统中有哪些 PV、是否在 VG 中、在哪个 VG 中,以及可用空间等信息,命令如下:
pvscan 命令结果最后一行表示:系统中共有 4 个 PV[总空间大小] 使用了 1 个 PV[空间大小]/空闲 3 个 PV[空间大小]。现在已经被使用的 1 个 PV 是系统安装时划分的 /dev/sda2 分区,无论其是否存在都不会影响后续操作,只能表示现有操作系统在安装时选择了 LVM 逻辑卷。
其次,是 pvdisplay 命令。通过此命令可以查看更详细的 PV 状态,如 PV 中的 PE 大小、PE 数量、PV 的 UUID 等信息,命令如下:
也就是说,在日常工作中使用命令对 LVM 进行配置更为常见,接下来我们在命令模式下实现 LVM。
我们使用分区和硬盘分别建立 PV(Physical Volume,物理卷):
- 使用分区建立 PV,这时需要先进行分区,并把分区的 ID 改为 8e00。我们打算在 /dev/nvme0n1 硬盘(共 20GB)上建立 2 个 10GB 大小的分区,用于实验。
- 直接把整块 /dev/nvme0n2 硬盘(共 20GB)建立为 PV,整块硬盘不需要提前分区。
硬盘分区
建立所需的物理分区。使用 cfdisk 命令即可划分分区。需要注意的是,分区的系统 ID 不再是 Linux 默认的“Linuxfile system”,而需要改成“Linux LVM”。在/dev/nvme0n1硬盘中划分 2 个分区,每个分区的大小为 10GB,执行结果如下:
[root@localhost ~]# cfdisk /dev/nvme0n1 #对/dev/nvme0n1 分区 Disk: /dev/nvme0n1 Size: 20 GiB, 21474836480 bytes, 41943040 sectors Label: gpt, identifier: BC46248F-EB96-9847-8192-F3A36125D1D2 Device Start End Sectors Size Type /dev/nvme0n1p1 2048 20973567 20971520 10G Linux filesystem /dev/nvme0n1p2 20973568 41943006 20969439 10G Linux filesystem #分区划分完成后选择“type”选项,分别将2个分区类型修改为LVM Disk: /dev/nvme0n1 Size: 20 GiB, 21474836480 bytes, 41943040 sectors Label: gpt, identifier: BC46248F-EB96-9847-8192-F3A36125D1D2 Device Start End Sectors Size Type /dev/nvme0n1p1 2048 20973567 20971520 10G Linux LVM /dev/nvme0n1p2 20973568 41943006 20969439 10G Linux LVM #将/dev/nvme0n1p1 和/dev/nvme0n1p2 分区修改为 LVM 类型后,保存并退出
建立PV
建立 PV 的命令如下:[root@localhost ~]# pvcreate 设备文件名
在建立 PV 时,我们既可以把某个分区创建成 PV,也可以把整块硬盘创建成 PV。如果要也整块硬盘创建成 PV,那么硬盘不需要提前分区,直接创建 PV 即可,命令如下:
[root@localhost ~]# pvcreate /dev/nvme0n1p1 Physical volume "/dev/nvme0n1p1" successfully created. #成功将/dev/nvme0n1p1 分区创建为 PV [root@localhost ~]# pvcreate /dev/nvme0n1p2 Physical volume "/dev/nvme0n1p2" successfully created. #成功将/dev/nvme0n1p2 分区创建为 PV [root@localhost ~]# pvcreate /dev/nvme0n2 Physical volume "/dev/nvme0n2" successfully created. #将/dev/nvme0n2 整个硬盘创建为 PV
查看PV
查看 PV 的命令为:pvscan 和 pvdisplay。首先,我们会看到 pvscan 命令。此命令可以用来查询系统中有哪些 PV、是否在 VG 中、在哪个 VG 中,以及可用空间等信息,命令如下:
[root@localhost ~]# pvscan PV /dev/sda2 VG 1_192 lvm2 [19.00 GiB / 0 free] #VG 1_192 表示系统中本就存在 LVM 逻辑卷,系统中无论是否存在 LVM 逻辑卷都不影响本次 LVM 逻辑卷练习,忽略即可 PV /dev/nvme0n2 lvm2 [20.00 GiB] PV /dev/nvme0n1p1 lvm2 [10.00 GiB] PV /dev/nvme0n1p2 lvm2 [10.00 GiB] Total: 4 [59.00 GiB] / in use: 1 [19.00 GiB] / in no VG: 3 [40.00 GiB]通过 pvscan 命令的执行结果会发现,在系统中 /dev/nvme0n1p1、/dev/nvme0n1p2 分区是 PV,/dev/nvme0n2 硬盘也是 PV。
pvscan 命令结果最后一行表示:系统中共有 4 个 PV[总空间大小] 使用了 1 个 PV[空间大小]/空闲 3 个 PV[空间大小]。现在已经被使用的 1 个 PV 是系统安装时划分的 /dev/sda2 分区,无论其是否存在都不会影响后续操作,只能表示现有操作系统在安装时选择了 LVM 逻辑卷。
其次,是 pvdisplay 命令。通过此命令可以查看更详细的 PV 状态,如 PV 中的 PE 大小、PE 数量、PV 的 UUID 等信息,命令如下:
[root@localhost ~]# pvdisplay /dev/nvme0n2 #在执行pvdisplay 时如果不指定分区,就表示查看所有 PV,也可以查看指定 PV "/dev/nvme0n2" is a new physical volume of "20.00 GiB" #/dev/nvme0n2 是新的 PV,大小为 20GB --- NEW Physical volume --- PV Name /dev/nvme0n2 <PV 名 VG Name PV Size 20.00 GiB <PV 大小 Allocatable YES <是否已经分配 PE Size Total PE Free PE Allocated PE PV UUID 23WINx-Kfhr-RTT3-tSQR-BMB9-MD6E-tablTm <PV 的 UUID
删除PV
如果不再需要 PV,就使用 pvremove 命令删除,命令如下:[root@localhost ~]# pvremove /dev/nvme0n1p2 Labels on physical volume "/dev/nvme0n1p2" successfully wiped. #删除/dev/nvme0n1p2 物理卷。因为之后的练习还需要使用 /dev/nvme0n1p2,所以在删除后记得再次将它添加为 PV在删除 PV 时,如果 PV 不属于任何 VG,那么可以直接删除;如果 PV 属于某个 VG,那么需要先将 PV 从 VG 中移除,而后再删除 PV。