LVM的配置与管理

LVM介绍

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

为什么要使用LVM

在日常工作或者学习中,随着电脑的不断被使用,我们的磁盘空间可能会越来越小,这时候,我们不能直接更换大硬盘,因为硬盘有价,数据无价,这时候我们就可以使用LVM,LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,和硬件相关的存储设置被其隐藏,你能不用停止应用或卸载文件系统来调整卷大小或数据迁移.这样能减少操作成本,LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

LVM工作机制

LVM就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。

LVM逻辑卷操作

LVM逻辑卷创建流程

创建分区创建物理卷创建卷组创建逻辑卷格式化逻辑卷挂载

磁盘分区

使用fdisk命令对sdb进行分区操作,分出两个大小为5 GB的分区

[root@localhost ~]# fdisk /dev/sdb 
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x9e46a7c2.
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x9e46a7c2
   Device Boot      Start         End      Blocks   Id  System
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +5G
Partition 1 of type Linux and of size 5 GiB is set
Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2): 
First sector (10487808-41943039, default 10487808): 
Using default value 10487808
Last sector, +sectors or +size{K,M,G} (10487808-41943039, default 41943039): +5G  
Partition 2 of type Linux and of size 5 GiB is set
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x9e46a7c2
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux
/dev/sdb2        10487808    20973567     5242880   83  Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 19.5G  0 part 
├─centos-root 253:0    0 17.5G  0 lvm  /
└─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
├─sdb1            8:17   0    5G  0 part 
└─sdb2            8:18   0    5G  0 part 
sr0              11:0    1    4G  0 rom

部署逻辑卷

一般而言,在生产环境中无法精确地评估每个硬盘分区在日后的使用情况,因此会导致 原先分配的硬盘分区不够用。比如,伴随着业务量的增加,用于存放交易记录的数据库目录 的体积也随之增加;因为分析并记录用户的行为从而导致日志目录的体积不断变大,这些都 会导致原有的硬盘分区在使用上捉襟见肘。而且,还存在对较大的硬盘分区进行精简缩容的 情况。 我们可以通过部署 LVM 来解决上述问题。部署 LVM 时,需要逐个配置物理卷、卷组和逻辑卷。

为了避免多个实验之间相互发生冲突,请大家自行将虚拟机还原到初始状态,并在虚拟 机中添加两块新硬盘设备,然后开机。 在虚拟机中添加两块新硬盘设备的目的,是为了更好地演示 LVM 理念中用户无需关 心底层物理硬盘设备的特性。我们先对这两块新硬盘进行创建物理卷的操作,可以将该操 作简单理解成让硬盘设备支持 LVM 技术,或者理解成是把硬盘设备加入到 LVM 技术可 用的硬件资源池中,然后对这两块硬盘进行卷组合并,卷组的名称可以由用户来自定义。 接下来,根据需求把合并后的卷组切割出一个约为 150MB 的逻辑卷设备,最后把这个逻 辑卷设备格式化成 EXT4 文件系统后挂载使用 。

1.让新添加的两块硬盘设备支持 LVM 技术。

pvcrate /dev/sdb/ /dev/sdc

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

创建卷组(名为storage)

vgcrate storage /dev/sdb /devsdc

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

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

lvcrate -n vo -L 150M storage

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

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

mkfs.ext4 /dev/storage/vo 

5. 查看挂载状态,并写入到配置文件,使其永久生效 。

df -h
vim /etc/fstab
/dev/storage/vo   /LVM     defaults 0 0

扩容逻辑卷

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

1. 扩容前请一定要记得卸载设备和挂载点的关联 。

umount -LVM

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

lvextend -L 290M /dev/storage/vo

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

efsck -f /dev/storage/vo
resize2fs /dev/storage/vo

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

mount -a
df -h

缩小逻辑卷

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

1.在执行缩容操作前记得先把文件系统卸载掉。

umount /LVM

2. 检查文件系统的完整性。

e2fsck -f /dev/storage/vo

3. 把逻辑卷 vo 的容量减小到 120MB 。

resize2fs -L 120M /dev/storage/vo

4. 重新挂载文件系统并查看系统状态。

mount -a
df -h

删除逻辑卷

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

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

umount /LVM
vim /etc/fstsb

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

lvremove /dev/storage/vo
y

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

vgremove storage

4. 删除物理卷设备。

pvremove /dev/sdb /dev/sdc

在上述操作执行完毕之后,再执行 lvdisplay、vgdisplay、pvdisplay 命令来查看 LVM 的信 息时就不会再看到信息了

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值