【linux_笔记】Linux_LVM

学习资源来自:www.magedu.com

学习记录过程中难免出现错误,如有发现,还望大神们指出。

示例操作部分有的与历史操作有关,如果先前的示例操作没有执行过的话,可能会有部分示例的操作无法执行。示例仅供参考



LVM

DM:
    MD与DM有些功能重叠,并不完全相互重叠(通常使用MD制作RAID,使用DM制作LVM2)
    
    MD:Multi Disks(实现RAID)
        /dev/md#
        meta device(元设备)
        
    DM:Device Mapper(设备映射)逻辑设备 将多个物理设备映射成一个逻辑设备
        提供RAID功能,LVM2基础...
        
        DM内核架构:
            linear:类似于jbod
            mirror:镜像
            snapshot:快照,实现数据备份。访问文件的一个路径(保留数据在制作快照的那一刻)
                (刚制作的快照仅是一个路径,并没有数据,当原数据空间中要对指定数据进行修改时,该数
                据修改前的数据将会被复制到快照空间中。因此,当原数据空间没有发生改变时访问快照,
                即访问原数据空间,否则,修改部分需访问快照空间。)
                (jfs文件系统本身提供卷的能力以及快照)
            multipath:多路径(对系统可靠性要求非常高的场所使用)
                (实现数据存储设备的寻路可以通过多根不同的线来实现)
            wKioL1YD053TrFowAADhRM5GSd8889.jpg

        DM逻辑设备可实现动态增减文件系统空间
            整个系统分成三个层次
                逻辑卷(Logical Volume ―― 一个VG可以划分成多个逻辑卷,实现动态增减(逻辑分区)
                    可对其进行格式化挂载使用。(逻辑卷是物理边界,文件系统是逻辑边界)
                    由逻辑盘区(LE)组成:Logical Extent   (实质就是PE)
                券组(VG:Volume Group)―― 大小取决于物理卷,不能当作文件系统使用 (拓展分区)
                    由物理卷组合而成(物理边界)
                物理卷(PV:Physical Volume)
                    由块设备构成(磁盘、分区、RAID)
                    加入到卷组后,块设备划分成多块物理盘区(PE):Physical Extent
                        (PE大小取决于VG创建时设定的大小――VG创建后PE大小不可改变)
            管理:
                pv
                    创建PV:pvcreate
                    抹除数据:pvremove
                    扫描:pvscan
                    查看:pvs,pvdisplay
                    移动:pvmove(移除存储有数据的PV时,用于将存储的数据移动到其它PV中)

                    创建pv:
                        fdisk /dev/sda   /fdisk最多只能支持15个分区
                            (创建三个分区sda10 7G,sda11 3G,sda12 5G并设置类型为8e类型(LVM)
                        partprobe /dev/sda
                        cat /proc/partitions
                        pvcreate /dev/sda[10,11}
                        pvs                         /简单查看当前系统pv
                        pvdisplay                     /查看详细信息(所有pv信息)
                        pvdisplay /dev/sda10         /查看指定pv信息
                        pvscan                         /扫描当前系统上一共有多少个pv
                vg
                    创建:vgcreate
                        vgcreate  VG_NAME /PATH/TO/PV:指定卷组名及pv路径
                        -s #:指定PE大小(默认为4M)
                    移除:vgremove
                    扩展:vgextend
                    缩减:vgreduce
                    查看:vgs,vgdiplay
                    扫描:vgscan
                    
                    创建vg:
                        vgs
                        vgcreate myvg /dev/sda{10,11}
                        vgs
                        vgdisplay /dev/sda10            /PE Size=4M
                        vgremove myvg                      /移除vg(已创建LV时不可随意移除)
                        vgcreate -s 8M myvg /dev/sda{10,11}
                        vgdisplay myvg                    /PE Size=8M
                        pvs                                /查看pv属于哪个vg
                        
                        缩减vg
                        pvmove /dev/sda11                /移除数据
                        vgreduce myvg /dev/sda11        /缩减vg(从myvg中移除一个pv sda11)
                        vgs                                /容量减小
                        pvs                                /sda11不再属于myvg
                        pvremove /dev/sda11                /抹除pv sda11
                        pvs
                        
                        扩展vg
                        pvcreate /dev/sda12
                        vgextend myvg /dev/sda12
                        vgs                                /容量增大
                        pvdisplay /dev/sda12            /PE Size=8M
                lv
                    创建:lvcreate
                        lvcreate -n LV_NAME -L #G VG_NAME
                        -L:指定空间大小
                        -l:指定盘区数量
                    抹除数据:lvremove
                    扩展:lvextend
                    缩减:lvreduce
                    扫描:lvscan
                    查看:lvs,lvdisplay
                    移动:lvmove(移除存储有数据的PV时,用于将存储的数据移动到其它PV中)
                    
                    创建lv
                        lvcreate -L 50M -n testlv myvg     /创建50M的lv
                        lvs
                        lvdisplay
                        lvdisplay /dev/myvg/testlv
                        使用lv
                        mke2fs -j /dev/myvg/testlv
                        mount /dev/myvg/testlv /mnt
                        ls /mnt
                        mount                             /挂载对象为/dev/mapper/myvg/testlv
                        ls -l /dev/mapper/                /设备文件实际存储路径
                        ls -l /dev/myvg                    /实际存储的是链接文件
                        移除lv(挂载状态下的lv无法移除)
                        lvremove /dev/myvg/testlv | lvremove /dev/mapper/myvg-testlv
                        umount /mnt
                        lvremove /dev/myvg/testlv
                        lvs                                /testlv被移除
                        
+++++++++++++++++++++++
                    
在不影响内部数据的前提下对逻辑卷进行扩展、缩减以及创建快照卷

    1、扩展逻辑卷:(先扩展物理边界,再扩展逻辑边界)
    (扩展的风险很小,在挂载的情况就可以扩展,十份方便)
        步骤:
            lvextend:物理边界(分区大小)
                -L [+]# /PATH/TO/LV
                -L +3G == -L 5G (都表示扩展为5G)
            resize2fs:逻辑边界(文件系统大小,不能大于物理边界)
                resize2fs /PATH/TO/LV 5G         /指定修复逻辑边界为5G
                    ||
                resize2fs -p /PATH/TO/LV        /扩展物理边界大小
                
        实现:
            lvcreate -L 2G -n testlv /dev/myvg    /创建lv
            mke2fs -j /dev/myvg/testlv        /格式化
            mkdir /users
            vim /etc/fstab                    /开机自动挂载
                (/dev/myvg/testlv  /users  ext3  defaults,acl 0 0)
            mount -a
            mount
            cd /users
            cp /etc/inittab .
            cat inittab
            cd
            df -lh                            /testlv物理内存为2G
            
            扩展物理内存
            vgs                                /查看剩余物理内存
            lvextend -L 5G /dev/myvg/testlv
            lvs                                /testlv物理内存为5G
            df -lh                            /文件系统大小任为2G
            扩展逻辑边界
            resize2fs -p /dev/myvg/testlv
            df -lh                             /文件系统大小改为5G
            
            cd /users
            ls
            cat inittab                        /原有文件任然可以使用
            
    2、缩减逻辑卷:    (先缩减逻辑边界,再缩减物理边界)    
    (缩减的风险非常大,可能会造成数据损坏)
    注意:    1、确保缩减后的空间大小依然能存储原有的所有数据
            2、一定不能在线缩减,得先卸载
            3、在缩减之前需强行检查文件,以确保文件系统处于一致性状态
        步骤:
            resize2fs /PATH/TO/PV 3G        /缩减到3G
            lvreduce -L [-]# /PATH/TO/LV
            重新挂载
            
        实现:
            df -lh                            /查看逻辑卷已使用空间
            umount /users
            mount                            /确认卸载
            e2fsck -f /dev/myvg/testlv
            
            缩减逻辑空间
            resize2fs  /dev/myvg/testlv 3G
            lvreduce -L 3G /dev/myvg/testlv
            mount -a
            mount
            
            df -lh                            /逻辑空间缩减为3G
            cd /users
            ls
            cat inittab
            
    3、快照卷(在线即可创建)
    注意:    1、生命周期为整个数据时长,在这段时长内,数据的增长量不能超出快照卷大小
            2、当存储数据量超出快照卷大小,快照卷放弃所有操作,自我损毁。
            3、快照卷应该是只读的
            4、快照卷与原卷必须在同一个卷组中
        创建快照卷:
            lvcreate -L    # -n SLV_NAME -p r /PATH/TO/LV
                -s:指定为快照卷
                -p r:指定权限
                指定为哪个逻辑卷创建
        
        实现:
            lvcreate -L 50M -n testlv-snap -s -p r /dev/myvg/testlv
            lvs                                        /查看路径
            mount /dev/myvg/testlv-snap /mnt
            cd /mnt
            ls
            cat inittab
            wc -l inittab
            
            修改原卷数据
            cd /users
            ls
            vim inittab
                (删除后两行数据)
                
            备份快照数据
            cd /mnt
            ls
            cat inittab
            tar -jcf /tmp/users.tar.bz2 inittab       /备份(不完善的备份,
            ls /tmp
            cd
            umount /mnt                                /卸载快照卷
            lvremove /dev/myvg/testlv-snap          /删除快照卷
            
            cd /users
            ls
            rm inittab
            tar jxf /tmp/users.tar.bz2 -C ./         /-C:指定解压路径
            wc -l inittab                            /数据恢复




你可能感兴趣的:(pv,lvm,lv,gv,DM逻辑设备)