LVM的工作原理
LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。管理员利用LVM可以在磁盘不用重新分区的情况下动态调整文件系统的大小,并且利用LVM管理的文件系统可以跨越磁盘,当服务器添加了新的磁盘后,管理员不必将原有的文件移动到新的磁盘上,而是通过LVM可以直接扩展文件系统跨越磁盘
它就是通过将底层的物理硬盘封装起来,然后以逻辑卷的方式呈现给上层应用。在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。
逻辑卷管理的核心在于如何处理我们系统中安装的硬盘及其分区,对于我们的逻辑卷管理器来说,把硬盘当作物理卷来看
创建LVM的基本步骤
1) 先做物理卷 pvcreate /dev/sdb
2) 把不同的物理卷加入到卷组当中 vgcreate datavg /dev/sdb1
3) 创建逻辑卷 lvcreate
4) 格式化文件系统 mkfs.xfs
5)创建挂载点并进行挂载 mount
详细步骤(前提条件)*
1.创建LVM的准备磁盘
[root@localhost ~]# fdisk -l 查看使用的磁盘
磁盘 /dev/sdc:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x748cc319
设备 Boot Start End Blocks Id System
/dev/sdc2 206848 209715199 104754176 5 Extended
/dev/sdc5 208896 2306047 1048576 8e Linux LVM
[root@localhost ~]# fdisk /dev/sdc
创建sdc6
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 1 extended, 3 free)
l logical (numbered from 5)
Select (default p): l
添加逻辑分区 6
起始 扇区 (2308096-209715199,默认为 2308096):
将使用默认值 2308096
Last 扇区, +扇区 or +size{K,M,G} (2308096-209715199,默认为 209715199):+100M
分区 6 已设置为 Linux 类型,大小设为 100 MiB
创建sdc7
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 1 extended, 3 free)
l logical (numbered from 5)
Select (default p): l
添加逻辑分区 7
起始 扇区 (2514944-209715199,默认为 2514944):
将使用默认值 2514944
Last 扇区, +扇区 or +size{K,M,G} (2514944-209715199,默认为 209715199):+100M
分区 7 已设置为 Linux 类型,大小设为 100 MiB
保存
命令(输入 m 获取帮助):W
刷新磁盘
[root@localhost ~]# partprobe /dev/sdc
打印查看磁盘,此时格式为LIUNX,需要转为LVM格式,方可被LVM识别
[root@localhost ~]# fdisk /dev/sdc
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x748cc319
设备 Boot Start End Blocks Id System
/dev/sdc2 206848 209715199 104754176 5 Extended
/dev/sdc5 208896 2306047 1048576 8e Linux LVM
/dev/sdc6 2308096 2512895 102400 83 Linux
/dev/sdc7 2514944 2719743 102400 83 Linux
把磁盘格式转为LVM
命令(输入 m 获取帮助):t
分区号 (2,5-7,默认 7):6
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):t
分区号 (2,5-7,默认 7):7
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x748cc319
设备 Boot Start End Blocks Id System
/dev/sdc2 206848 209715199 104754176 5 Extended
/dev/sdc5 208896 2306047 1048576 8e Linux LVM
/dev/sdc6 2308096 2512895 102400 8e Linux LVM
/dev/sdc7 2514944 2719743 102400 8e Linux LVM
到这里,为LVM部署的硬盘已经准备好
2.先做物理卷 pvcreate /dev/sdc
[root@localhost ~]# pvcreate /dev/sdc6
Physical volume "/dev/sdc6" successfully created.
[root@localhost ~]# pvcreate /dev/sdc7
Physical volume "/dev/sdc7" successfully created.
[root@localhost ~]# pvs 查看磁盘加入情况
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 6.00g 0
/dev/sdb1 centos lvm2 a-- 6.00g 0
/dev/sdc5 lvm2 --- 1.00g 1.00g
/dev/sdc6 lvm2 --- 100.00m 100.00m
/dev/sdc7 lvm2 --- 100.00m 100.00m
[root@localhost ~]# pvdisplay 详细信息
"/dev/sdc6" is a new physical volume of "100.00 MiB"
--- NEW Physical volume ---
PV Name /dev/sdc6
VG Name
PV Size 100.00 MiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID y2CVYC-NK9j-ldkx-Wk8N-kHG0-1JYM-m0W5Oz
3.把不同的物理卷加入到卷组当中
[root@localhost ~]# vgcreate datavg /dev/sdc6 /dev/sdc7 //把sdc6 sdc7加入到datavg的卷组中
Volume group "datavg" successfully created
查看卷组磁盘信息
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz--n- 12.00g 0
datavg 2 0 0 wz--n- 192.00m 192.00m
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 6.00g 0
/dev/sdb1 centos lvm2 a-- 6.00g 0
/dev/sdc5 lvm2 --- 1.00g 1.00g
/dev/sdc6 datavg lvm2 a-- 96.00m 96.00m
/dev/sdc7 datavg lvm2 a-- 96.00m 96.00m
3。 创建逻辑卷 lvcreate
[root@localhost ~]# lvcreate -n(逻辑卷名) waslv -L(需要分配空间大小) 100M datavg (使用哪个卷组的空间进行分配)
Logical volume "waslv" created.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 10.00g
swap centos -wi-ao---- 2.00g
waslv datavg -wi-a----- 100.00m
4.格式化文件系统 mkfs.xfs
[root@localhost ~]# mkfs.xfs /dev/datavg/waslv
meta-data=/dev/datavg/waslv isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
5.创建挂载点并进行挂载 mount
[root@localhost ~]# mkdir waslv
[root@localhost ~]# mount /dev/datavg/waslv waslv/
查看创建情况
[root@localhost ~]# df -Th waslv/
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/datavg-waslv xfs 97M 5.2M 92M 6% /root/waslv
至此,LVM建立完成