lvm逻辑卷

2021-11-05

why lvm

lvm全称为logical volume manager,即逻辑卷管理。

因为硬件层实现的RAID阵列扩展起来不够灵活,所以故引入了一个中间层,在软件层面对磁盘资源进行再一次的组织管理。

纸上得来终觉浅,马上来看看怎么玩。

对了,在此之前,再贴一下之前写过的和lvm相关的一些概念

- PV(physical volume):OS识别到的物理磁盘
- VG(volume group):多个PV的集合,卷组
- PP(physical partition):将VG分割成逻辑上连续的小块,但物理上不一定连续
- LP:逻辑区块。多个PP的集合
- LV:多个LP组成的逻辑卷

开始吧

第一件事情,先创建几个磁盘分区,用于制作PV。重复三次

[root@jayice ~]# fdisk /dev/sdb
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1):1
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +1G

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

看看成功没:

[root@jayice ~]# fdisk -l
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         132     1060258+  8e  Linux LVM
/dev/sdb2             133         264     1060290   8e  Linux LVM
/dev/sdb3             265         396     1060290   8e  Linux LVM

nice

接下来就可以基于这三个分区制作PV了,非常简单

[root@jayice ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
[root@jayice ~]# pvcreate /dev/sdb2
  Physical volume "/dev/sdb2" successfully created.
[root@jayice ~]# pvcreate /dev/sdb3
  Physical volume "/dev/sdb3" successfully created.

然后用这三个PV制作成一个VG

[root@jayice ~]# vgcreate volume-group /dev/sdb1 /dev/sdb2 /dev/sdb3
--- Volume group ---
VG Name               volume-group
System ID
Format                lvm2
Metadata Areas        3
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                3
Act PV                3
VG Size               3.02 GiB
PE Size               4.00 MiB
Total PE              774
Alloc PE / Size       0 / 0
Free  PE / Size       774 / 3.02 GiB
VG UUID               wqd7pE-ktAz-lEJD-qu7c-TK8s-dJ7s-hU8Jk0

还不能在VG上直接初始化文件系统,还得在VG之上创建逻辑卷LV

[root@jayice ~]# lvcreate -L 100M -n lv-1 volume-group ## 创建一个100m大小,名为lv-1的逻辑卷

然后在这个逻辑卷上格式化一个ext4文件系统,然后挂载到/lvm-test中,之后就可以在上面读写数据了

[root@jayice ~]# mkfs.ext4 /dev/volume-group/lv-1
[root@jayice ~]# mount /dev/volume-group/lv-1 /lvm-test/ 

前面说了,lvm的出现很大部分原因就是扩展性,然后来给这个lv扩下容

[root@jayice ~]# umount /lvm-test   ## 卸载
[root@jayice ~]# lvresize -L 500M /dev/volume-group/lv-1  ## 修改设置,扩容到500M
[root@jayice ~]# resize2fs /dev/volume-group/lv-1  ## 执行修改

然后看下

[root@jayice ~]# lvdisplay
---Logical volume ---
LV Name/dev/volume-group/lv-1
VG Name volume-group
LV UUID 5eEdFY-8Eei-DH6s-n&j8-Y8jY-s7ao-7giGiw
LV WriteAccess read/write
LV Status available
# open 0
LV Size 500.00MiB
Current LE 50
Segments1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2

nice!

简单玩了下而已……