linux操作系统比较完善的LVM逻辑卷管理——筑梦之路

基本概念介绍:

PV(物理卷): 物理卷在逻辑卷管理中处于最底层,它可以是物理硬盘上的分区,也可以是一整块硬盘

VG(卷组): 卷组建立在物理卷之上,一个卷组中至少要包含一个物理卷,在卷组建立之后可以动态的添加物理卷到卷组中。

LV(逻辑卷): 逻辑卷建立在卷组之上,卷组中未分配的空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态的扩展或缩小空间,系统中的多个逻辑卷可以属于同一个卷组或不同的多个卷组

PE: 每个物理卷被划分为名为PE的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE大小是可配置的,默认为4M。

LE: 逻辑卷也被划分为名为LE的可被寻址的基本单位。在同一卷组中,LE的大小与PE大小相同,并且一一对应。

常用命令:

PV 物理卷
pvcreate      # 创建物理卷
pvscan        # 扫描所有磁盘中存在d额物理卷
pvdisplay     # 显示指定物理卷属性
pvresize      # 调整物理卷容量
pvck          # 检查物理卷lvm数据一致性
pvs           # 打印输出物理卷的概要信息
pvchange      # 改变物理卷分配许可
pvmove        # 把某物理卷中的数据转移到其他卷组中的其他xxx卷

VG 卷组
vgcreate      # 创建卷组
vgscan        # 检测系统中所有磁盘
vgdisplay     # 显示卷组的属性信息
vgrename      # 更改卷组名(格式: vgrename 旧名 新名)
vgextend      # 扩充卷组大小
vgreduce      # 缩小卷组大小

LV 逻辑卷
lvcreate      # 创建逻辑卷
lvremove      # 删除逻辑卷
lvscan        # 扫描所有逻辑卷
lvdisplay     # 显示逻辑卷的属性信息
lvextend      # 扩充逻辑卷大小
lvreduce      # 缩小逻辑卷大小

示例:

需求说明:
挂载两块5G硬盘,创建一个名为test的卷组,卷组PE尺寸大小为16M。创建一个名为data的逻辑卷,该逻辑卷所属卷组为test,逻辑卷大小为8G。将该逻辑卷格式化为XFS文件系统并挂载到/data目录下

需求分析:
将磁盘分区为一个5G大小的主分区
分区文件系统为Linux LVM

 

#创建物理卷pv
pvcreate /dev/sd{b..c}1

#查看物理卷状态
pvdisplay /dev/sdb1 /dev/sdc1

#创建卷组vg
# 将磁盘加入到test卷组中,并且指定PE大小为16M
vgcreate -s 16 test /dev/sdb1 /dev/sdc1

## 查看卷组test
vgdisplay test

#创建逻辑卷LV
# 方法1
lvcreate -n data -L 8G test

# 方法2(LV=PE大小*块数) 16 * 512 = 8192M = 8G
lvcreate -n data -l 512 test

#挂载逻辑卷
# 将磁盘格式化为XFS文件系统
mkfs.xfs /dev/test/data

# 挂载到/data目录下
mount /dev/test/data /data/

#配置自动挂载
# 自动挂载
vim /etc/fstab
/dev/test/data /data xfs defaults 0 0

#UUID方式挂载
# 查看UUID
blkid /dev/test/data

# 自动挂载
vim /etc/fstab
UUID=2a8c491a-d7e8-4a7d-81bc-e90967664f2c /data xfs defaults 0 0

-----------------------------------------------------------------------
扩容物理卷PV
使用场景:磁盘100G lvm分区只使用了20G 现在需要对lvm扩容
#查看当前pvs  物理磁盘大小 lsblk

#重新调整分区 (此处需要特别注意,分区操作不当会导致现有的系统和数据丢失)
fdisk /dev/sda  #此处参考非lvm分区调整方法,如果是系统盘开机状态,需要关机进入急救模式调整
 
超过2T的盘需要使用gpt分区类型,msdos分区类型最大支持2T磁盘空间
parted /dev/sda
mklabel
gpt
yes
Ignore
p
100%
p
quit

#扩容pv
pvresize -v /dev/sda2

#验证
pvs
vgs

#扩容LV
lvextend -l +100%FREE /dev/centos/root

#通知系统分区表的变化
partprobe /dev/sda2

#文件系统扩容
xfs_growfs /dev/centos/root

df -hT

------------------------------------------------------------------------
需求:在原来的基础上再给卷组test增加5G的容量
#查看当前卷组信息
vgdisplay test
#卷组扩容前准备新盘分区
fdisk /dev/sdd
n  p  t  8e w

#将新盘设置为pv
pvcreate /dev/sdd1

#扩展卷组
# 将/dev/sdd1加入到卷组test中
vgextend test /dev/sdd1

# 查看卷组test容量可以看到比之前大了5G
vgdisplay test

