逻辑卷管理——LVM

逻辑卷管理(LVM)

逻辑卷

1.整合分散空间(整合未使用的磁盘空间,可以是一个磁盘的空间也可以是不同磁盘的空间,可以是一整块儿磁盘,也可以是磁盘的分区;但是不能把分区的剩余空间拿来使用)

2.空间可以扩展(不会影响原来的数据内容,不会影响读入和使用)

LVM工作方式

  • 在“分区--->格式化”中间增加的一个逻辑层

—— 零散空间存储(PV 物理卷)----整合的虚拟磁盘(VG 卷组)----虚拟的分区(LV 逻辑卷)

将众多的PV(物理卷)组成VG(卷组),再将VG(卷组)中划分LV(逻辑卷)

LVM管理工具

功能

物理卷管理

卷组管理

逻辑卷管理

Scan扫描

pvscan

vgscan

lvscan

Create创建

pvcreate

vgcreate

lvcreate

Display显示

pvdisplay

vgdisplay

lvdisplay

Remove删除

pvremove

vgremove

lvremove

Extend扩展

        /

vgextend

lvextend

LVM快速部署及使用

  • 基本思路

—准备至少一个空闲分区(/dev/sdb1)

—创建卷组:vgcreate 卷组名 空闲分区...

—创建逻辑卷:lvcreate -L 大小 -n 名称 卷组名

一、制作逻辑卷

1.创建物理卷

[root@njw ~]# pvs     //扫描查看有没有物理卷(等用于命令pvscan),没有输出结果就是没有
[root@njw ~]# pvcreate /dev/sdb1 /dev/sdb2
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdb2" successfully created.

[root@njw ~]# pvs        //扫面查看物理卷创建成功
//也可以省略第一步创建物理卷,直接创建卷组

2.创建卷组

—命令格式:vgcreate 卷组名 空闲分区路径

[root@njw ~]# vgs     //扫描查看有没有卷组(等用于命令vgscan),没有输出结果就是没有

[root@njw ~]# vgcreate systemvg /dev/sdb[1-2]   #没有物理卷时,会将/dev/sdb[1-2]自动转化成物理卷,在组成卷组

  Physical volume "/dev/sdb1" successfully created.

  Physical volume "/dev/sdb2" successfully created.

  Volume group "systemvg" successfully created

[root@njw ~]# vgs   #查看卷组基本信息

  VG             #PV #LV #SN  Attr        VSize   VFree

  systemvg       2     0     0   wz--n-   7.99g   7.99g

[root@njw ~]# pvs   #查看物理卷基本信息

  PV              VG             Fmt    Attr   PSize    PFree

  /dev/sdb1  systemvg  lvm2   a--   <4.00g  <4.00g

  /dev/sdb2  systemvg  lvm2   a--   <4.00g  <4.00g

3.创建逻辑卷

—命令格式:lvcreate -n 逻辑卷名 -L 大小 基于的卷组名

[root@njw ~]# lvcreate -n mylv -L 6G systemvg

  Logical volume "mylv" created.

[root@njw ~]# lvs   #查看逻辑卷的信息

  LV   VG       Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  mylv systemvg -wi-a----- 6.00g                                                   

[root@njw ~]# vgs   #查看卷组的信息

  VG       #PV #LV #SN Attr   VSize VFree

  systemvg   2   1   0 wz--n- 7.99g 1.99g

4.逻辑卷的使用  

[root@njw ~]# ls /dev/systemvg/mylv   #生成了一个快捷方式

 

[root@njw ~]# ls -l /dev/systemvg/mylv

 

[root@njw ~]# mkfs.xfs /dev/systemvg/mylv

 

[root@njw ~]# blkid /dev/systemvg/mylv   #查看文件系统类型

/dev/systemvg/mylv: UUID="00a476d3-8670-4f71-adef-3fc3cf4392c9" BLOCK_SIZE="512" TYPE="xfs"

[root@njw ~]# vim /etc/fstab   #设置开机自动挂载

/dev/systemvg/mylv /lv xfs defaults 0 0

[root@njw ~]# mkdir /lv   #创建挂载点目录

[root@njw ~]# mount -a

[root@njw ~]# df -h

 

注:图中系统文件/dev/mapper/systemvg-mylv和集群共享存储多路径有关,也是一种快捷方式,和/dev/systemvg/mylv一样,都链接到/dm-0

 

二、逻辑卷的线上扩展

可以扩展正在使用的逻辑卷,无需卸载,不影响原来数据的读入和使用,可以在挂载的状态下进行扩展。

1.卷组有足够的剩余空间

1)扩展逻辑卷

