使用kickstart和CentOS/RHEL 7/8中的示例配置Thin Provision LVM

时间:2020-01-09 10:37:48  来源:igfitidea点击:

在本文中,我将分享针对RHEL 7和RHEL 8的"使用带有示例的kickstart实例配置精简配置LVM的步骤"

什么是LVM精简配置?

创建LV时会分配标准逻辑卷中的块,但是在精简配置的逻辑卷中写入时会分配它们。
因此,精简配置的LV具有虚拟大小,并且可能比物理可用存储大得多。
以后可以根据需要增加为精简配置的LV提供的物理存储量。
标准LV中的块是从VG分配的(在创建过程中),而精简LV中的块是从特殊的精简池LV分配的(使用过程中)。
精简池LV包含物理存储块,精简LV中的块只是精简池LV中的参考块。

在较早的文章中,我分享了各种示例,这些示例使用具有不同存储和网络布局的kickstart执行PXE安装。

配置精简配置LVM

要配置精简配置LVM,必须先创建精简池LV,然后才能其中创建精简LV。

通过组合两个标准LV来创建精简池LV:

  • 大数据LV,将容纳用于薄LV的块,并且

  • 将保存元数据的元数据LV。

元数据跟踪哪些数据块属于每个精简LV。

示例Kickstart文件

在我的示例中,我有一个磁盘sda,我计划在该磁盘上使用基于kickstart的安装配置精简配置LVM。
现在,以下片段仅包含kickstart文件的一部分。
我们可以参考我的其他文章,以获取完整的示例kickstart配置文件的摘要。

# System bootloader configuration
bootloader --location=mbr --driveorder=sda --append="rhgb novga console=ttyS0,115200 console=tty0"
# Partition clearing information
clearpart --all --initlabel --drives=sda
# Disk partitioning information
part pv.746 --fstype="lvmpv" --ondisk=sda --size=1 --grow
part /boot --fstype="ext4" --ondisk=sda --size=512
part swap --fstype="swap" --ondisk=sda --size=4096
volgroup rhel --pesize=4096 pv.746
logvol none  --fstype="None" --size=1 --grow --thinpool --metadatasize=4 --chunksize=65536 --name=pool00 --vgname=rhel
logvol/--fstype="ext4" --size=40960 --thin --poolname=pool00 --name=root --vgname=rhel
logvol /home  --fstype="ext4" --size=20480 --thin --poolname=pool00 --name=home --vgname=rhel
logvol swap  --fstype="swap" --size=4096 --thin --poolname=pool00 --name=swap --vgname=rhel

在这个例子中

  • 我们在磁盘/dev/sda上创建一个物理卷pv.746
    现在,由于我们不知道磁盘的大小,我们将使用--grow参数,因此它将占用该池的所有可用空间。

-/boot分区不能是逻辑卷的一部分,因此我们将其创建为单独的标准分区

  • 创建一个卷组rhel

  • 创建思考配置LVM瘦池

  • 在" thinpool"下创建一个具有预定义大小的交换区和其他分区

说明:

其中我的节点只有一个磁盘,如果我们打算使用多个磁盘,则配置选项也会根据环境和要求而更改。

块大小

创建精简池LV时,可以使用--chunksize选项指定由精简池管理的数据块的大小。
默认单位是千字节,默认值是64KiB。
该值必须是4KiB和1GiB之间的2的幂。
当精简池主要用于精简配置功能时,较大的值是最佳的。
为了优化大量快照,较小的值可减少复制时间并占用较少的空间。

池元数据LV的大小

精简元数据的数量取决于精简LV之间共享多少块(即通过快照)。
具有许多快照的精简池可能需要较大的元数据LV。
当命令自动创建精简元数据LV时,可以使用--poolmetadatasize选项指定非默认大小。
默认单位是兆字节。

安装成功后,使用df命令验证可用分区

rhel-8:~ # df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   40G  1.8G   36G   5% /
devtmpfs                63G     0   63G   0% /dev
tmpfs                  2.0G     0  2.0G   0% /dev/shm
tmpfs                  500M  9.7M  491M   2% /run
tmpfs                   63G     0   63G   0% /sys/fs/cgroup
/dev/sda1              488M  127M  326M  28% /boot
/dev/mapper/rhel-home   20G   45M   19G   1% /home
tmpfs                  100M     0  100M   0% /run/user/1000
tmpfs                  1.0M  4.0K 1020K   1% /opt/sdf/queues
tmpfs                  100M     0  100M   0% /run/user/1003
tmpfs                  100M     0  100M   0% /run/user/1006

检查可用的逻辑卷。
我们可以看到我们的" thinpool"也配置为逻辑卷,但具有所有可用空间。

rhel-8:~ # lvs
  LV     VG   Attr       LSize    Pool   Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home   rhel Vwi-aotz-- 20.00g   pool00        8.12
  pool00 rhel twi-aotz-- <1.09t                 0.70   11.13
  root   rhel Vwi-aotz-- 40.00g   pool00        15.47
  swap   rhel Vwi-aotz-- 4096.00m pool00        0.01

检查可用的物理卷。

rhel-8:~ # pvs
  PV         VG   Fmt  Attr PSize  PFree
  /dev/sda3  rhel lvm2 a--  <1.09t    0

检查可用的卷组。

rhel-8:~ # vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  rhel   1   3   0 wz--n- <1.09t    0