LVM逻辑卷、卷组的新建及调整

LVM逻辑卷

练习:关闭虚拟机,添加一场80G 的硬盘,划分3个主分区,1个扩展分区,3个逻辑分区,每个分区10G 

传统分区的局限性:1)分区容量调整不方便

                  2)单个分区的总大小有限

LVM逻辑卷(Logical Volume Manager):

1)整合分散的空间,化零为整,把很多小分区/磁盘合并成一个大磁盘(虚拟磁盘,卷组)

2)动态伸缩,从卷组里划分逻辑定义的存储空间(虚拟分区,逻辑卷)

工作中千万不要进行空间缩减,可能会造成文件损坏。

识别硬盘 --> 分区 --> LVM管理…--> 格式化 --> 挂载

新建逻辑卷

LVM工作方式:在“分区--->格式化”中间增加的一个逻辑层

多个空闲存储(物理卷PV)--->整合的虚拟磁盘(卷组VG)--->虚拟的分区(逻辑卷LV)

面粉---------->大面团-------->小面团-------->蒸------->馒头

砖------------>楼层--------->划分空间--------->装修----->入住

        ** 逻辑分区的大小可以根据需要扩大、缩减

        ** /boot 用来存放引导文件,不能使用LVM逻辑卷(启动时会找不到内核)

Ø 物理卷(Physical Volume):零散的空闲存储

由PE(Physical Extent,基本单元)组成 【PE默认4MB】

Ø 卷组(Volume Group):由一个或多个物理卷整合而成的虚拟磁盘

Ø 逻辑卷(Logical Volume):由卷组分出来的一块逻辑存储空间(虚拟分区)

经过格式化可以建立文件系统

将多个PV(物理卷)组成VG(卷组),再从卷组中划分出LV(逻辑卷)

逻辑卷设备的路径:/dev/卷组名/逻辑卷名

LVM管理工具集

功能

物理卷管理(PV)

卷组管理(VG)

逻辑卷管理(LV)

Scan扫描

pvscan

vgscan

lvscan

Create创建

pvcreate

vgcreate

lvcreate

Display显示

pvdisplay

vgdisplay

lvdisplay

Remove删除

pvremove

vgremove

lvremove

Extend扩展

vgextend

lvextend

reduce

 

vgreduce

lvreduce

 图形化管理工具: system-config-lvm

LVM快速部署及使用

 基本思路:准备至少一个空闲分区(/dev/vdc[1-2])

 1)建立物理卷

fdisk 分区 ...  【类型 8e】

partprobe  磁盘设备 【更新分区表】

pvcreate  设备名

2)创建卷组:vgcreate 卷组名 空闲分区...

或  vgcreate -s pe大小 卷组名  空闲分区...

[root@server0 ~]# vgcreate stuvg /dev/vdc[1-2]

3)创建逻辑卷:lvcreate -L 大小 -n 逻辑卷名 卷组名 

          或   lvcreate   -l PE个数  -n  逻辑卷名  卷组名

** -L 磁盘容量(MB、GB、TB)

** 建好的逻辑卷设备位于:/dev/卷组名/逻辑卷名

[root@server0 ~]# lvcreate -L 16G -n mylv stuvg

[root@server0 ~]# lvs                 //确认结果

4)mkfs 格式化 --> mount 挂载逻辑卷的设备文件

[root@server0 ~]# ll /dev/stuvg/mylv           //为快捷方式

lrwxrwxrwx. 1 root root 7 8月  22 15:01 /dev/stuvg/mylv -> ../dm-0

[root@server0 ~]# mkfs.ext4 /dev/stuvg/mylv    //格式化逻辑卷

[root@server0 ~]# mkdir /mylvm

[root@server0 ~]# vim /etc/fstab

/dev/stuvg/mylv /mylvm ext4 defaults 0 0

[root@server0 ~]# df -h |grep mylvm            //无显示

[root@server0 ~]# mount -a                     //检测,无报错

[root@server0 ~]# df -h |grep mylvm

/dev/mapper/stuvg-mylv   16G   45M   15G    1% /mylvm

[root@server0 ~]# ll /dev/mapper/stuvg-mylv     //为快捷方式

lrwxrwxrwx. 1 root root 7 8月  22 15:02 /dev/mapper/stuvg-mylv -> ../dm-0

###############################################################################

案例2:新建一个逻辑卷

使用分区 /dev/vdb1 :新建一个名为 systemvg 的卷组;    在此卷组中创建一个名为 vo 的逻辑卷,大小为180MiB;    将逻辑卷 vo 格式化为 EXT4 文件系统;    将逻辑卷 vo 挂载到 /vo 目录,并在此目录下建立一个测试文件 votest.txt,内容为“I AM KING.”