[root@njw ~]# lvextend -L 7G /dev/systemvg/mylv   #将逻辑卷空间大小扩展到7G

  Size of logical volume systemvg/mylv changed from 6.00 GiB (1536 extents) to 7.00 GiB (1792   extents).

  Logical volume systemvg/mylv successfully resized.

[root@njw ~]# lvs   #查看逻辑卷空间的大小

  LV      VG            Attr            LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  mylv  systemvg  -wi-ao----  7.00g

2)扩展文件系统大小(刷新文件系统)

resize2fs:扩展ext4文件系统

xfs_growfs:扩展xfs文件系统

[root@njw ~]# df -h   #图中6G大小为未扩展文件系统时的大小

 

[root@njw ~]# xfs_growfs /dev/systemvg/mylv

 

[root@njw ~]# df -h   ##图中7G大小为扩展后文件系统时的大小

 

2.卷组没有足够剩余空间

1)扩展卷组空间

[root@njw ~]# vgextend systemvg /dev/sdb3

  Physical volume "/dev/sdb3" successfully created.

  Volume group "systemvg" successfully extended

[root@njw ~]# vgs

  VG            #PV #LV #SN   Attr        VSize        VFree

  systemvg      3     1      0   wz--n-   <11.99g   <4.99g

[root@njw ~]# vgextend systemvg /dev/sdc

  Physical volume "/dev/sdc" successfully created.

  Volume group "systemvg" successfully extended

[root@njw ~]# vgs

  VG            #PV #LV #SN   Attr        VSize     VFree

  systemvg      4     1      0   wz--n-   21.98g   14.98g

2)扩展逻辑卷空间

[root@njw ~]# lvextend -L 18G /dev/systemvg/mylv

  Size of logical volume systemvg/mylv changed from 7.00 GiB (1792 extents) to 18.00 GiB (4608 extents).

  Logical volume systemvg/mylv successfully resized.

[root@njw ~]# lvs

  LV        VG              Attr              LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  mylv    systemvg    -wi-ao----   18.00g

3)扩展文件系统大小(刷新文件系统)

[root@njw ~]# df -h 

 

[root@njw ~]# xfs_growfs /dev/systemvg/mylv

 

[root@njw ~]# df -h

 

了解内容:逻辑卷也可以缩小

ext4文件系统支持缩减

xfs文件系统不支持缩减

卷组划分空间的单位:PE        默认1PE=4M

[root@njw ~]# vgdisplay systemvg    #查看卷组的详细信息

 

例题:请划分一个大小为250M的逻辑卷lvredhat

修改PE的大小

[root@njw ~]# vgchange -s 1M systemvg    #将PE大小修改为1M

  Volume group "systemvg" successfully changed

[root@njw ~]# vgdisplay

 

[root@njw ~]# lvcreate -L 250M -n lvredhat systemvg

  Logical volume "lvredhat" created.

[root@njw ~]# lvs

  LV            VG            Attr            LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  lvredhat  systemvg  -wi-a-----    250.00m                                                   

  mylv        systemvg  -wi-ao----    18.00g

例题:请划分一个大小为800个PE组成的逻辑卷lvtest

[root@njw ~]# lvcreate -l 800 -n lvtest systemvg  #注:选项[-l]指定PE的个数

  Logical volume "lvtest" created.

[root@njw ~]# lvs

  LV      VG      Attr      LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  lvredhat systemvg -wi-a----- 250.00m                                                   

  lvtest  systemvg -wi-a----- 800.00m                                                   

  mylv    systemvg -wi-ao----  18.00g

逻辑卷的删除

顺序:先删逻辑卷,然后再删除卷组,最后删除物理卷

[root@njw ~]# lvremove /dev/systemvg/mylv

  Logical volume systemvg/mylv contains a filesystem in use.  #正在使用时无法删除

[root@njw ~]# umount /lv 

[root@njw ~]# lvremove /dev/systemvg/mylv  #删除逻辑卷mylv

Do you really want to remove active logical volume systemvg/mylv? [y/n]: y

  Logical volume "mylv" successfully removed

[root@njw ~]# lvs

  LV      VG      Attr      LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  lvredhat systemvg -wi-a----- 250.00m                                                   

  lvtest  systemvg -wi-a----- 800.00m                                                   

[root@njw ~]# vgremove systemvg    #删除卷组

Do you really want to remove volume group "systemvg" containing 2 logical volumes? [y/n]: y

Do you really want to remove active logical volume systemvg/lvredhat? [y/n]: y

  Logical volume "lvredhat" successfully removed

Do you really want to remove active logical volume systemvg/lvtest? [y/n]: y

  Logical volume "lvtest" successfully removed

  Volume group "systemvg" successfully removed

[root@njw ~]# vgs


版权声明:本文为N_jw107原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。