lvm优缺点

优点

比起传统的硬盘分区管理方式,LVM更富于灵活性:

  1. 将多块硬盘看作一块大硬盘
  2. 使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区。
  3. 可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小。
  4. 在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。
  5. 可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作。
  6. 无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。
  7. 允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小。
  8. 支持各种设备映射目标(device-mapper targets),包括透明文件系统加密和缓存常用数据(caching of frequently used data)。这将允许你创建一个包含一个或多个磁盘、并用LUKS加密的系统,使用LVM on top 可轻松地管理和调整这些独立的加密卷 (例如. /, /home, /backup等) 并免去开机时多次输入密钥的麻烦。

缺点

  1. 在系统设置时需要更复杂的额外步骤。
  2. Windows系统并不支持LVM,若使用双系统,你将无法在Windows上访问LVM分区。

图解lvm工作流程



普通磁盘: 格式化文件系统、block=4KB ,有N个block-->挂载分区使用

lvm磁盘: 磁盘、格式化为PV(磁盘的容量被分为N个PE) ,PE默认单位是4MB,等于1024个block-->PV加入卷组VG(动态伸缩的大磁盘)-->创建逻辑卷LV(等于创建了分区)-->格式化文件系统xfs (sdb sdc sdd),逻辑卷-->挂载使用

lvm常用命令

pv命令

# 1.前提是需要安装lvm命令
yum install lvm2 -y # 2.创建pv
pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created. # 3.查看pv
pvs
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 --- 20.00g 20.00g
/dev/sdc lvm2 --- 20.00g 20.00g pvscan
PV /dev/sdb lvm2 [20.00 GiB]
PV /dev/sdc lvm2 [20.00 GiB]
Total: 2 [40.00 GiB] / in use: 0 [0 ] / in no VG: 2 [40.00 GiB] pvdisplay
"/dev/sdb" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID GfgfYb-bh9z-ds63-UXwP-Qaad-eGIw-ZxsG7Q "/dev/sdc" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 3CcXdo-M6Zx-N6Dn-4SkN-BPk7-a8Ad-Ft2Ixl # 4.删除pv
pvremove /dev/sdb /dev/sdc
Labels on physical volume "/dev/sdb" successfully wiped.
Labels on physical volume "/dev/sdc" successfully wiped.

vg命令

# 1.首先要创建pv
pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created. # 2.创建(加入)卷组
vgcreate vg-0224 /dev/sdb /dev/sdc
Volume group "vg-0224" successfully created # 3.查看卷组
vgs
VG #PV #LV #SN Attr VSize VFree
vg-0224 2 0 0 wz--n- 39.99g 39.99g vgscan
Reading volume groups from cache.
Found volume group "vg-0224" using metadata type lvm2 vgdisplay
--- Volume group ---
VG Name vg-0224
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 0 / 0
Free PE / Size 10238 / 39.99 GiB
VG UUID SVUaXR-9JXY-o5WP-XFAW-kCvo-flnt-W3H867 # 4.扩容vg,新的硬盘直接加入vg即可,会自动创建成pv。
vgextend vg-0224 /dev/sdd
Physical volume "/dev/sdd" successfully created.
Volume group "vg-0224" successfully extended # 5.删除vg
vgremove vg-0224
Volume group "vg-0224" successfully removed

lv命令

# 1. 创建lv
# -L 指定逻辑卷的大小
# -l 指定逻辑卷的大小(PE个数)
# -n 后面跟逻辑卷名
# -s 创建快照 # 创建lv,设定为卷组容量的一半
lvcreate -n 0224lv1 -l 50%VG vg-0224
Logical volume "0224lv1" created. # 指定逻辑卷大小
lvcreate -n 0224lv2 -L 10G vg-0224
Logical volume "0224lv2" created. # 2.查看逻辑卷信息
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
0224lv1 vg-0224 -wi-a----- 29.99g
0224lv2 vg-0224 -wi-a----- 10.00g # 3.扩容
# 给lv增加10G
lvextend -L +10G /dev/vg-0224/0224lv1
Size of logical volume vg-0224/0224lv1 changed from 29.99 GiB (7678 extents) to 39.99 GiB (10238 extents).
Logical volume vg-0224/0224lv1 successfully resized. # 调整到49G大小
lvextend -L 49G /dev/vg-0224/0224lv1
Size of logical volume vg-0224/0224lv1 changed from 39.99 GiB (10238 extents) to 49.00 GiB (12544 extents).
Logical volume vg-0224/0224lv1 successfully resized. # 上面虽然调整了 lv2逻辑卷的大小,但是文件系统它不知道,你得告诉文件系统,也跟着调整分区的容量,以及重新设置block的数量
# ext4文件系统,使用resize2fs命令
# xfs文件系统,使用xfs_growfs调整大小 # 4.删除逻辑卷
lvremove /dev/vg-0224/0224lv1
Do you really want to remove active logical volume vg-0224/0224lv1? [y/n]: y
Logical volume "0224lv1" successfully removed

