逻辑卷(lvm)的管理

引言

逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,如果要了解逻辑卷,那么首先需要了解逻辑卷管理中的一些概念。

  • 物理卷(Physical Volume,PV):也就是物理磁盘分区,如果想要使用LVM来管理这个分区,可以使用fdisk将其ID改为LVM可以识别的值,即8e。
  • 卷组(Volume Group,VG):PV的集合
  • 逻辑卷(Logic Volume,LV):VG中画出来的一块逻辑磁盘

了解概念之后,逻辑卷是如何产生的就很清晰了:物理磁盘或者磁盘分区转换为物理卷,一个或多个物理卷聚集形成一个或多个卷组,而逻辑卷就是从某个卷组里面抽象出来的一块磁盘空间。具体架构如下:

为什么要使用逻辑卷

对于物理磁盘,我们直接分区、格式化为文件系统之后就可以使用,那为什么还需要使用逻辑卷的方式来管理磁盘呢?我认为主要有2个原因:

  • 业务上使用大容量的磁盘。举个例子,我们需要在/data下挂载30TB的存储,对于单个磁盘,是无法满足要求的,因为市面上没有那么大的单块磁盘。但是如果我们使用逻辑卷,将多个小容量的磁盘聚合为一个大的逻辑磁盘,就能满足需求。
  • 扩展和收缩磁盘。在业务初期规划磁盘时,我们并不能完全知道需要分配多少磁盘空间是合理的,如果使用物理卷,后期无法扩展和收缩,如果使用逻辑卷,可以根据后期的需求量,手动扩展或收缩。

添加磁盘和分区

1.先添加一块磁盘

2.进行磁盘/dev/sdb的分区

将磁盘分为sdb1和sdb2俩个分区

创建物理卷

pvcreate /dev/sdb1

查看物理卷

pvdisplay 或者 pvs

创建卷组

vgcreate vg0 /dev/sdb1

或者

vgcreate -s 2G vg0 /dev/sdb1
-s 定义大小
vg0 卷组名字

查看卷组

vgdisplay 或者 vgs

创建逻辑卷

lvcreate -n mysql -L 2G vg0
-n 逻辑卷名字
-L 指定大小

查看逻辑卷

lvdisplay 或者 lvs

格式化

mkfs.ext4 /dev/vg0/mysql

文件系统为ext4

挂载和自动挂载

1.创建挂载目录

mkdir /mnt/mysql

2.临时挂载

mount /dev/vg0/mysql /mnt/mysql

3.自动挂载//修改/etc/fstab文件

在线扩容逻辑卷

扩展逻辑卷涉及到的问题

  • 检查逻辑卷(LV)所在的卷组中是否有足够的未分配磁盘空间
  • 如果有,你可以使用这些空间来扩展逻辑卷
  • 如果没有,请向系统中添加新的磁盘或 LUN
  • 将物理磁盘转换为物理卷(PV)
  • 扩展卷组
  • 增加逻辑卷大小
  • 扩大文件系统
  • 检查扩展的文件系统大小

卷组有足够的空间直接扩展逻辑卷

1.先扩容内存

lvextend -L +3G /dev/vg0/mysql

+3G是在原来的基础上在增加3G,若是没有+而是直接3G,则是扩容到3G

2.再同步文件系统

resize2fs /dev/vg0/mysql

这里的resize2fs只支持同步ext4的文件系统,而 xfs 文件系统同步则是xfs_growfs /dev/vgmysql/log

3.扩容内存和同步文件系统一步到位

lvextend -r -L 6G /dev/vg0/mysql

这里我们把逻辑卷扩容到了6G,-r 参数则是同步文件系统

若是卷组没有足够的空间我们先扩容物理卷然后在分配给vg0卷组足够的空间,若是物理卷的空间不够则需要添加新的磁盘

离线缩减逻辑卷

逻辑卷的缩容只针对ext4的文件系统,xfs的文件系统不支持缩容

1.取消挂载

umount /mnt/mysql/

2.检查文件系统

fsck -f /dev/vg0/mysql

3.缩减文件系统 //缩减后剩余的空间必须大于该逻辑卷已经使用的空间

resize2fs /dev/vg0/mysql 3G

4.缩减逻辑卷

lvreduce -L 3G /dev/vg0/mysql

5.重新挂载

mount -a

ext4文件系统实现逻辑卷快照

1.创建快照

lvcreate -s -n mysql-snapshort -L 500M -p r /dev/vg0/mysql

-s 创建快照
-p r 只读

2.挂载//若是创建快照的时候没有加-p r 则挂载的时候要加-o ro

mount /dev/vg0/mysql-snapshort /mnt/snap/

只有当原来逻辑卷中的文件修改时才会将逻辑卷中的文件保存到快照中

恢复逻辑卷快照

1.取消挂载

umount /mnt/mysql

umount /mnt/snap

2.恢复快照//快照恢复后则不存在

lvconvert –merge /dev/vg0/mysql-snapshort

3.恢复挂载

mount -a

xfs文件系统实现逻辑卷快照

我们需要先创建一个xfs文件系统的逻辑卷,由于我的vg足够我直接创建

lvcreate -n log -L 2G vg0

mkfs.xfs /dev/vg0/log

mkdir /mnt/log

mount /dev/vg0/log /mnt/log/

实现逻辑卷快照

1.创建快照

lvcreate -s -n log-snapshort -L 500M /dev/vg0/log

2.挂载

//xfs文件系统若是uuid一样则不能挂载,而快照的话则是和被快照的分区uuid是一样的

mount -o ro,nouuid /dev/vg0/log-snapshort /mnt/snap/

这里nouuid就是挂载的时候不检查uuid

恢复逻辑卷快照

1.取消挂载

umount /mnt/snap
umount /mnt/log

2.恢复//快照恢复后则不存在

lvconvert –merge /dev/vg0/log-snapshort

3.重新挂载

mount -a

跑路

1.先取消挂载

umount /mnt/log
umount /mnt/mysql

2.删除逻辑卷

lvremove /dev/vg0/log
lvremove /dev/vg0/mysql

3.删除卷组

vgremove vg0

4.删除物理卷

pvremove /dev/sdb1

5.取消磁盘分区

fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

命令(输入 m 获取帮助):d
分区号 (1,2,默认 2):1
分区 1 已删除

命令(输入 m 获取帮助):d
已选择分区 2
分区 2 已删除

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

6.拆下磁盘跑路

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值