LVM的创建,修改大小,删除以及彻底卸载的操作步骤

简介:

首先解释一下几个关键词
pv: physical volume 物理卷,就是用物理磁盘组成的卷,要在物理磁盘上创建。
vg:volume group卷组,就是物理卷组成的卷组合,要在物理卷基础上创建。
lv:logical volume逻辑卷,可以理解为逻辑可动态分配的磁盘空间,要在卷组上创建。

所以lvm的创建顺序就是,物理磁盘分区(也可以不分区),在物理分区上创建pv,在pv上创建vg,在vg上创建lv,然后格式化lv挂载使用
ok,下面具体来操作一下逻辑卷的创建以及空间扩容和删除
我们使用的虚拟机sdb磁盘来分几个区做一下测试(一般可使用多个磁盘直接加入到卷组,这里我们使用物理磁盘的多个分区,操作方法相同)

01 [root@cnhejia ~]# fdisk -l
02  
03 Disk /dev/sdb: 21.5 GB, 21474836480 bytes
04 255 heads, 63 sectors/track, 2610 cylinders
05 Units = cylinders of 16065 * 512 = 8225280 bytes
06 Sector size (logical/physical): 512 bytes / 512 bytes
07 I/O size (minimum/optimal): 512 bytes / 512 bytes
08 Disk identifier: 0x32d0a442
09  
10 Device Boot Start End Blocks Id System

先将sdb分3个100M的分区出来

01 [root@cnhejia ~]# fdisk /dev/sdb <<EOF
02  
03 n
04 p
05 1
06  
07 +100M
08 n
09 p
10 2
11  
12 +100M
13 n
14 p
15 3
16  
17 +100M
18 w
19 EOF
20  
21 [root@cnhejia ~]# fdisk -l
22  
23 Disk /dev/sdb: 21.5 GB, 21474836480 bytes
24 255 heads, 63 sectors/track, 2610 cylinders
25 Units = cylinders of 16065 * 512 = 8225280 bytes
26 Sector size (logical/physical): 512 bytes / 512 bytes
27 I/O size (minimum/optimal): 512 bytes / 512 bytes
28 Disk identifier: 0x32d0a442
29  
30 Device Boot Start End Blocks Id System
31 /dev/sdb1 1 14 112423+ 83 Linu x
32 /dev/sdb2 15 28 112455 83 Linu x
33 /dev/sdb3 29 42 112455 83 Linu x

将sdb[1-3]转换为物理卷

1 [root@cnhejia ~]# pvcreate /dev/sdb[1-3]
2 Physical volume "/dev/sdb1" successfully created
3 Physical volume "/dev/sdb2" successfully created
4 Physical volume "/dev/sdb3" successfully created

使用pvs查看目前的物理卷情况,都没有加入VG

1 [root@cnhejia ~]# pvs
2 PV VG Fmt Attr PSize PFree
3 /dev/sdb1 lvm2 a-- 109.79m 109.79m
4 /dev/sdb2 lvm2 a-- 109.82m 109.82m
5 /dev/sdb3 lvm2 a-- 109.82m 109.82m

现在我们先将sdb1和sdb2加入一个卷组vgtest

01 [root@cnhejia ~]# vgcreate vgtest /dev/sdb[1-2]
02 Volume group "vgtest" successfully created
03 [root@cnhejia ~]# vgs
04 VG #PV #LV #SN Attr VSize VFree
05 VolGroup 1 2 0 wz--n- 19.51g 0
06 vgtest 2 0 0 wz--n- 216.00m 216.00m
07 [root@cnhejia ~]# pvs
08 PV VG Fmt Attr PSize PFree
09 /dev/sda2 VolGroup lvm2 a-- 19.51g 0
10 /dev/sdb1 vgtest lvm2 a-- 108.00m 108.00m
11 /dev/sdb2 vgtest lvm2 a-- 108.00m 108.00m
12 /dev/sdb3 lvm2 a-- 109.82m 109.82m
13 [root@cnhejia ~]#

卷组vgtest创建成功,并且将sdb1和sdb2加入了这个卷组,通过vgs可以看到卷组大小为216M

现在我们在卷组vgtest上创建一个名为lvtest的100M的逻辑卷,这样才能真正使用这个磁盘

1 [root@cnhejia ~]# lvcreate -L 100M -n lvtest vgtest
2 Logical volume "lvtest" created
3 [root@cnhejia ~]# lvs
4 LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
5 lv_root VolGroup -wi-ao---- 17.57g
6 lv_swap VolGroup -wi-ao---- 1.94g
7 lvtest vgtest -wi-a----- 100.00m

这时候就可以对lvtest进行格式化使用了

