LVM逻辑卷管理器,部署逻辑卷,扩容逻辑卷,缩小逻辑卷,删除逻辑卷


1.LVM逻辑卷管理器

    硬盘设备管理技术虽然能够有效地提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署为RAID 磁盘阵列之后,再想修改硬盘分区大小就不容易了。换句话说,当用户想要随着实际需求的变化调整硬盘分区的大小时,会受到硬盘“灵活性”的限制。这时就需要用到另外一项非常普及的硬盘设备资源管理技术——LVM(Logical Vvolume Manager,逻辑卷管理器)_LVM允许用户对硬盘资源进行动态调整。

    逻辑卷管理器是Linux系统对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户无须关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。LVM的技术架构如图所示。  

 

物理卷处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列。卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。这就是LVM的核心理念。

2.部署逻辑卷

   一般而言,在生产环境中无法精确地预估每个硬盘分区在日后的使用情况,因此会导致原先分配的硬盘分区不够用。比如,伴随着业务量的增加,用于存放交易记录的数据库目录的体积也随之增加;分析并记录用户的行为导致日志目录的体积不断变大,这些都会导致原有的硬盘分区在使用上捉襟见肘。另外,还存在对较大的硬盘分区进行精简缩容的情况。

   可以通过部署LVM来解决上述问题。部署LVM时,需要逐个配置物理卷、卷组和逻辑卷。常用的部署命令如表5-2所示。

功能/命令

物理卷管理

卷组管理

逻辑卷管理

扫描

pvscan

vgscan

lvscan

建立

pvcreate

vgcreate

lvcreate

显示

pvdisplay

vgdisplay

lvdisplay

删除

pvremove

vgremove

lvremove

扩展

----

vgextend

lvextend

缩小

----

vgreduce

lvreduce

为了避免多个实验之间的冲突,请大家自行将虚拟机还原到初始状态,并在虚拟机中添加两块新硬盘设备,然后开机,如图所示。

 

在虚拟机中添加多块新硬盘设备的目的,是更好地演示LVM理念中用户无需关心底层物理硬盘设备的特性。我们先对添加的两块新硬盘进行创建物理卷的操作,可以将该操作简单理解成让硬盘设备支持LVM技术,或者理解成把硬盘设备加入到LVM技术可用的硬件资源池中,然后对这两块硬盘进行卷组合并,卷组的名称可以由用户自定义。接下来,根据需求把合并后的卷组切割出一个约为150MB的逻辑卷设备,最后把这个逻辑卷设备格式化成EXT4 文件系统后挂载使用。在下文中,将对每一个步骤再作一些简单的描述。
1)让新添加的两块硬盘设备支持LVM技术。

[root@localhost ~]# pvcreate /dev/sdb /dev/sdc

  Physical volume "/dev/sdb" successfully created.

  Physical volume "/dev/sdc" successfully created.


(2)把两块硬盘设备加入到 storage 卷组中,然后查看卷组的状态.

[root@localhost ~]# vgcreate storage /dev/sdb /dev/sdc

  Volume group "storage" successfully created

[root@localhost ~]# vgdisplay

   

  --- Volume group ---

  VG Name               centos

 ....

  VG Size               <36.34 GiB

  PE Size               4.00 MiB

  Total PE              9303

     (3)切割出一个约为150MB的逻辑卷设备。

这里需要注意切割单位的问题。在对逻辑卷进行切割时有两种计量单位。第一种是以容量为单位,所使用的参数为-L。例如,使用“-L150M”生成一个大小为150MB的逻辑卷。另外一种是以基本单元的个数为单位,所使用的参数为-1。每个基本单元的大小默认为4MB。例如,使用“137”可以生成一个大小为37x4=148MB的逻辑卷。

[root@localhost ~]# lvcreate -n vo -l 37 storage

  Logical volume "vo" created.



[root@localhost ~]# lvdisplay

  --- Logical volume ---

 ......

  # open                 0

  LV Size                148.00 MiB

  Current LE             37

  Segments               1

 ......



(4)把生成好的逻辑卷进行格式化,然后挂载使用。

       Linux 系统会把LVM中的逻辑卷设备存放在/dev设备目录中(实际上是做了一个符号链接),同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件(即/dev/卷组名称/逻辑卷名称)。

