且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

8.linux 中的逻辑卷

更新时间:2022-05-20 01:34:40

一.简单介绍:

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

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

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



二.新建逻辑卷

1.创建分区:

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


2.更新内核信息   

1
2
3
4
partx -a /dev/DEVICE
 
partprobe 
cat /proc/partitions :查看


3.物理卷(pv)

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


4.卷组(vg)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
创建卷组: 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.逻辑卷

1
2
3
4
5
6
7
8
9
10
11
12
13
创建逻辑卷:
    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.创建文件系统

1
mkfs.ext4 /dev/vgname/lvname


7.挂载

1
2
3
4
5
6
7
8
mount /dev/myvg/mylv         /mnt
 
(1)设置开机自动挂载vim /etc/fstab
挂载设备   挂载点   文件系统  挂载选项  dump、fsck相关选项
/dev/myvg/mylv  /mnt ext3    defaults   0   0
 
 
(2)启动自动挂载:mount  -a





三.创建镜像逻辑卷:

1
2
3
4
5
6
7
8
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


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

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

1
2
3
4
5
6
7
8
9
10
11
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
创建物理卷:pvcreate /dev/sdb
扩展卷组:vgextend vg_name   /dev/sdb 
 
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
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
注意:
    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

 本文转自   a8757906   51CTO博客,原文链接:http://blog.51cto.com/nxyboy/1942848