【Liunx常用操作】LVM逻辑卷的介绍和相关操作

提示:为保证文章的正确性和实用性,文章内容作者会不断优化改进,若您有建议或者文章存在错误请留言或评论指正。


前言

LVM(Logical Volume Manager)逻辑卷管理器,由内核驱动和应用层工具组成,它屏蔽了底层存储设备的差异,将存储设备组合并抽象成逻辑卷,逻辑卷可以格式化成文件系统后挂载使用。

LVM的原理就是把部分、整个或多个存储设备标识成物理卷(PV),再将一个或多个物理卷(PV)组合成一个卷组(VG),卷组(VG)可以通过增删物理卷(PV)灵活调整大小,在卷组(VG)的基础上提供逻辑卷(LV),逻辑卷(LV)格式化成文件系统后挂载使用。逻辑卷(LV)最大的特点是支持利用所在卷组(VG)的空间动态调整大小,避免了因为需要调整存储空间大小而停止应用、卸载文件系统和进行数据迁移等动作,减少了操作成本和风险。

LVM中的几个重要概念:
(1)物理卷(physical volume):简称PV,物理卷可以是整个硬盘或硬盘的分区,是LVM的基本存储逻辑块,物理卷和普通硬盘或分区的区别是物理卷包含了一些与LVM有关的管理参数。
(2)卷组(Volume Group):简称VG,可以看成单独的逻辑磁盘,建立在PV之上,一个卷组中至少要包括一个PV,在卷组建立之后可以动态的添加PV到卷组中。卷组的名称可以自定义。
(3)物理区域(physical extent):简称PE,物理区域是卷组中可用于分配的最小存储单元,物理区域的大小默认为4MB,也可以在创建卷组时通过“-s”参数手动指定大小,创建卷组时物理区域大小一旦确定创建卷组后将不能更改。
(4)逻辑卷(logical volume):简称LV,相当于磁盘分区(partition),逻辑卷建立在卷组之上,可以动态的扩展或缩小空间,扩展的空间利用的是所在卷组的未分配的空间。一个卷组可以创建多个逻辑卷,一个逻辑卷不能属于多个卷组。逻辑卷有多种分类,可以通过执行lvcreate -h查看具体类型,其中较为常见的是线性LV。

不管是物理卷还是卷组,都属于存储设备,所以它们都在“/dev”下,而逻辑卷属于卷组,类似于分区(partition)属于磁盘,所以逻辑卷在“/dev/卷组名称”下。简单来讲,创建并使用逻辑卷的步骤大致为:“创建物理卷(Physical volume)>创建卷组(Volume group)并将物理卷加入到卷组>激活卷组(卷组在创建时默认激活)>创建逻辑卷(Logical volume)>格式化逻辑卷>将逻辑卷挂载到目录下”,如下图。

步骤

创建并挂载逻辑卷

下面就在CentOS操作系统上用一块100G的硬盘创建两个分区,并将两个分区分别做成pv后加入同一个vg,然后利用该vg创建一个lv并挂载到“/datas”下为例,介绍具体操做步骤。

步骤一: 在操作系统中执行以下命令,查看系统中块设备的信息,如下图所示,系统中存在一块盘符为sdb的100G硬盘。

lsblk


步骤二: 执行以下命令, 对盘符为“sdb”的磁盘进行分区。

fdisk /dev/sdb


步骤三: 重复执行步骤二, 利用“sdb”磁盘剩余空间创建分区2即(sdb2)。如下图所示,成功在一块100G的硬盘上创建了两个分区(sdb1、sdb2)。

步骤四: 执行以下命令,将分区“sdb1”、“sdb2”创建成物理卷。

pvcreate /dev/sdb1 /dev/sdb2


步骤五: 执行以下命令,创建卷组“testvg”并将物理卷sdb1和sdb2添加到该卷组中。

vgcreate testvg /dev/sdb1 /dev/sdb2


