CentOS下LVM的创建与使用

一、基本概念

LVMLogical Volume Manager):首先是基于实际的物理磁盘创建LVM分区,并创建物理卷PV。一个或多个物理卷可以用来创建卷组VG。然后基于卷组可以创建逻辑卷LV。只要在卷组中有可用空间就可以随心所欲的创建逻辑卷。文件系统是在逻辑卷上创建的,然后可以在操作系统中挂载和使用。

  • 物理长度PEPhysicalExtent):物理长度是将物理卷组合为卷组后,所划分的最小存储单位,即逻辑意义上磁盘的最小存储单位。LVM默认PE大小4MB

  • 物理卷PVPhysicalVolume):物理卷是LVM的最底层概念,是LVM的逻辑存储块,物理卷与磁盘分区是逻辑的对应关系

  • 卷组VGVolumeGroup):卷组是LVM逻辑概念上的磁盘设备,通过将单个或多个物理卷组合后生成卷组。卷组的大小取决于物理卷的容量以及个数。

  • 逻辑卷LVLogicalVolume):逻辑卷就是LVM逻辑意义上的分区,可以指定从卷组中提取多少容量来创建逻辑卷,最后对逻辑卷格式化并挂载使用。

二、演示环境

新增一块20G硬盘,分区/dev/sdb1,大小10G,分区ID8e

常用fdisk交互式指令说明

指令

说明

d

删除分区

l

显示分区类型

m

显示帮助菜单

n

新建分区

p

显示分区表信息

q

不保存退出

t

修改分区ID,可以通过l查看ID

w

保存并退出

 

CentOS下LVM的创建与使用

使分区生效:

# partx -a /dev/sdb

# cat /proc/partitions

# fdisk -l /dev/sdb

三、PVVGLV中涉及到的常用命令

名称

物理卷PV

卷组VG

逻辑卷LV

创建

pvcreate

vgcreate

lvcreate

显示

pvs  | pvscan | pvdisplay

vgs  | vgscan | vgdisplay

lvs  | lvscan | lvdisplay

扩容

 

vgextend

lvextend  | lvresize

缩减

 

vgreduce

lvreduce  | lvresize

删除

pvremove

vgremove

lvremove

创建LV

1、 将物理磁盘初始化为物理卷PV# pvcreate /dev/sdb1

2、 创建卷组VG,将PV加入到VG中:# vgcreate vgtest1 /dev/sdb1

CentOS下LVM的创建与使用

3、 基于VG创建逻辑卷LV# lvcreate [选项] 卷组名

选项:

-l:指定使用多少个VG中的LE创建LV[%{VG|PVS|FREE}]

-L:指定LV大小

-n:指定LV名称

-p:指定权限r为只读,rw为读写

# lvcreate -n lvtest1 -L 5G vgtest1  或者  # lvcreate -n lvtest1 -l 50%FREE vgtest1

//上述两种方法都是创建大小为5G,名为lvtest1的逻辑卷

CentOS下LVM的创建与使用

4、 为逻辑卷创建文件系统:

# mke2fs -t ext4 /dev/vgtest1/lvtest1  或者  # mke2fs -t ext4 /dev/mapper/vgtest1-lvtest1

5、 创建挂载点,挂载LV

# mkdir -pv /mnt/lvtest1

# mount /dev/vgtest1/lvtest1 /mnt/lvtest1

6、 创建测试数据

# cd /mnt/lvtest1

# cp /etc/fstab .

# cp /etc/rc.sysinit .

# dd if=/dev/zero of=test bs=1M count=2048    //创建一个大小为2G的测试数据test

# cat fstab        //能正常显示文件内容

# cat rc.sysinit    //能正常显示文件内容

CentOS下LVM的创建与使用

7、 实现开机自动挂载:

# vim /etc/fstab  –>  /dev/vgtest1/lvtest1  /mnt/lvtest1  ext4defaults  0  0

# mount-a

# mount  –>  /dev/mapper/vgtest1-lvtest1 on /mnt/lvtest1type ext4 (rw)

# cat /etc/mtab  –>  /dev/mapper/vgtest1-lvtest1 /mnt/lvtest1 ext4rw 0 0

CentOS下LVM的创建与使用

备注:文件/etc/fstab/etc/mtab区别

  • /etc/fstab:存放的是系统中的文件系统信息,是系统准备装载的。
  • /etc/mtab:存放的是现在系统已经装载的文件系统,包括操作系统建立的虚拟文件等。

五、扩容VG

1、 将之前/dev/sdb中再分出一个分区/dev/sdb2,大小为5G,分区ID8e# fdisk /dev/sdb

2、 将物理磁盘初始化为物理卷PV# pvcreate /dev/sdb2

3、 PV添加到指定VG中:# vgextend vgtest1 /dev/sdb2

CentOS下LVM的创建与使用

vgtest1的大小增加了5G

