LVM分区管理总结

LVM分区管理

  • 首先我们进行LVM分区操作前,先要认识LVM具体是什么东西, LVM是Logical Volume Manage 逻辑管理卷的缩写,他是Linux对磁盘管理的一种机制,对比普通的磁盘管理方式的优势在于LVM可以调整各个分区的大小,不过过程也更复杂,只要你有足够的资源。

本次配置
系统:Centos 7

文章目录

  • LVM分区管理
    • LVM的基本组成部分如下:
      • 使用LVM新增文件挂载
      • 使用LVM扩容
      • 使用LVM压缩系统空间
      • 使用LVM增加swap空间

LVM的基本组成部分如下:

  • 物理卷 (PV)
    一个可供存储LVM的块设备. 例如: 一块硬盘, 一个MBR或GPT分区, 一个回环文件, 一个被内核映射的设备 (例如 dm-crypt).它包含一个特殊的LVM头。
  • 卷组 (VG)
    物理卷的一个组,作为存放逻辑卷的容器。 PEs are allocated from a VG for a LV.
  • 逻辑卷 (LV)
    "虚拟/逻辑卷"存放在一个卷组中并由物理块组成。是一个类似于物理设备的块设备,例如,你可以直接在它上面创建一个文件系统文件系统。
  • 物理块 (PE)
    一个卷组中最小的连续区域(默认为4 MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。

在管理分区前我们先要清楚pv\vg\lv\pe之间的组成关系,下面我们用一张图概括他们之间的关系
LVM分区管理总结_第1张图片
对比旧的分区模式分区设备直接就可以生成文件系统来讲相对复杂很多,但是LVM的管理更加合理,再我看来如果分区出现问题或大小不满足要求时,不需要重装系统那么复杂,总结一句话LVM更加多样化。

使用LVM新增文件挂载

  1. 新建设备一个1G的设备
[root@CentosSystem ~]# fdisk /dev/sda 
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

命令(输入 m 获取帮助):n	#新增
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p	 #主分区
分区号 (3,4,默认 3):3		
起始 扇区 (29769728-41943039,默认为 29769728):
将使用默认值 29769728
Last 扇区, +扇区 or +size{K,M,G} (29769728-41943039,默认为 41943039):+1G		#大小1G
分区 3 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):t	#修改设备类型
分区号 (1-3,默认 3):3
Hex 代码(输入 L 列出所有代码):8e	#8e为Linux LVM类型
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@CentosSystem ~]# partprobe 	#同步磁盘
[root@CentosSystem ~]#
  1. 创建物理卷
[root@CentosSystem ~]# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.
  1. 新增卷组
[root@CentosSystem ~]# vgcreate vg_tmp /dev/sda3
  Volume group "vg_tmp" successfully created
[root@CentosSystem ~]# vgdisplay vg_tmp
  --- Volume group ---
  VG Name               vg_tmp
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               1020.00 MiB
  PE Size               4.00 MiB		#物理块PE大小默认是4M,参数 -s 修改默认大小
  Total PE              255
  Alloc PE / Size       0 / 0   
  Free  PE / Size       255 / 1020.00 MiB
  VG UUID               V05xBv-NS3I-D1kG-5cWk-bjVK-iK7p-ksYm6m
  1. 新增逻辑卷
 [root@CentosSystem ~]# lvcreate -L 100M vg_tmp -n lv_tmp  #新建一个大小100M 名字为lv_tmp的逻辑卷
  Logical volume "lv_tmp" created.
 [root@CentosSystem ~]# lvdisplay /dev/vg_tmp/lv_tmp  
  --- Logical volume ---
  LV Path                /dev/vg_tmp/lv_tmp
  LV Name                lv_tmp
  VG Name                vg_tmp
  LV UUID                0ed4K8-57Pd-K1MJ-ImW9-GL94-JiJy-yGK8o9
  LV Write Access        read/write
  LV Creation host, time CentosSystem, 2020-04-05 20:58:55 +0800
  LV Status              available
  # open                 0
  LV Size                100.00 MiB
  Current LE             25
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3
  1. 格式化逻辑卷和挂载
[root@CentosSystem ~]# mkfs.ext4 /dev/vg_tmp/lv_tmp   #格式化逻辑卷
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=33685504
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

[root@CentosSystem ~]# mount /dev/vg_tmp/lv_tmp /mnt/tmp/		#挂载,需要一直生效则写入/etc/fstab 文件
[root@CentosSystem ~]# df /mnt/tmp/	#挂载完成
文件系统                  1K-块  已用  可用 已用% 挂载点
/dev/mapper/vg_tmp-lv_tmp 95054  1550 86336    2% /mnt/tmp

使用LVM扩容

在上面的环境将 /mnt/tmp 新增100M空间,方式有两种,如下:

  1. 如果卷组空间足够直接使用lvextend修改逻辑卷大小
[root@CentosSystem ~]# lvextend -L 200M /dev/vg_tmp/lv_tmp    #-L 加至200M
#  lvextend -l +100%FREE  /dev/vg_tmp/lv_tmp	添加全部
  Size of logical volume vg_tmp/lv_tmp changed from 100.00 MiB (25 extents) to 200.00 MiB (50 extents).
  Logical volume vg_tmp/lv_tmp successfully resized.
[root@CentosSystem ~]# resize2fs /dev/mapper/vg_tmp-lv_tmp   #刷新分区大小
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/vg_tmp-lv_tmp is mounted on /mnt/tmp; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mapper/vg_tmp-lv_tmp is now 204800 blocks long.

[root@CentosSystem ~]# df -h /mnt/tmp/
文件系统                   容量  已用  可用 已用% 挂载点
/dev/mapper/vg_tmp-lv_tmp  190M  1.6M  178M    1% /mnt/tmp
  1. 如果卷组空间不够,需要添加物理卷扩大卷组空间,再重复上面一步
[root@CentosSystem ~]# vgextend vg_tmp /dev/sda5	#把/dev/sda5加入卷组vg_tmp 
  Volume group "vg_tmp" successfully extended

这里可能会出现个问题就是resize2fs找不到有效的文件系统,可以改用xfs_growfs

使用LVM压缩系统空间

待补充

使用LVM增加swap空间

前面部分和第一部分一致,创建逻辑卷

  1. 新增swap空间
[root@CentosSystem ~]# mkswap /dev/vg_tmp/lv_swap 
正在设置交换空间版本 1,大小 = 102396 KiB
无标签,UUID=027c2712-1695-4ac3-9815-442785c02ee3
  1. 启用swap空间
[root@CentosSystem ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1819         874          80          20         864         749
Swap:          2047           4        2043
[root@CentosSystem ~]# swapon /dev/vg_tmp/lv_swap   	#启用新增swap空间
[root@CentosSystem ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1819         874          80          20         864         749
Swap:          2147           4        2143

参考:ArchLinux

你可能感兴趣的:(Linux学习笔记)