目录

一、LVM的基本组成

1、物理卷 (PV,Physical Volume)

2、卷组 (VG,Volume Group)

3、逻辑卷 (LV,Logical Volume)

4、物理块 (PE,Physical Extends)

二、LVM的优缺点

1、优点

2、缺点

三、LVM的使用

1、创建分区(partition)

2、物理卷(PV)相关操作

①、通过lvmdiskscan命令列出可被用作pv的设备

②、使用pvcreate命令创建pv

③、查看当前所有PV信息

3、卷组(VG)相关操作

①、创建卷组

②、查看卷组信息

4、逻辑卷(LV)相关操作

①、创建LV

②、查看lv

③、扩展逻辑卷

5、格式化并挂载LV(逻辑卷)

①、格式化逻辑卷

②、挂载


LVM,Logical Volume Manger,是linux内核提供的一种逻辑卷管理功能,由内核驱动和应用层工具组成,它是在硬盘的分区基础上,创建了一个逻辑层,可以非常灵活且非常方便的管理存储设备。

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

一、LVM的基本组成

1、物理卷 (PV,Physical Volume)

一个可供存储LVM的块设备. 如硬盘分区(MBR或GPT分区)、SAN 的硬盘、RAID 或 LUN,一个回环文件, 一个被内核映射的设备 (例如 dm-crypt),它包含一个特殊的LVM头,它是 LVM 构建的实际硬件或存储系统。

2、卷组 (VG,Volume Group)

卷组是对一个或多个物理卷的集合,并在设备文件系统中显示为 /dev/VG_NAME。

3、逻辑卷 (LV,Logical Volume)

逻辑卷是可供系统使用的最终元设备,它们在卷组中创建和管理,由物理块组成,实际上就是一个虚拟分区,并显示为 /dev/VG_NAME/LV_NAME,通常在其上可以创建文件系统。

4、物理块 (PE,Physical Extends)

