Linux系统LVM逻辑卷

传统分区的问题:

如果分区空间用满了,只能重新分区。

解决方案:加一个逻辑(软件)中间层。

以下有三个解决方案(逻辑层):

LVM,老牌的,很成熟,可以实现在线动态扩展(不能实现高可用)。

stratis,使用精简文件系统来解决空间浪费问题。

3、vdo

一、LVM

fs (file system文件系统)

lv (logical volume 逻辑卷):每个卷组中可以定义一个或多个逻辑卷,逻辑卷是位于物理分区上的信息集合。

vg (volume group 卷组):卷组是可用物理硬盘的集合,可以逻辑地看成一块大硬盘,一个卷组由一个或多个物理卷组成。

pv (physical volume物理卷):物理卷是底层真正提供容量,一个物理卷可以是整个磁盘、或磁盘上的分区。

PE  (Physical Extend),我们的LVM磁盘管理中PE的默认大小是4M大小(可以指定大小),其实PE就是我们逻辑卷管理的最基本单位(一旦确定将不能改变)。比如说我有一个400M的硬盘,那么在将其格式化成PV的时候,其实际就是将这块物理硬盘划分成了100个的PE,因为PE默认的大小就是4M。

    dm: device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块;

       /dev/dm-#

1.1、安装lvm工具

# yum install lvm2

常用的 LVM 部署命令

功能/命令      物理卷管理     卷组管理        逻辑卷管理

扫描            pvscan          vgscan          lvscan

建立            pvcreate        vgcreate       lvcreate

显示            pvdisplay       vgdisplay      lvdisplay

删除            pvremove        vgremove         lvremove

扩展            vgextend        lvextend

缩小            vgreduce        lvreduce

1.2、创建逻辑卷:

1.2.1、环境准备

使用一块硬盘的两个分区 /dev/sdb2 /dev/sdb3

或者两个硬盘/dev/sdb 、 /dev/sdc

1.2.2、创建pv(Physical volume物理卷)

在分区或磁盘内写入一段元数据(标识当前分区或磁盘是一个pv)

# pvcreate /dev/sdb2 /dev/sdb3

如果报错:

Device /dev/sdb excluded by a filter.

Device /dev/sdc excluded by a filter.

可能是因为此硬盘已经分区,存在分区表

查看创建的pv

我使用的是3A服务器使用ssh连接的,平时做实验挺方便的

1、# pvs

 2、# pvdisplay

1.2.3、创建VG(Volume group 卷组)

将指定的PV,逻辑上进行组合成一个大的存储池

-s 参数,可指定PE大小,默认为4MB

把两块硬盘设备加入到fantest 卷组中,然后查看卷组的状态

# vgcreate fantest /dev/sdb2 /dev/sdb3

查看创建的VG

1、# vgs

 2、# vgdisplay

1.2.4、创建LV(Logical volume逻辑卷)

切割出一个约为 150MB 的逻辑卷设备,这里需要注意切割单位的问题。在对逻辑卷进行切割时有两种计量单位。

-L参数:第一种是以容量为单位,所使用的参数为-L。例如,使用-L 150M 生成一个大小为 150MB 的逻辑卷。

 -l参数:另外一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为 4MB。例如,使用-l 37 可以生成一个大小为 37×4MB=148MB 的逻辑卷。

-l参数:另外一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为 4MB。例如,使用-l 37 可以生成一个大小为 37×4MB=148MB 的逻辑卷。

 使用所有空闲空间:lvcreate -n opt -l 100%FREE centos

 查看LV:

1、# lvs

 2、# lvdisplay

1.2.5、格式化LV,创建文件系统

把生成好的逻辑卷进行格式化,创建文件系统

# mkfs -t xfs /dev/fantest/lv01

或者

# mkfs.ext4 /dev/fantest/lv01

1.2.6、挂载lv

创建一个目录,用于挂载lv:

# mkdir /home/lv01

# mount /dev/fantest/lv01 /home/lv01

把挂载信息写入到配置文件,使其永久生效

# echo "/dev/fantest/lv01 /home/lv01 xfs defaults 0 0" >> /etc/fstab

1.3、扩容逻辑卷

