LVM简介

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更富于灵活性:

(1) 将多块硬盘看作一块大硬盘

(2) 使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区。

(3) 可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小。

(4) 在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。

(5) 可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作。不过LVM上的文件系统也需要重新调整大小,好在某些文件系统(例如ext4)也支持在线操作。

(6) 无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。

(7) 允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小。

(8) 支持各种设备映射目标(device-mapper targets),包括透明文件系统加密和缓存常用数据(caching of frequently used data)。这将允许你创建一个包含一个或多个磁盘、并用LUKS加密的系统,使用LVM on top 可轻松地管理和调整这些独立的加密卷 (例如. /, /home, /backup等) 并免去开机时多次输入密钥的麻烦。

2、缺点

(1) 在系统设置时需要更复杂的额外步骤。

(2) Windows系统并不支持LVM,若使用双系统,你将无法在Windows上访问LVM分区。

三、LVM的使用

1、添加磁盘

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

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

# lvmdiskscan

②、使用pvcreate命令创建pv

# pvcreate device1 device2 ...

root# pvcreate /dev/sd{b..e} 

③、查看当前所有PV信息

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

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

3、卷组(VG)相关操作

①、创建卷组

使用命令vgcreate创建卷组

# vgcreate vg_name pv1 pv2 ...

​root# vgcreate  vg01  /dev/sd{b..e} 

创建卷组vg_01,并把物理卷/dev/sdb /dev/sdc /dev/sdd /dev/sde加入该卷组。

②、查看卷组信息

可以通过vgs、vgscan、vgdisplay查看卷组。

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

①、创建LV

使用lvcreate命令

# 创建逻辑卷

lvcreate -L <lv_size>  <vg_name> -n <lv_name>

# 将卷组vg_name下所有剩余空间给创建的lv_name逻辑卷

lvcreate -l +100%FREE  <vg_name> -n <lv_name>

root# lvcreate -L 1G vg01 -n lv01

该逻辑卷创建完后,你就可以通过/dev/mapper/vg01-lv01或/dev/vg01/lv01来访问它。

②、查看lv

命令lvs、lvscan、lvdisplay查看

③、扩容逻辑卷

通过命令lvextend:

# lvextend -L <extend_size> <lv_path>

 root# lvextend  -L +1G  /dev/vg01/lv01  

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

resize2fs    <mount_point>         针对的是ext2、ext3、ext4文件系统

xfs_growfs   <mount_point>       针对的是xfs文件系统,这里必须为挂载点,而非文件系统本身。

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

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

#modprobe dm-mod

#vgscan

#vgchange -ay

①、格式化逻辑卷

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

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

或者

# mkfs.<filesystem_type> /dev/<vg_name>/<lv_name>

root# mkfs.xfs /dev/vg01/lv01

②、挂载

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

或者

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

root# mkdir  /lv_data
root# mount /dev/vg01/lv01 /lv_data

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

永久挂载

root# echo “/dev/mapper/vg01-lv01  /lv_data   xfs  default  0 0” >> /etc/fstab
root# mount -a
root# df -lh

三、LVM的删除

①、卸载挂载点

# umount  <mount_point>

root# umount  /lv_data

②、除逻辑卷

# lvremove  /dev/mapper/<vg_name>/<lv_name>

或者

# lvremove  /dev/<vg_name>/<lv_name>

root# lvremove  /dev/vg01/lv01

③、除卷组

# vgremove  <vg_name>

root#  vgremove  vg01

④、除物理卷

# pvremove  <pv_name>

root#  pvremove  /dev/sd{b..e}

⑤、删除/etc/fstab添加的信息

# vim /etc/fstab 

