首页 > 代码库 > linux 中的逻辑卷

linux 中的逻辑卷

一.简单介绍:

MD, DM:是内核中两种实现逻辑设备的模块

MD: meta device,multidisk,逻辑设备:软件raid

DM: Device Mapper 设备映射,逻辑设备: LVM2(动态增减)



二.新建逻辑卷

1.创建分区:

fdisk -l /dev/sdb  /dev/sdc      #n--->p--->t--->w   调整类型为8e


2.更新内核信息   

partx -a /dev/DEVICE

partprobe 
cat /proc/partitions :查看


3.物理卷(pv)

创建物理卷:pvcreate /dev/sdb dev/sdc1
显示物理卷:pvs,pvscan,pvdisplay
移除物理卷:pvremove /dev/sdb


4.卷组(vg)

创建卷组: vgcreate vgname  /dev/sdb /dev/sdc     #-s  指定PE的大小(PE大小默认为4MB)


扩展卷组:(添加新的物理卷到卷组中):
        fdisk -l /dev/sdc
        pvcreate /dev/sdc2
        vgextend vgname /dev/sdc2
    
显示卷组: vgs,vgdisplay,vgscan
    

缩减卷组(从卷组中删除物理卷):
    把pv里数据移走: pvmove  -n myvg /dev/sdc2 
    缩减vg:vgreduce myvg  /dev/sdc2
    删除pv: pvremove /dev/sdc2
    
删除卷组:
    先删除逻辑卷:lvremove /dev/vgname/lvname
    删除卷组:vgremove vgname
    
激活所有卷组:    
    vgchange -a y


5.逻辑卷

创建逻辑卷:
    lvcreate -L 1500M -n lvname vgname    
             -L 指定大小,-n 指定逻辑卷名字               
    注意:#/dev/vgname/lvname  软链接      /dev/mapper/vgname-lvname实际    

若使用全部卷组创建逻辑卷:
    第一:查看卷组的PE数:vgdisplay | grep "PE"
    第二:进行创建        lvcreate -l 4730 -n lvname vgname


删除逻辑卷:
    umount /dev/vgname/lvname
    lvremove /dev/vgname/lvname


6.创建文件系统

mkfs.ext4 /dev/vgname/lvname


7.挂载

mount /dev/myvg/mylv         /mnt

(1)设置开机自动挂载vim /etc/fstab
挂载设备   挂载点   文件系统  挂载选项  dump、fsck相关选项
/dev/myvg/mylv  /mnt ext3    defaults   0   0


(2)启动自动挂载:mount  -a



三.创建镜像逻辑卷:

lvcreate -L 100M  -m1 -n lvname vgname /dev/sdb1 /dev/sdc1 /dev/sdb2
-m1:只生成一个单一镜像,镜像分别放在/dev/sdb1和/dev/sdc1上,镜像日志放在/dev/sdb2上.
-n:指定镜像逻辑卷名


查看当前lvm中设备状态:
    lvs -a -o +devices
    lvs


四.创建快照卷:(给已有的逻辑卷创建快照卷)

    快照卷提供在特定瞬间的一个设备虚拟映像,当快照开始时,它复制一份对当前数据区域的改变,由于它优先执行这些改变,所以它可以重构当前设备的状态。

lvcreate -L 50M   -n   mylv-snap   -s   -p  r    /dev/myvg/mylv    #创建快照卷
(在同一卷组中。)
-L:指定快照卷的大小
-s:创建快照卷
-n:指定快照名
-p:指定快照卷的类型,默认为rw

mount /dev/myvg/mylv#临时挂载

移除快照卷:lvremove   /dev/myvg/mylv-snap
恢复快照卷:lvconvert --merge /dev/myvg/mylv-snap

 





五.扩展逻辑卷:

1.首先确保卷组中,有足够的空间
    vgs   或者  vgdisplay
 
        
2. lvextend 扩展逻辑卷的物理边界

lvextend -L 12G /dev/vgname/lvname   (扩展到12G)
lvextend -L +1G /dev/vgname/lvname    (增加1G)
lvextend -l +(块个数) /dev/vgname/lvname

3.resize2fs  扩展逻辑卷的逻辑边界
  resize2fs /PATH/TO/LV 5G  扩展逻辑边界到5G,该值不能超过物理边界
         resize2fs -p /PATH/TO/LV :-p表示扩展逻辑边界跟物理边界一样大。

###若之前创建好文件系统,则要扩展文件系统:resize2fs  /dev/vgname/lvname
#### fsadm resize /dev/vgname/lvname


4.重新查看文件系统大小
df -h

   

resize2fs:调整ext文件系统的空间大小

 搭配逻辑卷lv使用方法:resize2fs /PATH/TO/LV_NAME 3G  调整LV的逻辑边界大小为3G


   

六.缩减逻辑卷lv:

注意:
    1、不能在线缩减,得先卸载;
    2、确保缩减后的空间大小依然能存储原有的所有数据;
    3、在缩减之前应该先强行检查文件,以确保文件系统处于一至性状态;

步骤:
    1. 确保缩减后的空间大小依然能存储原有的所有数据
        df -lh  

    2. 卸载需要缩减的lv
        umount  /mnt    
    
    3. 强行检查文件系统
        e2fsck -f   /dev/myvg/mylv
            第一步: 检查inode,块,和大小
            第二步: 检查目录结构
            第三步: 检查目录连接性
            第四步: Checking reference counts
            第五步: 检查簇概要信息
    4.缩减文件系统(逻辑边界)
        resize2fs  /dev/myvg/mylv 2G      #调整逻辑卷的逻辑边界大小为2G    

    5.缩减LV(物理边界)
        lvreduce  -L  -1G  /dev/myvg/mylv    #缩减1G
        lvreduce -L 2G /dev/myvg/testlv  对逻辑卷的物理边界缩减为2G
    
    6. 重新挂载,
        mount /dev/myvg/mylv  /mnt

 

本文出自 “hello world” 博客,请务必保留此出处http://nxyboy.blog.51cto.com/10511646/1942848

linux 中的逻辑卷