1.3.1、假如VG还有足够空间可分配时,直接分配即可

只要卷组(VG)中有足够的资源,就可以一直为逻辑卷(LV)扩容。

1.3.1.1、查看VG的资源情况

 

1.3.1.2、逻辑卷扩容

1.3.1.2.1、-l参数:另外一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为 4MB。例如,使用-l 37 可以生成一个大小为 37×4MB=148MB 的逻辑卷

具体操作与-L参数相似,参考下方办法即可

1.3.1.2.2、-L参数:是以容量为单位,所使用的参数为-L。例如,使用-L 150M 生成一个大小为 150MB 的逻辑卷。

>> 先查看未扩容前,逻辑卷资源占用情况

执行以下命令,扩容逻辑卷(LV):

# lvextend -L +100M /dev/fantest/lv01

执行以下命令,扩容xfs文件系统 或者在lvextend 命令中加入-r 参数

# xfs_growfs /home/lv01

1.3.2、如果VG没有足够空间可分配,则先创建PV,扩容卷组(VG)后再扩容逻辑卷(LV)

扩展前查看资源情况

先创建pv

# pvcreate /dev/sdb4

扩容VG

# vgextend fantest /dev/sdb4

1.4、缩小逻辑卷

相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其丢失数据的风险更大。所以在生产

环境中执行相应操作时,一定要提前备份好数据。另外 Linux 系统规定,在对 LVM 逻辑卷进行缩容操作之前,要先检查文件系统的完整性(当然这也是为了保证我们的数据安全)。在执行缩容操作前记得先把文件系统卸载掉。

tips:缩小逻辑卷时,剩余的空间大小必须为一个PV的大小以上

1.4.1、迁移数据

这里拿/home 测试,先将/home下内容备份删除,并卸载/home

 注意:如果出现以下情况,可用此命令查看目录占用情况fuser -mv /home

1.4.2、缩小逻辑卷

1.4.2.1、ext文件系统

将逻辑卷大小调整为10G

# resize2fs /dev/centos/home 10G

resize2fs命令是用来增大或者收缩未加载的“ext2/ext3/ext4”文件系统的大小

1.4.2.2、xfs文件系统

缩小home 逻辑卷的大小为3G

# lvreduce -L 3G /dev/centos/home

把生成好的逻辑卷进行格式化,创建文件系统

# mkfs.xfs -f  /dev/centos/home

1.5、删除逻辑卷

当生产环境中想要重新部署 LVM 或者不再需要使用 LVM 时,则需要执行 LVM 的删除

操作。为此,需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒。

1.5.1、取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。

# umount /home/lv01

 # vi /etc/fstab

1.5.2、删除逻辑卷设备

# lvremove /dev/fantest/lv01

1.5.3、删除卷组,此处只写卷组名称即可,不需要设备的绝对路径

# vgremove fantest

1.5.4、删除物理卷设备

# pvremove /dev/sdb3 /dev/sdb

1.6、逻辑卷快照

LVM 的快照卷功能有两个特点:

➢ 快照卷的容量必须等同于逻辑卷的容量;

➢ 快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。

1.6.1、使用-s 参数生成一个快照卷,使用-L 参数指定切割的大小。另外,还需要在命令后面写上是针对哪个逻辑卷执行的快照操作

# lvcreate -L 100M -s -n kuaizhao /dev/fantest/fan

1.6.2、在逻辑卷所挂载的目录中创建一个 100MB 的垃圾文件,然后再查看快照卷的状态。可以发现存储空间占的用量上升了

#dd if=/dev/zero of=/home/lvm_test/test.txt count=1 bs=100M

1.6.3、为了校验 kuaizhao 快照卷的效果,需要对逻辑卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设备与目录的挂载

#umount /home/lvm_test

如果报错:

umount: /home/lvm_test: target is busy.

        (In some cases useful info about processes that use

         the device is found by lsof(8) or fuser(1))

可能是有用户正在占用目录

#lvconvert --merge /dev/fantest/kuaizhao

1.6.4、快照卷会被自动删除掉,并且刚刚在逻辑卷设备被执行快照操作后再创建出来的 100MB 的垃圾文件也被清除了。

#mount  /dev/fantest/fan /home/lvm_test

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值