LVM是Linux环境下对磁盘分区进行管理的一种机制。
PV :物理卷:磁盘或分区 /dev/sda?
VG:卷组:一组磁盘和/或分区 /dev/<VG name>/(目录)
LV:逻辑卷:LVM分区 /dev/<VG name>/<LV name>
RHEL/CentOS实现LVM的软件包名为lvm2,且一般是默认安装的,可以使用如下命令进行安装或更新:
#yum -y install lvm2
用户可以使用 lvm -help 显示lvm工具的常用命令,并可以使用命令参数 -h查看每个命令的使用方法.
1.创建卷
创建物理卷 pvcreate<磁盘或分区设备名> 创建物理卷的分区类型应为8e
创建卷组 vgcreate<卷组名><物理卷设备名> 将若干物理卷添加到卷组中
创建逻辑卷 lvcreate<-L 逻辑卷大小><-n 逻辑卷名><卷组名> 指定逻辑卷大小时可使用的单位有:k/K,m/M,g/G,t/T,默认为M
lvcreate<-l PE值><-n 逻辑卷名><卷组名>
注:在创建逻辑卷时,可以使用选项<-l PE值>指定逻辑卷的大小.PE值可以通过使用命令vgdisplay|grep “Free PE” 获得。
例如:
1).创建两个物理卷
pvcreate /dev/sdb1
pvcreate /dev/sdb2
2).为创建的物理卷创建一个名为chowVG的卷组
vgcreate chowVG /dev/dsb1 /dex/sdb2
3).在chowVG卷组中创建一个大小为20G,名字为chow的逻辑卷
lvcreate -L 20G -n chow chowVG
2.查看卷
pvdisplay 查看物理卷
vgdisplay 查看卷组
lvdisplay 查看逻辑卷
3.调整卷
扩展卷组 | vgextend<卷组名><物理卷设备名>[.....] | 将指定的物理卷添加到卷组中 |
缩减卷组 | vgreduce<卷组名><物理卷设备名>[.....] | 将指定的物理卷从卷组中删除 |
扩展逻辑卷 | lvextend<-L +逻辑卷增量><逻辑卷设备名称> lvextend<-l +PE值><逻辑卷设备名称> | 扩展逻辑卷之后才能扩展逻辑卷上的文件系统的大小 |
缩减逻辑卷 | lvreduce<-L +逻辑卷增量><逻辑卷设备名称> lvreduce<-l +PE值><逻辑卷设备名称> | 缩减逻辑卷之前一定要缩减逻辑卷上的文件系统的大小 |
将磁盘数据迁移到LVM
问题描述:
1.系统磁盘使⽤接近100%
2.系统响应非常缓慢
3.原系统分区时,直接使⽤磁盘⽅式,未采⽤LVM技术
解决⽅法:
1.系统磁盘是否为LVM,已经是LVM存在,则新建⼀个物理卷,将新增物理卷添加到旧的物理卷,并对逻辑卷进⾏动态拉伸,完成磁盘动态扩容,完全不会影响业务数据。
2.系统碰盘不是LVM,则⽆法对数据进⾏动态添加。停⽌所有服务,将部分达索数据迁移到新建LVM,迁移完成后,比对⽂件夹数据,确定⼀致后,将旧有数据清除,并将LVM挂载到相应⽬录中,完成磁盘的扩容。
如果需要图形⽤户界⾯:
0.yum install system-config-lvm
1.虚机中添加⼀块磁盘
2.对磁盘进⾏分区和初始化(以sdb为例)
fdisk /dev/sdb
n 创建新分区
l 查看系统⽀持的分区格式
t 分区类型选择8e
w 保存修改操作磁盘,需要⽤到root权限
1.fdiks /dev/sdb
更新刚刚操作过的磁盘分区表,不是必须执⾏的命名,⼀般系统会⾃动更新
2.partx -a /dev/sdb把新创建的分区更新为物理卷
3.pvcreate /dev/sdb1⽤新创建的物理卷创建卷组
4.vgcreate myvg /dev/sdb1
vas
如果需要对原卷组进⾏扩容,则勿需再创建新卷组
vgextend myvg /dev/sdb1
从已有卷组中创建逻辑卷使⽤卷组中的30G作为新的逻辑卷
5.lvcreate -L 30G -n mylv myvg
使⽤卷组中的所有空间作为新的逻辑卷
lvcreate -l 100%free -n mlv myvg
查看逻辑卷的状态
lvs
查看是否产⽣新的逻辑卷节点
6.ll /dev/myvg/mylv
对新的逻辑郑进⾏格式化
7.mkfs.ext4 /dev/myvg/mylv
挂载和使⽤新的逻辑卷
8.sudo mount /dev/myvg/mylv /mnt/lvmdisk
如果需要对逻辑进⾏扩容只相增加20G的空间
lvextend -L +20G /dev/myvg/mylv 注意这⾥是⼤写的L
想使⽤卷组中的所有容间
lvextend -l +100%FREE /dev/myvg/mylv 注意这⾥是⼩写的l
更新逻辑卷的磁盘⼤⼩resize2fs -P /dev/myvg/mylv