lvm创建实战

# 1.安装lvm
yum install lvm2 -y # 2.查看pv
pvs # 3.创建pv
pvcreate /dev/sdb /dev/sdc # 4.查看创建后的pv
pvs
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 --- 20.00g 20.00g
/dev/sdc lvm2 --- 20.00g 20.00g # 5.查看vg
vgs # 6.创建vg ,sdb sdc创建为卷组,名字是 vg-0224
vgcreate vg-0224 /dev/sdb /dev/sdc
Volume group "vg-0224" successfully created # 7.查看创建后的vg
vgs
VG #PV #LV #SN Attr VSize VFree
vg-0224 2 0 0 wz--n- 39.99g 39.99g # 8.查看lv
lvs # 9.创建lv(创建分区)
# 分配lv1 20G
lvcreate -n lv1 -L 20G vg-0224
Logical volume "lv1" created. # 分配lv2 15G
lvcreate -n lv2 -L 15G vg-0224
Logical volume "lv2" created. # 10. 查看创建后的lv
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg-0224 -wi-a----- 20.00g
lv2 vg-0224 -wi-a----- 15.00g ls /dev/vg-0224/
lv1 lv2 # 11.查看磁盘设备信息
# 通过如下命令,查看lvm设备的信息
blkid |grep 'sd[bc]'
/dev/sdc: UUID="EtdTLT-GCsq-3GOd-epgG-iWHE-TyMp-vnV3wq" TYPE="LVM2_member"
/dev/sdb: UUID="OC52bo-rsOY-s24k-1hPs-YEsE-wcEN-XL9Yhx" TYPE="LVM2_member" # 12.给lv格式化文件系统
# lv1格式化为xfs
mkfs.xfs /dev/vg-0224/lv1 # lv2格式化为ext4
mkfs.ext4 /dev/vg-0224/lv2 # 13.挂载lv
mount /dev/vg-0224/lv1 /data
mount /dev/vg-0224/lv2 /opt # 14.查看挂载
df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 30G 4.2G 26G 14% /
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/vg--0224-lv1 20G 33M 20G 1% /data
/dev/mapper/vg--0224-lv2 15G 41M 14G 1% /opt lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
└─sda1 8:1 0 30G 0 part /
sdb 8:16 0 20G 0 disk
└─vg--0224-lv1 253:0 0 20G 0 lvm /data
sdc 8:32 0 20G 0 disk
├─vg--0224-lv1 253:0 0 20G 0 lvm /data
└─vg--0224-lv2 253:1 0 15G 0 lvm /opt
sdd 8:48 0 20G 0 disk
sr0 11:0 1 4.4G 0 rom # 15.开机自动挂载
# 一定切记,如果你的设备发生了变化,一定要去修改/etc/fstab,否则系统开机,读取该fstab文件,找不到设备,无法正确挂载就会报错
进入紧急模式,直到你再次修复fstab文件
tail -2 /etc/fstab
/dev/mapper/vg--0224-lv1 /data xfs defaults 0 0
/dev/mapper/vg--0224-lv2 /opt ext4 defaults 0 0

lvm扩容

# 先查看当前机器的lv情况,确定你要扩容的设备
df -h |grep /data
/dev/mapper/vg--0224-lv1 20G 33M 20G 1% /data # 扩容到4G的需求,分两种情况
1. 卷组容量够,直接扩容
2. 卷组容量不够,加新硬盘,再次pv化,加入卷组之后再扩容

方案1,卷组容量够

