热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Linux基础命令(二十一)Linux中的磁盘管理(终)

一、逻辑卷管理器(LogicalVolumeManager)需求引入:最初规划主机的时候,只给了home100G的,但是随着业务量的增大,导致用户的增多,这个文件系统不够大,满足不

一、逻辑卷管理器(Logical Volume Manager)

需求引入:最初规划主机的时候,只给了/home 100G的,但是随着业务量的增大,导致用户的增多,这个文件系统不够,满足不了我们的需求,该怎么解决?

横向:再买一块大的新硬盘,重新分区并格式化,将/home的数据完整的迁移过去将原来的分区卸载重新挂载新的分区!

思考:如果第二次分区给的容量太多,导致磁盘容量浪费,想将分区缩小该怎么办?可能会重复上面流程,有没有好一点策略

概念:LVM侧重于是可以弹性的调整文件系统的容量,并不在于性能与数据安全上面!

弹性的理解:LVM管理磁盘中可以新增或者删除物理分区!

思考:前缀是逻辑,而不是物理?

分析:LVM可以整合多个物理分区,让这些分区看起来像是一个大磁盘一样!

粗略的流程:将几个分区(磁盘)通过软件整合成为一块看起来是独立的大磁盘(VG),然后将这块大磁盘再经过划分成为可以使用的分区(LV),最终挂载进行使用!

二、LVM的基本术语

(1)PV (physical volume)

解释:一个物理卷通常是一个硬盘或者分区,在分区的时候通过fdisk调整系统标识符8e(LVM)
说明:调整系统标识符8e(LVM)仅仅是标识它的用途,只有经过pvcreate命令才能转化为LVM的底层物理卷!
注意:此时分区尚未格式化;如同对橘子进行榨汁!

(2)volume group (VG)

理解:盛放橘子汁的容器!
解释:卷组是LVM中使用的最高级别的抽象,它将逻辑卷和物理卷集合在一起成为一个管理单元!
白话:将多个PV整合成一个大的VG,这个VG就是LVM组成的最大的大磁盘!

(3)logical volume (LV)

理解:准备倒橘子汁了
解释:VG被切分成LV,相当于非LVM系统中的磁盘分区(只是分区尚未格式化),所以需要格式化挂载才能使用!

(4)physical extent (PE)

说明:PE是PV的最小存储单位(每个橘子汁)!
理解:LVM可以弹性的调整文件系统的容量,就是通过交换PE来进行的数据转换!

三、LVM的实践流程

实验环境说明

(1)LVM需要有内核支持(RHEL7默认安装)
(2)安装lvm2的软件
(3)mbr的fdisk分区

需求1:pv的正常使用

1)PV阶段 –>创建一个500M的PV

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

说明:

(1)如果之前分区已经格式化,会将分区擦除,重新格式化相应的类型!
(2)此时尚未通过vg对pv进行管理,下一步建立vg,开始管理pv!

2)VG阶段

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

说明:

(1)此时pvs命令可以看到pv其隶属于vg管理了
(2)VG的名字是自定义的,pv名称是分区的设备名
(3)创建vg的时候,默认PE是4M,可以通过-s来指定PE的大小
vgreduce vg0 /dev/svb2 -->移出在此卷组上的分区!
vgremove vg0 -->删除卷组,此卷的所有分区全部gameover

3)LV阶段

说明:创造出VG的大磁盘之后,建立分区(所谓的LV)!

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

说明:

(1)观察容量的变化,理解PE的转移的含义
(2)参数的说明-->L(size->指定容量)、l(PE的个数)、n(lv的名字)
(3)由于PE的最小单位是4,所以实际转移的是52,不是50

4)LV的使用

说明:此时的就像是用fdisk /dev/vdb进行分区的非LVM分区,所以也需要格式化挂载才能使用!

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

说明:

(1)底层也是通过mapper映射完成的

需求2:用户增多,发现LV容量不够,需要进行扩容

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

说明

(1)LV放大到100M,但是文件系统还没有增加(通过xfs_growfs来更新),可以通过在线直接处理(无需umount)!
(2)xfs_growfs只是针对xfs的文件系统!

需求3:突然发现PV的容量不够使用了,怎么办?

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

说明:

(1)增加PV,一层一层的扩大,最后到文件系统
(2)通过pvs使用的对比证明了LVM的映射模式是线形映射(某个PV分区的容量够用的时候,其它PV空闲),便于弹性调整文件系统的容量!

需求4:ext4文件系统容量的扩展和缩小

(1)xfs不支持容量的缩小,但ext家族支持,这里采用ext4(常用)的文件系统!
(2)如果一开始可能就有容量缩减的需求,文件系统的格式可以指定为ext4!

1)扩容

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

2)缩减

(1)从安全的角度,resize2fs不支持ext文件系统的在线缩减,所以必须卸载!

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

说明

(1)不支持在线缩减,所以必须先卸载,然后必须强制进行磁盘检查(主要是检查文件系统是否有损坏,扫描逻辑卷上的空间)
(2)缩减的顺序为resize2fs -->先缩小LVM文件系统,再缩减LV的大小(注意LV容量的大小>=LVM的大小)
(3)缩减LV的大小,可能会造成LVM文件系统容量小于LV,即数据可能会溢出,所以会有警告信息

出现的问题:缩减的时候没有先卸载,直接缩减,导致块信息丢失,无法后续

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

了解:lvextend是扩展逻辑卷,lvreduce是缩小逻辑卷(不支持xfs),lvresize是扩展或缩小逻辑(不支持xfs)

需求5:删除PV

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

说明

(1)为了保证原始的数据不受破坏,进行数据的安全转移pvmove(用户感觉不到)!
(2)将分区1从vg0组管理中踢出;没有人管理,就好收拾了!
(3)接着就将分区1删除(remove)!
说明:挂载的分区感觉不到其中的变化的!

需求5:创建LVM的LV磁盘快照

概念:将当时的系统信息记录下来,就好想照相记录一般,将来若有任何数据的修改,则原始数据会被搬移到快照区,没有修改的区域则由快照区与文件系统共享!

作用:数据备份

类比:虚拟机的快照、git的快照!

实验1:快照

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

(1)注意lvs的Attr属性;
(2)注意df -H 的查看结果
(3)lvcreate 参数s的含义-->快照(snapshot),位置任意

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

说明

(1)快照的删除,不影响源LV!

快照需求:利用快照来恢复文件系统

    1)相关的说明

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

   2)测试步骤

(1)核心理念-->改变源LVM文件系统的内容-->lvdispaly(查看下变化),以及两个挂载点的内容!
(2)df -Th 两个挂载点--->核心(Userd)变化!快照只是记录了某个时间点的LVM的元数据!
(3)利用快照区对原本的文件系统备份-->不同的文件系统备份的方式不一样!
dumpe2fs -->ext4家族单备份工具!
xfsdump -->xfs的文件系统备份
注意:备份的原因(源格式化之前,原本的文件系统会将所有的数据都迁移到快照区域内,如果快照区域不够大,数据无法全部还原)!
(4)卸载源LVM的挂载点、然后lvremove-->将源LVM的数据完全删除!
(5)卸载快照-->格式化源LVM的文件系统(注意要匹配),然后挂载
(6)通过备份文件恢复到源LVM的挂载点上
xfsrestore -->针对xfs文件系统的备份的恢复
(7)看是否与最初的数据相同

ext4的restore、rstore命令的详细解释

需求6:LVM的删除

《Linux基础命令(二十一)Linux中的磁盘管理(终)》

注意顺序,最好将ID也修改过来!

一张图让你学会LVM


推荐阅读
author-avatar
Joke-晓
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有