-------------------------------------------------------------------------
缩小卷组
#创建测试文件 在/data中
touch /data/file{1..99}

#查看卷组使用信息
pvs -o+pv_used

#数据迁移

# 将sdc1磁盘的内容移动到sdd1中
pvmove /dev/sdc1 /dev/sdd1

# 再次查看pv信息发现sdc1的数据被腾空了
pvs -o+pv_used

#将物理卷移出test卷组
# 将物理卷/dev/sdc1从卷组中删除,可以看到VG容量少了5G
vgreduce test /dev/sdc1

# 将/dev/sdc1从物理卷中删除
pvremove /dev/sdc1

------------------------------------------------------------------------
扩容逻辑卷LV

需求:将逻辑卷data大小扩容到13G

# 当前逻辑卷大小为8G
lvdisplay /dev/test/data

#扩容卷组
# 分区完新硬盘后将其加入到test卷组中
vgextend test /dev/sdd1

#扩容逻辑卷

lvextend -L 13G /dev/test/data

# lvextend -L +5G /dev/test/data    # 在原来的大小上加5G

#将剩下的所有空间加上去
lvextend -l +100%FREE /dev/test/data

#对文件系统进行扩容
当逻辑卷为XFS文件系统时,自动拓展XFS文件系统的逻辑盘到最大可用大小

xfs_growfs /dev/test/data

当逻辑卷为ext2/ext3/ext4文件系统时,使用该工具重置该逻辑卷大小

resize2fs /dev/test/data

df -hT #检查验证

------------------------------------------------------------------
缩小逻辑卷LV
需求:
将逻辑卷大小缩小到10G

缩小文件系统为XFS的逻辑卷大小

XFS文件系统不能直接缩小,需要将调整完大小的逻辑卷再次进行格式化文件系统

但重新格式化后数据会丢失!!!  此处需要注意!

#调整逻辑卷大小

umount /dev/test/data        # 缩小逻辑卷大小一定要先取消挂载文件
lvreduce -L -3G /dev/test/data      # 在原来大小的基础上减去3G

# lvreduce -L 10G /dev/test/data    # 调整大小至10G

#格式化

mkfs.xfs -f /dev/test/data

mount /dev/test/data /data

df -Th

缩小文件系统为ext2/ext3/ext4的逻辑卷大小
umount /dev/test/data
e2fsck -f /dev/test/data

# 调整逻辑卷大小为10G
resize2fs /dev/test/data 10G

# 将逻辑卷大小缩小至10G
lvreduce -L 10G /dev/test/data

#挂载
mount /dev/test/data /data/

#删除逻辑卷
# 如有自动挂载也要在fstab中删除
umount /dev/test/data

# 删除逻辑卷
lvremove /dev/test/data

# 删除卷组
vgremove test

# 删除物理卷设备(设备根据实际情况来)
pvremove /dev/sd{b..d}1


注意事项:

文件系统格式为XFS时进行缩小逻辑卷需要重新格式化才能使用(格式化时磁盘内文件会被清空),文件系统为ext2/ext3/ext4时进行缩小逻辑卷无需重新格式化。文件系统不同时扩容跟缩小逻辑卷的方法与使用的工具也不同。缩小逻辑卷时要把磁盘取消挂载!

其他资料:

1、 物理卷命令
一般维护命令:
pvscan #在系统的所有磁盘中搜索已存在的物理卷
pvdisplay 物理卷全路径名称 #用于显示指定物理卷的属性。
pvchange Cx|--allocation {y|n} 物理卷全路径名 #用于改变物理卷的分配许可设置物理卷的创建与删除命令
pvcreate 设备全路径名 #用于在磁盘或磁盘分区上创建物理卷初始化信息,以便对该物理卷进行逻辑卷管理。
pvmove 源物理卷全路径我[目的物理卷全路径名] #用于把某物理卷中的数据转移到同卷组中其他的特刊卷中。

2、 卷组命令
一般维护命令
vgscan #检测系统中所有磁盘
vgck [卷组名] #用于检查卷组中卷组描述区域信息的一致性。
vgdisplay [卷组名] #显示卷组的属性信息
vgrename 原卷组名 新卷组名
vgchange -a y|n [卷组名] #改变卷组的相应属性。是否可分配
vgchange -l 最大逻辑卷数 #卷组可容纳最大逻辑卷数
vgchange -x y|n [卷组名] #卷是否有效
vgmknodes [卷组名|卷组路径] #用于建立(重新建立)已有卷组目录和其中的设备文件卷组配置的备份与恢复命令
vgcfgbackup [卷组名] #把卷组中的VGDA信息备份到“/etc/lvmconf”目录中的文件
vgcfgrestore -n 卷组名 物理卷全路命名 #从备份文件中必得指定物理卷的信息卷组的建立与删除命令
vgcreate 卷组名 物理卷全路径名[物理卷全路径名]
vgmove 卷组名