01 [root@cnhejia ~]# mkfs.ext4 /dev/vgtest/lvtest
02 或者
03 [root@cnhejia ~]# mkfs.ext4 /dev/mapper/vgtest-lvtest
04 mapper下会生成卷组映射,等同于软连接一样,操作完全同步。
05 [root@cnhejia ~]# mkfs.ext4 /dev/mapper/vgtest-lvtest ^C
06 [root@cnhejia ~]# mount /dev/mapper/vgtest-lvtest /mnt/
07 [root@cnhejia ~]# df -h
08 Filesystem Size Used Avail Use% Mounted on
09 /dev/mapper/VolGroup-lv_root 18G 3.6G 13G 22% /
10 tmpfs 495M 0 495M 0% /dev/shm
11 /dev/sda1 485M 70M 391M 16% /boot
12 /dev/mapper/vgtest-lvtest 97M 5.6M 87M 7% /mnt

目前已经成功挂载完成在物理卷sdb1和sdb2上创建的卷组vgtest上创建的100M大小的逻辑卷lvtest

如果这100M的mnt目录不够用怎么办?逻辑卷的好处就是动态无损扩容,使用lvextend增加空间然后使用resize2fs重新同步磁盘大小。操作方法如下:

01 [root@cnhejia ~]# lvextend -L +50M /dev/mapper/vgtest-lvtest
02 Rounding size to boundary between physical extents: 52.00 MiB
03 Extending logical volume lvtest to 152.00 MiB
04 Logical volume lvtest successfully resized
05 [root@cnhejia ~]# lvs
06 LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
07 lv_root VolGroup -wi-ao---- 17.57g
08 lv_swap VolGroup -wi-ao---- 1.94g
09 lvtest vgtest -wi-ao---- 152.00m
10 [root@cnhejia ~]# resize2fs /dev/mapper/vgtest-lvtest
11 resize2fs 1.41.12 (17-May-2010)
12 Filesystem at /dev/mapper/vgtest-lvtest is mounted on /mnt; on-line resizing required
13 old desc_blocks = 1, new_desc_blocks = 1
14 Performing an on-line resize of /dev/mapper/vgtest-lvtest to 155648 (1k) blocks.
15 The filesystem on /dev/mapper/vgtest-lvtest is now 155648 blocks long.
16  
17 [root@cnhejia ~]# df -h
18 Filesystem Size Used Avail Use% Mounted on
19 /dev/mapper/VolGroup-lv_root 18G 3.6G 13G 22% /
20 tmpfs 495M 0 495M 0% /dev/shm
21 /dev/sda1 485M 70M 391M 16% /boot
22 /dev/mapper/vgtest-lvtest 148M 5.6M 135M 4% /mnt
23 [root@cnhejia ~]#

mnt目录已经成功变成150M了
如果想减少这个逻辑卷的空间,操作也很简单:

1 umount /mnt
2 //检测空间使用情况
3 [root@cnhejia ~]# e2fsck -f /dev/mapper/vgtest-lvtest
4 //将逻辑卷调整为100M即可
5 [root@cnhejia ~]# resize2fs /dev/mapper/vgtest-lvtest 100M

这时候如果两个物理卷200M都用光了怎么办?没关系,lvm也可以将新的磁盘加进来。现在我们就把sdb3加进来,操作方法如下:

01 [root@cnhejia ~]# pvcreate /dev/sdb3
02 Physical volume "/dev/sdb3" successfully created
03 [root@cnhejia ~]# vgextend vgtest /dev/sdb3
04 Volume group "vgtest" successfully extended
05 [root@cnhejia ~]# vgdisplay
06 --- Volume group ---
07 VG Name vgtest
08 System ID
09 Format lvm2
10 Metadata Areas 3
11 Metadata Sequence No 4
12 VG Access read/write
13 VG Status resizable
14 MAX LV 0
15 Cur LV 1
16 Open LV 1
17 Max PV 0
18 Cur PV 3
19 Act PV 3
20 VG Size 324.00 MiB
21 PE Size 4.00 MiB
22 Total PE 81
23 Alloc PE / Size 38 / 152.00 MiB
24 Free PE / Size 43 / 172.00 MiB
25 VG UUID Xh0P8e-FMPu-oA4G-nNP4-9Vcn-tiZN-szYlSQ

怎么样,vgtest这个卷组有300M空间了吧,需要的话可以都放到/mnt的挂载下。

——————————————————————————————
上述是创建和使用管理的一些介绍,如果某个分区/硬盘可能健康状态不好,要卸载或者移出或者更换怎么办?
先使用pvmove将看着不爽的物理卷数据转移,数据转移完成后然后使用vgreduce将看着不爽的物理卷从卷组移出,然后使用pvremove删除物理卷,这个磁盘就变成普普通通的磁盘了,爱修爱丢随便你;
假设现在sdb2这个分区(或者磁盘)坏了,要移除,但是数据不能丢,操作步骤如下:

1 [root@cnhejia ~]# pvmove /dev/sdb2
2 /dev/sdb2: Moved: 18.5%
3 /dev/sdb2: Moved: 100.0%
4  
5 [root@cnhejia ~]# vgreduce vgtest /dev/sdb2
6 Removed "/dev/sdb2" from volume group "vgtest"
7 [root@cnhejia ~]# pvremove /dev/sdb2
8 Labels on physical volume "/dev/sdb2" successfully wiped

