lvm 原理
===================
lvm 逻辑卷技术
RAID磁盘阵列技术,提高硬盘的读写效率,以及数据的安全,RAID 的缺点在于
-当你配置好了 RAID 磁盘阵列组,容量的大小,已经是限定了,如果你存储的业务非常多,磁盘容量不够用的问题就会出现,你想就会非常痛苦,麻烦。
-不同的磁盘分区,相对都是独立的,没有任何的联系,可能空间利用率很低。
- 如果某一个分区满了,默认磁盘管理是无法扩容的,只能重新的分区,重新分配容量大小,创建文件系统,很是麻烦。
- 如果你要合并分区,还是得重新格式化磁盘分区,还得进行数据备份,麻烦!
lvm (logical volume manager) 逻辑卷管理技术
lvm技术他是将一个或多个硬盘在逻辑上进行了合并,相当于一个大的硬盘去使用,当你的硬盘空间不够了的话,可以直接去其他硬盘中拿来容量去使用,这就是一个动态的磁盘容量管理技术。
lvm相对于普通的磁盘分区,有较大的灵活性,当一个磁盘空间不够了,可能就会造成很多的麻烦。
lvm 的使用方法
- 基于分区形式创建 lvm
硬盘的多个分区,由 lvm 统一进行管理为卷组,可以弹性的调整卷组大小,加入新硬盘,可以充分的利用磁盘容量。
文件系统是创建在逻辑卷上,逻辑卷可以根据需求改变大小(总容量控制在卷组中)
- 基于硬盘创建 lvm
多块硬盘做成逻辑卷,将整个逻辑卷统一管理,对分区进行动态的扩容,
lvm 的常见名词:
PP (physical partition),物理分区,lvm 直接创建在物理分区之上
PV (physical volume) , 物理卷,处于 lvm 的最底层,一般一个 PV 对应一个 PP
PE (physical extends) , 物理区域,PV中可以用于分配的最小存储单位,同一个VG所有的PV中的PE大小相同,例如 1M, ,2M
VG (volume group) , 卷组,卷组创建在PV之上,可以划分为多个PV,
LE(logical extends) , 逻辑扩展单元,LE是组成LV的基本单元,一个LE对应一个PE
LV(logical volume) , 逻辑卷,创建在VG之上,是一个可以动态扩容的分区概念
LVM 原理
- lvm 动态扩容大小,其实就是通过互相交换 PE 的过程,达到能够弹性扩容分区大小
- 想要减少空间容量,就是剔除 PE 的大小
- 想要扩大容量,就是把其他的 PE 添加到自己的 LV当中
- PE 默认大小一般都是 4M,LVM最多是可以创建出 65534 个 PE ,因此 LVM最大的 VG 卷组单位是 256GB
- PE 其实是 LVM最小的存储单位,类似于操作系统的 block (4k)
- LV逻辑卷的概念 (理解为普通的分区概念,/dev/sda /dev/sdb )
LVM 动态调整空间使用
==========
实际创建 LVM 的过程
lvm 优点:
- lvm 的文件系统可以跨越多个磁盘,分区大小不受磁盘容量限制
- lvm 可以在系统运行中,直接动态扩容文件系统大小
- lvm 可以直接增加新的硬盘,到 lvm 的 VG 卷组中
lvm 创建流程:
1.物理分区阶段,针对物理磁盘或者分区,进行 fdisk 格式化,修改系统的 id ,默认是 83 (十六进制类型) ,改为8e (动态)类型 ,是 lvm 类型
2. PV 阶段,通过 pvcreate(创建),pvdisplay(显示) 将 linux 分区改为物理卷 PV
3. 创建 VG 的阶段,通过 vgcreate(创建),vgdisplay(显示),将创建好的物理卷 PV 改为 物理卷组 VG
4. 创建 LV 的阶段,通过 lvcreate(创建),lvdisplay(显示),将 物理卷组 VG,分为若干个 LV 逻辑卷
转化为命令操作就是这样的过程:
1. 使用 fdisk 命令,修改磁盘的系统 id
2. 创建 PV,pvcreate(创建),以及显示 PV 信息 pvdisplay 也可以直接输入 pvs 查看简单 pv 的信息。
3. 创建 VG 卷组,vgcreate(创建),vgs 显示 VG 卷组信息
4. 创建 LV 逻辑卷,lvcreate(创建),lvs 显示 LV 逻辑卷信息
5. 开始格式化文件系统,使用 LV 分区了
LVM 的管理常见命令:
PV 物理卷
pvcreate 创建 PV 物理卷
pvscan 扫描 PV 物理卷信息
pvs 查看 PV 物理卷简单的信息
pvdisplay 显示 PV 各个物理卷详细参数
pvremove 删除 PV 物理卷
LV 逻辑卷
lvcreate 创建 LV 逻辑卷
lvscan 扫描 LV 逻辑卷信息
lvs 查看 LV 逻辑卷简单的信息
lvdisplay 显示 LV 各个逻辑卷详细参数
lvremove 删除 LV 逻辑卷
lvreduce 缩小 LV 逻辑卷,把 VG 逻辑卷组从 LV 逻辑卷中移除
lvextend 扩容 LV 逻辑卷,把某个新的 VG 逻辑卷组,加入到 LV 逻辑卷中
VG 逻辑卷组
vgcreate 创建 VG 逻辑卷组
vgscan 扫描 VG 逻辑卷组信息
vgs 查看 VG 逻辑卷组简单的信息
vgdisplay 显示 VG 各个逻辑卷组详细参数
vgremove 删除 VG 逻辑卷组 删除整个 VG 逻辑卷组
vgreduce 缩小 VG 逻辑卷组,把物理卷从逻辑卷组中移除
vgextend 扩容 VG 逻辑卷组,把某个新的 PV 物理卷,加入到 VG 逻辑卷组中
========
实际创建 lvm 命令笔记:
挑选 /dev/sdf /dev/sdg 两块硬盘,创建物理卷,然后添加至逻辑卷组
1. 创建 PV 物理卷
2. 创建 VG 逻辑卷组
3. 可以分别查看 PV 和 VG 的信息 pvs pvscan pvdisplay vgs vgscan vgdisplay
4. 尝试扩容,或者缩小 vg 逻辑卷组
扩容命令:
第一步:买来一块新硬盘,然后创建物理卷 命令 pvcreate /dev/sdh 检查一下物理卷的信息 命令 pvs
第二步:把新创建的 sdh 物理卷,加入扩容到逻辑卷组 longchivg1 中 命令 vgextend longchivg1 /dev/sdh
5. 显示一下卷组的信息,容量等 命令 vgdisplay
6. 还可以缩小卷组的大小,剔除 /dev/sdh 命令 vgreduce longchivg1 /dev/sdh
7. 删除 /dev/sdh 的物理卷 命令 pvremove /dev/sdh
8. 使用此时的卷组(longchivg1),创建逻辑卷,进行使用 /dev/sdf /dev/sdg
命令:lvcreate -n lv1 -L +2000M longchivg1
参数详解:
'-n ' 指定创建 LV 逻辑卷名称
'-L' 指定创建 LV 逻辑卷大小
9. 检查 LV 的信息 lvs lvdisplay
10. 对刚创建的 lv1 逻辑卷进行格式化文件系统
命令 mkfs.xfs /dev/longchivg1/lv1 (centos7) mkfs.ext4 /dev/longchivg1/lv1(ubuntu)
11. 向 lv1 逻辑卷中,进行挂载,以及数据写入 (就可以当一个普通分区来使用了) mkdir longchi_lv1
命令 root@longchi:~# mkdir /longchi_lv1 root@longchi:~# mount /dev/longchivg1/lv1 /longchi_lv1
echo "/dev/longchivg1/lv1 /longchi_lv1 ext4 defaults 0 0" >> /etc/fstab
将挂载信息,写入开机自动挂载文件(/etc/fstab)中,以后就不需要每次都 mount 了
root@longchi:~# tail -1 /etc/fstab
/dev/longchivg1/lv1 /longchi_lv1 ext4 defaults 0 0
通过命令,直接读取 /etc/fstab ,自动挂载所有设备
root@longchi:~# mount -l | grep lv1
12. 向磁盘中写入数据,查看空间容量 echo {1..10000000} > /longchi_lv1/test.txt
root@longchi:~# ls /longchi_lv1/
lost+found test.txt test.txt.1 test.txt.2 test.txt.3
root@longchi:~# df -hT
向 /etc/fstab 文件中写入 开机自动挂载 命令
echo "/dev/longchivg1/lv1 /longchi_lv1 ext4 defaults 0 0" >> /etc/fstab
# 查看本机上包含sd的磁盘
root@longchi:~# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi
# 安装 lvm2 的命令: apt install lvm2
root@longchi:~# pvcreate /dev/sdf /dev/sdg
Command 'pvcreate' not found, but can be installed with:
apt install lvm2
root@longchi:~# apt install lvm2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
crda
Use 'apt autoremove' to remove it.
The following additional packages will be installed:
dmeventd libaio1 libdevmapper-event1.02.1 liblvm2cmd2.03 thin-provisioning-tools
The following NEW packages will be installed:
dmeventd libaio1 libdevmapper-event1.02.1 liblvm2cmd2.03 lvm2 thin-provisioning-tools
0 upgraded, 6 newly installed, 0 to remove and 29 not upgraded.
Need to get 2395 kB of archives.
After this operation, 8959 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://us.archive.ubuntu.com/ubuntu jammy/mai

本文介绍了LVM逻辑卷管理技术,对比了RAID磁盘阵列技术的缺点,阐述了LVM可动态管理磁盘容量的优势。详细说明了LVM的使用方法、常见名词、原理,还介绍了LVM的创建流程、管理命令,以及实际创建和操作LVM的命令笔记,包括扩容、删除等操作。
最低0.47元/天 解锁文章
1057

被折叠的 条评论
为什么被折叠?



