博主是一个数据库DBA,但是一般来说,是不做linux服务器LVM 逻辑卷的创建、扩容和减容操作的,基本上有系统管理员操作,一是各司其职,专业的事专业的人做,二是做多了你的责任也多了,哈哈!

但是linux运维的人员肯定的要会的,面试的时候如果这个不会,基本上是OVER了。

参考资料来自网站:

https://opensource.com/business/16/9/linux-users-guide-lvm

https://wiki.archlinux.org/index.php/LVM

对于系统运维人员来说,管理磁盘空间一直是一项重要任务。耗尽磁盘空间通常是一系列漫长而复杂的任务的开始,以增加磁盘分区的可用空间。它还需要使系统脱机。这通常涉及安装新的硬盘驱动器,引导至恢复或单用户模式,在新的硬盘驱动器上创建分区和文件系统,使用临时挂载点将数据从太小的文件系统移至新的更大的文件系统。 更改/etc/fstab文件的内容以反映新分区的正确设备名称,然后重新引导以在正确的安装点上重新安装新的文件系统。

David Both大神说:“当LVM(逻辑卷管理器)首次出现在Fedora Linux中时,他强烈反对它,他最初的反应是,我和硬盘之间不需要这个额外的抽象层。原来我错了,逻辑卷管理非常有用”。

LVM允许非常灵活的磁盘空间管理。它提供了诸如在挂载和激活该逻辑卷的同时向逻辑卷及其文件系统添加磁盘空间的功能,并允许将多个物理硬盘驱动器和分区收集到单个卷组中,然后可以将其划分为逻辑卷。 。

卷管理器还允许减少分配给逻辑卷的磁盘空间量,但是有一些要求。首先,必须卸载该卷。第二,必须减小文件系统本身的大小,然后才能减小其所在的卷。

重要的是要注意文件系统本身必须允许调整大小才能使此功能起作用。EXT2、3和4文件系统在增加文件系统大小时都允许脱机(卸载)和联机(挂载)大小调整,而在减小大小时允许脱机大小调整。您应该检查要使用的文件系统的详细信息,以验证它们是否可以完全调整大小,尤其是在联机时是否可以调整大小。

一.LVM结构

下面的图1说明了Logical Volume Manager磁盘环境的结构。逻辑卷管理可将多个单独的硬盘驱动器和/或磁盘分区组合到一个卷组(VG)中。然后可以将该卷组细分为逻辑卷(LV)或用作单个大卷。然后可以在逻辑卷上创建常规文件系统,例如EXT3或EXT4。

在图1中,两个完整的物理硬盘驱动器和第三个硬盘驱动器的一个分区已合并到一个卷组中。已从卷组中的空间创建了两个逻辑卷,并且已在两个逻辑卷中的每个逻辑卷上创建了一个文件系统,例如EXT3或EXT4文件系统。

向主机添加磁盘空间非常简单,但是以我的经验,这种操作相对很少。下面列出了所需的基本步骤。您可以创建一个全新的卷组,也可以将新空间添加到现有的卷组中,然后扩展现有的逻辑卷或创建一个新的逻辑卷。

二.LVM说明

LVM利用Linux内核的device-mapper功能来实现存储系统的虚拟化(系统分区独立于底层硬件)。 通过LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间,避免为正在使用的磁盘重新分区的麻烦、为调整分区而不得不移动其他分区的不便。

LVM的基本组成部分如下:

物理卷 (PV)

