LVM逻辑卷与磁盘配额
一、LVM逻辑卷
1、LVM概述
LVM(Logical Volume Manager,逻辑卷管理)重点在于可以弹性地调整文件系统的容量,需要文件的读写性能或是数据的可靠性,LVM可以整合多个物理分区,让这些分区看起来像是一块磁盘一样,能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性。
注意:/boot分区用于存放引导文件,不能基于LVM创建
2、 LVM机制的基本概念(可结合末尾关系图进行理解)
2.1 PE(Physical Extent,物理扩展块)
VM默认使用4MB的PE数据块,它是整个LVM中最小的存储数据单位,也就是说我们的文件数据都是借由写入PE来完成的
2.2 PV ( Physical Volume, 物理卷)
物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(PE),从而构成物理卷。物理卷一般直接使用设备文件名称,例如:/dev/sdb1、/dev/sdc1、/dev/sdd 等。
2.3 VG (Volume Group, 卷组)
由一个或多个物理卷组成一个整体,即称为卷组,许多个物理卷可以分别组成不同的卷组,卷组的名称可以由我们自行定义,在卷组中可以随时根据需求动态地添加或移除物理卷。
2.4 LV (Logical Volume,逻辑卷)
逻辑卷基于PE建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一个整体,从卷组中分割出的一块空间,形成逻辑卷。使用mkfs 等工具可在逻辑卷上创建文件系统,就可以挂载到Linux系统中的目录下使用。
分区的优点:
- 优化读写性能
- 实现磁盘空间配额限制
- 提高修复速度
- 隔离系统和程序
- 安装多个OS
- 采用不同文件系统
分区的缺点:
- 只能使用一块硬盘的空间
- 如果过分区必须是连续的空间
- 如果一旦分区不能改变大小(不能随意改变大小,删除分区会造成数据丢失)
什么是逻辑卷
将硬盘拆分成最小单位PE,然后组成逻辑卷
建立逻辑卷
- .要有物理磁盘:物理卷(分区 可以是一整块硬盘)
- 将多个物理卷组合成 卷组的容量是从物理卷中提取
- 建立逻辑卷的容量是从卷组当中提取
/dev/sdc 表示整块硬盘
/dev/sdc1 表示一个分区
注意使用分区作为物理卷,分区一定要是8e 格式
实际应用
配置逻辑卷
实验步骤
步骤一:划立分区
[root@localhost ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x8fd606b5 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): Using default response p 分区号 (1-4,默认 1): 起始 扇区 (2048-125829119,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-125829119,默认为 125829119):+10G 分区 1 已设置为 Linux 类型,大小设为 10 GiB 命令(输入 m 获取帮助):N Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): Using default response p 分区号 (2-4,默认 2): 起始 扇区 (20973568-125829119,默认为 20973568): 将使用默认值 20973568 Last 扇区, +扇区 or +size{K,M,G} (20973568-125829119,默认为 125829119):+10G 分区 2 已设置为 Linux 类型,大小设为 10 GiB 命令(输入 m 获取帮助):N Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): Using default response p 分区号 (3,4,默认 3): 起始 扇区 (41945088-125829119,默认为 41945088): 将使用默认值 41945088 Last 扇区, +扇区 or +size{K,M,G} (41945088-125829119,默认为 125829119):+10G 分区 3 已设置为 Linux 类型,大小设为 10 GiB 命令(输入 m 获取帮助): 命令(输入 m 获取帮助):N Partition type: p primary (3 primary, 0 extended, 1 free) e extended Select (default e): Using default response e 已选择分区 4 起始 扇区 (62916608-125829119,默认为 62916608): 将使用默认值 62916608 Last 扇区, +扇区 or +size{K,M,G} (62916608-125829119,默认为 125829119):+10G 分区 4 已设置为 Extended 类型,大小设为 10 GiB 命令(输入 m 获取帮助):W The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 60G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 59G 0 part ├─centos-root 253:0 0 38.3G 0 lvm / ├─centos-swap 253:1 0 2G 0 lvm [SWAP] └─centos-home 253:2 0 18.7G 0 lvm /home sdb 8:16 0 60G 0 disk ├─sdb1 8:17 0 10G 0 part ├─sdb2 8:18 0 10G 0 part ├─sdb3 8:19 0 10G 0 part └─sdb4 8:20 0 1K 0 part sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64
步骤二:建立物理卷
[root@localhost ~]# pvcreate /dev/sd{b1,c} //创建物理卷 Physical volume "/dev/sdb1" successfully created. Physical volume "/dev/sdbc" successfully created.
![](/i/l/?n=22&i=blog/2964633/202209/2964633-20220928152056106-954200487.png)
步骤三:建立卷组
[root@localhost ~]# vgcreate vg0 /dev/sd{b1,c} //创建卷组 Volume group "vg0" successfully created
步骤四:建立逻辑卷
[root@localhost ~]# lvcreate -L 10G -n xhz vg0 //建立逻辑卷 Logical volume "xhz" created.
步骤五:建立文件系统
[root@localhost ~]# mkfs.xfs /dev/vg0/xhz //建立xfs文件系统 meta-data=/dev/vg0/xhz isize=512 agcount=4, agsize=655360 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=2621440, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
![](/i/l/?n=22&i=blog/2964633/202209/2964633-20220928152850299-996902403.png)
步骤六:挂载
[root@localhost ~]# mount /dev/vg0/xhz /mnt/ //将逻辑卷挂载到/mnt下 [root@localhost ~]# df -Th ////查看磁盘信息 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root xfs 39G 4.9G 34G 13% / devtmpfs devtmpfs 897M 0 897M 0% /dev tmpfs tmpfs 912M 0 912M 0% /dev/shm tmpfs tmpfs 912M 9.0M 903M 1% /run tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda1 xfs 1014M 179M 836M 18% /boot /dev/mapper/centos-home xfs 19G 37M 19G 1% /home tmpfs tmpfs 183M 32K 183M 1% /run/user/0 /dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64 /dev/mapper/vg0-xhz xfs 10G 33M 10G 1% /mnt
逻辑卷扩容
实验内容:
现要求将ky再扩容10G
实验步骤:
步骤一:给卷组扩容(原本卷组没有足够空间)
[root@localhost ~]# vgextend vg0 /dev/sdb3 //为vg0 增加一个物理卷 Physical volume "/dev/sdb3" successfully created. Volume group "vg0" successfully extended
步骤二:给卷组扩容
[root@localhost ~]# lvextend -r -L +10G /dev/vg0/xhz Size of logical volume vg0/xhz changed from 10.00 GiB (2560 extents) to 20.00 GiB (5120 extents). Logical volume vg0/xhz successfully resized. [root@localhost ~]# df -Th 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root xfs 39G 4.9G 34G 13% / devtmpfs devtmpfs 897M 0 897M 0% /dev tmpfs tmpfs 912M 0 912M 0% /dev/shm tmpfs tmpfs 912M 9.0M 903M 1% /run tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda1 xfs 1014M 179M 836M 18% /boot /dev/mapper/centos-home xfs 19G 37M 19G 1% /home tmpfs tmpfs 183M 32K 183M 1% /run/user/0 /dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64 /dev/mapper/vg0-ky xfs 20G 33M 20G 1% /mnt //查看磁盘信息,已经扩容成功
注意: lvextend -L +10G /dev/vg0/ky 如果是xfs文件系统要使用挂载点刷新 xfs_growfs /mnt 如果是ext4的格式需要刷新逻辑卷 resize2fs /dev/vg0/ky -r 直接扩容