首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LVM的创建、扩展、收缩及快照功能的介绍

LVM的创建、扩展、收缩及快照功能的介绍

作者头像
保持热爱奔赴山海
发布2019-09-18 11:52:19
1.3K0
发布2019-09-18 11:52:19
举报
文章被收录于专栏:饮水机管理员饮水机管理员

LVM技术说明:

LVM是logical Volume Manager(逻辑卷管理)的简称。

LVM机制使得我们安装系统时候不用太担心分区大小对后期扩展带来的不便。

LVM是在物理卷(Physical Volume)上再建立了一层逻辑层。可以将多块磁盘组成卷组,再划分为多个逻辑卷。

首先,说下几个名词:

PV     # 物理卷Physical Volume

VG     # 卷组Volume Group

LV     # 逻辑卷Logical Volume

PE     # 物理块Physical Extents

LE     # 逻辑块Logical Extent。

逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应

wKiom1XgZzThifbrAACHJ2SuTSc583.jpg
wKiom1XgZzThifbrAACHJ2SuTSc583.jpg

1.LVM的创建

大致流程如下:

1. 创建分区(fdisk 命令,分区类型fd)

2. 创建PV

3. 创建VG

4. 创建LV

5. 挂载测试

下面我们来一一说明:

# 创建分区

fdisk /dev/sda

我这里以虚拟机的/dev/sda{5,6,7}为例,

# 创建PV(物理卷)

pvcreate /dev/sda{5,6,7} # 创建物理卷physical volume

pvs  # 查看PV信息 ,或者用pvdisplay 显示PV的详细信息

wKioL1XgaW_Damr5AAEOdTydiTA650.jpg
wKioL1XgaW_Damr5AAEOdTydiTA650.jpg

# 创建VG(卷组)

# 设置PE大小为16M,vg名称为testvg,加入的磁盘有/dev/sda{5,6,7}

vgcreate –s 16M testvg /dev/sda{5,6,7}

vgdisplay /dev/testvg    # 查看VG详细信息 ,或者直接用vgs命令查看VG信息

wKiom1XgZ2vwGNdpAAJH7xJSgKs933.jpg
wKiom1XgZ2vwGNdpAAJH7xJSgKs933.jpg

# 创建LV(逻辑卷)

# 创建逻辑卷logical volumes,大小为4G,-n 接的是LV名称,最后跟的是VG名称

lvcreate -L 4G -n testlv testvg

lvdisplay /dev/testvg/testlv    # 查看LV详细信息,或者直接用pvs命令查看LV信息

wKiom1XgZ4CgS2EdAAJ91eAohfU794.jpg
wKiom1XgZ4CgS2EdAAJ91eAohfU794.jpg

# 格式化逻辑卷

mke2fs -t ext4 /dev/testvg/testlv

# 挂载LVM文件系统做测试

mkdir /test

mount /dev/testvg/testlv /test

df –lhP   # 查看挂载情况

wKioL1XgabKTJbH1AAH8ahdDT7Q331.jpg
wKioL1XgabKTJbH1AAH8ahdDT7Q331.jpg

cp –a /etc/ /test       # 拷贝/etc/目录到/test目录下做测试用

vi /etc/fstab ,添加一行内容:/dev/testvg/testlv /test ext4 defaults 0 0

2.LVM的扩展与收缩

这里我们要引入两个概念:物理边界和逻辑边界。

物理边界:我们对一个磁盘进行分区的分区边界

逻辑边界:我们格式化分区,建立文件系统后形成的分区边界

在我们对LVM扩展的时候,我们要先扩展物理边界,然后再扩展逻辑边界;缩减LVM的时候则相反。

# 2.1 LVM的扩展

# 扩展LV大小为7GB

umount /dev/testvg/testlv              # 先卸载分区

lvextend -L 7G /dev/testvg/testlv      # 扩展物理边界

wKiom1XgZ7HQ48icAAEua__LlFw582.jpg
wKiom1XgZ7HQ48icAAEua__LlFw582.jpg

df -lhP       # 可以看到/dev/testvg/testlv的大小还是原来的数值,并没有变成7G

resize2fs /dev/testvg/testlv    # 扩展逻辑边界(调整文件系统的大小)

df -lhP       # 这时候发现lvm1的大小已经变成了7G,表明扩展成功

wKiom1XgZ8fTSt-AAAIDSW9DeXw991.jpg
wKiom1XgZ8fTSt-AAAIDSW9DeXw991.jpg

# 2.2 LVM的收缩

# 缩小LV大小为3GB

注意:缩减需要移动文件,存在一定的风险,一般生产环境中不缩减LVM的大小。

umount /dev/testvg/testlv              # 先卸载分区

e2fsck -f /dev/testvg/testlv           # 检查逻辑卷的数据,确保其一致性

resize2fs /dev/testvg/testlv 3G    # 缩减逻辑卷大小为3G(缩减的是逻辑边界)

lvreduce -L 3G /dev/testvg/testlv      # 缩减逻辑卷大小为3G(缩减的是物理边界)

mount /dev/testvg/testlv  /test/       # 挂载LVM测试

ll /test                           # 检查数据是否丢失或损坏

3.LVM的快照功能:

快照(snapshot)是LVM所提供的一个非常有用的特性。它的原理是复制 Origin 原始卷的元数据(metadata)来创建一个逻辑卷,并没有复制物理卷上的任何数据,因此它的创建过程是实时瞬间完成的。快照是特殊类型的逻辑卷,它含有创建时刻所指定的原始逻辑卷的完整数据,您可以操作快照而无需担心数据的变更令备份失效。

当一个 snapshot创建的时候,仅拷贝原始卷里的源数据,这不是物理上的数据拷贝,因此snapshot的创建特别快,当原始卷里的数据有写入时,备份卷开始记录原始卷哪些数据发生了变化,然后在原始卷新数据覆盖旧数据时,将旧数据拷贝到snapshot的预留空间里,起到备份数据的作用,就保证了所有数据和创建备份卷之前的数据一致性。

而对于snapshot的读操作,如果是读取数据块是没有修改过的,那么会将读操作直接重定向到原始卷上,如果是要读取已经修改过的块,那么就读取拷贝到snapshot中的块。所以当原始卷破坏了之后还能用snapshot备份的数据还原

介绍几个概念,关于数据的备份:

冷备份:卸载掉文件系统,不能读不能写

温备份:不卸载文件系统,能读取文件系统内容但是不能写

热备份:不卸载文件系统,既能读取文件系统内容又能写入

注意两点:

1) 快照其实也是一个逻辑卷

2) 快照只能对逻辑卷LVM进行备份,并且只能对同一个卷组的逻辑卷进行备份

# 创建快照

lvcreate -L 3G -p r -s -n testlv_bak  /dev/testvg/testlv

Note:快照的存放创建到路径/dev/testvg/ 下面,文件名为testlv_bak

# 修改系统参数

现执行些删除、添加的操作

useradd –m –d /test/lee lee

cp –a /boot/grub/* /test/

# 开始恢复快照

lvconvert --merge /dev/testvg/testlv_bak # 恢复到快照

# 检查是否恢复到快照前的状态

tail /etc/passwd | grep “lee” # 查看用户lee是否已经不存在

ls –l /test # 查看/test目录下是否还存在grub文件

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-08-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档