步骤一:创建卷组

1)新建名为systemvg的卷组

    [root@server0 ~]# vgcreate  systemvg  /dev/vdb1

      Physical volume "/dev/vdb1" successfully created

      Volume group "systemvg" successfully created

2)确认结果

    [root@server0 ~]# vgscan           //也可以用vgs命令确认结果

      Reading all physical volumes.  This may take a while...

      Found volume group "systemvg" using metadata type lvm2

步骤二:创建逻辑卷

1)新建名为vo的逻辑卷

    [root@server0 ~]# lvcreate  -L  180MiB  -n  vo  systemvg 

      Logical volume "vo" created

2)确认结果

    [root@server0 ~]# lvscan

      ACTIVE            '/dev/systemvg/vo' [180.00 MiB] inherit

步骤三:格式化及挂载使用

1)格式化逻辑卷/dev/systemvg/vo

    [root@server0 ~]# mkfs.ext4  /dev/systemvg/vo

2)完成开机自动挂载逻辑卷/dev/systemvg/vo

    [root@server0 ~]# vim /etc/fstab

         /dev/systemvg/vo  /lvm ext4  defaults 0 0     再思考一下,是否有誤

    [root@server0 ~]# mkdir  /vo                              //创建挂载点

[root@server0 ~]# mount  /dev/systemvg/vo  /vo             //挂载

             也可用命令mount -a

    [root@server0 ~]# df  -hT  /vo/                         //检查结果

    Filesystem              Type  Size  Used Avail Use% Mounted on

    /dev/mapper/systemvg-vo ext4  171M  1.6M  157M   1% /vo

3)访问逻辑卷/dev/systemvg/vo

    [root@server0 ~]# cat  /vo/votest.txt

I AM KING.

步骤四:挂载

###############################################################################

LVM卷组的PE大小

  PE,Physical Extent,物理扩展单元,卷组划分空间的单位 4M

Ø 创建卷组的时候设置PE大小

格式:vgcreate  -s  PE大小  卷组名  空闲分区…

例:vgcreate  -s  16M  datastore  /dev/vdb6

Ø 创建逻辑卷的时候指定PE个数 

格式:lvcreate  -l  指定PE的个数  -n  逻辑卷名  卷组名

例:lvcreate  -l  50  -n  database  datastore

[root@server0 ~]# vgchange  -s  2M  systemvg   #修改PE的大小

[root@server0 ~]# vgdisplay systemvg         #显示卷组的详细信息

[root@server0 ~]# lvcreate -l 50 -n test02 systemvg

[root@server0 ~]# lvs

使用lvscan命令检查逻辑卷的大小,卷组名 lvscan  |  grep  逻辑卷名

创建卷组时,可以通过-s选项指定PE的大小。

在给新建的逻辑卷分配空间时,空间大小只能是PE大小的倍数

报错:Insufficient free space —— 剩余空间不足

resize2fs时提示:先执行 e2fsck  -f  /dev/systemvg/vo ...

原因:当文件系统未正常关闭、缓存未全部写入文件系统,需要filesystem  check

############################################################

案例3:调整现有磁盘的分区

应用需求

硬盘/dev/vdb剩余空间的分区调整

MBR分区模式,已有三个主分区/dev/vdb[1-3]

需要新增三个分区/dev/vdb[5-7],分区大小依次为:500MiB、2000MiB、512MiB

分别用于后续的逻辑卷扩展、新逻辑卷、交换分区

调整现有磁盘分区

需要注意的事项:分区数量3+3>4,需要建扩展分区

                 将所有的剩余空间分配给新建的扩展分区

                 从扩展分区中再新建3个逻辑分区

                 不要动原有分区、保存更改后reboot以刷新分区表

然后再基于刚建立的 2000MiB 分区构建新的 LVM 存储:

    新的逻辑卷命名为 database,大小为50个物理扩展单元(Physical Extent),属于 datastore 卷组;   在 datastore 卷组中的所有逻辑卷,其物理扩展单元(Physical Extent)的大小为16MiB;   使用 EXT3 文件系统对逻辑卷 database 格式化,此逻辑卷应该在开机时自动挂载到 /mnt/database 目录

步骤一:调整现有磁盘分区

1)新建扩展分区(使用剩余可用空间)

  p 确认原有分区表--->n新建分区--->e类型指定为e(扩展分区),只一个可用编号,自动选取--->起始位置默认回车--->结束位置默认回车--->p确认现有分区表   

2)在扩展分区中新建3个逻辑分区

创建第1个逻辑卷(由于主分区编号已用完,分区类型自动选l逻辑分区):

