文章标题

LVM逻辑卷管理器(Logical Volume Manager)

重点:可以弹性调整文件系统的容量、整合多个物理分区
原理:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池;可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系 统

PV Phsical Volume 物理卷
PE Phical Extendsize物理块(物理卷的基本单元):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是能被LVM寻址的最小单元。PE的大小是可设置的,默认为4MB
VG Volume Group 卷组
LV Logical Volume 逻辑卷

安装逻辑卷管理器

yum install lvm2

一、创建一个逻辑卷的步骤:

1.分区

fdisk

2.创建物理卷PV
pvcreate
pvcreate /dev/sda{5,6,7}   #把分区创建为物理卷

#删除物理卷属性为:pvremove /dev/sda7

查看物理卷:
pvs 简要信息
pvdisplay 详细信息

3.创建卷组VG
vgcreate 
  -s  #指定PE的大小
eg: vgcreate vg_pl /dev/sda5 /dev/sda6 /dev/sda7  #把已经创建为物理卷的分区创建为vg_pl卷组

查看卷组
vgs
vgdisplay

4.创建逻辑卷LV
lvcreate [-L|-l ] [-n NAME] VG_NAME 
  -l  #PE数量
  -L  #直接指定逻辑卷大小 单位:M G等
  -n  #逻辑卷的名称
eg: lvcreate -L 1G -n lv1 vg_pl   #在卷组vg_pl中创建逻辑卷lv1,指定大小为1G

查看逻辑卷:
lvs
lvdisplay

Note:
逻辑卷在系统中的路径:
/dev/VG_NAME/LV_NAME
/dev/mapper/VG_NAME-LV_NAME

5.格式化逻辑卷
mkfs -t ext4 /dev/mapper/vg_pl-lv1 #或mkfs.ext4
6.挂载 (/etc/fstab)
/dev/mapper/vg_pl-lv1  /mount-dir   ext4   default  0 0 

二、扩展卷组: vgextend

vgextend vg_pl /dev/sda8#把新的设备sda8加入卷组vg_pl

三、缩小卷组:vgreduce

vgreduce vg_pl /dev/sda7 #从卷组中删除一个物理卷前要使用pvdisplay查看物理卷是否空闲

四、扩大逻辑卷

扩大逻辑卷的步骤:

1.扩大逻辑卷
lvextend    #lvextend命令用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。使用lvextend命令动态在线扩展磁盘空间,整个空间扩展过程对于应用程序来说是完全透明的。

eg: lvextend -L +1G /dev/mapper/vg_pl-lv1 #直接10G则把逻辑卷大小扩展到10G

lvresize  #可能造成文件丢失
2.扩大文件系统
resize2fs 

#resize2fs /dev/mapper/vg_pl-lv1

五、缩小逻辑卷

>

1.卸载逻辑卷

umount /dev/mapper/vg_pl-lv2

2.做文件系统检查

e2fsck -f /dev/mapper/vg_pl-lv2

3.缩小文件系统

resize2fs /dev/mapper/vg_pl-lv2 500M

4.缩小逻辑卷

lvreduce -L 500M /dev/mapper/vg_pl-lv2
lvresize

5.挂载

mount /dev/mapper/vg_pl-lv2 /mnt/lv2

六、删除逻辑卷

卸载并删除逻辑卷
umount /dev/mapper/vg_pl-lv2
lvremove /dev/mapper/vg_pl-lv2

七、在线数据迁移

通过pvmove能将一个PV上的数据迁移到新的PV上,也能将PV上的某个LV迁移到另一个PV上。


#lvs -o +devices

 LV       VG         Attr   LSize  Origin Snap%  Move Log Copy%  Devices   
 LogVol00 VolGroup00 -wi-ao  2.88G                        /dev/sda2(0) 
 LogVol01 VolGroup00 -wi-ao  1.00G                        /dev/sda2(92)
 test     lvm_test   -wi-ao 52.00M                        /dev/sdb1(0) 



#pvmove -n test /dev/sdb1 /dev/sdc1  #将LV:test从/dev/sdb1迁移到/dev/sdc1



#lvs -o +devices

 LV       VG         Attr   LSize  Origin Snap%  Move Log Copy%  Devices      
 LogVol00 VolGroup00 -wi-ao  2.88G                        /dev/sda2(0) 
 LogVol01 VolGroup00 -wi-ao  1.00G                        /dev/sda2(92)
 test     lvm_test   -wi-ao 52.00M                        /dev/sdc1(0) 

八、故障排查

通过在命令后加 -v,-vv,-vvv或-vvvv来获得更周详的命令输出。
通过在lvs,vgs后加-P能更好的查看失败设备.


#vgs -a -o +devices -P

 Partial mode. Incomplete volume groups will be activated read-only.
 VG         #PV #LV #SN Attr   VSize    VFree   Devices                
 VolGroup00   1   2   0 wz--n-    3.88G      0  /dev/sda2(0)           
 VolGroup00   1   2   0 wz--n-    3.88G      0  /dev/sda2(92)          
 lvm_test     2   2   0 wz--n- 1016.00M 896.00M pvmove0(0)             
 lvm_test     2   2   0 wz--n- 1016.00M 896.00M /dev/sdb(0),/dev/sdc(0)

#lvs -a -o +devices -P

 Partial mode. Incomplete volume groups will be activated read-only.
 Failure parsing mirror status fraction: 1 core
 Failure parsing mirror status fraction: 1 core
 LV        VG         Attr   LSize  Origin Snap%  Move     Log Copy%  Devices                
 LogVol00  VolGroup00 -wi-ao  2.88G                     /dev/sda2(0)
 LogVol01  VolGroup00 -wi-ao  1.00G                     /dev/sda2(92)
 [pvmove0] lvm_test   p-C-ao 60.00M    /dev/sdb,/dev/sdb(0),/dev/sdc(0)
 test      lvm_test   -wI-a- 60.00M                      pvmove0(0)      
任务 PV阶段 VG阶段 LV阶段
查找scan pvscan vgscan lvscan
新建create pvcreate vgcreate lvcreate
显示display pvdisplay vgdisplay lvdisplay
增加extend vgextend lvextend/lvresize
减少reduce vgreduce lvreduce/lvresize
删除remove pvremove vgremove lvremove
改变容量resize lvresize
改变属性attribute pvchange vgchange lvchange

你可能感兴趣的:(Linux)