3.8 Linux LVM管理

对于普通的分区,扩展度不高,一旦分区格式化完成,很难灵活的再增加或者减少分区大小,一旦系统分区不够用就可能不得不备份、删除相关数据,甚至被迫重新规划分区并重装操作系统,以满足应用系统的需要。为了解决这个问题,可以使用LVM(逻辑卷),实现动态调整Linux分区容量。

LVM是linux操作系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,因此能够在保持现有数据不变的情况下动态调整磁盘容量,从而增强磁盘管理的灵活性。

需要注意:/boot 分区用于存放引导文件,不能基于 LVM 创建

-----------------------------------------

PV (Physical Volume) 物理卷是LVM的基本存储设备,通常对应为一个使用fdisk等工具建立的普通分区或整个硬盘,创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(physical extent,PE),从而构成物理卷。 对用于转换成物理卷的普通分区,建议使用fdisk工具将分区类型的ID标记号改成8e。若是整块硬盘,可以将所有磁盘空间划分为一个主分区后再做相应的调整。

VG (Volume Group) 一个或多个物理卷(PV)组合而成的整体,即成为卷组(VG),在卷组中可以动态的添加或移除物理卷,卷组的名称由用户自行定义。

LV(Logical Volume)逻辑卷(LV)建立在卷组(VG)之上,把VG切割成一块一块小空间,这一块块小空间就是逻辑卷LV。PE 是整个 LVM 的最小储存单位,那么 LV的大小就与在此 LV 内的 PE 总数有关。

逻辑卷常用管理命令:

功能

pv

vg

lv

scan 扫描

pvscan

vgscan

lvscan

create 创建

pvcreate

vgcreate

lvcreate

display 显示

pvdisplay

vgdisplay

lvdisplay

remove 删除

pvremove

vgremove

lvremove

extend 扩容

vgextend

lvextend

reduce 缩容

vgreduce

lvreduce

lsblk:查看分区

1、创建LVM分区

创建分区,并将分区类型转换为Linux LVM格式:

  • MBR格式:83 Linux 、8e Linux LVM
  • GPT格式:8300 Linux filesystem 、8e00 Linux LVM

2、创建 PV
a. pvcreate
# 创建 sdb1,2,,5,6,7,8物理卷
pvcreate /dev/sdb[125678]

b. pvscan
# 列出当前系统的pv
pvs | pvscan

c. pvdisplay
# 查看 /dev/sdb1 PV 的详细信息
pvdisplay /dev/sdb1

d. pvremove
# 删除 /dev/sdb1 PV
pvremove /dev/sdb1

3、创建 VG
a. vgcreate
# 用 sdb1,sdb2 创建 vg01卷组
vgcreate vg01 /dev/sdb[12]

b. vgscan
# 列出当前系统的 卷组
vgs | vgscan

c. vgdisplay
# 查看 vg01 的详细信息
vgdisplay vg01

d. vgextend

注意:若事先没有把sdb5转化为pv,而是直接添加到vg里面,他会自动初始化成pv

# 给 vg01 扩容
vgextend vg01 /dev/sdb5
# 查看扩容之后的 vg01 的信息
vsdispaly vg01

e. vgreduce

实际生产环境中不建议缩容,并且xfs⼲脆不⽀持缩容

# 缩容:将 /dev/sdb5 去除
vgreduce vg01 /dev/sdb5

f. vgremove
# 删除 vg01
vgremove vg01

4、创建 LVM
a. lvcreate
  • 描述:创建逻辑卷
  • 语法:lvcreate -L 逻辑卷容量 -n 逻辑卷容量 卷组名称

-s 创建逻辑卷的快照

# 从 vg01 卷组中创建名字叫 lv01的lv
lvcreate -L 100M -n lv01 vg01

b. lvscan
# 查看 lv01 的详细信息
lvscan | lvs

c. lvdisplay
# 查看 lv01 的详细信息
lvdisplay /dev/vg01/lv01

d. lvextend

