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

LVM详解

时间:2017-09-14 10:46:00      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:快照   逻辑卷   

一、LVM简介

    LVM(Logical Volume Manager,逻辑卷管理)的重点在于可以动态调整文件系统的容量!而并非在于数据的存储效率及安全上面。需要文件的读写性能或者是数据的可靠性是RAID所考虑的问题。LVM可以整合多个实体分区在一起,让这些分区看起来就像是一个磁盘一样!而且,还可以在未来新增或移除其它的实体分区到这个LVM管理的磁盘当中。如此一来,整个磁盘空间的使用上,实在是相当的具有弹性。

二、LVM常用术语

    1.物理存储介质(he physical mediaThe physical media):这里指系统的存储设备文件,如/dev/sda,/dev/sdb等等;

    2.物理卷(Physical Volume):简称PV,物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区,硬盘)比较,却包含有与LVM相关的管理参数;

    3.卷组(Volume Group):简称VG,LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组有一个或多个物理卷组成

    4.逻辑卷(Logical Volume):简称LV,LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷上可以建立文件系统(如/home,/usr等);

    5.PE(Physical Extent):PV中可以分配的最小存储单元称为PE,PE的大小是可以配置的,默认为4MB;

    6.LE(Logical Extent):LV中可以分配的最小存储单元称为LE,在同一个卷组中,LE的大小和PE是一样的,且一一对应;

                技术分享 

                                           图1 LVM磁盘结构图

