LVM基本术语: PV:物理卷,PV处于LVM系统最低层,它可以是整个硬盘,或者与磁盘分区具有相同功能的设备(如RAID),但和基本的物理存储介质相比较,多了与LVM相关管理参数
VG:卷组,创建在PV之上,由一个或多个PV组成,可以在VG上创建一个或多个“LVM分区”(逻辑卷),功能类似非LVM系统的物理硬盘
LV:逻辑卷,从VG中分割出的一块空间,创建之后其大小可以伸缩,在LV上可以创建文件系统(如/var,/home) PE:物理区域,每一个PV被划分为基本单元(也被称为PE),具有唯一编号的PE是可以被LVM寻址的最小存储单元,默认为4MB
-----------------------
使用LVM目的在于使用LV实现磁盘的动态扩容,对于生产环境下的服务器来说,如果存储数据的分区磁盘空间不够来使用LVM扩容
我目前使用的条件:虚拟机添加新的虚拟硬盘
[root@air ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)
虚拟机实验 加硬盘,格式化新硬盘,fdisk创建新分区,更新分区,创建pv,vg,lv,mount挂载,df查看,使用,常用命令
一、LV的创建步骤
1)添加硬盘或者创建分区,通知内核(此实验使用新虚拟硬盘创建新分区)
2)创建物理卷(pvcreate)
3)创建卷组(vgcreate)
4)创建逻辑卷(lvcreate)
5)创建文件系统(mkfs.ext4)
6)挂载使用(mkdir;mount)
1)添加新虚拟硬盘并创建分区
新虚拟硬盘再次虚拟机上为sdb
[root@air dev]# mount /dev/sdb /mnt/
mount: /dev/sdb 写保护,将以只读方式挂载
mount: 未知的文件系统类型“(null)”
[root@air dev]# mount: 未知的文件系统类型“(null)” //不格式化会报错,执行下面命令格式化文件系统
[root@air dev]# mkfs.ext4 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
524288 inodes, 2097152 blocks
104857 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2147483648
64 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
-----------------------------------------------------
fdisk /dev/sdb //fdisk 是Linux磁盘分区工具
...
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 83 Linux
/dev/sdb3 4196352 6293503 1048576 83 Linux
]# partprobe 输入命令实现更新, partprobe命令用于重读分区表
2)创建PV物理卷
[root@air ~]# pvcreate /dev/sdb[123] //添加刚刚创建好的分区为物理卷
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
Physical volume "/dev/sdb3" successfully created.
从卷组VG里移除PV
]# vgreduce vg01 /dev/sdb1
Physical volume "/dev/sdb1" still in use //因为在使用中所以不可以移除
删除PV
pvremove /dev/sdb1
3)创建VG卷组
1.vgcreate 卷组名 物理卷列表
~]# vgcreate vg01 /dev/sdb1 //现在只将sdb1加入卷组
2.给卷组添加PV
~]# vgextend vg01 /dev/sdb2 //sdb2 需要先使用fdisk先创建
Volume group "vg01 successfully extended
3.从卷组中移除pv —— vgreduce 卷组名 物理卷
注意:只能够移除未划分给lv的物理卷,否则会报如下错误
~]# vgreduce vg0 /dev/sdb2
Physical volume "/dev/sdb2" still in use
4)创建LV逻辑卷
1.创建逻辑卷 LV
~]# lvcreate -L 500m -n lv01 vg01
[root@air dev]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <8.00g
swap centos -wi-a----- 1.00g
lv01 vg01 -wi-a----- 500.00m
2.扩展LV
命令:lvextend -L +500m /dev/lv01/lv01 //lvextend 表示增加500M,视卷组容量而定
lvresize -L 5G /dev/lv01/lv01 //lvresize表示增加到5G,是调整后的容量,视卷组容量而定
2、检查文件系统
命令:fsck -f /dev/vg01/lv01
3.给逻辑卷创建文件系统
~]# mkfs.ext4 /dev/vg01/lv01
~]# mount /dev/vg01/lv01 /mnt/lv01
~]# cd /mnt/lv01/
~]# ls
lost+found
lv01]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 484M 0 484M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.9M 489M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/mapper/centos-root 8.0G 1.9G 6.2G 23% /
/dev/sda1 1014M 163M 852M 16% /boot
tmpfs 100M 0 100M 0% /run/user/0
/dev/mapper/vg01-lv01 499M 1.1M 477M 1% /mnt/lv01 //此处数据和逻辑卷不一样是我创建虚拟机LV的数据和上述内容不同
扩展
lv拉伸的步骤
a、确定你要拉伸的空间的大小
b、查看lv所属的卷组剩余空间的大小 vgs
c、如果卷组空间充足,直接可以扩lv,如果卷组空间不足,添加硬盘或者创建分区,创建pv,将pv加入到vg,然后再扩lv
d、扩展文件系统的大小
e、验证
df -h (在线扩容的)
(2)lv的回缩步骤 一般做的少
a、如果lv是挂载的,那么先卸载掉
b、回缩文件系统的大小
c、缩小lv的空间大小
d、挂载使用,验证
二, 查看PV/VG/LV信息
scan 扫描 |
pvscan |
vgscan |
lvscan |
create 创建 |
pvcreate |
vgcreate |
lvcreate |
display显示 |
pvdisplay |
vgdisplay |
lvdisplay |
remove 移除 |
pvremove |
vgremove |
lvremove |
extend 扩展 |
|
vgextend |
lvextend |
reduce减少 |
|
vgreduce |
lvreduce |