您的位置:首页 > 运维架构 > Linux

Linux-LVM

2012-03-02 12:22 399 查看
##########################################
AUTHOR: Honway.Liu
DATE: 2012-03-01
##########################################
提纲:
LVM简介
LVM组成及原理
LVM快照
LVM的创建和使用
快照的创建和使用
LVM的VG及LV的扩展及收缩
##########################################

LVM简介
LVM是逻辑盘卷管理(Logical Volume
Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。物理卷(physical volume)物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
LVM组成:
PV 最底层的是物理卷即PV,PV可以是一个分区或者磁盘设备等任意块设备(ID:8e)
VG PV不能直接使用(类似于扩展分区),要在PV上创建卷组即VG
LV 在VG上创建文件系统来使用即LV,可以格式化挂载使用


对上图的说明:LVM最底层是PV,也就是物理磁盘,多块物理磁盘通过分区,转换格式转换为LVM格式,LVM格式的ID号为8e,转换完成后,就可以使用pvcreate把几块物理磁盘,分别创建为PV,有了PV,就可以把多个PV通过vgcreate命令,加入到一个VG组,也即是卷组,在这一步,多个磁盘在一个VG组,我们看到的,只有是一个VG组的大小,而不再是单个物理磁盘的大小.当VG空间不够的时候,我们还可以再增加物理磁盘,然后做成PV,加入到VG组时面,以增加VM的大小.VG做好之后,同一个VG组可以看成是一个大的物理磁盘,然后可以在VG上面,通过lvcreate命令创建LV,创建完LV,LV就可以直接格式化,然后挂载使用了.整个过程就是这样.

当LV空间不够使用的时候,可以动态的扩展VG来实现,而VG的扩展,需要新增PV来实现,LV和VG的扩展,是不可能也是不能够超越LV的物理边界的.
LVM可以动态的扩展和减小
LVM可以使用快照,快照可以保存某一时刻数据的状态,快照保存在快照卷上,对数据的访问也可以通过快照来访问.快照里的数据,是不会变的,始终保存的是创建快照那一刻的数据.

LVM快照是如何实现的:
在快照建立的时候,快照的内容是空的.通过快照,可以直接访问快照前的数据,快照相当于是建立了另外一条访问
数据的路径(多路径:将一个文件系统提供了两个或者两个以上的访问通道),快照保存快照之后的任何更改的数据,
把数据保存到快照卷里面.快照的大小,取决于更改数据的大小.快照并非永久保存数据的某一时刻的状态的.
进程是无法识别不在同一时间点的数据文件的,所以,快照可以实现在线备份
快照卷的大小,取决于数据改变的频度和快照的使用寿命

LVM的创建和使用:
通过上面的介绍,我们知道了:LVM能被使用的,是LV,想要创建LV,就必须有卷组VG,当然卷组VM是不可能凭空出现的,需要我们使用物理磁盘或者物理磁盘分区来组成VG.
1,创建物理卷PV


我这里已经创建好了磁盘分区,并且转换成了LVM格式,然后就可以通过命令来创建PV了



创建成功了,我们只看下面的Physical volume "/dev/sdb15" successfully created,说明成功,创建PV的时候,他试图读取写入光盘,因为光盘是只读的,所以报了一堆,不用理会.我们可以通过命令pvs来简要的看一下系统上有哪些PV



也可以通过pvdisplay来查看更详细一点儿的信息



这里看到的信息,更详细一点.
2,创建卷组VG
同样的使用命令vgcreate



以上命令创建了一个名字叫做holdvg的卷组
创建完成后,可以使用vgs来简单的查看一下,当然也有vgdisplay命令,来查看更详细一点的信息.这里不再抓图.
3,创建逻辑卷LV
同样使用创建lvcreate
-L 指定lv的容量大小
-n 指定lv的名字
-p 指定lv的挂载权限,通常有r和rw两种,一般rw只有在创建lv快照的时候才用
-s 表示创建的是一个快照









做完lv,我们就可以直接挂载使用了.到这里,我们整个lvm就做完了.
快照的创建和使用
快照也是在VG上创建的,同样使用lvcreate命令,加选项-s来表示创建的是一个快照

为了验证快照的效果,我这里拷贝一些数据到刚才创建的lv里面



文件拷贝好了,为了验证效果,我们创建一个快照


这里一定要指定,对哪个lv创建快照.


创建完成后,可以直接挂载使用,而不用格式化.因为快照只是提供了对lv的另一个访问路径.
现在,我们来更改/mydata的文件内容,来看下快照里的数据是不是发生改变.



我在源lv里面加了一个echo "Hello,Kitty",并保存退出,我们看到,快照里的数据,是没有发生更改的,说明快照创建成功.
LVM的VG及LV的扩展及收缩
1,VG的扩展



holdvg里面,有5个PV,我们再增加一个,进行扩展.


以上命令完成后,我们看到,原来有5个的,我加了两个,现在是7个,容量也发生了变量.

2,lv的扩展



当前文件lv的大小是3G,我们改一下
首先卸载文件系统,然后先扩展物理边界(LV大小),再扩展文件系统边界



在扩展之前,最好先e2fsck来检测一下文件系统,下面我们来看一下吧



已经调整到了5G
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息