LVM学习笔记

LVM逻辑卷管理器

PV:系统的硬盘或者分区
更改系统卷标 8e
pvcreate 创建PV
VG:卷用户组 每个VG最多仅能包含65534个PE
PE:物理扩展块 PE有点像文件系统中block的大小,默认为4mb
LV:逻辑卷

数据写入方式

线性模式(LINEAR):数据写入时,将第一块磁盘写满之后才会写入到第二块磁盘中,例如有两个分区/dev/sda1,/dev/sdb1,这两个分区加入到VG中,并且整个VG只有一个LV时,那么所谓的线性模式就是将sda1写满之后再往sdb1中写入数据;
交错模式(TRIPED):数据写入时,将数据拆分成两部分,分别写入到/dev/sda1,/dev/sdb1,一份数据使用两块磁盘写入,理论上读写的速度会比较好,但是不够安全,恢复难度大;

LVM实现流程

LVM必须安装lvm2这个软件
流程设计:sdb 20GB的硬盘为例
1.分出4个分区,每个分区1.5G左右,切systemID为8e;
2.将4个分区创建为VG;
3.全部的分区整个为一个VG,PE的大小设置为16mb;
4.全部的VG容量丢给LV;
5.最终LV格式化为ext4文件系统,切挂载在/lvm中。
1、分区
fidsk /dev/sdb --创建一个扩展分区 具体操作help查看每个字母的操作
# t 5 8e --将5这个分区设置为8e
# n l --创建新分区
2、创建PV
pvscan --查看系统所有的PV磁盘
pvdisplay --查看PV状态
pvcreate /dev/sdb{5,6,7,8} --将sdb下的5678创建为PV
3、创建VG
vgcreate -s 16M test-vg /dev/sdb{5,6,7}
-s 设置PE的大小
vgextend test-vg /dev/sdb8
4、创建LV
lvcreatae -l 380 -n test-lv test-vg
5、挂载LV
mkdir /test --创建挂载点
mkfs -t ext4 /dev/test-vg/test-lv --格式化lv 必须使用全部的绝对路径
mount /dev/test-vg/test-lv /test

扩展LV

步骤:
1.用fdisk设置新的具有8e systemID的分区
2.利用pvcreate创建新的pv
3.利用vgextend将pv加入到test-vg中
4.利用lvresize将新加入的pv中的pe加入到test-lv中
5.通过resize2fs将文件系统的容量增加
说明:最后一步是对文件系统进行处理的,其他步骤都是针对LVM的实际容量进行调整,resize2fs是对文件系统中的block group进行增减,从而调整文件系统的量
1、分区
fidsk /dev/sdb
2、创建PV
pvcreate /dev/sdb9
刚刚新建的分区,在创建分区的时候提示没有找到,此时应更新一下分区表就可以解决问题
partprode --更新分区表,更新之后重新创建PV
3、扩展vg
vgextend tset-vg /dev/sdb9
vgdisplay 查看vg状态,关注剩余PE是多少,扩容时填写PE数量
4、扩展lv
lvresize -l +95 /dev/test-vg/test-lv
5、更新文件系统大小
reseze2fs /dev/test-vg/test-lv

缩小LV

假如需要将sdb7抽离出来,sdb7不是第一个分区,也不是最后一个分区
场景假设:有sdb5、6、7、8、9五个分区,PE单位为16MB,每个分区大小为1.5GB,五个分区都在test-vg的test-lv下,每个分区的PE数量为95,test-lv有475个PE,pvscan查看每个分区的具体情况,sdb7的实际大小为1.48个GB,1.455=7.4GB,df-h查看大小,挂载点/test实际大小为7.2GB,
直接上操作
1、umount /test
2、e2fsck -f /dev/test-vg/test-lv --进行磁盘检查
3、重新调整大小计算:7.4-1.48=5.92GB
5.92
1024=6062.08
4、resize2fs /dev/test-vg/test-lv 6062M --小数点后面的要去掉,一定要去掉!!!!
5、mount /dev/test-vg/test-lv /test
------------到这里,容量已经从文件系统中抽出来了,接下来要调整和回收分区的容量
6、lvresize -l -95 /dev/test-vg/test-lv
7、pvdisplay ----查看pv发现空闲的PE在sdb9下,并没有在sdb7下,所以还要进行一个PE的转移
8、pvmove /dev/sdb7 /dev/sdb9 ----转移对应分区
9、vgreduce test-vg /dev/sdb7 ----从对应的vg中移除
10、pvremove /dev/sdb7 ----从PV中移除
11、fdisk /dev/sdb ----将卷标改回初始状态
# t 7 83 ----7表示卷组号,83是最原始的卷标
12、mkfs -t ext4 /dev/sdb7 ----进行格式化,格式化之后可以将这块磁盘挂载在别的地方
总结:
扩容:
磁盘整合,将多块磁盘整合在一起
缩减:
整合起来的磁盘,将某一块磁盘抽出

LVM的系统快照

快照就是将当时的系统信息记录下来,就好像照相记录一般,将来若有任何数据改动了,则原始数据就会被移动到快照区,没有被改动的区域则由快照区与文件系统共享
将sdb7创建为快照区:
	1、pvcreate /dev/sdb7
	2、vgextend test-vg /dev/sdb7
	3、lvcreate -l 60 -s -n test-ss /dev/test-vg/test-lv				----创建test-ss,做为快照区,-s参数在lv中表示快照区的意思,要是创建快照区,必须要加上-s参数,-n表示快照区的名称,最后的名称是表示快照区对应的完整的文件名,-l表示分配PE的数量
	4、mkdir /snapshot
	5、mount /dev/test-vg/test-lv /snapshot				----挂载快照区
	6、描述:df -h查看大小时发现/snapshot与/test大小完全一致,里面的内容也是完全一致的

-----------------------至此,/dev/test-vg/test-lv系统快照创建完成
利用快照区恢复数据,注意,要恢复的数据量不能超过快照区的最大承载量(例如test-ss快照区只有60个PE的大小,所以恢复的数据最多只有60个PE的大小的数据量)
快照区是有容量的,如果目标的lv的使用量超过快照区的容量,则快照区会失效,所以做快照之前一定要先查看LV的使用情况
利用快照恢复数据操作
1:mkdir /snapshot/bakups
2: cd /snapshot
tar -zcvf ./bakups/test.tar.gz * ----打包
3: cd /test
tar -zxvf /snapshot/bakups/test.tar.gz -C /test ----解压缩
卸载快照区
umount /snapshot ----取消挂载
lvremove /dev/test-vg/test-ss ----删除对应的LV
清除并关闭LVM(一定要先删除快照区,再删除对应的LV)
umount /test
lvremove /dev/test-vg/test-lv
vgchange -a n test-vg ----给对应的VG打上标志,才可以进行删除操作
vgremove test-vg
pvremove /dev/sdb{5,6,7,8,9}
fdisk /dev/sdb
# t 5 82 ----82是服务器中的swap类型

命令整理

pvscan  查看pv信息
pvdisplay  查看pv信息
pvcreate 
pvchange
pvremove
vgcreate
vgscan
vgdisplay
vgextend
vgreduce
vgchange	设置VG是否启动
vgremove
lvcreate 	创建新的LV		-L后面接容量,单位可以是M、G、T等,必须是PE的倍数,否则会自动调整到最相近的容量
												-l后面接PE的个数
												-n后面是LV的名称
lvscan		查询系统上的LV
lvdiaplay	显示所有LV的状态
lvextend	在LV里面增加容量
lvreduce	在LV里面减少容量
lvremove	删除一个LV
lvresize	对LV进行容量大小的调整
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值