码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-08-29 01:02:28      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:lvm

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是相同的,并且一一对应

 技术分享

 

 

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的详细信息

 

技术分享

 

 

 

# 创建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信息

技术分享

# 创建LV(逻辑卷)

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

lvcreate -L 4G -n testlv testvg

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

技术分享

# 格式化逻辑卷

mke2fs -t ext4 /dev/testvg/testlv

 

# 挂载LVM文件系统做测试

mkdir /test

mount /dev/testvg/testlv /test

df –lhP   # 查看挂载情况

 

技术分享

 

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      # 扩展物理边界

技术分享

 

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

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

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

技术分享

 

# 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文件

 

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

标签:lvm

原文地址:http://lee90.blog.51cto.com/10414478/1689414

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!