Linux-LVM的介绍、创建、删除的更多相关文章

  1. Linux LVM学习总结——创建卷组VG

    在Linux平台如何创建一个卷组(VG)呢?下面简单介绍一下卷组(VG)的创建步骤.本文实验平台为Red Hat Enterprise Linux Server release 6.6 (Santia ...

  2. oracle 存储过程详细介绍(创建,删除存储过程,参数传递等)

    这篇文章主要介绍了oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包等相关资料,需要的朋友可以参考下   oracle 创建,删除存储过程,参数传递,创建 ...

  3. Linux LVM学习总结——扩展卷组VG

    Linux服务器由于应用变更或需求的缘故,有可能出现分区空间不足的情况,此时往往需要进行扩容(要增加分区的空间),而采用LVM的好处就是可以在不需停机的情况下可以方便地调整各个分区大小.如下所示,分区 ...

  4. Linux LVM磁盘管理

    几个概念: PV:物理卷,指LVM的基本逻辑卷,包含LVM的基本参数,如/dev/sdb1等. VG:卷组,类似于非LVM的硬盘,由多个PV组成. LV:逻辑卷,类似于非LVM硬盘中的分区. PE:物 ...

  5. linux LVM 磁盘管理

    一.linux LVM 管理及创建步骤 步骤:1.创建pv—2.创建vg—3.将pv加入vg—4.在vg中创建lv—5.将lv分区格式化—6.将lv分区挂载到某个目录使用 1.创建PV [root@z ...

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

    Linux LVM逻辑卷配置过程详解 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据, ...

  7. (转)Linux LVM逻辑卷配置过程详解(创建、扩展、缩减、删除、卸载、快照创建)

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

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

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

  9. Linux LVM硬盘管理之一:概念介绍

    一.LVM概念介绍: LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现.LVM将一个或多个硬盘的分区在逻 ...

  10. Linux下使用LVM管理(扩展/缩小/删除)

    LVM的工作原理 LVM( Logical Volume Manager)逻辑卷管理,是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件 ...

随机推荐

  1. TICK 中Kapacitor功能和使用说明

    转载请注明出处: 1.Kapacitor 简介 Kapacitor是InfluxData公司开发的一个实时流数据处理引擎.它可以实时地通过TICK脚本处理InfluxDB中的流数据以及批处理数据. K ...

  2. 为R Markdown配置TinyTex编译环境

    技术背景 在前面一篇博客中,我们介绍了一些关于在Windows系统上安装R Studio来编写R Markdown,最后编译成Beamer的演示文档的过程.而在Windows系统的使用过程中发现,编译 ...

  3. java - 标准类的定义

    一个标准的类需要拥有下面 4个 组成部分: 1. 所有的成员变量都要使用 private 关键字进行修饰 2. 为每一个成员变量编写 set.get 方法 3. 创建一个无参数的构造方法 4. 创建一 ...

  4. Django应用中的静态文件处理

    在日常开发中,我们都是把Django的Debug模式打开,方便调试,在这个模式下,由Django内置的Web服务器提供静态文件服务,不过需要进行一些配置,才能正确访问. 配置settings # St ...

  5. Nginx IP地址较少时如何合理分配后端服务资源

    Nginx IP地址较少时如何合理分配后端服务资源 背景 客户系统很多时候会通过网闸或者是VPN登录到产品内 此时的IP地址一般是相同的. 这种情况下较难实现根据ip地址使用ip_hash的方式将压力 ...

  6. Sonarqube 二进制的安装与简单使用

    Sonarqube 二进制的安装与简单使用 背景 使用容器安装 sonarqube 发现无法使用PG数据库 尝试了很长时间没搞定 想了想还是使用 二进制的方式进行部署吧. 下载 https://bin ...

  7. [转帖]Welcome to the di-kafkameter wiki!

    https://github.com/rollno748/di-kafkameter/wiki#producer-elements Introduction DI-Kafkameter is a JM ...

  8. [转帖]Linux Page cache和Buffer cache

    https://www.cnblogs.com/hongdada/p/16926655.html free 命令常用参数 free 命令用来查看内存使用状况,常用参数如下: -h human-read ...

  9. [转帖]03-rsync传输模式(本地传输、远程方式传输、守护进程模式传输)

    https://developer.aliyun.com/article/885801?spm=a2c6h.24874632.expert-profile.282.7c46cfe9h5DxWK 简介: ...

  10. [转帖]CKA 真题

    https://segmentfault.com/a/1190000021380185   1.列出pod并排序 kubectl get pod --sort-by .metadata.name 题目 ...