卷组的扩充与缩小命令
vgextend 卷组名 物理卷全路径名[物理卷全路径名]
vgreduce 卷组名 物理卷全路径名[物理卷全路径名]

vgreduce命令通过删除LVM卷组中的物理卷来减少卷组容量。不能删除LVM卷组中剩余的最后一个物理卷

#丢失pv处理
vgreduce --removemissing vgname --force

卷组的合并与拆分
vgmerge 目的卷组名 源卷组名 #合并两个已经存在的卷组,要求两个卷组的物理区域大小相等且源卷组是非活动的。
vgsplit 现有卷组 新卷组 物理卷全路径名[物理卷全路径名]

卷组的输入与输出命令
vgexport 卷组名
vgimport 卷组名 卷组中的物理卷[卷组中的物理卷]

3、 逻辑卷命令
一般命令
lvscan
lvdisplay 逻辑卷全路径名[逻辑卷全路径名]
lvrename 旧逻辑卷全路径名 新逻辑卷全路径名
lvrename 卷组名 旧逻辑卷名 新逻辑卷名
lvchange
e2fsadm -L +|- 逻辑卷增减量 逻辑卷全路径名

逻辑卷的创建与删除命令
lvcreate
lvremove

逻辑卷的扩充与缩小命令
lvextend -L|--size +逻辑卷大小增量 逻辑卷全路径名
lvreduce q -L|--size +逻辑卷减小量 逻辑卷全路径名

4、 逻辑卷管理命令
lvmdiskscan #检测所有的SCSI、IDE等存储设备
lvmchange -R|--reset #复位逻辑卷管理器
lvmsadc [日志文件全路径名] #收信逻辑卷管理器读写统计信息,保存到日志文件中。
lvmsar 日志文件全路径名 #从lvmsadc命令生成的日志文件中读取并报告逻辑卷管理器的读写统计信息。

创建lvm流程:

①将物理磁盘设备初始化为物理卷

 pvcreate /dev/sdb /dev/sdc
②创建卷组,并将PV加入卷组中

vgcreate linux_vg /dev/sdb /dev/sdc
③基于卷组创建逻辑卷

lvcreate -n hh_lv  -L 10G linux_vg 
④为创建好的逻辑卷格式化

mkfs.xfs /dev/linux/hh_lv
⑤将格式化好的逻辑卷进行挂载使用

#创建挂载目录
mkdir /data

#临时挂载
mount /dev/linux_vg/hh_lv /data

 删除lvm流程:

①删除LV

lvremove /dev/linux_vg/hh_lv
②删除VG

vgremove /dev/linux_vg
③删除物理卷

pvremove  /dev/sdb

缩小逻辑卷:

逻辑卷的缩小操作必须离线执行,要卸载逻辑卷

①卸载已经挂载的逻辑卷

umount  /dev/linux_vg/hh_lv
②缩小文件系统 (会提示需要运行fsck检查文件系统)

resize2fs /dev/linux_vg/hh_lv  1G
③缩小LV

lvreduce -L -1G /dev/linux_vg/hh_lv
④查看缩小后的LV

lvdisplay
⑤挂载

mount /dev/linux_vg/hh_lv  /data

 缩小卷组:

①将一个PV从制定卷组中移除

vgreduce linux_vg /dev/sdc

②查看缩小后的卷组大小

vgdisplay  方法1

vgs   方法2

vgscan   方法3
LVM建立和扩容:

#GPT  创建分区
gdisk /dev/sdc

n

+10G    (sdc1)

p  打印分区信息

w  保存并退出 

y  正在写入磁盘分区表中 

sdc        100G
-sdc1      10G
-sdc2      10G
-sdc3      10G
-sdc4      10G
-sdc5      10G
-sdc6      10G

1.创建卷组

创建卷组思路:将创建好的物理卷组成卷组(CentOS7系统直接创建卷组)

#命令格式

vgcreate 卷组名    设备路径1  设备路径2  .....

#创建卷组  取名  
#sdc1、sdc2、sdc3组合一个卷组
vgcreate  db_vg  /dev/sdc1 /dev/sdc2 /dev/sdc3 



#详细显示卷组信息
vgdisplay  db_vg

#或者,简要显示卷组信息
vgs db_vg

2. 创建逻辑卷

创建逻辑卷思路: 从创建好的卷组中创建逻辑卷

#命令格式:

lvcreate -L 大小 -n 逻辑卷名 卷组名 


#创建逻辑卷
lvcreate -L 20G -n mylv db_vg 

#简要查看逻辑卷信息
lvs 


#查看卷组信息,卷组信息以变小 
vgs

3.格式化

#格式化
#卷组下 逻辑卷
mkfs.xfs /dev/db_vg/my_lv 


