专栏首页洁癖是一只狗Linux 环境下LVM 逻辑卷的建立、扩容和减容操作

Linux 环境下LVM 逻辑卷的建立、扩容和减容操作

相信参过Linux 系统运维面试的人都知道,考官必问的一道题就是怎么使用lvm来新建一个文件系统。如果你答不上来,哈哈,那么不客气, 你的面试几乎就结束了

。。。。。

既然LVM这么重要,那今天我们就来谈谈Linux 里面常说的LVM。。。

什么是LVM?

LVM是逻辑卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制。

为什么要使用LVM?

直接使用fdisk分区挂载的话,随着时间的推移,数据量越来越大,硬盘空间越来越小,要想扩充容量的话,就必须挂载新硬盘然后做数据迁移,这就必然导致前台业务的停止,不符合企业需求,因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。Linux提供的逻辑盘卷管理(LVM,Logical Volume Manager)机制就是一个完美的解决方案。

LVM逻辑卷管理通过将底层物理硬盘抽象封装起来,以逻辑卷的形式表现给上层系统,逻辑卷的大小可以动态调整,而且不会丢失现有数据。新加入的硬盘也不会改变现有上层的逻辑卷,大大提高了磁盘管理的灵活性。

LVM 基本术语:

物理卷(PV, Physical Volume)

物理卷就是指磁盘,磁盘分区或从逻辑上和磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有和LVM相关的管理参数。

比如你新添加了一块磁盘 /dev/sdb, 那么你可以将整块磁盘/dev/sdb 标记成一个PV,也可以先对/dev/sdb 分区,如分了两个主分区/dev/sdb1 和 /dev/sdb2 ,然后将这两个分区/dev/sdb1 和 /dev/sdb2 分别标记成一个PV。

卷组(VG, Volume Group)

LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成,相当于磁盘容量总和的一个存储池。能在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。

逻辑卷(LV, Logical Volume)

LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上能建立文件系统(比如/tmp或/var等)。

PE(physical extent):

每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。

总的来说, 使用LVM 机制创建一个LV 的过程是:一块硬盘(物理存储介质)被格式化为物理卷(physical volume),其内部被分成若干个默认大小为4M的PE(physical extent),然后在PV的基础上创建卷组(Volume Group),可以把一个或者多个PV加到VG中,VG就好像一个空间池,假如多少个PV,VG就有多大的容量,最后基于VG创建逻辑卷(logical volume) ,一个逻辑卷就是若干个PE,然后将LV格式化再挂载(将LV当成传统磁盘划分里面的磁盘分区)。

简单画一个图,应该还是很好理解的:

说了这么多,不如让我们的简单的动手操作一下,看看这个LVM 到底是怎么创建文件系统的。

应用一:使用lvm 创建一个文件系统 /test

1. 准备磁盘:新添加一块2G 的磁盘

但是遇到一个小情况,添加完磁盘后系统并没有识别到新添加的那块磁盘。这怎么办呢?别着急, 你可以使用下面的命令,让系统识别你新添加的那块磁盘:

cd /sys/class/scsi_host

ls //看到有三个目录 host0 , host1, host2

echo "- - -" > host0/scan

echo "- - -" > host1/scan

echo "- - -" > host2/scan

当运行完上面的命令后,可以神奇的发现 使用lsblk 竟然可以看到新添加的那块磁盘/dev/sdc 啦。

2. 然后我们就可以对磁盘进行分区啦。(也可以不分区, 看具体的需要,因为我不想把这个盘全部分给一个文件系统, 所以我创建了分区,让磁盘还剩余一些空间留着以后使用。)

我们新建两个主分区 , 分别是/dev/sdc1 和 /dev/sdc2

命令:fdisk /dev/sdc

3. 使用pvcreate 命令创建PV:

命令:pvcreate /dev/sdc1

pvcreate /dev/sdc2

记住:可以用pvs 命令查看系统所有的PV。若想查看PV的详细信息请用pvdisplay 命令。

4. 使用vgcreate 命令创建VG:

命令:vgcreate testvg /dev/sdc1 /dev/sdc2

//创建的vg 名字叫testvg ,将两个PV /dev/sdc1 和 /dev/sdc2 加到了新创建的这个VG。

所以现在VG的空间就是 /dev/sdc1 和 /dev/sdc2 的空间的总和。

记住:可以用vgs命令 查看系统所有的VG。同样,若想查看VG的详细信息请用vgdisplay 命令。