# 1.确认vg够不够
vgs
VG #PV #LV #SN Attr VSize VFree
vg-0224 2 2 0 wz--n- 39.99g 4.99g # 2.确认够用,直接lvextend扩容lv逻辑卷即可
# 给lv1增加4G
lvextend -L +4G /dev/vg-0224/lv1
Size of logical volume vg-0224/lv1 changed from 20.00 GiB (5120 extents) to 24.00 GiB (6144 extents).
Logical volume vg-0224/lv1 successfully resized.
# 注意,这里还有另一种用法:直接扩容到24G
lvextend -L 24G /dev/vg-0224/lv1 # 3. 查看扩容后的lv
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg-0224 -wi-ao---- 24.00g
lv2 vg-0224 -wi-ao---- 15.00g # 4. 虽然调整了 lv1逻辑卷的大小,但是文件系统它不知道,得告诉文件系统也跟着调整分区的容量。
# ext4文件系统,使用resize2fs命令,xfs文件系统,使用xfs_growfs调整大小
# 查看lv1文件系统的类别
df -T |grep lv1
/dev/mapper/vg--0224-lv1 xfs 20961280 32992 20928288 1% /data
# 可以看到是xfs,使用xfs_growfs扩容即可
xfs_growfs /dev/mapper/vg--0224-lv1
meta-data=/dev/mapper/vg--0224-lv1 isize=512 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=5242880, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 5242880 to 6291456 # 5. 查看扩容后的大小
df -hT |grep lv1
/dev/mapper/vg--0224-lv1 xfs 24G 33M 24G 1% /data

情况2,卷组容量不够了

# 1.创建新硬盘
# 添加一个20G硬盘
lsblk |grep sdd
sdd 8:48 0 20G 0 disk # 2. 给硬盘pv化
pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created. # 3. 查看pv
pvs
PV VG Fmt Attr PSize PFree
/dev/sdb vg-0224 lvm2 a-- <20.00g 0
/dev/sdc vg-0224 lvm2 a-- <20.00g 1016.00m
/dev/sdd lvm2 --- 20.00g 20.00g # 4.查看vg
vgs
VG #PV #LV #SN Attr VSize VFree
vg-0224 2 2 0 wz--n- 39.99g 1016.00m # 5.vg扩容
vgextend vg-0224 /dev/sdd
Volume group "vg-0224" successfully extended # 6. 查看扩容后的vg
vgs
VG #PV #LV #SN Attr VSize VFree
vg-0224 3 2 0 wz--n- <59.99g <20.99g # 7.扩容lv
lvextend -L 40G /dev/vg-0224/lv1
Size of logical volume vg-0224/lv1 changed from 24.00 GiB (6144 extents) to 40.00 GiB (10240 extents).
Logical volume vg-0224/lv1 successfully resized. # 8.查看扩容后的lv
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg-0224 -wi-ao---- 40.00g
lv2 vg-0224 -wi-ao---- 15.00g # 9.调整xfs文件系统
xfs_growfs /dev/mapper/vg--0224-lv1
meta-data=/dev/mapper/vg--0224-lv1 isize=512 agcount=5, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=6291456, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 6291456 to 10485760 # 10.查看磁盘挂载容量情况
df -hT|grep lv1
/dev/mapper/vg--0224-lv1 xfs 40G 33M 40G 1% /data

删除lvm

# 1./etc/fstab,清除开机自动挂载的配置

# 2.取消挂载
umount /data
umount /opt # 3.删除lv
lvremove /dev/vg-0224/lv1
Do you really want to remove active logical volume vg-0224/lv1? [y/n]: y lvremove /dev/vg-0224/lv2
Do you really want to remove active logical volume vg-0224/lv2? [y/n]: y
Logical volume "lv2" successfully removed # 4. 删除vg
vgremove vg-0224
Volume group "vg-0224" successfully removed # 5. 删除pv,还原磁盘原本类型
pvremove /dev/sdb /dev/sdc /dev/sdd
Labels on physical volume "/dev/sdb" successfully wiped.
Labels on physical volume "/dev/sdc" successfully wiped.
Labels on physical volume "/dev/sdd" successfully wiped. # 6. 最后,磁盘就还原为了不可动态调整的磁盘了,可以格式化后,重新挂载使用该设备

