博主是一个数据库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. jarvisoj flag在管理员手上

    jarvisoj flag在管理员手上 涉及知识点: (1)代码审计和cookie注入 (2)哈希长度拓展攻击 解析: 进入题目的界面.看到 那么就是想方设法的变成admin了.挂上御剑开始审计.发现 ...

  2. H5相关知识点整理

    01-HTML5基础 了解HTML5 ☞HTML5属于上一代HTML的新迭代语言,设计HTML5最主要的目的是为了在移动设备上支持多媒体!!! 例如: video 标签和 audio 及 canvas ...

  3. element ui中表格table翻页记忆勾选状态

    <el-table ref="multipleTable" :data="datalist" style="width:100%" @ ...

  4. 笔记-AHOI2013 差异

    AHOI2013 差异 方法1:SA 先板个后缀数组(带 \(height\) 不带 \(st\) 表),用单调队列递推每个后缀 \(sa_i\) 对答案的贡献,求和,用定值减之. #include ...

  5. 四、Zookeeper伪集群搭建

    伪集群模式 Zookeeper不但可以在单机上运行单机模式 Zookeeper,而且可以在单机模拟集群模式 Zookeeper的运 行,也就是将不同实例运行在同一台机器,用端口进行区分,伪集群模式为我 ...

  6. git+pycharm结合使用

    Pycharm + git 进行结合使用 第一步:Pycharm配置本地安装的Git 测试框架的负责人: 编写好一套能用的基础框架代码 --- > 上传到公司远程仓库 --- 设置团队协作成员 ...

  7. 实验:非GTID 一主多从变级联架构

  8. react第九单元(propTypes验证)

    第九单元(propTypes验证) #课程目标 理解类型验证的必要性 灵活掌握类型验证的使用 #知识点 在给react组件传属性的的时候,我们可以定义属性的类型,此时我们需要下载prop-types这 ...

  9. [水题日常]UVA11181 条件概率(Probability|Given)

    话说好久没写blog了 好好学概率论的第一天,这题一开始完全不会写,列出个条件概率的公式就傻了,后来看着lrj老师的书附带的代码学着写的- 因为我比较弱智 一些比较简单的东西也顺便写具体点或者是按照书 ...

  10. Golang--函数签名相同

    Golang--函数签名相同 条件 必须函数的函数名,参数和返回值(类型,个数,顺序)都相同. 验证 例子: 定义函数类型,让相同签名的函数自动实现某个接口. Negtive: package int ...