步骤六: 执行以下命令,在卷组“testvg”中创建大小为60G、名称为“datas_lv”的逻辑卷。(如何创建一个使用所有VG空间的LV?

lvcreate testvg -L 60G -n datas_lv

步骤七: 执行以下命令,将逻辑卷“datas_lv”格式化成ext4类型的文件系统。
注意:若将逻辑卷格式化成xfs类型的文件系统后,逻辑卷将只支持扩容不支持缩容。

mkfs.ext4 /dev/testvg/datas_lv


步骤八: 执行以下命令,在“/”下创建datas目录。

mkdir /datas;ll / |grep datas


步骤九: 执行以下命令,将逻辑卷“datas_lv”挂载到“/datas”目录下。

mount /dev/testvg/datas_lv /datas/


步骤十: 执行以下命令,编辑“/etc/fstab”文件。

vim /etc/fstab

步骤十一: 在配置文件最后添加以下内容后保存退出,实现卷的开机自动挂载(注意参数换成自己实际的,不然会导致系统启动无法正确mount而进不去系统)。

/dev/testvg/datas_lv    /datas                  ext4     defaults       0 0

扩容逻辑卷

(1)扩容逻辑卷的目的是为了增加该逻辑卷文件系统的空间,步骤分为扩容逻辑卷和文件系统同步扩容生效两个步骤。扩容操作既可以在文件系统已挂载的情况下进行,也可以在卸载文件系统确认文件系统状态正常后进行。
(2)逻辑卷扩容前,一定要将卷上的数据进行备份。
(3)建议在操作实际生产环境前,搭建相同的模拟环境测试操作步骤的可行性,别人的案例和方法可以借鉴但不一定就完全符合条件。

步骤一: 执行以下命令,查看系统中的逻辑卷大小和卷组空间,如下图,逻辑卷datas_lv的大小是60G,所属卷组testvg,testvg卷组的可用空间(VFree)还有39.99G。
注意:若待扩容逻辑卷所在卷组没用剩余空间的话,需要将新的磁盘或者分区做成物理卷加入卷组,操作方法在上面有提到。

lvs;vgs


步骤二: 执行以下命令,查看逻辑卷的文件系统类型,如下图逻辑卷datas_lv的文件系统类型为ext4。
注意:扩容逻辑卷后需要对文件系统进行同步扩容生效操作,不同的文件系统同步扩容生效命令不一样,因此扩容前确认逻辑卷的文件系统类型尤为重要。

lsblk -f


步骤三: 执行以下命令,扩容逻辑卷datas_lv(当前大小60G)。扩容需求不同命令参数也不同,以下三种方法根据实际情况选择。
(1)把逻辑卷datas_lv扩容到指定大小,比如70G:

lvextend -L 70g /dev/testvg/datas_lv;lvs


(2)给逻辑卷datas_lv扩容指定大小的空间,比如20G:

lvextend -L +20g /dev/testvg/datas_lv;lvs


(3)将逻辑卷datas_lv所在卷组剩余空间都扩容到逻辑卷datas_lv上:

lvextend -l +100%free /dev/testvg/datas_lv;lvs


步骤四: 执行以下命令,进行文件系统的同步扩容生效操作,文件系统类型不同命令也不同,以下两种种方法根据实际情况选择。
(1)xfs类型的文件系统:

xfs_growfs /dev/testvg/datas_lv

(2)ext2、ext3、ext4类型的文件系统:

resize2fs /dev/testvg/datas_lv

缩容逻辑卷

(1)缩容逻辑卷的步骤分为卸载文件系统、检查文件状态、缩容文件系统、缩容逻辑卷、挂载文件系统五个步骤。非必要情况下不建议缩容逻辑卷,xfs类型的文件系统不支持缩容。
(2)逻辑卷缩容前,一定要将卷上的数据进行备份。
(3)建议在操作实际生产环境前,搭建相同的模拟环境测试操作步骤,别人的案例和方法可以借鉴但不一定就完全符合条件。

步骤一: 执行以下命令,查看逻辑卷的文件系统类型以及挂载点,如下图逻辑卷datas_lv的文件系统类型为ext4,挂载点为“/datas”。若文件系统类型为xfs则不支持缩容,不要执行本章节操作。

lsblk -f


步骤二: 执行以下命令,查看当前挂载点“/datas”上的文件系统大小。

df -h

步骤三: 执行以下命令,卸载挂载点“/datas”上的文件系统。

umount /datas


步骤四: 执行以下命令,检查并自动修复datas_lv上的文件系统。

e2fsck -pf /dev/testvg/datas_lv


步骤五: 执行以下命令,把datas_lv上的文件系统大小调整为50G。

resize2fs /dev/testvg/datas_lv 50g


步骤六: 执行以下命令,把逻辑卷datas_lv的大小调整为50G。

lvreduce -L 50g /dev/testvg/datas_lv


步骤七: 执行以下命令,再次检查并自动修复datas_lv上的文件系统。

e2fsck -pf /dev/testvg/datas_lv


步骤八: 执行以下命令,重新挂载datas_lv上的文件系统,可以看见“/datas”挂载点的文件系统已经变成50G了。

mount /dev/testvg/datas_lv /datas/
df -h

总结

创建物理卷

pvcreate /dev/sdb
或者
pvcreate /dev/sdb1 /dev/sdb2

查看物理卷

pvs或者pvscan或者pvdisplay

移除物理卷

pvremove /dev/sdb

创建卷组

vgcreate testvg /dev/sdb1 /dev/sdb2

激活卷组

vgchange -a y testvg

添加新的物理卷到卷组中

vgextend testvg /dev/sdc

查看卷组

vgs或者vgscan或者vgdisplay

从卷组中删除一个物理卷

vgreduce testvg /dev/sdc

删除卷组

vgremove testvg

创建普通逻辑卷

lvcreate testvg -n test -L 20G
或者(使用全部vg空间创建lv)
vgdisplay testvg | grep ‘Total PE’
lvcreate testvg -n test -l PE数量

创建条块化的逻辑卷(逻辑卷在两个物理卷中条块化存放数据,默认一块大小为64KB)

lvcreate testvg -n test -L 20G -i2

创建镜像的逻辑卷(表示只生成一个单一镜像,镜像分别放在/dev/sdb1和/dev/sdc1上,镜像日志放在/dev/sdb2上)

lvcreate testvg -n test -L 20G -m1 /dev/sdb1 /dev/sdc1 /dev/sdb2

查看逻辑卷

lvs或者lvscan或者lvdisplay

删除逻辑卷(先卸载,再删除)

umount /dev/testvg/test
lvremove /dev/testvg/test

在线数据迁移

pvmove -n test /dev/sdb1 /dev/sdc1

【Liunx常用操作】LVM逻辑卷的介绍和相关操作(创建、删除、扩缩容)相关推荐

  1. linux设置逻辑卷进不了图形界面,LVM逻辑卷管理器图形界面操作

    LVM逻辑卷管理器图形界面操作 LVM有关概念 LVM(Logical Volume Manager)即逻辑卷管理器,它最先是在Linux 2.4内核中被集成到内核中去的,它的出现改变了传统的磁盘空间 ...

  2. Linux LVM逻辑卷配置过程详解(创建,增加,减少,删除,卸载)

    Linux LVM逻辑卷配置过程详解(创建,增加,减少,删除,卸载) Linux LVM逻辑卷配置过程详解 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量, ...

  3. linux删除配置信息,Linux LVM逻辑卷配置过程详解(创建、扩展、缩减、删除、卸载、快照创建)...

    一.预备知识 LVM全称为Logical Volume Manager逻辑卷管理器,LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘分 ...

  4. 50.逻辑卷管理5,文件系统相关操作,创建挂载文件系统,扩容文件

    文件系统相关操作 创建文件系统 格式化 逻辑卷textlv创建好之后,就可以在上面创建文件系统,以ext4文件系统为例,应该注意的是逻辑卷的引用需要逻辑卷的设备文件,逻辑卷的设备文件有两种书写方式 以 ...

  5. centos 调整home分区xfs_Linux中对lvm逻辑卷分区大小的调整教程(针对xfs与ext4不同文件系统)...

    前言 当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间.如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑 ...

  6. Linux系统之磁盘分区(基本分区和LVM逻辑卷分区)

    一.磁盘简介 1.磁盘属性简介 •定义:  磁盘=硬盘=disk,与内存不一样的是容量比较大. •类型  从工作原理上分为机械硬盘和固态硬盘  机械硬盘:机械硬盘即是传统普通硬盘,主要由:盘片,磁头, ...

  7. Linux常用命令(八)LVM逻辑卷管理

    Linux常用命令(八)LVM逻辑卷管理 一.LVM概述     LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下 ...

  8. LVM 逻辑卷管理精讲

    1.1介绍 在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值.因为如果估计不准确,当遇到某个分区不够用时 ...

  9. LVM逻辑卷使用手册

    LVM逻辑卷基础知识 PV (physical volume)物理卷 VG (Volume Group)卷组 LV ( Logical Volume)逻辑卷 它们之间的关系 先创建PV(物理卷) 给P ...

最新文章

  1. 使用Forms Authentication实现用户注册、登录 (二)用户注册与登录
  2. Oracle RMAN 设置和配置(一)
  3. android onTouch()与onTouchEvent()的区别
  4. js获取时间(yyyy-MM-dd HH:mm:ss)
  5. Linux解决无法启动网络
  6. 征信逾期了,5年后能自动消除吗?
  7. linux 检测蓝牙 rssi,树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)...
  8. Unity面试题精选(2)
  9. 调用webserver时出现:请求因 HTTP 状态 401 失败: Unauthorized。
  10. 苹果 Siri 被曝涉嫌泄露用户隐私;中国联通回应 5G 入网问题;PHP 7.4 beta 1 发布 | 极客头条...
  11. 如何获取母版页上控件的值?
  12. 手机上将mp4转换成amv_如何在Linux上将所有文本从大写转换为小写?
  13. python编程单词排序_Python实现针对中文排序的方法
  14. PDM转换成Word文档或者XML文档
  15. 基于微信小程序的爱生活爱乐餐订餐外卖系统#毕业设计
  16. 如何高效Debug(又名如何高效解决问题)
  17. html 人物行走动画,CSS3人行走动作图解和动画实现
  18. 金融量化交易场景下数据库如何改造?同花顺、弘源泰平真实案例分享
  19. 西北工业大学计算机学院推免,2021年西北工业大学接收推荐免试研究生预报名的通知...
  20. multi-head GAT

热门文章

  1. python实现长视频分割为短视频
  2. 1、CentOS 安装 Java JDK
  3. 门店数字化营销策略如何制定?门店数字化营销手段有哪些?
  4. 【图像加密】基于Logistic混沌图像加密与解密Matlab代码
  5. 年进口7000多万斤种子,拒绝温水煮青蛙,中国迈出关键一步
  6. Android仿微信自定义字母导航栏
  7. 脱口而出的100句英语句子
  8. 老程序员防脱发养发攻略征求。
  9. 【模拟】阿里郎(jzoj 2012)
  10. 服务器遭受到SYN攻击该怎么办