LVM逻辑卷管理ide
磁盘空间的动态划分和管理
LVM简介
LVM是Logical Volume Manager(逻辑卷管理器)的简写,提供将多块磁盘从逻辑上组合成一个大容量的存储(VG)。而且支持容量在线动态扩展和缩减。
LVM管理的概念
PP:物理分区(physical partition)。
PV:物理卷(Pysical Volume),能够是单独磁盘,也能够是硬盘分区。是标识了pv的物理磁盘或分区。
VG:卷组(Volume Group),一个或多个PV组成的存储空间。
LV:逻辑卷(Logical Volume),至关于物理分区的/dev/sdaX,只有逻辑卷才能够写数据。
PE:物理扩展(Pysical Extent),VG单元,相似于RAID的条带大小。 当多个PV组成一个VG时,LVM会在全部PV上作相似格式化的动做,将每一个PV切成一块块的空间,这一块块的空间就称为PE, 一般是4MB。
LE:逻辑扩展(Logical Extent),LV的组成单位。大小为PE的倍数(一般为1:1)。spa
LVM可以实现分区的动态扩容和缩容
LVM的建立过程实际上是一个先整合,在划分的过程。
LVM建立过程
1.添加硬盘或者是分区,通知内核
2.建立物理卷
3.建立卷组
4.建立逻辑卷
5.建立文件系统
6.挂载使用rem
下面经过案例实现来具体了解:虚拟机
案例1:给虚拟机添加4块1G的SCSI硬盘,将其中的sdb、sdc建立成一个名称为vg0的卷组,在卷组中建立一个 1.6G的名称为lv0的逻辑卷,再建立一个400M的名称为lv1的逻辑卷。并将lv0、lv1逻辑卷格式化成ext4文件系统,将lv0挂载到/lv0目录中,将lv1挂载到/lv1目录中,并分别写入一些文件到逻辑卷中。
案例2:对lv0逻辑卷扩容和缩容。将lv0的容量扩大为2G,并验证lv0的容量。
案例3:对vg0卷组扩容和缩容。将sdd、sde硬盘加入到vg0卷组中,并验证vg0的容量。
案例1实施思路:
一、将sdb、sdc硬盘建立成pv,并查看信息
lsblk
pvscan
pvcreate --help 或 man pvcreate
pvcreate /dev/sd[bc] 或 pvcreate /dev/sdb /dev/sdc
pvs
pvdisplay
二、建立vg,并查看vg信息
vgscan
vgcreate --help
vgcreate -s 8M vg0 /dev/sd[bc] 或 vgcreate vg0 /dev/sdb /dev/sdc
-s 指定PE的大小
PE(物理扩展单元) 大小(默认4M)
查看vg信息
vgs
vgdisplay
三、建立lv,并查看lv信息
lvscan
lvcreate -L 1.6G -n lv0 vg0
-n 指定lv的名字
-L 指定lv的大小
vg0 用vg0的空间作lv
lvcreate -n lv1 -l 20 vg0
-l 指定使用多少个PE
查看lv信息
lvs
lvdisplay
四、格式化
mkfs.ext4 /dev/vg0/lv0
五、手动挂载,写入数据
mkdir -pv /lv0 /lv1
mount /dev/vg0/lv0 /lv0
mount /dev/vg0/lv1 /lv1
lsblk
mkdir /lv0/conf /lv1/host
cp -v /etc/*.conf /lv0/conf/
cp -v /etc/host* /lv1/host/
------------------
案例2:lv0扩容 从vg0直接取空间
lvextend -L +400M /dev/vg0/lv0 在原来的空间上加上多少空间
lvs 查看lv状态信息
resize2fs /dev/vg0/lv0 文件系统扩容
df -h 查看文件系统容量
lv扩容 卷组没有空间了
1.建立新分区
fdisk -cu /dev/sdd
2.建立物理卷
pvcreate /dev/sdd /dev/sde
3.加入卷组 vg扩容
vgextend vg0 /dev/sdd /dev/sde
vgs
4.逻辑卷扩容 lv扩容
lvextend -L 2.5G /dev/vg0/lv0 指定到多少
lvs
5.文件系统扩容
resize2fs /dev/vg0/lv0
df -h
------------------
案例3:缩容
注意:
1.风险大有可能形成数据损坏
2.不能在线缩容
3.确保缩减后的空间大小依然能存储原来的全部数据
4.在缩减以前强制检查文件系统
一.如今lv1空间不足,卷组vg内没有空间,lv0空间过大,缩减lv0空间,给lv1加空间
缩减lv0 在缩减lv0以前先缩减文件系统
1.卸载
umount /dev/vg0/lv0
2.强制检查文件系统
e2fsck -f /dev/vg0/lv0
3.缩减文件系统
resize2fs /dev/vg0/lv0 100M 缩减到400M
4.缩减lv
lvreduce -L 400M /dev/vg0/lv0 缩减到400M
检查缩容后的lv1逻辑卷的数据有没有损失
1.挂载
mount /dev/vg0/lv1 /lv1
2.查看数据内容
cd /lv1
cat a.txt
给lv0扩容
lvextend -L +700M /dev/vg0/lv0
给lv0文件系统扩容
resize2fs -p /dev/vg0/lv0
----------------------------------it
案例4:xfs文件系统的扩容io
文件系统容量更新的方法与ext4略有不一样并且不支持缩容class
xfs_growfs 设备扩展
----------------------------
数据迁移
pvmove /dev/sdc
从卷组移除物理卷
vgreduce vg0 /dev/sdb
删除物理卷
pvremove /dev/sdb
删除卷组
vgremove vg0
删除逻辑卷
lvremove /dev/vg0/lv1
---------------------
删除LVM
先卸载
删除逻辑卷
删除卷组
删除物理卷
----------------------
逻辑卷管理命令大全:
分区
pvcreate
pvs
pvdisplay
pvscan
pvmove
pvremove
vgcreate
vgs
vgdisplay
vgscan
vgextend
vgreduce
vgremove
lvcreate
lvs
lvdisplay
lvscan
lvextend
lvreduce
lvremove
gc