一、LVM介绍

        LVM: Logical Volume Manager, Version: 2            

            允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小

            允许在多个物理设备间重新组织文件系统

             将设备指定为物理卷

             用一个或者多个物理卷来创建一个卷组

                le   逻辑盘区 ,从卷组中划分pe给逻辑卷后,即成为le

                pe : 物理盘区.即在卷组中指定的块,在物理设备中的表现

             物理卷是用固定大小的物理区域( Physical Extent,PE)来定义的

             在物理卷上创建的逻辑卷是由物理区域( PE)组成

             可以在逻辑卷上创建文件系统

            

        结构示意图:

            1472539513581028.jpg   

                    

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

             设备名: /dev/dm-#(真实名字)

                centos 5 中,则成为mapper

                centos 6zhong ,/dev/lv/

             软链接:

                /dev/mapper/VG_NAME-LV_NAME

                /dev/mapper/vol0-root

                /dev/VG_NAME/LV_NAME

                /dev/vol0/root

           LVM可以弹性的更改LVM的容量

            通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他

            设备中的PE加到LV中以加大容量

            1472539513117509.jpg

 二、图形化LVM 管理:

            查看lvm 的使用情况:

            1472539514863131.jpg

            增加或逻辑卷:

            1472539514862153.jpg

            删除逻辑卷:

            

          1472539514901860.jpg