给逻辑卷扩容,需要查看逻辑卷所使用的卷组剩余的容量,根据卷组剩余的容量给卷组扩容

# 查看 vg01 的剩余容量
vgdisplay vg01

# 给 lv01 扩容 1G
lvextend -L +1G /dev/vg01/lv01

# 查看 lv01 容量
lvs

e. xfs_growfs

逻辑卷的文件系统仍然是100M没有改变,我们还需要使用xfs_growfs来扩大XFS文件系统,也可以直接用resize2fs来处理设备

XFS系统只能增长,不能减少!因此如果需要减少LVM的话,分区只能使用ext4

# 刷新挂载节点
xfs_growfs /mnt/mbr
f. xfs_dump & xfsrestore
# 备份数据
xfsdump -f /root/lvm.img /mnt/mbr	

# 恢复数据
xfsrestore	-f /root/lvm.img /mnt/mbr/
g. lvreduce

实际生产环境中不建议缩容,并且xfs⼲脆不⽀持缩容

# 将 lv01 缩容500M
lvreduce -L -500M /dev/vg01/lv01

# 查看 lv01 容量大小
lvs

5、格式化并挂载
# 格式化 lv01
mkfs.xfs /dev/vg01/lv01

# 挂载 lv01
mount /dev/vg01/lv01 /mnt/mbr

# 创建文件并写入数据
echo "hello lvm" > /mnt/mbr/hello.txt
6、LVM 快照

通过lvm快照给lvm真实卷拍个照片,当 lv真实卷发送改变时:

  • lvm 快照把 lvm 真实卷改变之前的内容存放在快照上,
  • 这样在 lvm 快照有效的这段时间内,我们看到的lvm快照上的内容始终是lvm真实卷在创建 lvm 快照时内容,
  • 通过备份lvm快照即可达到在线备份 lvm 真身的目的

需要注意的是,当lvm 快照比 lvm 真身小时,若lvm 真身发生的改变小于 lvm 快照,则 lvm 快照将变得无法读取而失效 ; 若 lvm 快照大于等于 lvm 真身,则不会发生前面的情况

VG中需要预留存放快照本身的空间,不能全部被占满。

快照所在的VG 必须与被备份的 LV 相同,否则创建快照会失败

a. 创建快照

lvcreate 的 -s选项 是创建快照、-n指定快照名称

# 创建 lv01的快照 lv01.bak
lvcreate -s -L 500M -n lv01.bak /dev/vg01/lv01

# 查看 lv01.bak 快照
lvs | lvscan

b. 删除数据模拟数据损坏
# 删除 lv01 中的数据
rm -rf /mnt/mbr/*
c. 卸载lvm,挂载lvm快照

如果逻辑卷中的数据损坏,我们也已经备份好数据。那么我们可以这样操作:

  • 第一步:先将逻辑卷卸载,挂在上lvm快照,将数据备份到其他位置上
  • 第二步:卸载逻辑卷快照,挂载逻辑卷,将备份数据剪切到逻辑卷中
  • 第三步:删除原来的快照,再创建新的快照
# 卸载逻辑卷
umount /mnt/mbr
# 挂载逻辑卷快照
mount /dev/vg01/lv01.bak /mnt/mbr

# 将数据暂时备份到别的地方
mv /mnt/mbr/* /opt/lv01.bak/

# 卸载逻辑卷快照
umount /mnt/mbr
# 挂载 lv01
mount /dev/vg01/lv01 /mnt/mbr

# 将备份文件剪切至lv01中
mv /opt/lv01.bak/* /mnt/mbr/

# 删除之前的快照,创建新的快照
lvremove /dev/vg01/lv01.bak
……
7、LVM删除流程

卸载文件系统 -> 删除逻辑卷 -> 删除卷组 -> 删除物理卷 -> 删除分区

# 卸载文件系统
umount /mnt/mbr

# 删除逻辑卷
lvremove /dev/vg01/lv01

# 删除卷组
vgremove vg01

# 删除逻辑卷
pvremove /dev/sdb[125678]

# 删除分区
fdisk /dev/sdb
……
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值