LVM与直接使用物理存储相比,有以下优点:
1. 灵活的容量.
当使用逻辑卷时,文件系统可以扩展到多个磁盘上,你可以聚合多个磁盘或磁盘分区成单一的逻辑卷.
2. 方便的设备命名
逻辑卷可以按你觉得方便的方式来起任何名称.
3.磁盘条块化.
你可以生成一个逻辑盘,它的数据可以被条块化存储在2个或更多的磁盘上.这样可以明显提升数据吞吐量.
创建逻辑卷的步骤:
硬盘(PE) --> 物理卷(PV) -->卷组(VG)--> 逻辑卷(LV)
常用命令:
lsbkd 查看磁盘使用情况
pvcreate //创建物理卷
vgcreate //创建卷组
lvcreate //创建逻辑卷
实验1:创建一块名为date,大小为1500M的逻辑卷,并挂载使用.
1.添加sata硬盘一块,大小任意
使用lsblk可以查看到刚添加的5G硬盘
2.使用fdisk命令创建一个主分区
[root@serverA ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x0f27b892 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):n //n 新建分区
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):p //p 新建主分区
分区号 (1-4, 默认 1): 1
第一个扇区 (2048-10485759, 默认 2048):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-10485759, 默认 10485759): +3G //分区的大小
创建了一个新分区 1,类型为“Linux”,大小为 3 GiB。
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e //选择8e分区类型
已将分区“Linux”的类型更改为“Linux LVM”。
命令(输入 m 获取帮助):p //p 查看新建分区
Disk /dev/sda:5 GiB,5368709120 字节,10485760 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0f27b892
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 2048 6293503 6291456 3G 8e Linux LVM
命令(输入 m 获取帮助):w //w 保存所创建的磁盘
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
lsblk再次查看
3.pvcreate 创建物理卷
[root@serverA ~]# pvcreate /dev/sda1 //创建物理卷
Physical volume "/dev/sda1" successfully created.
[root@serverA ~]# pvs //查看物理卷
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p2 rhel lvm2 a-- <19.00g 0
/dev/sda1 lvm2 --- 3.00g 3.00g
4.vgcreate 创建卷组
语法:vgcreate -s 块大小 卷名 物理卷
[root@serverA ~]# vgcreate -s 15M database /dev/sda1 // -s 指定块大小
Volume group "database" successfully created
[root@serverA ~]# vgs
VG #PV #LV #SN Attr VSize VFree
database 1 0 0 wz--n- <2.99g <2.99g
rhel 1 2 0 wz--n- <19.00g 0
5.lvcreate 创建逻辑卷
语法:lvcreate -l 块数量 -n 逻辑卷名 卷组
因磁盘本身会占用一部分空间,所以这里选择给103个卷组块。103*15=1545
[root@serverA ~]# lvcreate -l 103 -n data database
Logical volume "data" created.
[root@serverA ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data database -wi-a----- <1.51g
lsblk查看
6.格式化逻辑卷,格式化为ext4类型
[root@serverA ~]# mkfs.ext4 /dev/database/data
mkfs.ext 4.1 (2017-01-24)
[root@serverA ~]# blkid /dev/mapper/database-data //查看逻辑卷详细信息,复制这条UUID
/dev/mapper/database-data: UUID="1c200cab-7cb0-4c4c-9065-1daf1fed6e9b" TYPE="ext4"
7.创建挂载点,挂载逻辑卷
[root@serverA ~]# cd /mnt/
[root@serverA mnt]# mkdir lvm
[root@serverA mnt]# ls
lvm
[root@serverA ~]# vim /etc/fstab
在最后面添加
UUID="4AEB-8BEC" /mnt/lvm vfat defaults 0 0
[root@serverA ~]# mount -a //刷新挂载
逻辑卷已经可以正常使用
实验二:将data逻辑卷大小调整为2G
1.查看database卷组还剩多少空间,空间是够的
[root@serverA ~]# vgdisplay
--- Volume group ---
VG Name database
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <2.99 GiB //一共2.99G
PE Size 15.00 MiB
Total PE 204
Alloc PE / Size 103 / <1.51 GiB
Free PE / Size 101 / <1.48 GiB //还剩余1.48G
VG UUID ZZKMLv-XtWF-r7eV-H7x3-sKon-jyyT-UZN3eh
2.lvextend 调整逻辑卷
[root@serverA ~]# lvextend -L 2G /dev/database/data
Rounding size to boundary between physical extents: <2.01 GiB.
Size of logical volume database/data changed from <1.51 GiB (103 extents) to <2.01 GiB (137 extents).
Logical volume database/data successfully resized.
3.同步文件系统容量到内核
[root@serverA ~]# resize2fs /dev/mapper/database-data