一个可供存储LVM的块设备. 例如: 一块硬盘, 一个MBR或GPT分区, 一个回环文件, 一个被内核映射的设备 (例如 dm-crypt).它包含一个特殊的LVM头。
卷组 (VG)
物理卷的一个组,作为存放逻辑卷的容器。 PE是从VG分配给LV的。
逻辑卷 (LV)
"虚拟/逻辑卷"存放在一个卷组中并由物理块组成。是一个类似于物理设备的块设备,例如,你可以直接在它上面创建一个文件系统文件系统
物理块 (PE)
一个卷组中最小的连续区域(默认为4 MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。 

三.LVM方式挂载磁盘

cat /etc/redhat-release

版本是7.5的。

(1) 查看分区情况

fdisk -l

两块盘,/dev/sdb(这个是新加的一块专门拿来做实验的) ,/dev/sda(/dev/sda1,/dev/sda2这两个分区)

(2) 查看磁盘卷组信息

lvmdiskscan

lsblk

sda2分区采用了lvm管理,vg名为centos,sda1是我用的作为boot分区

查看pv

查看vg

vgdisplay

查看 lv

lvdisplay

[root@19c home]# lvdisplay

--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID F3q7AE-E6rC-eq2H-0hvr-zjdt-r9ic-lvxHf7
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2020-12-21 00:22:16 +0800
LV Status available
# open 2
LV Size 7.00 GiB
Current LE 1792
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1

--- Logical volume ---
LV Path /dev/centos/home
LV Name home
VG Name centos
LV UUID TzHMql-idEA-JYY0-IrFO-Nnxe-4lLQ-h8gtHU
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2020-12-21 00:22:16 +0800
LV Status available
# open 1
LV Size <20.34 GiB
Current LE 5207
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2

--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID wkKvYa-wMT2-OZmN-N1yW-2817-cpCt-PpJEE9
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2020-12-21 00:22:17 +0800
LV Status available
# open 1
LV Size <41.66 GiB
Current LE 10664
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0

做了三个LV,路径分别是:

/dev/centos/swap,/dev/centos/home,/dev/centos/root

(3) LVM的操作

添加新逻辑卷的基本步骤如下。

  1. 如有必要,请安装新的硬盘驱动器。
  2. 可选:在硬盘驱动器上创建一个分区。
  3. 创建整个硬盘驱动器或硬盘驱动器上的分区的物理卷(PV)。
  4. 将新的物理卷分配给现有的卷组(VG)或创建一个新的卷组。
  5. 从卷组中的空间创建一个新的逻辑卷(LV)。
  6. 在新的逻辑卷上创建一个文件系统。
  7. 将适当的条目添加到/etc/fstab以挂载文件系统。
  8. 挂载文件系统

3.1创建物理卷 pv

pvcreate /dev/sdb

3.2创建新的卷组 vg

我有两个pv,此次,我想新建一个vg(MyVolGroup ),不把原来的vg进行扩展,后面做完实验了在进行扩展。

vgcreate MyVolGroup /dev/sdb

3.3创建逻辑卷

本次测试创建2个lv,每个各站MyVolGroup一半的空间。

lvcreate -l +50%FREE MyVolGroup -n LogVo1         ##注意啊,这个50%是占MyVolGroup 的50%

lvcreate -l +100%FREE MyVolGroup -n LogVo2        ##注意啊,这个100%是占MyVolGroup 所有没有分配的空间,第一次我也是搞错了

弄成了lvcreate -l +50%FREE MyVolGroup -n LogVo2 ;如果你也写成50%,那么分配的空间是MyVolGroup*(1-50%) *50%=0.25MyVolGroup

删除后重建LV:

lvremove MyVolGroup/LogVo2

lvcreate -l +100%FREE MyVolGroup -n LogVo2

3.4文件系统的挂载和开机自启动

格式化

mkfs.ext4 /dev/mapper/MyVolGroup-LogVo1

mkfs.ext4 /dev/mapper/MyVolGroup-LogVo2

mkdir lvtest01 lvtest02

mount /dev/mapper/MyVolGroup-LogVo1 /lvtest01
mount /dev/mapper/MyVolGroup-LogVo2 /lvtest02

加载到/etc/fstab 开机自启

3.5扩展逻辑卷

把挂载的目录unmount,删除lv以及 /etc/fstab 记录的新加内容

如下

vgremove MyVolGroup

pvremove /dev/sdb

此刻我想把 home 这个逻辑卷多余的空间到根目录下。

lvresize -L -15G --resizefs centos/home

xfs格式不支持

算了只有扩展lv了。

扩展空间操作:磁盘我的前面测试已经格式化了(可以不分区)-->扩展卷组-->扩展逻辑卷

3.6扩展卷组

vgextend centos /dev/sdb

3.7扩展逻辑卷

lvextend -l +100%free  /dev/mapper/centos-root

也可以把+100% 换成大小 +10G

# CentOS 7重新读取磁盘大小:

xfs_growfs /dev/mapper/centos-root

# CentOS 6.5重新读取磁盘大小: # ext4格式, resize2fs会遍历整个磁盘, 速度比较慢, 但是不影响读写数据, 可以令其在后台运行.

resize2fs xfs_growfs /dev/mapper/centos-root

ok! 完事。

Linux LVM Logical Volume Management 逻辑卷的管理的更多相关文章

  1. lvm - Logical Volume Manager - 逻辑卷管理

    下午突然感觉 lvm 相关的知识忘记了,恰好机房里的fedora服务器上 挂了4个500GB的HDD 硬盘没有使用,就拿来操作了一番: 下面有几篇关于lvm不错的文章,进行了链接,网上也有很多不错的博 ...

  2. 逻辑卷管理LVM (Logical Volume Manager)

    什么是LVM? LVM(Logical Volume Manager)逻辑卷管理,是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的 ...

  3. centos6下的lvm逻辑卷的管理

    LVM:Logical Volume Manager 将多块设备组合成一个来使用 dm:device mapper 设备映射 设备文件 /dev/卷组名/逻辑卷名          /dev/mapp ...

  4. LVM逻辑卷的管理和使用

    本篇将从头到尾演示一遍逻辑卷的管理. 主要步骤 1.创建lv逻辑卷步骤     前提:先创建3个磁盘分区,类型为8e:         1.PV创建             pvcrete /dev/ ...

  5. 逻辑卷管理-LVM(Logical Volume Manager)

    一. 概念与由来 LVM:逻辑卷管理(Logical Volume Manager) 普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某文件时,这个文件因为受上层文件 ...

  6. Linux LVM学习总结——删除物理卷

    本篇介绍LVM管理中的命令vgreduce, pvremove.其实前面几篇中以及有所涉及. vgreduce:通过删除LVM卷组中的物理卷来减少卷组容量.注意:不能删除LVM卷组中剩余的最后一个物理 ...

  7. LVM(2)逻辑卷的扩展、缩减、快照卷

    一.扩展逻辑卷:lvextend   扩展逻辑卷物理边界    -L [+]# /PATH/TO/LV2G, +3G5G

  8. LVM逻辑卷创建管理

    首先添加三块硬盘 结构关系图 相关命令 查看磁盘 #fdisk -l 分区 #fdisk /dev/sda/ #n新建 ProMary主分区 extended扩展分区 #p查看 #q不保存退出 #w保 ...

  9. 《RedHatLinux逻辑卷的管理》——一条龙服务

    首先建2分区 [root@localhost ~]# partx -d /dev/sdb error deleting partition 4: BLKPG: No such device or ad ...

随机推荐

  1. baby sqli 联合查询加入数据 手工注入

    0x00 BabySQli 原题目描述:刚学完sqli,我才知道万能口令这么危险,还好我进行了防护,还用md5哈希了密码! 登陆页面,查看源码后点进search.php看到一段可疑的句子MMZFM42 ...

  2. 从go-libp2p开始

    这里是从一系列关于libp2p的go实现教程开始,go-libp2p 我们会讲述go的安装,go模块的设置,启动libp2p节点,并在它们之间发送消息. 安装go go-libp2p推荐使用包含 mo ...

  3. Panda 交易所热点关注:股权交易中心+区块链试点将开始

    近期,Panda 交易所注意到,中国证监会已同意北京.上海等5家区域性股权市场参与区块链建设试点工作.Panda 交易所获悉的具体情况是,北京股权交易中心曾联合其他单位共同推出区域性股权市场中介机构征 ...

  4. Kruskal重构树——[NOI2018] 归程

    题目链接: UOJ LOJ 感觉 Kruskal 重构树比较简单,就不单独开学习笔记了. Statement 给定一个 \(n\) 点 \(m\) 边的无向连通图,用 \(l,a\) 描述一条边的长度 ...

  5. linux 下指定配置文件安装mongodb

    下载 官网下载地址:https://www.mongodb.com/try/download/community,并上传linux 服务器 二.mongon目录结构下 /data/mongo . lo ...

  6. DBeaver连接MySQ报错

    遇错情况:第一次使用DBaver连接MySQL遇到以下问题: 报错信息:Public Key Retrieval is not allowed 截图如下: 解决方案步骤: 一.已有连接的情况:F4或者 ...

  7. 精尽Spring MVC源码分析 - 文章导读

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  8. JUC(三):JUC包下锁概念

    线程不安全集合类 ArrayList List是线程不安全的集合类,底层是Object数组实现,初始化容量是10(其实是一个空数组,第一次扩容时,将数组扩容为10),其后每次扩容大小为当前容量的一半( ...

  9. JVM虚拟机(一):类加载机制

    类加载的时机   类加载的生命周期为: 加载.验证.准备.解析.初始化.使用.卸载七个阶段,其中验证.准备.解析三个阶段统称为连接.其中加载与连接时交叉执行的. 类必须初始化的六种情况 遇到new.g ...

  10. 【Unity】Unity中AR Foundation的使用

    前段时间通过Unity 3d打包测试对比ARCore与ARKit环境探针的效果的过程中,在Google AR Core官网下载到了ARCore for Unity SDK,但是在苹果官网却没有找到AR ...