一个卷组中最小的连续区域(默认为4 MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。

下面我画了一张lvm在linux磁盘管理中的位置图:

依次为:disk -> partition -> PV -> VG -> LV -> fs,也即磁盘->分区->物理卷->卷组->逻辑卷->文件系统。

其创建也是按照这个顺序,下面会详细介绍。

二、LVM的优缺点

1、优点

比起传统的硬盘分区管理方式,LVM更富于灵活性:

  • 将多块硬盘看作一块大硬盘
  • 使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区。
  • 可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小。
  • 在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。
  • 可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作。不过LVM上的文件系统也需要重新调整大小,好在某些文件系统(例如ext4)也支持在线操作。
  • 无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。
  • 允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小。
  • 支持各种设备映射目标(device-mapper targets),包括透明文件系统加密和缓存常用数据(caching of frequently used data)。这将允许你创建一个包含一个或多个磁盘、并用LUKS加密的系统,使用LVM on top 可轻松地管理和调整这些独立的加密卷 (例如. /, /home, /backup等) 并免去开机时多次输入密钥的麻烦。

2、缺点

  • 在系统设置时需要更复杂的额外步骤。
  • Windows系统并不支持LVM,若使用双系统,你将无法在Windows上访问LVM分区。

三、LVM的使用

1、创建分区(partition)

在配置lvm之前,必须对存储设备进行分区,可以使用fdisk或者parted工具进行,创建分区时注意分区类型的设置(类型为linux lvm):

  • 如果使用的是MBR,设置分区类型要为8e。
  • 如果使用的是GPT,设置分区类型要为E6D6D379-F507-44C2-A23C-238F2A3DF928。

我虚拟机新加了个磁盘/dev/sdb,下面我们创建一个8G的分区:

以同样的方式,再创建一个10G的linux lvm类型的分区:

2、物理卷(PV)相关操作

①、通过lvmdiskscan命令列出可被用作pv的设备

注:如果系统引导程序不支持LVM,则/boot不能置于LVM中。此刻必须创建一个独立的/boot分区并直接格式化后挂载到/boot。已知支持LVM的引导程序只有GRUB。

从上图可以看到//dev/sda2已经是PV了,所以只有dev/sda1、/dev/sdb1、/dev/sdb2可以用于创建PV,又因为/dev/sda1是boot引导区,所以下面我们可以对/dev/sdb1、/dev/sdb2创建PV

②、使用pvcreate命令创建pv

root# pvcreate device1 device2 ...

③、查看当前所有PV信息

可以通过pvs、pvscan、pvdisplay这三个命令查看pv信息 

注意: 如果你用的是未格式化过且擦除块(erase block)大小小于1M的SSD,请采用以下命令pvcreate --dataalignment 1m /dev/sda来设置对齐(alignment)。

3、卷组(VG)相关操作

①、创建卷组

使用命令vgcreate创建卷组

root# vgcreate vg_name pv1 pv2 ...

创建卷组vg_fedora_yg,并把pv /dev/sdb1加入该卷组。

②、查看卷组信息

此时,也可以通过pvs查看各个物理卷所在的卷组:

4、逻辑卷(LV)相关操作

①、创建LV

使用lvcreate命令

root# lvcreate -L <lv_size>  <vg_name> -n <lv_name># 将卷组vg_name下所有剩余空间给创建的lv_name逻辑卷
root# lvcreate -l +100%FREE  <vg_name> -n <lv_name>
root# lvcreate -L <lv_size> <vg_name> -n <lv_name>

该逻辑卷创建完后,你就可以通过/dev/mapper/vg_fedora_yg-lv_yg01/dev/vg_fedora_yg/lv_yg01来访问它:

②、查看lv

命令lvs、lvscan、lvdisplay查看

③、扩容逻辑卷

通过命令lvextend:

root# lvextend -L <extend_size> <lv_path>

注意:如果扩容的逻辑卷已经挂载到具体文件系统,则需要执行resize2fs或者xfs_growfs(针对xfs文件系统)命令使修改生效,可以通过df -Th或者blkid查看lv所挂载的文件系统类型。

5、格式化并挂载LV(逻辑卷)

上面逻辑卷LV创建之后,通常是已经可以在/dev/mapper/或者/dev/vg_name/下面找到该逻辑卷了,如果找不到的话,可以执行如下命令:

# modprobe dm-mod
# vgscan
# vgchange -ay

最后,可以看到如下:

①、格式化逻辑卷

现在可以在该逻辑卷上创建文件系统:

# mkfs.<filesystem_type> /dev/mapper/<vg_name>-<lv_name>#
# mkfs.xfs /dev/mapper/vg_fedora_yg-lv_yg01

②、挂载

# mount /dev/mapper/<vg_name>-<lv_name> <mount_point>

注:挂载点请选择你所新建的逻辑卷(例如:/dev/mapper/vg_fedora_yg-lv_yg01),不要使用逻辑卷所在的实际分区设备(即不要使用:/dev/sdb1

最后,我画了一张图,来展示linux lvm:

你可以对照上面内容,理解下linux lvm的磁盘管理机制。

说明:

①、图中/dev/sda1是boot引导区,不能用lvm管理,所以直接格式化后挂载到目录/boot下,另外/dev/sdb2也是没有经过lvm直接格式化后挂载到目录的。

②、卷组vg_fedora1容量为139G,从其中分配出去了40+5+45=90G,还有49G空闲,这些空闲容量可以lvextend到下面的lv中;也可以再创建个lv,分配出去。

③、磁盘设置/dev/sdc还有50G空闲空间未分区,可以分区后使用。

关于lvm其它高级配置功能,可以查看参考链接。

参考:

1、gentoo-LVM

2、archlinux-LVM

3、debian-LVM

Linux下的磁盘管理之LVM详解及lvm的常用磁盘操作命令相关推荐

  1. linux中的文件夹压缩文件,linux将文件拷贝到目录下Linux下文件的压缩与打包详解...

    在Linux中,有很多的压缩命令.利用这些压缩命令,可以方便的从网络上下载大型的文件.同时,我们知道,Linux文件的扩展名是没有特殊意义的,不过,因为Linux下存在着许多压缩命令,所以为了方便记忆 ...

  2. linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...

  3. Linux redis安装教程,Linux 下redis5.0.0安装教程详解

    Linux redis5.0.0安装,教程如下所示: 1.从官网下载,然后传到服务器,tar -zxvf解压 2.进入redis ? 3.安装:make, (1)若提示:: gcc: Command ...

  4. linux 更新软件命令 失败,对linux下软件(库)的更新命令详解

    在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别 pip用来安装来自PyPI( ...

  5. Linux服务器,服务管理--systemctl命令详解,设置开机自启动

    Linux服务器,服务管理--systemctl命令详解,设置开机自启动 syetemclt就是service和chkconfig这两个命令的整合,在CentOS 7就开始被使用了. 摘要: syst ...

  6. linux系统电脑的权限设置,Linux下的文件权限设置修改详解linux操作系统 -电脑资料...

    在linux中更改所属用户组是使用chgrp,更改文件拥有者, chown,更改9个属性, chmod这三种常用的问题,在linxu中这三个命令就是对文件目录权限的控制命令了,下面我来介绍它们的用法与 ...

  7. linux下多线程的创建与等待详解 【转载】

    linux下多线程的创建与等待详解 http://blog.chinaunix.net/uid-23842323-id-2656572.html 所有线程都有一个线程号,也就是Thread ID.其类 ...

  8. linux下tar命令解压缩,tar解压缩命令 Linux下的tar压缩解压缩命令详解

    <tar解压缩命令 Linux下的tar压缩解压缩命令详解>由会员分享,可在线阅读,更多相关<tar解压缩命令 Linux下的tar压缩解压缩命令详解(14页珍藏版)>请在人人 ...

  9. kill -9 进程号杀不死可以用下面的杀掉 Linux下强制杀死进程的方法详解

    常规篇: 首先,用ps查看进程,方法如下: $ ps -ef -- smx 1822 1 0 11:38 ? 00:00:49 gnome-terminal smx 1823 1822 0 11:38 ...

  10. linux命令大全rz,Linux下rz命令使用的实例详解

    摘要 腾兴网为您分享:Linux下rz命令使用的实例详解,猿辅导,学习帮,我爱我家,唯品会等软件知识,以及2034盒子,endnotex6,方塘音控,供销网,论文修改神器,小乌龟,银河谷,兼职app, ...

最新文章

  1. Spring之事务管理配置
  2. LeetCode03:无重复字符的最长子串
  3. 10K入职linux运维岗位小伙伴感谢信及面试经历分享
  4. python中的pandas怎么安装_如何优雅的安装Python的pandas?
  5. 获得数据库中表字段的名字.txt
  6. No services have been found解决方案
  7. oracle 创建模式语句,ORACLE基本使用SQL语句以及归档模式的操作
  8. ICCV2021|STMN:双记忆网络提升视频行人ReID性能
  9. 上汽通用五菱与菜鸟合作数字供应链 一期整车数字物流系统正式启用
  10. android 获取sd卡视频文件名,android – 如何获取SD卡上的视频列表
  11. JBOD RAID0
  12. 163网站顶部展出的大幅广告
  13. 第14章 学习scikit-learn文档
  14. Rails中select2 实现多选框的效果
  15. 【麦子学院 彭亮 机器学习】3.2决策树应用(准备篇)
  16. cuda 原子锁多线程操作通用原子操作
  17. 最新解决谷歌浏览器崩溃的方法
  18. CDR类CAD制作室内装修平面图
  19. 栈的应用之符号匹配问题
  20. 来点基础的东西,关于浮点数的大小端转换以及浮点数的格式解析

热门文章

  1. 在R软件中,提取时间数据中的小时数
  2. 重庆大学804工商管理学硕考研经验贴
  3. python3 value counts函数_pandas计数 value_counts()的使用
  4. 给初中级JAVA准备的面试题
  5. vue-cli 构建的项目如何加入骨架屏 skeleton
  6. 【Flutter web】内网网站如何发布?解决外网下canvaskit.js和字体无法加载问题
  7. 乐学偶得python视频_怎么用历史估计法,ERP与CAPM模型计算股票资产的内在价值
  8. 正态分布标准正态分布
  9. [附源码]计算机毕业设计Python葡萄酒销售管理系统论文(程序+源码+LW文档)
  10. Mysql 查询满足条件 相邻的两条数据(场景:上一篇、下一篇)