三、LVM 管理命令

            命令汇总:

             物理卷命令命令:pv

            pvcreate    pvremove     psdisplay    pvscan       pvs (显示卷组信息)

                     pvmove(移动数据)

                 pvcreate 物理卷

             卷组的管理命令:vg

            vgcreate  vgscan vgs vgextend(扩充)、vgremove(删除) vgreduce(移除,缩容)

            vgcreate

                  -s:pe大小,默认4M

                 格式:

            vgcreate   全局卷组名  需要使用的物理卷组

            

            逻辑卷的管理命令:lv

            lvcreate  lvscan lvs lvextend(扩充)、lvremove(删除) vgreduce(移除,缩容)

            lvcreate

             -n:指定名称

            -L: 指定大小

            -l:%vg|pvs|FREE,打算分配%

            1、pv(物理卷)管理工具

            pv : 将物理磁盘,转换(创建)为物理卷(pv)

            显示pv信息

            pvs:      简要pv信息显示

            pvdisplay   详细信息显示

             创建pv

            pvcreate /dev/DEVICE

                 2、 vg(卷组)管理工具

             显示卷组

            vgs          简要显示

            vgdisplay       详细显示

             创建卷组

            vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName

            PhysicalDevicePath [PhysicalDevicePath…]

             管理卷组

            增加:

            vgextend VolumeGroupName PhysicalDevicePath

            [PhysicalDevicePath…]

            缩减:

            vgreduce VolumeGroupName PhysicalDevicePath

            [PhysicalDevicePath…]

            注意:

            增加时,(由底层至顶层)

            应先增加pv,再增加vg,即,先扩大物理边界,再扩大vg逻辑边界

            缩减时,(由顶层至底层)

            应先减小vg逻辑边界,再减小pv物理边界

             删除卷组

                 必须先做vgremove   先做pvmove

                 3、lv (逻辑卷)管理工具

             显示逻辑卷

            lvs             简要显示

            Lvdisplay       详细显示

             创建逻辑卷

            lvcreate -L #[mMgGtT](指定大小) -n NAME VolumeGroup

             删除逻辑卷

            lvremove /dev/VG_NAME/LV_NAME

             重设文件系统大小

            fsadm [options] resize device [new_size[BKMGTEP]]

            resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]

            逻辑卷扩展的步骤:

            1.先确保扩展的大小;并确保所属的卷组有足够的剩余空间

            2、扩展物理边界

            lvextend -L [+]size /path/to/lv_device    仅能在自己的卷组拓展

             拓展之前,需要先确定pv中,有可拓展的设备,再用vgs 确认 Vfree  

            数值,确保有足够的空闲空间

            3、扩展逻辑边界

            resize2fs /path/to/lv_devive   默认拓展到物理边界的大小

            缩减逻辑卷的步骤:

            1、卸载卷(umount),并执行强制检查

                 先umount lv设备

            e2fsck -f /path/to/lv_devive

            2、缩减逻辑边界

            resize2fs /path/to/lv_device SIZE

            3、缩减物理边界:

            lvreduce -L [-]size /path/to/lv_device

            4、挂载卷

            扩展逻辑卷:

            # lvextend -L [+]#[mMgGtT]

            /dev/VG_NAME/LV_NAME

            # resize2fs /dev/VG_NAME/LV_NAME

            缩减逻辑卷:

            # umount /dev/VG_NAME/LV_NAME

            # e2fsck -f /dev/VG_NAME/LV_NAME

            # resize2fs /dev/VG_NAME/LV_NAME

            #[mMgGtT]

            # lvreduce -L [-]#[mMgGtT]

            /dev/VG_NAME/LV_NAME

            # mount

            四、lvm 操作实例

            步骤:  创建 8e类型 分区 —》 创建 pv —> 创建vg —> 创建 lv—> 挂载

            过程涉及命令:

            1、fdisk t 8e                 ——分区准备

            2、pvcreate  /dev/sd{a7,b}          —–创建pv 物理卷(最底层)

            pvs      pvdisplay

            3、vgcreate  vg0  /dev/sd{a7,b}      —–创建 vg 逻辑卷组

            vgs

            vgdisplay

            PE size 默认为4096k , vgcreate -s 可以用于PE 调整

            4、lvcreate -n lv0 -L 15G vg0        ——-创建 lv 逻辑卷

            lvs

            lvdisplay

            5、创建文件系统

            mkfs.ext4 /dev/vg0/lv0

            6、挂载

            vim /etc/fstab

            7、逻辑卷扩展

            lvextend -L 25G /dev/vg0/lv0    拓展到指定大小

            lvextend -l +100%FREE /dev/vg0/lv0     拓展free空间的n%

            resize2fs /dev/vg0/lv0

            8、卷组扩展

            pvcreate /dev/sdc

            vgextend vg0 /dev/sdc

            1. 添加硬盘:

            虚拟机示例(最少2个盘即可)

            6.jpg

            添加新硬盘后,扫描新设备:

            1.重启电脑

            2.如果不想重启,执行命令:echo "-  –  -" > /sys/class/scsi_host/host0/scan

            若执行后无新设备,则修改host0/1/2,尝试多几次即可

            2.准备分区:

            分区大小可以不一致,fdisk 中类型设置为 8e –linux lvm

            (此处准备了 sdc5 , sdd5 , sde5,大小均为1G)

            (此处不需要格式化分区,lvm 中,只需要对创建成功的lv 格式化)

            1472539946779585.jpg

                1472539947361829.jpg

            

            3.创建 底层–pv 物理卷层 (sde5 作为拓展示例用,后续才扩容添加)

                    pvcreate  /dev/sd{d,c}5

            

            查询pv创建情况:

                9.jpg

                11.jpg

            4.创建vg 卷组:

            vgcreate vg_name devices

            

              1472540628437383.jpg

            查询vg创建情况

            1472540628964170.jpg

                 1472540628205371.jpg

            5.创建 lv 逻辑卷  :

            lvcreate -n lv_name -L size vg_name

                1472540679629571.jpg

            6. 格式化lv0 ,并挂载使用

            1472540679406477.jpg

            配置 /etc/fstab, 自动加载

            1472540679650457.jpg

                注意:

                此处uuid 使用的是 /dev/vg0/lv0  的UUID

                   1472540756656208.jpg

                1472540758558854.jpg

                而 lv0 的UUID 为:

                     LV UUID mvZbcZ-u3cr-7s23-42nv-EMuJ-SfAP-owwkyi

            

            6.拓容:

            步骤:  拓展pv 物理边界–> 拓展vg逻辑边界—》 为lv添加容量

            (缩减时,顺序相反)

            拓展pv物理边界:

                 1472540856894087.jpg

                

            拓展vg :

                 1472540856789596.jpg

            确定存在free空间, ( VFree)

            拓展lv:

            lvextend -L 25G /dev/vg0/lv0

            lvextend -l +100%FREE /dev/vg0/lv0

            resize2fs /dev/vg0/lv0

            1472540857646793.jpg