[root@localhost ~]# mkfs.ext4 /dev/storage/vo

mke2fs 1.42.9 (28-Dec-2013)

文件系统标签=

OS type: Linux

块大小=1024 (log=0)

分块大小=1024 (log=0)

Stride=0 blocks, Stripe width=0 blocks

38000 inodes, 151552 blocks

7577 blocks (5.00%) reserved for the super user

第一个数据块=1

Maximum filesystem blocks=33816576

19 block groups

8192 blocks per group, 8192 fragments per group

2000 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@localhost ~]# mkdir /bobby

[root@localhost ~]# mount /dev/storage/vo /bobby

  1. 查番特载状态,并写人配置文件,使其永久生效(做下个实验时一定要

    状态)。

[root@localhost ~]# df -h

文件系统                 容量  已用  可用 已用% 挂载点

/dev/mapper/centos-root  9.4G   77M  9.3G    1% /

devtmpfs                 470M     0  470M    0% /dev

tmpfs                    487M     0  487M    0% /dev/shm

tmpfs                    487M  8.6M  478M    2% /run

tmpfs                    487M     0  487M    0% /sys/fs/cgroup

/dev/mapper/centos-usr   7.5G  3.6G  4.0G   48% /usr

/dev/sda1                283M  148M  135M   53% /boot

/dev/mapper/centos-home  7.5G   33M  7.5G    1% /home

/dev/mapper/centos-var   7.5G  162M  7.3G    3% /var

/dev/mapper/centos-tmp   953M   33M  921M    4% /tmp

tmpfs                     98M  4.0K   98M    1% /run/user/42

tmpfs                     98M   20K   98M    1% /run/user/0

/dev/sr0                 4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64

/dev/mapper/storage-vo   140M  1.6M  128M    2% /bobby

[root@localhost ~]# echo "/dev/storage/vo  /bobby  ext4  defaults  00">>/etc/fstab

3.扩容逻辑卷

    在前面的实验中,卷组是由两块硬盘设备共同组成的。用户在使用存储设备时感觉不到设备底层的架构和布局,更不用关心底层是由多少块硬盘组成的,只要卷组中有足够的资源,就可以一直为逻辑卷扩容。扩容前请一定要记得卸载设备和挂载点的关联。

[root@localhost ~]# umount /bobby
1)增加新的物理卷到卷组。
    当卷组中没有足够的空间分配给逻辑卷时,可以用给卷组增加物理卷的方法来增加卷组的空间。下面先增加/dev/sdd磁盘支持LVM技术,再将/dev/sdd物理卷加到storage卷组。

[root@localhost ~]# pvcreate /dev/sdd

  Physical volume "/dev/sdd" successfully created.

[root@localhost ~]# vgextend storage /dev/sdd

  Volume group "storage" successfully extended

[root@localhost ~]# vgdisplay

(2)把上一个实验中的逻辑卷vo扩展至290MB。

[root@localhost ~]# lvextend -L 290M /dev/storage/vo

  Rounding size to boundary between physical extents: 292.00 MiB.

  Size of logical volume storage/vo changed from 148.00 MiB (37 extents) to 292.00 MiB (73 extents).

  Logical volume storage/vo successfully resized.

(3)检查硬盘完整性,并重置硬盘容量。

[root@localhost ~]# e2fsck -f /dev/storage/vo

e2fsck 1.42.9 (28-Dec-2013)

第一步: 检查inode,块,和大小

第二步: 检查目录结构

第3步: 检查目录连接性

Pass 4: Checking reference counts

第5步: 检查簇概要信息

/dev/storage/vo: 11/38000 files (0.0% non-contiguous), 10453/151552 blocks

[root@localhost ~]# resize2fs /dev/storage/vo

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/storage/vo to 299008 (1k) blocks.

The filesystem on /dev/storage/vo is now 299008 blocks long.

(4)重新挂载硬盘设备并查看挂载状态。

[root@localhost ~]# mount -a

[root@localhost ~]# df -h

文件系统                 容量  已用  可用 已用% 挂载点

/dev/mapper/centos-root  9.4G   77M  9.3G    1% /

devtmpfs                 470M     0  470M    0% /dev

tmpfs                    487M     0  487M    0% /dev/shm