至此sdb2这个分区和lvm已经没有关系了

一个VG卷组是可以创建多个LV逻辑卷的,如果有一个卷你不想要了直接执行lvremove即可

1 [root@cnhejia ~]#lvremove /dev/mapper/vgtest/lvtest

如何删除整个系统的卷组,不再使用lvm?
需要数据先备份,不要数据直接操作,操作如下:

1 [root@cnhejia ~]# vgremove vgtest
2 Do you really want to remove volume group "vgtest" containing 1 logical volumes? [y/n]: y
3 Do you really want to remove active logical volume lvtest? [y/n]: y
4 Logical volume "lvtest" successfully removed
5 Volume group "vgtest" successfully removed

这时候fdisk就不再能看到之前的卷组了,pvremove移出卷组即可,直接重分区格式化其实也可以。

注意:

如果磁盘添加到了vg中,并且vg是激活的,那么再去对磁盘分区表做修改的时候会失败,提示readonly。

先通过vgchange -a n vgname取消vg的激活状态再通过fdisk分区,分区后通过vgchange -ay vgname重新激活即可。

当然,激活状态去修改原有的磁盘分区表增加新的分区,重启后一般也能够正常生效。

目录
相关文章
|
存储 JSON Java
SpringBoot集成AOP实现每个接口请求参数和返回参数并记录每个接口请求时间
SpringBoot集成AOP实现每个接口请求参数和返回参数并记录每个接口请求时间
1248 2
|
Java Linux 数据安全/隐私保护
华为云计算FusionCompute虚拟化平台的安装与设置
华为云计算FusionCompute虚拟化平台的安装与设置
1425 0
华为云计算FusionCompute虚拟化平台的安装与设置
|
4月前
|
存储 人工智能 数据可视化
AI助手悬浮框嵌入指南:5分钟打造智能交互入口
阿里云AppFlow AI助手悬浮框助力企业提升数字化服务能力,通过可视化配置实现全场景覆盖、智能交互升级与低成本部署,支持网页、企业微信、钉钉多端统一交互,提升用户体验。
425 0
AI助手悬浮框嵌入指南:5分钟打造智能交互入口
|
9月前
|
运维 监控 Kubernetes
Log/Trace/Metric 完成 APIServer 可观测覆盖
Log/Trace/Metric 完成 APIServer 可观测覆盖
|
11月前
|
机器学习/深度学习 人工智能 PyTorch
使用PyTorch实现GPT-2直接偏好优化训练:DPO方法改进及其与监督微调的效果对比
本文将系统阐述DPO的工作原理、实现机制,以及其与传统RLHF和SFT方法的本质区别。
859 22
使用PyTorch实现GPT-2直接偏好优化训练:DPO方法改进及其与监督微调的效果对比
|
运维 安全 关系型数据库
​​国内 5 个最佳的控制面板,可轻松管理服务器
在当今数字化飞速发展的时代,Linux 服务器作为众多企业和开发者的核心基础设施,其管理的高效性和专业性成为了保障业务稳定运行的关键因素。对于专业的服务器运维人员和开发团队而言,理解这些面板的细节差异至关重要。这不仅关乎服务器管理的效率,更涉及到系统的稳定性、安全性以及对开源应用生态的适应性。期望本次全面的盘点能为您的 Linux 服务器管理策略提供坚实的理论依据和实践指导,确保服务器管理工作在技术迭代和业务发展的浪潮中保持高效、稳定且安全的运行状态。
​​国内 5 个最佳的控制面板,可轻松管理服务器
ly~
|
供应链 监控 搜索推荐
大数据的应用场景
大数据在众多行业中的应用场景广泛,涵盖金融、零售、医疗保健、交通物流、制造、能源、政府公共服务及教育等领域。在金融行业,大数据用于风险评估、精准营销、反欺诈以及决策支持;零售业则应用于商品推荐、供应链管理和门店运营优化等;医疗保健领域利用大数据进行疾病预测、辅助诊断和医疗质量评估;交通物流业通过大数据优化物流配送、交通管理和运输安全;制造业则在生产过程优化、设备维护和供应链协同方面受益;能源行业运用大数据提升智能电网管理和能源勘探效率;政府和公共服务部门借助大数据改善城市管理、政务服务及公共安全;教育行业通过大数据实现个性化学习和资源优化配置;体育娱乐业则利用大数据提升赛事分析和娱乐制作水平。
ly~
2703 2
|
存储 关系型数据库 MySQL
用户案例合集 | 物联网平台的时序数据处理难点与优化实践
本文汇总了四个典型的物联网平台的实践经验,把它们曾面临的数据难题以及解决思路分享给大家。
522 0
|
存储 缓存 大数据
Starrocks执行查询报错:Memory of process exceed limit. Used: XXX, Limit: XXX. Mem usage has exceed the limit of BE
Starrocks执行查询报错:Memory of process exceed limit. Used: XXX, Limit: XXX. Mem usage has exceed the limit of BE
下一篇
oss云网关配置