n ,分区编号5--->起始位置默认--->+500M ,结束位置默认

n,分区编号6--->起始位置默认--->+2000M ,结束位置默认

n,分区编号6--->起始位置默认--->+512M ,结束位置默认 

根据预计的用途调整分区类型(可选):

t,修改,--->5,第5个分区 --->8e,类型为8e(LVM)

t,修改,--->6,第6个分区 --->8e,类型为8e(LVM)

t,修改,--->7,第7个分区 --->82,类型为82(交换分区)

 确认分区结果并保存:

  p--->w保存退出--->提示重启

3)刷新分区表

    [root@server0 ~]# partprobe  /dev/vdb

    [root@server0 ~]# reboot

步骤二:新建卷组、逻辑卷

1)新建卷组datastore,指定PE大小为16MiB

[root@server0 ~]# vgcreate  -s 16MiB  datastore  /dev/vdb6

  Physical volume "/dev/vdb6" successfully created

      Volume group "datastore" successfully created

    [root@server0 ~]# vgscan                                  //确认新建的卷组

      Reading all physical volumes.  This may take a while...

       Found volume group "datastore" using metadata type lvm2

2)新建逻辑卷database,大小设置为50个PE

    [root@server0 ~]# lvcreate  -l 50  -n  database  datastore

      Logical volume "database" created

    [root@server0 ~]# lvscan                                  //确认新建的逻辑卷

      ACTIVE            '/dev/datastore/database' [800.00 MiB] inherit

步骤三:格式化及使用逻辑卷

1)格式化逻辑卷/dev/datastore/database

    [root@server0 ~]# mkfs.ext3  /dev/datastore/database

    .. ..

    Writing superblocks and filesystem accounting information: done

2)配置开机挂载

    [root@server0 ~]# mkdir  /mnt/database                     //创建挂载点

    [root@server0 ~]# vim  /etc/fstab

    .. ..

    /dev/datastore/database     /mnt/database   ext3    defaults    0 0

3)验证挂载配置

    [root@server0 ~]# mount  -a

    [root@server0 ~]# df  -hT  /mnt/database/                 //确认挂载点设备

    Filesystem                     Type  Size  Used Avail Use% Mounted on

    /dev/mapper/datastore-database ext3  772M  828K  715M   1% /mnt/database

###############################################################################

扩展逻辑卷大小

检查现有逻辑卷大小

Ø 使用lvscan命令,找到逻辑卷的大小、卷组名

     #lvscan | grep mylv

Ø 检查所在卷组的剩余空间,看是否满足扩展的需要 

     vgdisplay  卷组名  |  grep  Free

扩展卷组:当卷组的剩余空间不足时,需要先扩展卷组 

        vgextend  现有卷组名  要添加的空闲分区…

扩展逻辑卷:当卷组的剩余空间充足时,可直接扩展逻辑卷 

lvextend  -L  扩展后的空间新大小  /dev/卷组名/逻辑卷名

或者    lvextend  -L  +大小  /dev/卷组名/逻辑卷名

或者 lvextend  -l  +PE个数  /dev/卷组名/逻辑卷名 

例:lvextend  -L  300M  /dev/systemvg/vo

识别调整后的逻辑卷容量

对于已经格式化好的逻辑卷,在扩展大小以后,必须通知内核新大小。

否则,使用df工具时看到的仍然是旧大小

需要刷新文件系统容量: EXT3/4格式的设备:resize2fs  /dev/卷组名/逻辑卷名

                       XFS格式的设备:xfs_growfs  /dev/卷组名/逻辑卷名

df  -hT  挂载点

######################################

一、卷组有足够的剩余空间

1.直接扩展逻辑卷空间

[root@server0 ~]# vgs

[root@server0 ~]# lvs

[root@server0 ~]# lvextend -L 18G /dev/stuvg/mylv 

  Extending logical volume mylv to 18.00 GiB

  Logical volume mylv successfully resized

[root@server0 ~]# lvs

[root@server0 ~]# vgs

2.文件系统的扩展,刷新设备文件系统

[root@server0 ~]# df -h | grep mylvm

/dev/mapper/stuvg-mylv   16G   45M   15G    1% /mylvm

[root@server0 ~]# resize2fs /dev/stuvg/mylv 

resize2fs 1.42.9 (28-Dec-2013)

Filesystem at /dev/stuvg/mylv is mounted on /mylvm; on-line resizing required

old_desc_blocks = 2, new_desc_blocks = 3

The filesystem on /dev/stuvg/mylv is now 4718592 blocks long.

[root@server0 ~]# df -h | grep mylvm

/dev/mapper/stuvg-mylv   18G   44M   17G    1% /mylvm