tmpfs                    487M  8.6M  478M    2% /run

tmpfs                    487M     0  487M    0% /sys/fs/cgroup

/dev/mapper/centos-usr   7.5G  3.6G  4.0G   48% /usr

/dev/sda1                283M  148M  135M   53% /boot

/dev/mapper/centos-home  7.5G   33M  7.5G    1% /home

/dev/mapper/centos-var   7.5G  162M  7.3G    3% /var

/dev/mapper/centos-tmp   953M   33M  921M    4% /tmp

tmpfs                     98M  4.0K   98M    1% /run/user/42

tmpfs                     98M   28K   98M    1% /run/user/0

/dev/sr0                 4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64

/dev/mapper/storage-vo   279M  2.1M  259M    1% /bobby

4.缩小逻辑卷

    相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其丢失数据的风险更大。所以在生产环境中执行相应操作时,一定要提前备份好数据。另外Linux系统规定,在对LVM逻辑卷进行缩容操作之前,要先检查文件系统的完整性(当然这也是为了保证我们的数据安全)。在执行缩容操作前记得先把文件系统卸载掉。

[root@localhost ~]# umount /bobby

(1)检查文件系统的完整性。

[root@localhost ~]# e2fsck -f /dev/storage/vo


(2)把逻辑卷vo的容量减小到120MB

[root@localhost ~]# resize2fs /dev/storage/vo 120M

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/storage/vo to 122880 (1k) blocks.

The filesystem on /dev/storage/vo is now 122880 blocks long.

[root@localhost ~]# lvreduce -L 120M /dev/storage/vo

  WARNING: Reducing active logical volume to 120.00 MiB.

  THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce storage/vo? [y/n]: y

  Size of logical volume storage/vo changed from 292.00 MiB (73 extents) to 120.00 MiB (30 extents).

  Logical volume storage/vo successfully resized.

(3)重新挂载文件系统并查看系统状态

[root@localhost ~]# mount -a

[root@localhost ~]# df -h

文件系统                 容量  已用  可用 已用% 挂载点

/dev/mapper/centos-root  9.4G   77M  9.3G    1% /

devtmpfs                 470M     0  470M    0% /dev

tmpfs                    487M     0  487M    0% /dev/shm

tmpfs                    487M  8.6M  478M    2% /run

tmpfs                    487M     0  487M    0% /sys/fs/cgroup

/dev/mapper/centos-usr   7.5G  3.6G  4.0G   48% /usr

/dev/sda1                283M  148M  135M   53% /boot

/dev/mapper/centos-home  7.5G   33M  7.5G    1% /home

/dev/mapper/centos-var   7.5G  162M  7.3G    3% /var

/dev/mapper/centos-tmp   953M   33M  921M    4% /tmp

tmpfs                     98M  4.0K   98M    1% /run/user/42

tmpfs                     98M   28K   98M    1% /run/user/0

/dev/sr0                 4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64

/dev/mapper/storage-vo   113M  1.6M  103M    2% /bobby                   //删除,或在前面加上#

4.删除逻辑卷

    当生产环境中想要重新部署 LVM或者不再需要使用LVM时,则需要执行LVM的删除操作。为此,需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒。

(1)取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。

[root@localhost ~]# umount /bobby

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


/dev/storage/vo  /bobby  ext5  defaults  0 0

#/dev/storage/vo  /bobby  ext5  defaults  0 0   //删除,或在前面加上#

~                                                                                                


(2)删除逻辑卷设备需要输入y来确认操作。

[root@localhost ~]# lvremove /dev/storage/vo

Do you really want to remove active logical volume storage/vo? [y/n]: y

  Logical volume "vo" successfully removed


(3)删除卷组,此处只写卷组名称即可,不需要设备的绝对路径。

[root@localhost ~]# vgremove storage

  Volume group "storage" successfully removed


(4)删除物理卷设备。

[root@localhost ~]# pvremove /dev/sdb /dev/sdc

  Labels on physical volume "/dev/sdb" successfully wiped.

  Labels on physical volume "/dev/sdc" successfully wiped.
在上述操作执行完毕之后,再执行1vdisplay、vgdisplay、pvdisplay命令来查看LVM的信

息时就不会再看到信息了(前提是上述步骤的操作是正确的)。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻傻的心动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值