物理卷 -- Physical Volume -- PV

卷组  -- Volume Group  -- VG

逻辑卷 -- Logical Volume -- LV

  1、硬盘设备管理技术虽然能够有效的提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署为 RAID 的磁盘阵列之后,再想修改硬盘分区大小就不容易了。当用户想要随着实际需求的变化调整硬盘分区的大小时,会受到硬盘“灵活性”的限制,这是需要用到另一一项非常普及的硬盘设备资源管理技术——LVM(逻辑卷管理器),LVM 可以允许用户对硬盘资源进行动态调整。

  2、逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,其创建的初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对系统的硬盘分区进行强制扩容或缩容从理论上讲师可行的,但是却可能造成数据的丢失。而LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并,由此用户不必关心物理硬盘设备的底层架构和布局就可以实现对硬盘分区的动态调整。

  

  3、常用LVM部署命令

功能/命令    物理卷管理    卷组管理    逻辑卷管理

扫描       pvscan         vgscan       lvscan

建立       pvcreate         vgcreate     lvcreate

显示       pvdisplay     vgdisplay       lvdisplay

删除       pvremove       vgremove      lvremove

扩展                 vgextend       lvextend

缩小                 vgreduce          lvreduce

  4、环境准备。添加两块新硬盘。

  对这两块硬盘进行创建物理卷的操作可以理解成让硬盘设备支持LVM技术或把硬盘设备加入到LVM技术可用的硬件资源池中,然后对这两块硬盘进行卷组合并,卷组的名称可以由用户自定义。

  把合并后的卷组切割出一个 150 MB的逻辑卷设备,把这个逻辑卷设备格式化成 ext4 文件系统后挂载使用。

  5、LVM技术部署

  

  (1)让新添加的两块硬盘设备支持LVM 技术。

pvcreate /dev/sdb /dev/sdc

  (2)把两块硬盘设备加入到 storage 卷组中。

vgcreate storage /dev/sdb /dev/sdc 

  (3)查看卷组的状态。

vgdisplay

  (4)切割出一个约为 150MB 的逻辑卷设备。

  注意:切割单位的问题,在对逻辑卷进行切割时有两种计量单位。第一种是以容量为单位,所使用的的参数为-L。例如,使用 -L 150M 生成一个大小为150MB的逻辑卷,另外一种是以基本单元的个数为单位,所使用的参数为 -l 。每个基本单元的大小默认为 4MB。例如,使用 -l 37 可以生成一个大小为 37 ×4MB=148MB 的逻辑卷。

lvcreate -n lv -L 150M storage
# -n 表示指定名字 -L 指定逻辑卷的大小

  (5)将生成好的逻辑卷进行格式化,然后挂载使用。

mkfs.ext4 /dev/storage/lv

  /dev/sdb 和 dev/sdc 做卷组 storage,新生成的卷组为 /dev/storage,从/dev/storage 卷组中切割出逻辑卷lv,lv所在位置 /dev/storage/lv。

  (6)挂载,查看挂载状态。

mkdir /lvm
mount /dev/storage/lv /lvm
df -h

  (7)写入到配置文件中永久生效。

echo "/dev/storage/lv  /lvm ext4 default 0 0">> /etc/fstab  

  6、扩容逻辑卷

  只要卷组中有足够的资源,就可以一直为逻辑卷扩容。扩容前一定要记得卸载设备和挂载点的关联。

umount /lvm

  (1)将逻辑卷的 lv 扩展至 290MB

lvextend -L 290M /dev/storage/lv

  (2)检查硬盘完整性

e2fsck -f /dev/storage/lv

  (3)重置硬盘容量

resize2fs /dev/storage/lv

  (4)重新挂载并查看。

  逻辑卷的容量已经改变。

  7、缩小逻辑卷

  相较于扩容逻辑卷,缩容逻辑卷丢失数据的风险更大。对逻辑卷进行缩容之前,要先检查文件系统的完整性(为了保证数据安全),在执行缩容操作前要先把文件系统卸载。

umount /lvm

  (1)检查文件系统的完整性

e2fsck -f /dev/storage/lv

  (2)把逻辑卷 lv 的容量减小到 120MB

resize2fs /dev/storage/lv 120M
lvreduce -L 120M /dev/storage/lv

  (3)重新挂载文件系统并查看系统状态

mount /dev/storage/lv /lvm
df -h