二、卷组没有足够的剩余空间

1.首先扩展卷组

[root@server0 ~]# vgs

[root@server0 ~]# vgextend stuvg /dev/vdc3

  Physical volume "/dev/vdc3" successfully created

  Volume group "stuvg" successfully extended

[root@server0 ~]# vgs

2.扩展逻辑卷空间

[root@server0 ~]# vgs

[root@server0 ~]# lvs

[root@server0 ~]# lvextend -L 25G /dev/stuvg/mylv 

  Extending logical volume mylv to 25.00 GiB

  Logical volume mylv successfully resized

[root@server0 ~]# lvs

[root@server0 ~]# vgs

3.刷新扩展文件系统

[root@server0 ~]#  df -h | grep mylvm

[root@server0 ~]# resize2fs /dev/stuvg/mylv 

Filesystem at /dev/stuvg/mylv is mounted on /mylvm; on-line resizing required

old_desc_blocks = 3, new_desc_blocks = 4

The filesystem on /dev/stuvg/mylv is now 6553600 blocks long.

[root@server0 ~]#  df -h | grep mylvm

#######################################

案例4:扩展逻辑卷的大小

将逻辑卷 vo 的大小调整为 300MiB,要求如下:

    原文件系统中的内容必须保持完整

    必要时可使用之前准备的分区 /dev/vdb5 来补充空间

    注意:分区大小很少能完全符合要求的大小,所以大小在270MiB和300MiB之间都是可以接受的

步骤一:确认逻辑卷vo的信息

1)找出逻辑卷所在卷组

    [root@server0 ~]# lvscan

      ACTIVE            '/dev/systemvg/vo' [180.00 MiB] inherit

      ACTIVE            '/dev/datastore/database' [800.00 MiB] inherit

2)查看该卷组的剩余空间是否可满足扩展需要

    [root@server0 ~]# vgdisplay  systemvg

     ……

      VG Size               196.00 MiB                          //卷组总大小

      PE Size               4.00 MiB

      Total PE              49

      Alloc PE / Size       45 / 180.00 MiB

      Free  PE / Size       4 / 16.00 MiB                      //剩余空间大小

      VG UUID               czp8IJ-jihS-Ddoh-ny38-j521-5X8J-gqQfUN

此例中卷组systemvg的总大小都不够300MiB、剩余空间才16MiB,因此必须先扩展卷组。只有剩余空间足够,才可以直接扩展逻辑卷大小。

步骤二:扩展卷组

1)将提前准备的分区/dev/vdb5添加到卷组systemvg

    [root@server0 ~]# vgextend  systemvg  /dev/vdb5

      Physical volume "/dev/vdb5" successfully created

      Volume group "systemvg" successfully extended

2)确认卷组新的大小

    [root@server0 ~]# vgdisplay  systemvg

         ……

      VG Size               692.00 MiB                 //总大小已变大

      PE Size               4.00 MiB

      Total PE              173

      Alloc PE / Size       45 / 180.00 MiB

      Free  PE / Size       128 / 512.00 MiB        //剩余空间已达512MiB

      VG UUID               czp8IJ-jihS-Ddoh-ny38-j521-5X8J-gqQfUN

步骤三:扩展逻辑卷大小

1)将逻辑卷/dev/systemvg/vo的大小调整为300MiB

    [root@server0 ~]# lvextend  -L 300MiB  /dev/systemvg/vo 

      Extending logical volume vo to 300.00 MiB

      Logical volume vo successfully resized

2)确认调整结果

    [root@server0 ~]# lvscan

      ACTIVE            '/dev/systemvg/vo' [300.00 MiB] inherit

      ACTIVE            '/dev/datastore/database' [800.00 MiB] inherit

3)刷新文件系统大小

确认逻辑卷vo上的文件系统类型:

    [root@server0 ~]# blkid  /dev/systemvg/vo

    /dev/systemvg/vo: UUID="d4038749-74c3-4963-a267-94675082a48a" TYPE="ext4"

选择合适的工具刷新大小:

    [root@server0 ~]# resize2fs  /dev/systemvg/vo    #通知内核新容量

    resize2fs 1.42.9 (28-Dec-2013)

    Resizing the filesystem on /dev/systemvg/vo to 307200 (1k) blocks.

    The filesystem on /dev/systemvg/vo is now 307200 blocks long.

确认新大小(约等于300MiB):

    [root@server0 ~]# mount  /dev/systemvg/vo  /vo/

    [root@server0 ~]# df  -hT  /vo

    Filesystem              Type  Size  Used Avail Use% Mounted on

    /dev/mapper/systemvg-vo ext4  287M  2.1M  266M   1%   /vo

###############################################################################

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值