三、创建逻辑卷

    1.例如:要创建一个10G的lv;

    2.注:逻辑卷可以拿分区或者整块硬盘做实验;这里我用/dev/sda7,/dev/sdb做实验

    3.步骤:

        3.1.创建物理分区:

                ①fdisk /dev/sda;(划分/dev/sda6分区,大小10G,修改分区类型为Linux LVM,ID改为8e)

                ②partx -a /dev/sda;同步分区;

        3.2.创建物理卷(PV):

                ①pvcreate /dev/sd{a6,b};

                ②pvs;

                ③pvdisplay;

            与PV相关的一些管理命令:

                pvcreate:将实体分区创建成为PV;

                pvs:显示pv简要信息;

                pvdisplay:显示PV详细信息;

                pvscan:搜寻目前系统里面任何具有PV的磁碟;

                pvremove:将PV属性移除,让该分区不具有PV属性;

                pvmove:移动pv

        3.3.创建卷组(VG):

                语法:vgcreate VGNAME(卷组名) /dev/pv1...(物理卷)

                ①vgcreate vg0 /dev/sd{a6,b};

                ②vgs;

                ③pvdisplay;

                ④vgdisplay;

            与VG相关的一些管理命令:

                vgcreate:创建VG;

                vgs:显示vg简要信息;

                vgdisplay:显示vg详细信息;

                vgscan:搜寻系统上面是否有VG存在;

                vgextend:在vg内添加额外的pv;    

                vgreduce:在vg内移除pv;

                vgremove:删除一个VG;

                vgchange:配置vg是否启动(active);

        3.4.创建逻辑卷(LV):

                语法:lvcreate [-L 逻辑卷大小 | -l PE的个数] [-n 逻辑卷名称] [所属的卷组名]

                ①lvcreate -L 10G -n lv0 vg0;

                ②lvdisplay;

            与LV相关的一些管理命令:

                lvcreate:创建LV;

                lvs:显示lv简要信息;

                lvdisplay:显示lv详细信息;

                lvscan:查询系统上面的lv;

                lvextend:在lv里面添加容量;

                lvreduce:在lv里面减少容量;

                lvremove:删除一个lv;

                lvresize:对lv进行容量大小的调整   

        3.5.建立文件系统(格式化):

                ①mkfs.ext4 /dev/vg0/lv0;

        3.6.挂载逻辑卷(写进/etc/fstab文件实现自动挂载):

                ①mkdir /mnt/ln0;

                ②/dev/vg0/lv0    mnt/lv0    ext4    defaults    0    0    

                ③mount -a;

                ④df- h

                ⑤cp -r /etc/* /mnt/lv0;

四、扩展逻辑卷    

    1.注:扩展逻辑卷,前提卷组要有足够的容量;

    2.扩展逻辑卷步骤:

                ①lvextend -L +10G /dev/vg0/lv0;

                ②lvdisplay;

                ③resize2fs /dev/vg0/lv0;同步文件系统,resize2fs只能同步ext系列文件系统;

                ④df -h;

        注:扩展逻辑卷容量表示方法:+10G的含义是在已有的当前容量上加上10G;10G的含义是把容量扩展到10G;

    3.要想把卷组空间容量全部扩展完并且同步文件系统使用以下命令:

                ①lvextend  -r -l +100%FREE /dev/vg0/lv0;

                

五、扩展卷组

    1.方法:加硬盘;(这里我用/dev/sdc硬盘做实验)

    2.扩展卷组步骤:

                ①pvcreate /dev/sdc;##把硬盘变成物理卷

                ②vgextend vg0 /dev/sdc;##把物理卷加入卷组

                ③vgdisplay;

六、缩减逻辑卷

    1.缩减逻辑卷步骤:

                ①umount /mnt/lv0:##取消已经挂载的逻辑卷

                ②e2fsck -f /dev/vg0/lv0;##强制进行磁盘检测

                ③resize2fs /dev/vg0/lv0 10G;

                ④lvreduce -L 10G /dev/vg0/lv0;

                ⑤mount -a:重新挂载逻辑卷

                ⑥lvdisplay;

                ⑦df -h;

七、删除物理卷(PV)

    1.删除PV步骤:

                ①pvmove /dev/sdb;将PV中的PE个数移动到别的PV

                ②pvdisplay;(可以看到PE个数被移动到别的PV)

                ③vgreduce vg0 /dev/sdb;从卷组中删除PV

                ④vgdisplay;(可以看到卷组容量变小了)

                ⑤ pvs;(可以看见/dev/sdb不属于VG0)

                ⑥pvremove /dev/sdb;移除pv,不让/dev/sdb具有pv属性;

                ⑦pvs;查看

八、删除逻辑卷

    1.删除逻辑卷步骤:

                ①umount /mnt/lv0;取消已经挂载的逻辑卷

                ②lvremove /dev/vg0/lv0;

                ③lvs;

九、删除卷组

    1.删除卷组步骤:

                ①vgremove vg0;

                ④pvs;

十、逻辑卷快照

    1.快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的 准确拷贝。

    2.对于需要备份或者复制的现有数据集临时拷贝以及其它操 作来说,快照是最合适的选择。

    3.快照只有在它们和原来的逻辑卷不同时才会消耗空间:

        3.1在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或 者快照有所改变才会使用这些空间。

        3.2当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。

        3.3快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快 照中更改的数据。

        3.4建立快照的卷大小只需要原始逻辑卷的15%~20%就够了。也可 以使用lvextend放大快照。

    4.快照就是将当时的系统信息记录下来,就好像照相一般, 若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享。

    5.由于快照区与原本的LV共用很多PE的区块,因此快照区与被快照的LV必须要要在同一个VG上。系统恢复的时候的文件数量不能高于快照区的实际容量。

十一、创建快照逻辑卷

        注:要事先创建好逻辑卷(我这里事先创建好了逻辑卷(/dev/vg0/lv0),并挂载在/mnt/lv0里),并拷贝一些数据到目录里做实验,以下四步事先准备好:

            (1)cd /mnt/lv0;

            (2)cp /etc/fstab f1;

            (3)cp /etc/fstab f2;

            (4)cp /etc/fstab f3  ;

    1.创建逻辑卷快照步骤:

        注:创建快照要注意卷组空间容量要足够;快照逻辑卷容量小于或等于被快照的逻辑卷;

                ①lvcreate -L 1G -s -n lv0-snapshot -p r /dev/vg0/lv0;创建快照

                ②lvdisplay;查看快照信息

                ③mkdir /mnt/snapshot;创建快照目录

                ④mount /dev/vg0/lv0-snapshot /mnt/snapshot/;挂载快照

    2.测试:

                ①cd /mnt/lv0;进入到被快照的逻辑卷目录里

                ②echo > f1;在被快照的逻辑卷里清空f1的数据

                ③cd /mnt/snapshot;进入到快照逻辑卷目录里

                ④cat f1;可以看到原始f1的数据内容

    3.利用快照回复数据:

        (1)注:所要恢复的数据不能超过快照区的总大小,因为如果变动的数据大小超过了快照区的空间,那么快照区是不能容纳所有变动的数据了,这个时候快照功能会失效。

        (2)方法:把快照里的数据复制到逻辑卷的挂载目录里即可;

    4.删除快照逻辑卷:

                ①umount /mnt/snapshot/;取消挂载

                ②lvremove /dev/vg0/lv0-snapshot;删除快照逻辑卷 

    

    

        

                

            


                

        


                

    

本文出自 “亚成-另一个LINUXER” 博客,请务必保留此出处http://yacheng0316.blog.51cto.com/11878883/1965035

LVM详解

标签:快照   逻辑卷   

原文地址:http://yacheng0316.blog.51cto.com/11878883/1965035

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