linux中LVM逻辑卷管理

本文介绍了Linux系统中逻辑卷(LVM)管理的概念,LVM由PV、VG、LV三种元素组成,能更灵活管理磁盘。还阐述了实现LVM的步骤,包括新建PV、创建VG和LV,以及对它们进行增删、格式化和挂载等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、逻辑卷(LVM)逻辑卷管理的概念

LVM是Linux系统对磁盘分区进行管理的一种方式,使用它可以让你更灵活的管理你的磁盘,LVM是由PV(physical volume,物理卷)、VG(volume group,卷组)、LV(logical volume,逻辑卷)三种元素组成。

  1. PV(pythsical volume,物理卷):
    PV是由分区构成的,通常我们在多块硬盘的环境中把一块硬盘格式化成一个主分区后,然后把这块硬盘做成PV,在只有一块硬盘的情况下,我们就把这块硬盘上的某一分区做成PV,由于只有一块硬盘,所以我就把硬盘划分为四个主要的分区,一个“/boot”,一个“/”分区, 一个“/swap”分区,最后把剩下的部分做成一个主分区,然后把主分区做成一个PV。加入到VG里,又从VG里划分LV,也就组成了LVM。
  2. VG(volume group,卷组)
    VG是由若干个PV组成的,它的作用就是把PV集中到一块在进行划分
  3. LV(logical volume,逻辑卷)
    LV就是从VG划分出来的卷,它可以在你所用的卷不够的情况下增加其容量,就像windows中的逻辑磁盘,不过windows中的逻辑磁盘不能随心所欲的增减或减少磁盘的容量,而LV可以。下面就是PV、VG和LV之间的关系图。
    在这里插入图片描述
    从上图我们可以轻易的看出他们之间的关系,例如:假如我们有三块磁盘:50G、20G、100G,我们可以把他们做成一个LVM类型的磁盘,首先我们将三块磁盘进行分区并格式化,将其做成PV,然后将其做成PV,新建一个VG,将上面这三块磁盘转换成的PV加入到VG里,最后我们就把这个VG当成一块170G的硬盘来使用。当硬盘只有一块时,我们可以如下图来划分分区:
    在这里插入图片描述
    上面就是我的系统的硬盘分区情况,首先划了一个"/boot"分区,然后是“swap”,最后是根“/"分区。后面的空间空下了,然后装好系统后,把空下的空间分为了一个主分区,把这个分区做成一个PV,然后新建一个VG卷组,把做成的PV加入到VG中,最后从VG中划分LV。

二、如何实现LVM

首先新建PV,但是在新建PV之前要对硬盘进行分区,然后转换分区类型(转换成Linux LVM类型,类型代号为8e),可以使用fdisk工具来进行分区并转换分区类型,转好了后新建PV,建好之后可以使用“pvscan”命令来扫描一下系统中 有没有PV,也可以输入pvdisplay来查看更为详细的信息

root@paas:~# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.
root@paas:~# pvcreate /dev/sda4
  Physical volume "/dev/sda4" successfully created.
root@paas:~# pvdisplay 
  "/dev/sda3" is a new physical volume of "5.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda3
  VG Name               
  PV Size               5.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               5WOf9Y-xHKb-DYog-0e2e-vNvt-4JV0-esI9aN
   
  "/dev/sda4" is a new physical volume of "5.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda4
  VG Name               
  PV Size               5.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               Lk2gEK-eDjP-mNtX-rDnw-Q20l-CRR4-K5J1Wp

2,创建VG,创建VG可以输入命令vgcreate + vg名称 +分区建立分区号的意思就是把上面创建好的PV加入到VG里,建好之后可以使用vgscan和vgdisplay来查看VG的详细信息

root@paas:~# vgcreate vg01 /dev/sda3
Volume group "vg01" successfully created
root@paas:~# vgdisplay 
--- Volume group ---
VG Name               vg01
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               <5.00 GiB
PE Size               4.00 MiB
Total PE              1279
Alloc PE / Size       0 / 0   
Free  PE / Size       1279 / <5.00 GiB
VG UUID               Xq5cIf-v9Mh-DToz-Vc01-Coxu-MSGq-08qGg1

我们还可以使用命令vgextend + vg名称 + 分区额外的向VG中添加PV,也可以用vgreduce+VG名+分区命令来移除PV。

root@paas:~# vgextend vg01 /dev/sda4
  Volume group "vg01" successfully extended
root@paas:~# vgdisplay 
  --- Volume group ---
  VG Name               vg01
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               9.99 GiB
  PE Size               4.00 MiB
  Total PE              2558
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2558 / 9.99 GiB
  VG UUID               Xq5cIf-v9Mh-DToz-Vc01-Coxu-MSGq-08qGg1
  1. 创建LV,可以使用命令lvcreate -L SIZE -n LV名 + VG名来建立。可以使用lvdisplay和lvsacn来查看LV的详细信息
root@paas:~# lvcreate -L 5G -n lv_bei01 vg01 
  Logical volume "lv_bei01" created.
root@paas:~# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg01/lv_bei01
  LV Name                lv_bei01
  VG Name                vg01
  LV UUID                f0Zdos-bMJp-TrTf-zu1C-beiO-x2mS-BcaNIB
  LV Write Access        read/write
  LV Creation host, time paas, 2019-05-19 10:08:04 +0800
  LV Status              available
  # open                 0
  LV Size                5.00 GiB
  Current LE             1280
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

创建好可以通过命令lvextend -L +Size(就是增加多少空间)+LV的绝对路径来增加LV的空间大小。也可以通过lvreduce -L -Size(就是减小多少空间)+LV的绝对路径来减少LV的空间大小

root@paas:~# lvextend -L +1G /dev/vg01/lv_bei01 
  Size of logical volume vg01/lv_bei01 changed from 5.00 GiB (1280 extents) to 6.00 GiB (1536 extents).
  Logical volume vg01/lv_bei01 successfully resized.
root@paas:~# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg01/lv_bei01
  LV Name                lv_bei01
  VG Name                vg01
  LV UUID                f0Zdos-bMJp-TrTf-zu1C-beiO-x2mS-BcaNIB
  LV Write Access        read/write
  LV Creation host, time paas, 2019-05-19 10:08:04 +0800
  LV Status              available
  # open                 0
  LV Size                6.00 GiB
  Current LE             1536
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
root@paas:~# lvreduce -L -1G /dev/vg01/lv_bei01 
  WARNING: Reducing active logical volume to 5.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg01/lv_bei01? [y/n]: y
  Size of logical volume vg01/lv_bei01 changed from 6.00 GiB (1536 extents) to 5.00 GiB (1280 extents).
  Logical volume vg01/lv_bei01 successfully resized.
root@paas:~# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg01/lv_bei01
  LV Name                lv_bei01
  VG Name                vg01
  LV UUID                f0Zdos-bMJp-TrTf-zu1C-beiO-x2mS-BcaNIB
  LV Write Access        read/write
  LV Creation host, time paas, 2019-05-19 10:08:04 +0800
  LV Status              available
  # open                 0
  LV Size                5.00 GiB
  Current LE             1280
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
  1. 以上的PV、VG、LV、都可以通过pvremove +分区号、vgremove +VG名称、lvremove +lv的绝对路径(如lvremove /dev/vg_liwei/lv_liwei命令来删除

做完以上的这一切以后,通过命令“mkfs.ext3 +LV的路径”来格式化分区,然后进行挂载后就可以用了
转自http://blog.chinaunix.net/uid-23511971-id-320264.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值