lvm逻辑卷详解的更多相关文章

  1. lvs逻辑卷详解

    管理磁盘空间对系统管理员来说是一件重要的日常工作.一旦磁盘空间耗尽就需要进行一系列耗时而又复杂的任务,以提升磁盘分区中可用的磁盘空间.它也需要系统离线才能处理.通常这种任务会涉及到安装一个新的硬盘.引 ...

  2. linux篇-Linux逻辑卷详解总结

    LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性. LVM将存储 ...

  3. Linux LVM逻辑卷配置过程详解(创建,增加,减少,删除,卸载)

    Linux LVM逻辑卷配置过程详解 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据, ...

  4. Linux LVM逻辑卷配置过程详解

    许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以 ...

  5. (转)Linux LVM逻辑卷配置过程详解(创建、扩展、缩减、删除、卸载、快照创建)

    一.预备知识 LVM全称为Logical Volume Manager 逻辑卷管理器,LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘 ...

  6. Linux随笔 - Linux LVM逻辑卷配置过程详解[转载]

    许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以 ...

  7. LVM备份(1)-创建LVM逻辑卷

    LV(Logical Volume) - 逻辑卷 VG(Volume Group) - 卷组 PV(Physical Volume) - 物理卷 1.查看分区信息:fdisk -l 可看到磁盘大小为1 ...

  8. Linux 笔记 - 第十七章 Linux LVM 逻辑卷管理器

    一.前言 在实际生产中,有时会遇到磁盘分区空间不足的情况,这时候就需要对磁盘进行扩容,普通情况下需要新加一块磁盘,重分区.格式化.数据复制.卸载旧分区.挂载新分区等繁琐的步骤,而且有可能造成数据的丢失 ...

  9. Linux lvm 逻辑卷篇

    Linux LVM逻辑卷配置过程详解(创建.增加.减少.删除.卸载) 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用 ...

  10. LVM备份(2)-创建LVM逻辑卷

    懵逼了几天,对LVM快照备份总算有了个比较清晰的认识 总的来说,就是这样: 1.普通分区备份比较困难,需要转化成LVM逻辑卷进行管理 2.在新创建的LVM逻辑卷上进行业务操作,比如建数据库 3.某个时 ...

随机推荐

  1. 第三届LitCTFmisc详解

    Misc Cropping 随波逐流伪加密,得到一堆图片,把图片拼接起来 脚本 import os from PIL import Image def stitch_tiles_horizontall ...

  2. 2024牛客多校2I Red Playing Cards

    本文同步于我的博客. Problem There are \(2\cdot n\) cards arranged in a row, with each card numbered from \(1\ ...

  3. 【中英】【吴恩达课后测验】Course 5 - 序列模型 - 第一周测验

    [中英][吴恩达课后测验]Course 5 -序列模型 - 第一周测验 - 循环神经网络 上一篇:[课程4 - 第四周编程作业]※※※※※ [回到目录]※※※※※下一篇:[待撰写-课程5 -第一周编程 ...

  4. k8s在线修改alertmanager.yaml

    简单说明 有些情况下,我们可以进入集群查看某些secret的配置,这里如果想修改secret的配置时,没有secrets的源文件,可以采取如下的方案. 例如我们需要修改alertmanager.yam ...

  5. linux系统僵尸进程处理

    查看僵尸进程 [root@mac-25 ~]# top top - 19:04:11 up 177 days, 23:58, 2 users, load average: 15.18, 21.64, ...

  6. 关于PHP 函数性能优化的技巧

    本文由 ChatMoney团队出品 本文将详细介绍 PHP 函数性能优化的技巧.通过分析 PHP 函数的执行过程和性能瓶颈,提供一系列实用的优化方法,并结合代码示例,帮助读者提升 PHP 代码的执行效 ...

  7. ET框架运行(Mac环境)--客户端

    1:环境 Mac电脑,安装.net cor2 2.2 ,JetBrains Rider编辑器,Unity环境(2018.4.28f1) 终端运行:  dotnet --version  查看是否安装n ...

  8. 用 Tarjan 算法求解无向图的割点和割边

    上期回顾:https://www.cnblogs.com/ofnoname/p/18823922 Tarjan 算法与无向图 连接性分析是图论的核心,而Tarjan算法为我们提供了穿透复杂网络结构的通 ...

  9. ts 运行时和打包问题

    esm问题 两个关于模块配置项 compilerOptions.module 决定tsc打包模块后的输出,如esm或cjs compilerOptions.moduleResolution 影响的是在 ...

  10. U盘归还空间

    将您的U盘连接到计算机并确保系统能够检测到它, 按Win+R输入diskpart并按Enter键打开Diskpart命令行实用程序. 依次输入以下命令,并在每一行命令后按一次Enter键执行. lis ...