LVM(逻辑卷管理器)部署、扩容、缩小的更多相关文章

  1. Linux 笔记 - 第十七章 Linux LVM 逻辑卷管理器

    一.前言 在实际生产中,有时会遇到磁盘分区空间不足的情况,这时候就需要对磁盘进行扩容,普通情况下需要新加一块磁盘,重分区.格式化.数据复制.卸载旧分区.挂载新分区等繁琐的步骤,而且有可能造成数据的丢失 ...

  2. LVM逻辑卷管理器

    LVM概述 通过使用Linux的逻辑卷管理器(Logical Volume Manager, LVM),用户可以在系统运行时动态调整文件系统的大小,把数据从一块硬盘重定位到另一块硬盘,也可以提高I/O ...

  3. LVM逻辑卷管理测试——逻辑卷扩展、收缩、快照及删除

    一.逻辑卷扩展 [root@lxjtest /]# umount /testLVM/ [root@lxjtest /]# df -h Filesystem Size Used Avail Use% M ...

  4. LVM逻辑卷管理测试——创建逻辑卷

    虚拟机里再添加两块硬盘,如下所示: 启动系统后,我们可以看到新添加的两块硬盘为/dev/sdb和/dev/sdc.每个2GB. [root@lxjtest ~]# fdisk -l Disk /dev ...

  5. 逻辑卷管理器LVM

    逻辑卷管理器LVM •将设备指定为物理卷 • 用一个或者多个物理卷来创建一个卷组 • 物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的 • 在物理卷上创建的逻辑卷是由物理区 ...

  6. Linux逻辑卷管理器(LVM)

    LVM基础 通过使用Linux的逻辑卷管理器(Logical Volume Manager, LVM),用户可以在系统运行时动态调整文件系统的大小,把数据从一块硬盘重定位到另一块硬盘,也可以提高I/O ...

  7. 10-3 LVM(逻辑卷管理器)

    LVM(逻辑卷管理器) 允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小 允许在多个物理设备间重新组织文件系统 将设备指定为物理卷 用一个或者多个物理卷来创建一个卷组 物理卷是用固定大小的物理 ...

  8. Linux系统磁盘管理(lvm逻辑卷管理)

    linux系统用户常遇到的一个问题就是如何精准的评估分区的大小,已分配合适的磁盘空间:普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文 ...

  9. 十三、LVM 逻辑卷管理

    http://note.youdao.com/noteshare?id=0252cd5dcf7f2e5f11de5b3672779201&sub=ED011464ADA3467D9424271 ...

随机推荐

  1. node 后台使用增删改查(4)

    无论node还是java增删改查都是一样的原理,变得是配合框架使用时候有简便方法而已. 这里我接着上一篇开始讲,使用同一个数据库(数据库创建)这里必须创建了数据库 优化:为了维护方便这里我们把sql语 ...

  2. HDFS之NameNode

    NameNode&Secondary NameNode工作机制 1)第一阶段:namenode启动 (1)第一次启动namenode格式化后,创建fsimage和edits文件.如果不是第一次 ...

  3. Stream系列(二)Map方法使用

    Stream 将List 里面的对象转换为新的对象 EmployeeTestCase.java package com.example.demo; import lombok.Data; import ...

  4. 从Netty EventLoop实现上可以学到什么

    本文主要讨论Netty NioEventLoop原理及实践,关于Netty NioEventLoop,首先要知道NioEventLoop是什么,为什么它会是Netty核心Reactor处理器,实现原理 ...

  5. 基于 HTML5 + WebGL 的地铁 3D 可视化系统

    前言 工业互联网,物联网,可视化等名词在我们现在信息化的大背景下已经是耳熟能详,日常生活的交通,出行,吃穿等可能都可以用信息化的方式来为我们表达,在传统的可视化监控领域,一般都是基于 Web SCAD ...

  6. 关于vue中的videoPlayer的src视频地址参数动态修改(网上一堆错误方法,被误导很久,自己找到了正确的方法,供大家借鉴)

    方法很简单:相信大家的问题应该是改变src的值吧,动态赋值这一步简单.this.playerOptions['sources'][0]['src'] 就是这一步解决提取src问题,主要部分用绿色框起来 ...

  7. React躬行记(15)——React Hooks

    Hook(钩子)是React v16.8新引入的特性,能以钩子的形式为函数组件附加类组件的状态.生命周期等特性.React的类组件有难以拆分.测试,状态逻辑分散,难以复用等问题,虽然可以通过渲染属性( ...

  8. PowerMock学习(十一)之Mock private methods的使用

    Mock  private methods 就是mock私有方法啦,学到这不难发现,我们其实大部分都是通过反射去完成单元测试的,但是在实际中,某个类中的私有方法,个人不建议使用反射来测试,因为有时候会 ...

  9. ASP.NET Core 2 preview 1中Program.cs,Startup.cs和CreateDefaultBuilder的探索

    Exploring Program.cs, Startup.cs and CreateDefaultBuilder in ASP.NET Core 2 preview 1 ASP.NET Core 2 ...

  10. SpringBoot 使用IDEA 配置热部署

    在开发中稍微更改一点内容就要重启,很麻烦.这个时候使用Spring Boot的热部署就能解决你的问题. 上图: 1,在pom.xml文件中添加依赖: <dependency> <gr ...