#查看文件系统  
lsblk -f /dev/db_vg/my_lv

4.挂载(临时挂载)

#创建挂载目录
mkdir  /db_bak  

#临时挂载到/db_bask
mount /dev/db_vg/m_lv   /db_bak

5.自动挂载

#永久挂载
[root@admin ~]# vim /etc/fstab 
/dev/db_vg/my_lv   /db_bak  xfs  default  0  0


#检查挂载
#重新加载fstab文件中的内容
#相当于更新你刚刚修改fstab文件内容
mount -a

6.扩容逻辑卷

逻辑卷支持线上扩容,逻辑卷的空间来源于卷组,当卷组有足够的空间时,才可以扩展逻辑卷

#扩展命令:
lvextend  -L +{K,M,G} 逻辑卷路径   


#扩展逻辑卷
lvextend -L +10G   /dev/db_vg/my_lv

#查看扩充后LV大小
lvs 

刷新磁盘空间

#刷新挂载点目录 (方法1)
xfs_growfs   /db_bak/

方法2: 更新文件系统
resize2fs /dev/db_vg/my_lv

#查看更新后文件系统
df -h
#磁盘大小发生变化

7.扩容卷组

卷组的空间来源于物理分区,当卷组没有足够空间提供给逻辑卷时,须扩容卷组

扩展卷组命令 vgextend

#扩容卷组名 
#卷组名称   设备路径 
vgextend db_vg  /dev/sdc4  /dev/sdc5  /dev/sdc6

还有一种方法 {} 匹配
vgextend db_vg  /dev/sdc{4..6}  

#查看卷组信息
vgs

#扩容逻辑卷
lvextend -L +40G   /dev/db_vg/my_lv


#显示逻辑卷信息
lvs 


#刷新挂载点文件空间
xfs_growfs   /db_bak/

删除

#首先卸载 
umount /db_bak



#先删除逻辑卷(lvremove),然后删除卷组(vgremove)
lvremove  /dev/db_vg/db_lv

#查看磁盘
df -h

#查看卷组信息还在
vgs

#删除卷组
vgremove db_vg 

#再然后查看卷组
vgs 


#强制覆盖  物理卷
mkfs.xfs  -f /dev/sdc4

#删除pv 物理卷
pvremove /dev/sdc5

物理卷迁移:

新增磁盘
1. 新建磁盘分区

新增磁盘需要使用fdisk工具完成磁盘分区,分区后并调整分区为‘Linux LVM’格式,本例中使用fdisk工具新增主分区,并将/dev/sdc磁盘作为一个分区使用

2. 创建物理卷

完成/dev/sdc分区后,可以在/dev/sdc1基础之上使用pvcreate命令创建物理卷。成功创建物理卷后,系统会提示‘Physical volume "/dev/sdc1" successfully created’的输出信息,同时可以使用pvscan、pvs等命令检查当前系统中所存在的物理卷信息

pvcreate /dev/sdc1

pvscan

pvs -o +devices


3. 扩展卷组

完成/dev/sdc1物理卷创建后,可以使用vgextend命令将该物理卷添加到freeops卷组中,执行‘vgextend freeops /dev/sdc1’命令扩展freeops卷组,扩展完成后,系统将会返回‘Volume group "freeops" successfully extended’的提示信息

vgs -o +devices

vgextend freeops /dev/sdc1

vgs -o +devices

pvs -o +devices



4. 物理卷迁移

完成freeops卷组扩展后,卷组内将会存在/dev/sdb1、/dev/sdc1物理卷,目前/dev/freeops/data逻辑卷仅使用/dev/sdb1,可以使用pvmove命令将/dev/freeops/data逻辑卷迁移至/dev/sdc1。使用pvmove迁移物理卷时,迁移速率及时间受原磁盘数据量限制

pvmove -n /dev/freeops/data /dev/sdb1 /dev/sdc1

5. 迁移后确认

使用pvmove命令完成/dev/freeops/data逻辑卷迁移后,/dev/freeops/data所使用的设备将变成/dev/sdc1设备,且挂载点下的内容大小并未发生变化。执行lsblk命令查看当前设备磁盘信息,可以确认逻辑卷已完成迁移工作

du -sh /data

pvs -o +devices

lvs -o +devices /dev/freeops/data

lsblk


6. 原磁盘迁出

完成物理卷迁移后,原来的故障磁盘不可以直接卸载,需要执行vgreduce命令将该物理卷从卷组中移除,并执行pvremove命令擦除物理卷信息。完成上述工作后,该故障磁盘将可以直接从系统中拔出移交维修

vgreduce freeops /dev/sdb1

vgs

pvs -o +devices

pvremove /dev/sdb1

pvs -o +devices

参考资料:

RHEL 7.6 逻辑卷管理器LVM介绍

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值