5. 使用lvcreate 命令创建LV:

命令:lvcreate -L 200M -n teslv testvg

//创建的lv 名字叫testlv ,大小200M,属于testvg。

同样可以用lvs命令 查看系统所有的LV。若想查看LV的详细信息请用lvdisplay 命令。

6. 格式化lv:

命令:mkfs.ext4 /dev/testvg/testlv

//将 /dev/testvg/testlv 格式化成ext4 的文件系统类型

7. 创建挂载点,设置开机挂载

命令: mkdir /test //创建挂载点为 /test

vim /etc/fstab //编辑/etc/fstab 文件设置开机自动挂载,具体内容行参考以下截图

mount -a //挂载/etc/fstab 里面的内容

df -hT /test //测试是否挂载成功

/etc/fstab 文件关于 testlv 开机自动挂载到/test 的设置如下:

应用二:将/test 文件系统从原来的100M 扩展到150M ,实现在线扩容

命令:lvextend -L 150M /dev/testvg/testlv

同样的,当VG 空间用满的时候你也可以用vgextend 命令扩展VG 的空间,从而扩展LV 的空间。

应用三:将/test 文件系统从原来的150M 缩减到80M

1. 卸载已经挂载的逻辑卷

命令:umount /test

2. 缩小文件系统

命令:resize2fs /dev/testvg/testlv 100M

这个时候我们的逻辑卷的文件系统已经被缩小为100M了,接下来我们就可以缩小我们的逻辑卷的大小了。

3. 缩小LV

因为我们之前的LV大小为150M,我们通过缩小文件系统将其缩减为100M,所以此时我们需要缩小50M大小的逻辑卷。

4. 缩小完逻辑卷以后,我们再将逻辑卷挂载到 /test下,看看是否可以挂载成功。最好看一下之前的文件还在不在。

注意:缩小逻辑卷的操作是个危险的操作,稍不注意就可能损坏我们的逻辑卷,造成文件的丢失或损害,所以我们一般不要对逻辑卷进行缩减操作!!!

最后,小编想说关于上面实验中的命令有跟多种用法,详细的语法清参考帮助文档奥!

在Linux 中一定要学会使用man 命令查看帮助文档。

https://www.cnblogs.com/xs104/p/4642406.html

https://blog.csdn.net/qq_27281257/article/details/81603410

本文分享自微信公众号 - 洁癖是一只狗(rookie-dog),作者:小土豆

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 各大网站视频教程 要不要

    小土豆Yuki
  • 高可用篇之Keepalived (HAProxy+keepalived 搭建高可用负载均衡集群)

    Keepalived是Linux下一个轻量级别的高可用解决方案。健康检查和失败切换是keepalived的两大核心功能。所谓的健康检查,就是采用tcp三次握手,...

    小土豆Yuki
  • redis数据分布

    我们知道redis官方说他是可以支持10万/每秒的并发量,但是如果我们的业务场景需要100万/每秒呢?

    小土豆Yuki
  • Mysql存储结构

    索引是一种加快查询速度的数据结构,常用索引结构有hash、B-Tree和B+Tree。本节通过分析三者的数据结构来说明为啥Mysql选择用B+Tree数据结构。

    GreizLiao
  • 马斯克:你只见我谈笑间荣耀封神,却不知我曾险失所有

    大数据文摘
  • Python 转义字符

    有时我们并不想让转义字符生效,我们只想显示字符串原来的意思,这就要用r和R来定义原始字符串。如:

    周小董
  • 035android初级篇之[转]android的ViewGroup与View

    Android中的View包含了用户交互和显示,类似于Windows操作系统中的window。

    上善若水.夏
  • 视频 | 全靠下半身思考和行动,这个机器人脖子以下全是腿

    一个既有性价比,又能适应不同地形的双足机器人,不是一件易事。 Agility Robotics最近就公布了一个全新的双足机器人Cassie,这个机器人堪称脖子以...

    量子位
  • python学习笔记:转义字符

    py3study
  • 美国又开始对中国技术封锁了,新增人工智能等全新领域,新规目前已生效!

    近日,据路透社等海外媒体报道,针对中国等国家,特朗普政府在周五(1 月 3 日)采取了措施来限制人工智能软件的出口,新规将于 1 月 6 日生效。

    iMike

扫码关注云+社区

领取腾讯云代金券