六、扩容LV(可在线扩容,无需卸载LV

1、 确保VG中有足够的可用空间供LV扩容,将lvtest1扩容5G

CentOS下LVM的创建与使用

2、 扩容物理边界,格式:# lvextend [选项] /dev/卷组名/逻辑卷名

选项:

-l:指定使用多少个VG中的LE[%{VG|LV|PVS|FREE|ORIGIN}]

-L:指定LV大小

# lvextend -L 10G /dev/vgtest1/lvtest1  或者

# lvextend -L +5G /dev/vgtest1/lvtest1  或者

# lvextend -l +50%FREE /dev/vgtest1/lvtest1

//上述三种方法都是将lvtest1扩容5G,大小为10G

3、 扩容文件系统:# resize2fs /dev/vgtest1/lvtest1

CentOS下LVM的创建与使用

4、 之前/mnt/lvtest1目录中的数据仍然能正常访问。

CentOS下LVM的创建与使用

CentOS下LVM的创建与使用

vgtest1的可用大小减少了5Glvtest1的大小增加了5G

七、缩减LV

1、 确保缩减后LV的大小要比存储在LV中数据的总和要大,将lvtest1缩减至8G

CentOS下LVM的创建与使用

CentOS下LVM的创建与使用

2、 卸载逻辑卷lvtest1# umount /mnt/lvtest1

3、 强制检测文件系统:# e2fsck -f /dev/vgtest1/lvtest1

CentOS下LVM的创建与使用

4、 缩减文件系统:# resize2fs /dev/vgtest1/lvtest1 8G

CentOS下LVM的创建与使用

5、 缩减物理边界:# lvreduce -L 8G /dev/vgtest1/lvtest1

CentOS下LVM的创建与使用

6、 挂载逻辑卷lvtest1使用:# mount /dev/vgtest1/lvtest1 /mnt/lvtest1

7、 之前/mnt/lvtest1目录中的数据仍然能正常访问。

CentOS下LVM的创建与使用

CentOS下LVM的创建与使用

PV中的/dev/sdb1的可用大小增加了2Gvgtest1的可用大小增加了2Glvtest1的大小减少了2G

八、缩减VG

1、 新增一块大小为20G的磁盘,分区/dev/sdc1,大小10G,分区ID8e,并初始化为PV,加入vgtest1中:

# fdisk /dev/sdc

# pvcreate /dev/sdc1

# vgextend vgtest1 /dev/sdc1

CentOS下LVM的创建与使用

2、 /dev/sdb1上的所有PV移动至/dev/sdc1中,然后删除/dev/sdb1,从而达到缩减VG目的

# pvmove /dev/sdb1 /dev/sdc1

CentOS下LVM的创建与使用

3、 从卷组vgtest1中删除/dev/sdb1# vgreduce vgtest1 /dev/sdb1

CentOS下LVM的创建与使用

/dev/sdb1中的PV已经全部移动至/dev/sdc1中,vgtest1的大小也减少了10G/dev/sdb1可以删除也可以加入别的VG中。

4、 之前/mnt/lvtest1目录中的数据仍然能正常访问。

九、删除LV

1、 将上述的/dev/sdb1加入到新卷组vgtest2中,并创建lvtest2

# vgcreate vgtest2 /dev/sdb1

# lvcreate -n lvtest2 -l 100%FREE vgtest2

# mke2fs -t ext4 /dev/vgtest2/lvtest2

# mkdir -pv /mnt/lvtest2

# mount /dev/vgtest2/lvtest2 /mnt/lvtest2

CentOS下LVM的创建与使用

2、 卸载lvtest2# umount /mnt/lvtest2

3、 删除lvtest2# lvremove /dev/vgtest2/lvtest2

CentOS下LVM的创建与使用

CentOS下LVM的创建与使用

lvtest2已被删除,vgtest2可用大小为10G

十、删除VG

1、 删除vgtest2# vgremove vgtest2

CentOS下LVM的创建与使用

vgtest2已经删除。

十一、删除PV

1、 删除/dev/sdb1# pvremove /dev/sdb1

2、 使用fdisk命令将无用的分区删除,或者将其分区ID8e修改为83

CentOS下LVM的创建与使用

PV中的/dev/sdb1已经删除。

十二、创建快照卷:

1、 lvtest1创建大小为5G的快照卷lvtest1-snap

# lvcreate -s -L 5G -n lvtest1-snap -p r /dev/vgtest1/lvtest1      //-s:创建快照卷,-p r:表示属性为只读

2、 创建快照卷挂载点,挂载快照卷:

# mkdir -pv /mnt/snap

# mount /dev/vgtest1/lvtest1-snap /mnt/snap

CentOS下LVM的创建与使用

备注:快照卷是逻辑卷的一种,通常为只读。快照卷与原卷在同一个卷组中,因此创建快照卷之前要确保原卷所在的卷组中有足够空间可用。快照卷无须与原卷一样大,其大小取决于快照卷的存活时长内原卷的数据变化量。

3、 查看lvtest1lvtest1-snap中的内容:

CentOS下LVM的创建与使用

创建快照以后,快照之后所修改的数据,通过快照卷是访问不到的,因为它保存的是过去某一时刻的状态,可以备份或复制该时刻的数据。

CentOS下LVM的创建与使用

十三、删除快照卷:

1、 卸载快照卷:# umount /mnt/snap

2、 删除快照卷:# lvremove /dev/vgtest1/lvtest1-snap

CentOS下LVM的创建与使用

CentOS下LVM的创建与使用

十四、其他常用操作:

1、 重命名lvtest1marion# lvrename vgtest1 lvtest1 marion

CentOS下LVM的创建与使用

2、 重命名vgtest1keyso# vgrename vgtest1 keyso

CentOS下LVM的创建与使用

3、 合并卷组:创建一个大小为10G的新卷组vgtest,将vgtest合并到keyso中:

CentOS下LVM的创建与使用

# vgmerge keyso vgtest

CentOS下LVM的创建与使用

本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-05/152608.htm

CentOS下LVM的创建与使用

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

栗子博客 软件 CentOS下LVM的创建与使用 https://www.lizi.tw/soft/9395.html

常见问题
  • 1、杰齐1.7仅适用于PHP5.2 2、需Zend支持 3、尽量使用宝塔面板 4、尽量使用Windows 系统,关关对Linux支持不太友好。
查看详情

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

CentOS下LVM的创建与使用-海报

分享本文封面