精华内容
下载资源
问答
  • 一、什么是LVM逻辑卷 LVM Logical Volume Manager(逻辑卷管理)的简写,它Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 ...

    一、什么是LVM逻辑卷

    LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。

    Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号连接(软链接),或者使用调整分区大小的工具(分区重规划),但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。

     

    二、为什么使用LVM

    每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量?

    因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估 计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。

    虽然有很多动态调整磁盘的工具可以使用,例如PartitionMagic等等,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要 重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的,而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解 决问题。

    因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。幸运的是Linux提供的逻辑盘卷管理(LVM,LogicalVolumeManager)机制就是一个完美的解决方案。

     

    三、LVM的工作方式

    逻辑卷管理器(LogicalVolumeManager)本质上是一个虚拟设备驱动是在内核中块设备和物理设备之间添加的一个新的抽象层次

    传统的分区方式是直接对硬盘设备分区,而lvm是对逻

    如图所示。它可以将几块磁盘(物理卷,PhysicalVolume)组合起来形成一个存储池或者卷组(VolumeGroup)。

    LVM可以每次从卷组中划分出不同大小的逻辑卷(LogicalVolume)创建新的逻辑设备。底层的原始的磁盘不再由内核直接控制,而由LVM层来控制。

    对于上层应用(系统软件,应用软件)来说卷组替代了磁盘块成为数据存储的基本单元。LVM管理着所有物理卷的物理盘区,维持着逻辑盘区和物理盘区之间的映射。LVM逻辑设备向上层应用提供了和物理磁盘相同的功能,如文件系统的创建和数据的访问等。但LVM逻辑设备不受物理约束的限制,逻辑卷不必是连续的空间,它可以跨越许多物理卷,并且可以在任何时候任意的调整大小。相比物理磁盘来说,更易于磁盘空间的管理。 

     

    从用户态应用来看,LVM逻辑卷相当于一个普通的块设备,对其的读写操作和普通的块设备完全相同。而从物理设备层来看,LVM相对独立于底层的物理设备,并且屏蔽了不同物理设备之间的差异。因而在LVM层上实现数据的连续保护问题,可以不需要单独考虑每一种具体的物理设备,避免了在数据复制过程中因物理设备之间的差异而产生的问题。从LVM的内核实现原理上看,LVM是在内核通用块设备层到磁盘设备驱动层的请求提交流之间开辟的另外一条路径,即在通用块设备层到磁盘设备驱动层之间插入了LVM管理映射层用于截获一定的请求进行处理,如图所示。 [

    用户通过lvm提供接口,依靠内核创建一系列LVM逻辑卷,所有对lvm逻辑卷的读写操作最终都会由LVM在通用块设备层下方截获下来,进行更进一步的处理。这里的进一步处理主要指的是完成写请求的映射,是将请求的数据根据实际情况进行一些拆分和重定位操作,从而可以将请求和数据分发到实际的物理设备中去。

     

    四、LVM管理工具集

     

     

     

    五、新建一个逻辑卷

     

    1.任务

    本例要求准备一个磁盘,并且做好分区,我准备了一个10G大小的磁盘,并且做了一个主分区/dev/vda1 5G.使用分区 /dev/vda1 构建 LVM 存储,相关要求如下:

    1. 新建一个名为 systemvg 的卷组
    2. 在此卷组中创建一个名为 vo 的逻辑卷,大小为180MiB
    3. 将逻辑卷 vo 格式化为 EXT4 文件系统
    4. 将逻辑卷 vo 挂载到 /vo 目录,并在此目录下建立一个测试文件 votest.txt,内容为“I AM KING.”

    [Linux磁盘分区管理]https://blog.csdn.net/ck784101777/article/details/101797858

     

    2.使用到的命令

    LVM创建工具的基本用法:

    1. vgcreate 卷组名 物理设备.. ..
    2. lvcreate -L 大小 -n 逻辑卷名 卷组名

     

    3.创建卷组

    1)新建名为systemvg的卷组

    创建卷组很简单,直接将分好区的磁盘作为卷组即可,此处卷组名为systemvg

    1. [root@server0 ~]# vgcreate systemvg /dev/vda1
    2. Physical volume "/dev/vdb1" successfully created
    3. Volume group "systemvg" successfully created

    2)确认结果

    命令vgscan查看卷组详情,可查看卷组名和文件类型

    1. [root@server0 ~]# vgscan
    2. Reading all physical volumes. This may take a while...
    3. Found volume group "systemvg" using metadata type lvm2

     

    2.创建逻辑卷

    1)新建名为vo的逻辑卷

    指定大小为180MiB(可写成-L 180m 或者-L 0.18G) -n指定逻辑卷名,最后跟上卷组名,表示用哪块卷组为此逻辑卷分配空间

    1. [root@server0 ~]# lvcreate -L 180MiB -n vo systemvg
    2. Logical volume "vo" created

    2)确认结果

    1. [root@server0 ~]# lvscan
    2. ACTIVE '/dev/systemvg/vo' [180.00 MiB] inherit

     

    3,.格式化及挂载使用

    1)格式化逻辑卷/dev/systemvg/vo

    格式化成ext4文件类型

    1. [root@server0 ~]# mkfs.ext4 /dev/systemvg/vo
    2. .. ..
    3. Allocating group tables: done
    4. Writing inode tables: done
    5. Creating journal (4096 blocks): done
    6. Writing superblocks and filesystem accounting information: done

    2)挂载逻辑卷/dev/systemvg/vo

    创建的逻辑卷名的路径为 /dev/卷组名/逻辑卷名

    1. [root@server0 ~]# mkdir /vo                                //创建挂载点
    2. [root@server0 ~]# mount /dev/systemvg/vo   /vo             //挂载
    3. [root@server0 ~]# df -hT /vo/                         //检查结果
    4. Filesystem Type Size Used Avail Use% Mounted on
    5. /dev/mapper/systemvg-vo ext4 171M 1.6M 157M 1% /vo

     

     

    六、调整现有磁盘的分区,使用逻辑分区做逻辑卷

    实验内容:

    本例要求沿用前一天案例,对磁盘/dev/vda的分区表进行调整,要求如下:不更改原有分区,利用剩余空间新增三个分区,大小依次为:500MiB、2000MiB、512MiB

    然后再基于刚建立的 2000MiB 分区构建新的 LVM 存储:

    1. 新的逻辑卷命名为 database,大小为50个物理扩展单元(Physical Extent),属于 datastore 卷组
    2. 在 datastore 卷组中的所有逻辑卷,其物理扩展单元(Physical Extent)的大小为16MiB
    3. 使用 EXT3 文件系统对逻辑卷 database 格式化,此逻辑卷应该在开机时自动挂载到 /mnt/database 目录

     

    实验前需知:

    1)创建卷组时,可以通过-s选项指定PE的大小。

    2)在给新建的逻辑卷分配空间时,空间大小只能是PE大小的倍数。

    3) 使用fdisk进行磁盘分区,分区的规则规定1-3为主分区,4为扩展分区

     我已经创建了3个主分区,当我创建了3个主分区后,系统会要求我创建扩展分区,简单介绍一下扩展分区和逻辑分区的关系,

    当我们创建了足够的分区后(3个主分区,1个扩展分区),接下来系统会提示你All primary partitions are in use,Adding logical partition(所有主分区已经用光,添加逻辑分区),然后会让你创建一个扩展分区,但是扩展分区是不能直接用的,他是以逻辑分区的方式来使用的,所以说扩展分区可分成若干逻辑分区。他们的关系是包含的关系,所有的逻辑分区都是扩展分区的一部分

    总结起来就是:创建扩展分区,再通过创建逻辑分区使用扩展分区

    如图,紫色区域是主分区,黄色区域为扩展区分区,红色区域为存在于扩展分区中的逻辑分区

    【Linux系统磁盘管理】https://blog.csdn.net/ck784101777/article/details/101797858

     

     

    步骤一:调整现有磁盘分区

    1)新建扩展分区(使用剩余可用空间) 

    1. [root@server0 ~]# fdisk /dev/vda
    2.  
    3. Command (m for help): p                                 //确认原有分区表,有3个主分区
    4. .. ..
    5. Device Boot Start End Blocks Id System
    6. /dev/vda1 2048 411647 204800 8e Linux LVM
    7. /dev/vda2 411648 4507647 2048000 83 Linux
    8. /dev/vda3 4507648 6555647 1024000 83 Linux
    9.  
    10. Command (m for help): n                                     //新建分区
    11. Partition type:
    12. p primary (3 primary, 0 extended, 1 free)
    13. e extended
    14. Select (default e): e                                   //类型指定为e(扩展分区)
    15. Selected partition 4                                     //只一个可用编号,自动选取
    16. First sector (6555648-20971519, default 6555648):         //起始位置默认
    17. Using default value 6555648
    18. Last sector, +sectors or +size{K,M,G} (6555648-20971519, default 20971519):
    19. Using default value 20971519                             //结束位置默认
    20. Partition 4 of type Extended and of size 6.9 GiB is set
    21.  
    22. Command (m for help): p
    23. .. ..
    24. Device Boot Start End Blocks Id System
    25. /dev/vda1 2048 411647 204800 8e Linux LVM
    26. /dev/vda2 411648 4507647 2048000 83 Linux
    27. /dev/vda3 4507648 6555647 1024000 83 Linux
    28. /dev/vda4 6555648 20971519 7207936 5 Extended

     

     

    2)在扩展分区中新建3个逻辑分区

    在这里我们需要创建三个逻辑分区

    创建第1个逻辑分区(由于主分区编号已用完,分区类型自动选l逻辑分区):

    1. Command (m for help): n
    2. All primary partitions are in use
    3. Adding logical partition 5                             //分区编号5
    4. First sector (6557696-20971519, default 6557696):         //起始位置默认
    5. Using default value 6557696
    6. Last sector, +sectors or +size{K,M,G} (6557696-20971519, default 20971519): +500M
    7.                                                               //结束位置默认
    8. Partition 5 of type Linux and of size 500 MiB is set

    创建第2个逻辑分区:

    1. Command (m for help): n
    2. All primary partitions are in use
    3. Adding logical partition 6                             //分区编号6
    4. First sector (7583744-20971519, default 7583744):         //起始位置默认
    5. Using default value 7583744
    6. Last sector, +sectors or +size{K,M,G} (7583744-20971519, default 20971519): +2000M
    7.                                                     //结束位置默认
    8. Partition 6 of type Linux and of size 2 GiB is set

    创建第3个逻辑分区:

    1. Command (m for help): n
    2. All primary partitions are in use
    3. Adding logical partition 7                             //分区编号7
    4. First sector (11681792-20971519, default 11681792):     //起始位置默认
    5. Using default value 11681792
    6. Last sector, +sectors or +size{K,M,G} (11681792-20971519, default 20971519): +512M
    7.                                                     //结束位置默认
    8. Partition 7 of type Linux and of size 512 MiB is set

     

    根据预计的用途调整分区类型(可选):

    1. Command (m for help): t                                 //修改
    2. Partition number (1-7, default 7): 5                     //第5个分区
    3. Hex code (type L to list all codes): 8e                 //类型为8e(LVM)
    4. Changed type of partition 'Linux' to 'Linux LVM'
    5.  
    6. Command (m for help): t                                 //修改
    7. Partition number (1-7, default 7): 6                     //第6个分区
    8. Hex code (type L to list all codes): 8e                 //类型为8e(LVM)
    9. Changed type of partition 'Linux' to 'Linux LVM'
    10.  
    11. Command (m for help): t                                 //修改
    12. Partition number (1-7, default 7): 7                     //第7个分区
    13. Hex code (type L to list all codes): 82                 //类型为82(交换分区)
    14. Changed type of partition 'Linux' to 'Linux swap / Solaris'

    确认分区结果并保存:

    1. Command (m for help): p
    2. .. ..
    3. Device Boot Start End Blocks Id System
    4. /dev/vdb1 2048 411647 204800 8e Linux LVM
    5. /dev/vdb2 411648 4507647 2048000 83 Linux
    6. /dev/vdb3 4507648 6555647 1024000 83 Linux
    7. /dev/vdb4 6555648 20971519 7207936 5 Extended
    8. /dev/vdb5 6557696 7581695 512000 8e Linux LVM
    9. /dev/vdb6 7583744 11679743 2048000 8e Linux LVM
    10. /dev/vdb7 11681792 12730367 524288 82 Linux swap / Solaris
    11.  
    12. Command (m for help): w                                 //保存退出
    13. The partition table has been altered!
    14.  
    15. Calling ioctl() to re-read partition table.
    16.  
    17. WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    18. The kernel still uses the old table. The new table will be used at
    19. the next reboot or after you run partprobe(8) or kpartx(8)
    20. Syncing disks.                                         //提示重启

    3)刷新分区表

    1. [root@server0 ~]# partprobe /dev/vdb
    2. [root@server0 ~]# reboot

     

     

    步骤二:新建卷组、逻辑卷

    1)新建卷组datastore,指定PE大小为16Mi

    【什么是PE】https://blog.csdn.net/ck784101777/article/details/98172012

    1. [root@server0 ~]# vgcreate -s 16MiB datastore /dev/vdb6
    2. Volume group "datastore" successfully created
    3. [root@server0 ~]# vgscan                                 //确认新建的卷组
    4. Reading all physical volumes. This may take a while...
    5. Found volume group "systemvg" using metadata type lvm2
    6. Found volume group "datastore" using metadata type lvm2

    2)新建逻辑卷database,大小设置为50个PE

    指定逻辑卷大小的方式有两种,一是-L 后跟大小(M,G,KB),二是 -l 后跟PE数量

    上面创建卷组时指定一个pe大小为16m,所以这里总大小为16*50=800

    1. [root@server0 ~]# lvcreate -l 50 -n database datastore
    2. Logical volume "database" created
    3. [root@server0 ~]# lvscan                                 //确认新建的逻辑卷
    4. ACTIVE '/dev/systemvg/vo' [180.00 MiB] inherit
    5. ACTIVE '/dev/datastore/database' [800.00 MiB] inherit

     

     

    步骤三:格式化及使用逻辑卷

    1)格式化逻辑卷/dev/datastore/database

    1. [root@server0 ~]# mkfs.ext3 /dev/datastore/database
    2. .. ..
    3. Allocating group tables: done
    4. Writing inode tables: done
    5. Creating journal (4096 blocks): done
    6. Writing superblocks and filesystem accounting information: done

    2)配置开机挂载

    1. [root@server0 ~]# mkdir /mnt/database                     //创建挂载点
    2. [root@server0 ~]# vim /etc/fstab
    3. .. ..
    4. /dev/datastore/database /mnt/database ext3 defaults 0 0

    3)验证挂载配置

    1. [root@server0 ~]# mount -a
    2. [root@server0 ~]# df -hT /mnt/database/                 //确认挂载点设备
    3. Filesystem Type Size Used Avail Use% Mounted on
    4. /dev/mapper/datastore-database ext3 772M 828K 715M 1% /mnt/database

     

     

    六、扩展卷组大小,扩展逻辑卷的大小

     

    实验内容:

    本实验需要准备一张逻辑卷,大小随意,我上面的实验中创建了一个逻辑卷vo,大小180M,我将使用此逻辑卷完成实验

    1. 原文件系统中的内容必须保持完整
    2. 必要时可使用其他磁盘的分区来扩展
    3. 注意:分区大小很少能完全符合要求的大小,所以大小在270MiB和300MiB之间都是可以接受的(PE调整到1即可解决)

     

    实验前需知:

    对于已经格式化好的逻辑卷,在扩展大小以后,必须通知内核新大小,可以通过以下工具来通知内核

    2)如果此逻辑卷上的文件系统是EXT3/EXT4类型,需要使用resize2fs工具;

    3)如果此逻辑卷上的文件系统是XFS类型,需要使用xfs_growfs。

     

    实现此案例需要按照如下步骤进行。

    步骤一:确认逻辑卷vo的信息

    1)找出逻辑卷所在卷组

    查看一下有多少个逻辑卷

    1. [root@server0 ~]# lvscan
    2. ACTIVE '/dev/systemvg/vo' [180.00 MiB] inherit
    3. ACTIVE '/dev/datastore/database' [800.00 MiB] inherit

    2)查看该卷组的剩余空间是否可满足扩展需要

    终点需要关注的内容我用红色标记出来了,第一个是卷组总大小,第二个是PE大小,第三个是当前逻辑卷卷大小(用PE表示或M表示)

    此例中卷组systemvg的总大小都不够300MiB、剩余空间才16MiB,因此必须先扩展卷组。只有剩余空间足够,才可以直接扩展逻辑卷大小。

    1. [root@server0 ~]# vgdisplay systemvg
    2. --- Volume group ---
    3. VG Name systemvg
    4. System ID
    5. Format lvm2
    6. Metadata Areas 1
    7. Metadata Sequence No 2
    8. VG Access read/write
    9. VG Status resizable
    10. MAX LV 0
    11. Cur LV 1
    12. Open LV 0
    13. Max PV 0
    14. Cur PV 1
    15. Act PV 1
    16. VG Size 196.00 MiB                         //卷组总大小
    17. PE Size 4.00 MiB
    18. Total PE 49
    19. Alloc PE / Size 45 / 180.00 MiB
    20. Free PE / Size 4 / 16.00 MiB                     //剩余空间大小
    21. VG UUID czp8IJ-jihS-Ddoh-ny38-j521-5X8J-gqQfUN

     

    步骤二:扩展卷组

    1)将提前准备的分区/dev/vdb5添加到卷组systemvg

    我们要准备一个分区,可以是主分区或逻辑分区

    1. [root@server0 ~]# vgextend systemvg /dev/vdb5
    2. Physical volume "/dev/vdb5" successfully created
    3. Volume group "systemvg" successfully extended

    2)确认卷组新的大小

    1. [root@server0 ~]# vgdisplay systemvg
    2. --- Volume group ---
    3. VG Name systemvg
    4. .. ..
    5. VG Size 692.00 MiB                         //总大小已变大
    6. PE Size 4.00 MiB
    7. Total PE 173
    8. Alloc PE / Size 45 / 180.00 MiB
    9. Free PE / Size 128 / 512.00 MiB                 //剩余空间已达512MiB
    10. VG UUID czp8IJ-jihS-Ddoh-ny38-j521-5X8J-gqQfUN

     

    步骤三:扩展逻辑卷大小

    1)将逻辑卷/dev/systemvg/vo的大小调整为300MiB

    我们已经将卷组的大小扩充了,现在我们要扩展逻辑卷的大小,-L 扩容大,注意,这里的扩容是扩容到300M而不是在原基础上添加300M

    1. [root@server0 ~]# lvextend -L 300MiB /dev/systemvg/vo
    2. Extending logical volume vo to 300.00 MiB
    3. Logical volume vo successfully resized

    2)确认调整结果

    1. [root@server0 ~]# lvscan
    2. ACTIVE '/dev/systemvg/vo' [300.00 MiB] inherit
    3. ACTIVE '/dev/datastore/database' [800.00 MiB] inherit

    3)刷新文件系统大小

    确认逻辑卷vo上的文件系统类型:

    1. [root@server0 ~]# blkid /dev/systemvg/vo
    2. /dev/systemvg/vo: UUID="d4038749-74c3-4963-a267-94675082a48a" TYPE="ext4"

    选择合适的工具刷新大小:

    1. [root@server0 ~]# resize2fs /dev/systemvg/vo
    2. resize2fs 1.42.9 (28-Dec-2013)
    3. Resizing the filesystem on /dev/systemvg/vo to 307200 (1k) blocks.
    4. The filesystem on /dev/systemvg/vo is now 307200 blocks long.

    确认新大小(约等于300MiB):

    1. [root@server0 ~]# mount /dev/systemvg/vo /vo/
    2. [root@server0 ~]# df -hT /vo
    3. Filesystem Type Size Used Avail Use% Mounted on
    4. /dev/mapper/systemvg-vo ext4 287M 2.1M 266M 1% /vo
    展开全文
  • Linux-逻辑卷LVM

    2021-02-20 17:52:44
    逻辑卷管理器Linux系统用于对硬盘分区进行管理的一种机制,为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上讲可行的。但是却可能造成数据的丢失。LVM技术...

    LVM逻辑卷管理器

    为什么要使用逻辑卷?

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

    LVM的技术架构图:

    举例理解:

    比如小明家里想吃馒头但是面粉不够了,于是妈妈从隔壁老王家、老李家、老张家分别借来一些面粉,准备蒸馒头吃。首先需要把这些面粉( 物理卷[ PV, Physical Volume ] )揉成一个大面团( 卷组[ VG,Volume Group ] ),然后再把这个大面团分割成一个个小馒头( 逻辑卷[ LV, Logical Volume ] ),而且每个小馒头的重量必须是每勺面粉( 基本单元[ PE, Physical Extent ] )的倍数。

    理论:

    物理卷处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列,这都可以。卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。这就是LVM的核心理念。

    • 物理卷(PV:Physical Volume):物理卷是底层真正提供容量,存放数据的设备,它可以是整个硬盘、硬盘上的分区等。
    • 卷组(VG:Volume Group):卷组建立在物理卷之上,它由一个或多个物理卷组成。即把物理卷整合起来提供容量分配。一个LVM系统中可以只有一个卷组,也可以包含多个卷组。
    • 逻辑卷(LV:Logical Volume):逻辑卷建立在卷组之上,它是从卷组中“切出”的一块空间。它是最终用户使用的逻辑设备。逻辑卷创建之后,其大小可以伸缩。
    • 基本单元(PE:Physical Extents):具有唯一编号的PE是能被LVM寻址的最小单元。PE的大小可以指定,默认为4MB。PE的大小一旦确定将不能改变,同一个卷组中的所有的物理卷的PE的大小是一直的

    部署逻辑卷

    常用的LVM部署命令

    功能/命令 物理卷管理 卷组管理 逻辑卷管理
    扫描 pvscan vgscan lvscan
    建立 pvcreate vgcreate lvcreate
    显示 pvdisplay vgdisplay lvdisplay
    删除 pvremove vgremove lvremove
    扩展 vgextend lvextend
    缩小 vgreduce lvreduce

    添加两块新硬盘设备

    在虚拟机中添加两块新硬盘设备的目的,是为了更好地演示LVM理念中用户无需关心底层物理硬盘设备的特性。我们先对这两块新硬盘进行创建物理卷的操作,可以将该操作简单理解成让硬盘设备支持LVM技术,或者理解成是把硬盘设备加入到LVM技术可用的硬件资源池中,然后对这两块硬盘进行卷组合并,卷组的名称可以由用户来自定义。接下来,根据需求把合并后的卷组切割出一个约为150MB的逻辑卷设备,最后把这个逻辑卷设备格式化成EXT4文件系统后挂载使用。

    [root@centos7-1 ~]# lsblk 
    NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sr0          11:0    1 1024M  0 rom  
    vda         252:0    0   10G  0 disk 
    ├─vda1      252:1    0  500M  0 part /boot
    └─vda2      252:2    0  9.5G  0 part 
      ├─cl-root 253:0    0    9G  0 lvm  /
      └─cl-swap 253:1    0  500M  0 lvm  [SWAP]
    vdb         252:16   0   10G  0 disk 
    vdc         252:32   0   10G  0 disk
    

    **第1步:**创建物理卷,让新添加的两块硬盘设备支持LVM技术。

    [root@centos7-1 ~]# pvcreate /dev/vdb /dev/vdc 
      Physical volume "/dev/vdb" successfully created.
      Physical volume "/dev/vdc" successfully created.
    
    [root@centos7-1 ~]# pvs         //简单查看
      PV         VG Fmt  Attr PSize  PFree 
      /dev/vda2  cl lvm2 a--   9.51g     0 
      /dev/vdb      lvm2 ---  10.00g 10.00g
      /dev/vdc      lvm2 ---  10.00g 10.00
      
    [root@centos7-1 ~]# pvdisplay /dev/vdb        //查看物理卷详细信息
      "/dev/vdb" is a new physical volume of "10.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/vdb
      VG Name               
      PV Size               10.00 GiB
      Allocatable           NO
      PE Size               0   
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               bUTpIc-J6Hq-LUvk-WinD-hoYk-HQkX-sNgA2W
    

    **第2步:**创建卷组并将物理卷加入到卷组

    [root@centos7-1 ~]# vgcreate vg_storage /dev/vdb /dev/vdc        //vg_storage 自定义卷组名称
      Volume group "vg_storage" successfully created
    
    [root@centos7-1 ~]# vgdisplay 
      --- Volume group ---
      VG Name               vg_storage
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                2
      Act PV                2
      VG Size               19.99 GiB
      PE Size               4.00 MiB
      Total PE              5118
      Alloc PE / Size       0 / 0   
      Free  PE / Size       5118 / 19.99 GiB
      VG UUID               PRDBRS-ybbD-Dwud-GPbM-XxKu-5NHA-a0BMEm
     ...........省略部分输出信息..........
    

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

    root@centos7-1 ~]# lvcreate -n lv_vo -L 150M vg_storage         // -n 指定逻辑卷设备名称
      Rounding up size to full physical extent 152.00 MiB
      Logical volume "lv_vo" created.
      
    [root@centos7-1 ~]# lvdisplay 
      --- Logical volume ---
      LV Path                /dev/vg_storage/lv_vo
      LV Name                lv_vo
      VG Name                vg_storage
      LV UUID                dIo5Ff-pKyD-97Hw-RMs3-dQ10-9tHG-ZGh5o9
      LV Write Access        read/write
      LV Creation host, time centos7-1, 2018-11-12 11:00:28 +0800
      LV Status              available
      # open                 0
      LV Size                152.00 MiB
      Current LE             38
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:2
    ...........省略部分输出信息..........
    

    **第4步:**将生成好的逻辑卷进行格式化,然后挂载使用
    Linux系统会把LVM中的逻辑卷设备存放在/dev设备目录中(实际上是做了一个符号链接),同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件(即/dev/卷组名称/逻辑卷名称)

    [root@centos7-1 ~]# ls /dev/vg_storage/lv_vo 
    /dev/vg_storage/lv_vo
    
    [root@centos7-1 ~]# mkfs.ext4 /dev/vg_storage/lv_vo 
    mke2fs 1.42.9 (28-Dec-2013)
    文件系统标签=
    OS type: Linux
    块大小=1024 (log=0)
    分块大小=1024 (log=0)
    Stride=0 blocks, Stripe width=0 blocks
    38912 inodes, 155648 blocks
    7782 blocks (5.00%) reserved for the super user
    第一个数据块=1
    Maximum filesystem blocks=33816576
    19 block groups
    8192 blocks per group, 8192 fragments per group
    2048 inodes per group
    Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729
    Allocating group tables: 完成                            
    正在写入inode表: 完成                            
    Creating journal (4096 blocks): 完成
    Writing superblocks and filesystem accounting information: 完成
    
    [root@centos7-1 ~]# mkdir /linuxlvm
    [root@centos7-1 ~]# mount /dev/vg_storage/lv_vo /linuxlvm/
    

    **第5步:**查看挂载状态,并写入到配置文件、使其永久生效

    [root@centos7-1 ~]# df -h
    文件系统                      容量  已用  可用 已用% 挂载点
    /dev/mapper/cl-root           9.1G  3.7G  5.4G   41% /
    devtmpfs                      481M     0  481M    0% /dev
    tmpfs                         497M   84K  497M    1% /dev/shm
    tmpfs                         497M  7.1M  490M    2% /run
    tmpfs                         497M     0  497M    0% /sys/fs/cgroup
    /dev/vda1                     497M  166M  332M   34% /boot
    tmpfs                         100M   16K  100M    1% /run/user/42
    tmpfs                         100M     0  100M    0% /run/user/0
    /dev/mapper/vg_storage-lv_vo  144M  1.6M  132M    2% /linuxlvm
    [root@centos7-1 ~]# echo "/dev/vg_storage/lv_vo /linuxlvm ext4 defaults 0 0" >>/etc/fstab
    

    扩容逻辑卷

    在前面的实验中,卷组是由两块硬盘设备共同组成的。用户在使用存储设备时感知不到设备底层的架构和布局,更不用关心底层是由多少块硬盘组成的,只要卷组中有足够的资源,就可以一直为逻辑卷扩容。扩展前请一定要记得卸载设备和挂载点的关联。

    [root@centos7-1 ~]# umount /linuxlvm
    

    **第1步:**把上一个实验中的逻辑卷vo扩展至300MB。

    [root@centos7-1 ~]# lvextend -L 300M /dev/vg_storage/lv_vo 
      Size of logical volume vg_storage/lv_vo changed from 152.00 MiB (38 extents) to 300.00 MiB (75 extents).
      Logical volume vg_storage/lv_vo successfully resized.
    

    **第2步:**检查硬盘完整性,并重置硬盘容量。

    [root@centos7-1 ~]# e2fsck -f /dev/vg_storage/lv_vo
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    /dev/vg_storage/lv_vo: 11/38912 files (0.0% non-contiguous), 10567/155648 blocks
    
    [root@centos7-1 ~]# resize2fs /dev/vg_storage/lv_vo 
    resize2fs 1.42.9 (28-Dec-2013)
    Resizing the filesystem on /dev/vg_storage/lv_vo to 307200 (1k) blocks.
    The filesystem on /dev/vg_storage/lv_vo is now 307200 blocks long.
    

    **第3步:**重新挂载硬盘设备并查看挂载状态。

    [root@centos7-1 ~]# mount -a 
    [root@centos7-1 ~]# df -h
    文件系统                      容量  已用  可用 已用% 挂载点
    /dev/mapper/cl-root           9.1G  3.7G  5.4G   41% /
    devtmpfs                      481M     0  481M    0% /dev
    tmpfs                         497M   84K  497M    1% /dev/shm
    tmpfs                         497M  7.1M  490M    2% /run
    tmpfs                         497M     0  497M    0% /sys/fs/cgroup
    /dev/vda1                     497M  166M  332M   34% /boot
    tmpfs                         100M   16K  100M    1% /run/user/42
    tmpfs                         100M     0  100M    0% /run/user/0
    /dev/mapper/vg_storage-lv_vo  287M  2.1M  266M    1% /linuxlvm
    

    缩小逻辑卷

    相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其丢失数据的风险更大。所以在生产环境中执行相应操作时,一定要提前备份好数据。另外Linux系统规定,在对LVM逻辑卷进行缩容操作之前,要先检查文件系统的完整性(当然这也是为了保证我们的数据安全)。在执行缩容操作前记得先把文件系统卸载掉。

    [root@centos7-1 ~]# umount /linuxlvm/
    

    **第1步:**检查文件系统的完整性

    [root@centos7-1 ~]# e2fsck -f /dev/vg_storage/lv_vo 
    e2fsck 1.42.9 (28-Dec-2013)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    /dev/vg_storage/lv_vo: 11/77824 files (0.0% non-contiguous), 15987/307200 blocks
    

    **第2步:**把逻辑卷lv_vo的容量减小到120MB

    [root@centos7-1 ~]# resize2fs /dev/vg_storage/lv_vo 120M
    resize2fs 1.42.9 (28-Dec-2013)
    Resizing the filesystem on /dev/vg_storage/lv_vo to 122880 (1k) blocks.
    The filesystem on /dev/vg_storage/lv_vo is now 122880 blocks lon
    
    [root@centos7-1 ~]# lvreduce -L 120M /dev/vg_storage/lv_vo 
      WARNING: Reducing active logical volume to 120.00 MiB.
      THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce vg_storage/lv_vo? [y/n]: y
      Size of logical volume vg_storage/lv_vo changed from 300.00 MiB (75 extents) to 120.00 MiB (30 extents).
      Logical volume vg_storage/lv_vo successfully resized.
    

    **第3步:**重新挂载文件系统并查看系统状态

    [root@centos7-1 ~]# mount -a 
    [root@centos7-1 ~]# df -h
    文件系统                      容量  已用  可用 已用% 挂载点
    /dev/mapper/cl-root           9.1G  3.7G  5.4G   41% /
    devtmpfs                      481M     0  481M    0% /dev
    tmpfs                         497M   84K  497M    1% /dev/shm
    tmpfs                         497M  7.1M  490M    2% /run
    tmpfs                         497M     0  497M    0% /sys/fs/cgroup
    /dev/vda1                     497M  166M  332M   34% /boot
    tmpfs                         100M   16K  100M    1% /run/user/42
    tmpfs                         100M     0  100M    0% /run/user/0
    /dev/mapper/vg_storage-lv_vo  113M  1.6M  103M    2% /linuxlvm
    

    逻辑卷快照

    LVM还具备有“快照卷”功能,该功能类似于虚拟机软件的还原时间点功能。例如,可以对某一个逻辑卷设备做一次快照,如果日后发现数据被改错了,就可以利用之前做好的快照卷进行覆盖还原。

    首先查看卷组的信息

    [root@centos7-1 ~]# vgdisplay 
      --- Volume group ---
      VG Name               vg_storage
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  4
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                1
      Open LV               1
      Max PV                0
      Cur PV                2
      Act PV                2
      VG Size               19.99 GiB
      PE Size               4.00 MiB
      Total PE              5118
      Alloc PE / Size       30 / 120.00 MiB
      Free  PE / Size       5088 / 19.88 GiB
      VG UUID               PRDBRS-ybbD-Dwud-GPbM-XxKu-5NHA-a0BMEm
    ...........省略部分输出信息..........
    

    通过卷组的输出信息可以清晰看到,卷组中已经使用了120MB的容量,空闲容量还有19.88GB。接下来用重定向往逻辑卷设备所挂载的目录中写入一个文件。

    [root@centos7-1 ~]# echo "to day is good day" > /linuxlvm/today.txt
    
    [root@centos7-1 ~]# ll /linuxlvm/
    总用量 13
    drwx------ 2 root root 12288 11月 12 11:04 lost+found
    -rw-r--r-- 1 root root    19 11月 12 11:57 today.txt
    

    第1步:使用-s参数生成一个快照卷,使用-L参数指定切割的大小。另外,还需要在命令后面写上是针对哪个逻辑卷执行的快照操作。

    [root@centos7-1 ~]# lvcreate -L 120M -s -n SNAP  /dev/vg_storage/lv_vo 
      Using default stripesize 64.00 KiB.
      Rounding up size to full physical extent 52.00 MiB
      Logical volume "SNAP" created.
    
    [root@centos7-1 ~]# lvs  LV    VG         Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert  root  cl         -wi-ao----   9.02g                                                      swap  cl         -wi-ao---- 500.00m                                                      SNAP  vg_storage swi-a-s--- 120.00m      lv_vo  0.01                                     lv_vo vg_storage owi-aos--- 120.00m
    

    第2步:在逻辑卷所挂载的目录中创建一个100MB的垃圾文件,然后再查看快照卷的状态。可以发现存储空间占的用量上升了。

    [root@centos7-1 ~]# dd if=/dev/zero of=/linuxlvm/files count=1 bs=100M 
    记录了1+0 的读入
    记录了1+0 的写出
    104857600字节(105 MB)已复制,0.680154 秒,154 MB/秒
    
    [root@centos7-1 ~]# lvs
      LV    VG         Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root  cl         -wi-ao----   9.02g                                                    
      swap  cl         -wi-ao---- 500.00m                                                                                 
      SNAP vg_storage swi-a-s--- 120.00m      lv_vo  83.69                                  
      lv_vo vg_storage owi-aos--- 120.00m
    

    第3步:为了校验SNAP快照卷的效果,需要对逻辑卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设备与目录的挂载。

    [root@centos7-1 ~]# umount /linuxlvm
    
    [root@centos7-1 ~]# lvconvert --merge /dev/vg_storage/SNAP 
      Merging of volume vg_storage/SNAP started.
      lv_vo: Merged: 18.84%
      lv_vo: Merged: 100.00%
    

    第4步:快照卷会被自动删除掉,并且刚刚在逻辑卷设备被执行快照操作后再创建出来的100MB的垃圾文件也被清除了。

    [root@centos7-1 ~]# mount -a
    [root@centos7-1 ~]# ls /linuxlvm/
    lost+found  today.txt
    

    删除逻辑卷

    当生产环境中想要重新部署LVM或者不再需要使用LVM时,则需要执行LVM的删除操作。为此,需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒。

    第1步:取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。

    [root@centos7-1 ~]# umount /linuxlvm/
    [root@centos7-1 ~]# vim /etc/fstab 
    
    #
    # /etc/fstab
    # Created by anaconda on Mon Oct 29 12:25:27 2018
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    /dev/mapper/cl-root     /                       xfs     defaults        0 0
    UUID=07d3a8ca-89fa-4011-837d-47ac9f7660c4 /boot                   xfs     defaults        0 0
    /dev/mapper/cl-swap     swap                    swap    defaults        0 0
    /dev/vg_storage/lv_vo   /linuxlvm               ext4    defaults        0 0
    

    第2步:删除逻辑卷设备,需要输入y来确认操作。

    [root@centos7-1 ~]# lvremove /dev/vg_storage/lv_vo 
    Do you really want to remove active logical volume vg_storage/lv_vo? [y/n]: y
      Logical volume "lv_vo" successfully removed
    

    第3步:删除卷组,此处只写卷组名称即可,不需要设备的绝对路径。

    [root@centos7-1 ~]# vgremove vg_storage 
      Volume group "vg_storage" successfully removed
    

    第4步:删除物理卷设备。

    [root@centos7-1 ~]# pvremove /dev/vdb /dev/vdc 
      Labels on physical volume "/dev/vdb" successfully wiped.
      Labels on physical volume "/dev/vdc" successfully wiped.
    

    在上述操作执行完毕之后,再执行lvdisplay、vgdisplay、pvdisplay命令来查看LVM的信息时就不会再看到信息了(前提是上述步骤的操作是正确的)。

    作者:别来无恙-

    出处:https://www.cnblogs.com/yanjieli/p/9945750.html

    版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

    展开全文
  • 一次又一次地写相同的逻辑是很痛苦的。 至于前端,更糟糕的,对于支持图像/文件上传的编辑器,有些只有一个用于处理图像上传的php文件,有些只有收费的文件管理器,而这些代码中的大多数都太旧了,无法修复/添加...
  • LVM 逻辑

    2021-03-01 10:55:05
    5. LVM 逻辑卷 1.传统磁盘管理的问题 ​ 当分区大小不够用时无法扩展其大小,只能通过添加硬盘、创建新的分区来扩充...逻辑卷的大小可以动态调整,而且不会丢失现有的数据。新加入的硬盘也不会改变现有上层的逻辑卷。

    5. LVM 逻辑卷

    1.传统磁盘管理的问题

    ​ 当分区大小不够用时无法扩展其大小,只能通过添加硬盘、创建新的分区来扩充空间,但是新添加的硬盘是作为独立的文件系统存在的,而上层应用很多时候只能访问一个文件系统,只能让现有磁盘下线,换上新的磁盘之后,再将原有的数据导入。

    2.什么是 LVM

    ​ LVM(Logical volume Manager) 逻辑卷管理通过将底层物理硬盘封装起来,以逻辑卷的形式表现给上层系统。逻辑卷的大小可以动态调整,而且不会丢失现有的数据。新加入的硬盘也不会改变现有上层的逻辑卷。

    3.底层运行原理

    ​ 物理磁盘被格式化为PV(physical volume),空间被分为一个个PE(physical extend)【大小为 4 MB,为逻辑卷的最小单位】。不同的PV加入同一个VG(volume group),不同PV的PE全部进入VG的PE池内。LV(logical volume)基于PE创建,大小为PE的整数倍,组成LV的PE可能来自于不同的物理磁盘。LV现在就能挂载使用了。

    4.创建 LVM

    ① 将物理磁盘设备初始化为物理卷
    pvcreate /dev/sdb /dev/sdc
    ② 创建卷组,并将pv加入卷组中
    vgcreate vgname /dev/sdb /dev/sdc
    ③ 基于卷组创建逻辑卷
    lvcreate -n lvname -L 容量 vgname
    ④ 为创建好的逻辑卷创建文件系统
    mkfs.ext4 /dev/vgname/lvname
    ⑤ 将格式化好的逻辑卷挂载使用
    mount /dev/vgname/lvname /mnt

    5. 显示逻辑卷的相关信息

    ​ 查看物理卷 pvdisplay pvs

    ​ 查看卷组 vgdisplay vgs

    ​ 查看逻辑卷 lvdisplay lvs

    6. 删除 LVM

    ① 解除挂载
    umount /mnt/
    ② 删除 LV
    lvremove /dev/vgname/lvname
    ③ 删除 VG
    vgremove vgname
    ④ 删除 物理卷
    pvremove /dev/sdb /dev/sdc

    7. 扩充 LVM

    ① 扩充逻辑卷
    lvextend -L +1G /dev/vgname/lvname
    ② 更新文件系统
    resize2fs /dev/vgname/lvname

    8. 当 vg 中不够时的扩充

    ① 将要添加到vg的硬盘格式化为 pv
    pvcreate /dev/sdd
    ② 将新的 pv 添加到指定卷组中
    vgextend vgname /dev/sdd
    ③ 重复 7 的操作

    9. 缩小一个逻辑卷

    逻辑卷的缩小必须离线执行
    ① 卸载已经挂载的逻辑卷
    ​ umount /dev/vgname/lvname
    ② 缩小文件系统
    ​ resize2fs /dev/vgname/lvname 1G【缩小至1G】
    ③ 缩小LV
    ​ lvreduce -L -1G /dev/vgname/lvname【减小1G,要等于或大于②的容量】
    ④ 挂载
    ​ mount /dev/vgname/lvname /mnt

    10.缩小卷组

    ​ 将一个pv从指定卷组中移除
    ​ vgreduce vgname /dev/sdd

    展开全文
  • lvm 逻辑卷管理

    2019-11-14 18:58:37
    一、lvm 逻辑卷管理 1、什么是lvm及用途、 ...用途:普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,但lvm逻辑卷管理可以 使用户在不停机的情况下可以方便地调整各个分区大小。通过LVM系统管...

    一、lvm 逻辑卷管理

    1、什么是lvm及用途、

    • LVM是 Logical Volume Manager(逻辑卷管理)的简写, 是Linux环境下对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性
    • 用途:普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,但lvm逻辑卷管理可以 使用户在不停机的情况下可以方便地调整各个分区大小。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的 文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。

    2、lvm的基本概念

    • 物理存储介质(Physical Storage Media): 指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元
    • 物理卷(Physical Volume,PV)指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数
    • 卷组(Volume Group,VG),类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成,可以在卷组上创建一个或多个LV(逻辑卷)
    • 逻辑卷(Logical Volume,LV)类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上,在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)
    • 物理块(Physical Extent,PE),每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元,PE的大小是可配置的,默认为4MB,所以物理卷(PV)由大小等同的基本单元PE组成
    • 逻辑块(Logical Extent,LE)逻辑卷LV也被划分为可被寻址的基本单位,称为LE,在同一个卷组中,LE的大小和PE是相同的,并且一一对应
    名称 名称
    pv 物理卷,被lv命令处理过的物理分区
    vg 物理卷组,被组装到一起的物理卷
    pe 物理块,lvm设备的最小存储单元是pe的整数倍
    lv 逻辑卷,直接使用的设备,可以增大缩减并保持原有数据不变
    • lvm存在意义:

    3、解决存储容量的问题:

    在这里插入图片描述

    4、图解lvm如何解决存储容量的问题

    在这里插入图片描述

    二、lvm的建立

    条件:一个建立好的未被格式化的物理分区

    pvcreate---->vgcreate---->lvceate
    在创建过程中我们可以用以下命令监控,可以更好的看到创建效果:

     1|watch -n 1 "pvs;echo ======;vgs;echo ======;lvs;echo ======;df -h /weixindata"
    
    • step1
      划分lvm所用到的设备(划分物理分区),这些设备的功能id必须是linux LVM
     2|fdisk /dev/vdb
    

    在这里插入图片描述
    (1)定分区标签为8e,更改 /dev/vdb1的系统为Linux LVM
    在这里插入图片描述

    • step2
      建立pv(相当于把橘子榨汁的过程)
      1 | pvcreate /dev/vdb1							##把物理分区做成物理卷
      2 | pvs|pvdisplay								##查看物理卷
    

    在这里插入图片描述

    • step3
      建立vg(相当于把果汁倒进大容器的过程)
      1 | vgcreate vg0 /dev/vdb1		##用制作好的/dev/vdb1这个物理卷制作一个物理卷组vg0
      2 | vgs|vgdisplay				##查看物理卷组
    

    在这里插入图片描述

    • step4
      建立lvm
      1 | lvcreate -L 100M -n lv0 vg0			##在vg0这个组中建立出lv0设备 -L 指定设备大小 -n 指定设备名字
      2 | lvs|lvdisplay						##对逻辑卷设备进行查看
    

    在这里插入图片描述

    • step5
      lvm建立成功之后要进行以下两步:
      1 | mkfs.xfs /dev/vg0/lv0					##格式化
      2 | mkdir /date                             ##建立挂载点 /weixindata
      3 | mount /dev/vg0/lv0 /weixindata			##挂载到/weixindata
    

    在这里插入图片描述

    三、lvm拉伸

    • 针对xfs文件系统

    3. 1 xfs格式的拉伸:(只能拉伸不能缩减)

    1、 当vg中剩余容量足够时

    lvm扩大:

      1 | lvextend -L 100M /dev/vg0/lv0			    ##扩大lvm设备到500M
      2 | xfs_growfs /dev/vg0/lv0					##扩大xfs文件系统到设备大小
    

    在这里插入图片描述
    在这里插入图片描述

    2、 vg中剩余容量不足时
       1 | fdisk /dev/vdb 新建一块分区设备 ,partprobe 更新分区列表
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    vg扩大:

      1 | pvcreate /dev/vdb2						##在pv中增加一块设备/dev/vdb2
      2 | vgextend vg0 /dev/vdb2					##把新建立的/dev/vdb2添加到vg0中	
    

    在这里插入图片描述
    在这里插入图片描述
    lvm扩大:

      1 | lvextend -L 500M /dev/vg0/lv0			    ##扩大lvm设备到500M
      2 | xfs_growfs /dev/vg0/lv0					##扩大xfs文件系统到设备大小
    

    在这里插入图片描述
    在这里插入图片描述
    - 针对ext文件系统

    3.2 ext文件系统的拉伸
    • 由于我们系统中目前的文件系统是xfs系统,我们先通过以下方法把它转化成ext系统
      1 | umount /weixindata						##卸载(进行文件系统转换时要先卸载)
      2 | mkfs.ext4 /dev/vg0/lv0					##格式化成ext文件系统
      3 | mount /dev/vg0/lv0 /weixindata
    

    在这里插入图片描述
    在这里插入图片描述
    vg扩大:(和xfs系统相同)

      1 | pvcreate /dev/vdb3          		        ##在pv中增加一块设备/dev/vdb3
      2 | vgextend vg0 /dev/vdb3					##把新建立的/dev/vdb3添加到vg0中
    

    lvm扩大:

      1 | lvextend -L 900M /dev/vg0/lv0				##扩大lvm设备到900M
      2 | resize2fs /dev/vg0/lv0					##设定文件系统大小和设备同步
    

    在这里插入图片描述

    四.lvm设备的缩减

    • 注意:xfs文件系统不能缩减,只有ext文件系统可以缩减

    1.lvm缩减:

      1 | umount /dev/vg0/lv0					##卸载设备,因为文件系统缩减不支持在线操作
      2 | e2fsck -f /dev/vg0/lv0				##检测文件系统,确定文件系统中已有数据大小防止过度缩减
      3 | resize2fs  /dev/vg0/lv0  300M		    ##把文件系统缩减到300M
      4 | lvreduce  -L 300M /dev/vg0/lv0 		##设备缩减到300M
    

    2.vg缩减:

    • 注意:在vg缩减时只能缩减没有被占用的设备
      1 | pvmove  /dev/vdb2  /dev/vdb1			##把设备2上的所有数据移动到设备1上,完全移过去再操作,否则会损坏文件
      2 | vgreduce  vg0  /dev/vdb2				##把vg0中的/dev/vdb2删除
      3 | pvremove /dev/vdb2					##/dev/vdb2上的lvm管理信息删除
    
    • 如何移除含有数据的设备:pvmove /dev/vdb1 /dev/vdb2 将1的数据移动到2上,完全移过去再操作,否则会损坏文件

    在这里插入图片描述

    五、lvm的快照

    5.1 建立快照

    (1)我们 在/weixindate中建立touch file{1…10}
    (2)umount /weixindate/ 先解挂磁盘才可以照快照

      1 | lvcreate -L 20M -n lv0backup -s /dev/vg0/lv0		##/dev/vg0/lv0建立快照,-L指定快照大小,
                                                                        -n指定快照名字,-s指定快照模板设备
      2 | mount /dev/vg0/lv0backup /weixindata 				##挂载
    
    • 注意:
      1.当快照设备里的数据被更改,如果想还原,删除快照设备,再重新建立快照即可
      2.创建快照时要预估好快照大小,如果在使用时截取一个比快照大的文件,快照会被撑坏

    在这里插入图片描述

    六、lvm的删除

    lvremove---->vgremove----->pvremove
    step1 卸载设备

      1 | umount /dev/vg0/lv0							##卸载
      2 | df											##查看设备挂载情况
    

    step2 lvremove

      1 | lvremove /dev/vg0/lv0backup		 		 ##删除快照
      2 | lvremove /dev/vg0/lv0				 		 ##删除lv0
    

    step3 vgremove

      1 | vgremove vg0								##删除vg
    

    step4 pvremove

      1 | pvremove /dev/vdb1							##删除物理卷
    

    在这里插入图片描述

    七.lvm丢失设备的删除

    • 模拟设备丢失情况:

    step1 首先建立好lvm,挂载好,并且用命令监控实时情况

      1 | watch -n 1 "pvs;echo ======;vgs;echo ======;lvs;echo ======;df -h /weixindata"		##监控命令
    

    step2 用fisk /dev/vdb 命令手动删除设备/dev/vdb1
    在这里插入图片描述
    删除后在监控界面会出现报错:PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?

    • 删除丢失的设备
      1 | vgreduce --removemissing vg0					##删除vg0中丢失的设备
    
    展开全文
  • Lvm逻辑卷的管理

    2019-07-29 01:14:27
    lvm 1.什么是lvm ...用途:普通的磁盘分区管理方式 在分区划分好之后就无法改变其大小,但lvm逻辑卷管理可以 使用户在不停机的情况下可以方便地调整各个分区大小 2.基本概念 pv 物理卷 被...
  • 例如在PQ Magic中,选择要查看的磁盘分区,然后单击右键选择“高级→调整大小”功能,即可从显示的对话框中可以看到该磁盘当前设置的簇大小。  ③手工查看 手动创建一个100字节以下的文本文档。然后将该文件复制...
  • 什么需要LVM,如果分区的空间被使用完了以后,没有办法在线调整分区大小的,只能创建一个更大的分区,把数据拷贝进去 但是有了LVM就可以在线调整文件系统的大小 相关的概念: PV:物理卷,指一个物理磁盘,或者...
  • linux LVM逻辑卷管理

    2018-03-17 20:58:00
    LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,与硬件相关的存储设置被其隐藏,你可以不用停止应用或卸载文件系统来调整大小或数据迁移.这样可以减少操作成本. 如上图所示: 最底...
  • 文章目录逻辑是什么逻辑卷的原理逻辑卷的优点 ...LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,与硬件相关的存储设置被其隐藏,你可以不用停止应用或卸载文件系统来调整大小或数据迁移...
  • LVM逻辑卷管理

    2014-07-17 23:34:26
    LVM:Logical Volumn Manager 逻辑卷管理...用LVM管理的硬盘好处:不关机对分区大小调整,扩容方便,一个分区可以位于多块硬盘上。对每个分区的大小没有需要。可以做快照卷。名词解释pv:物理卷,位于LVM的最底层...
  • 传统的分区都一次性分区,即分区后其大小就是固定的,不能后期因为空间不足进行大小调整,如果要改变,唯一的操作办法就是重新分区,这对于需要高可用的服务器环境非常糟糕的,所以此时引入了LVM逻辑卷管理模式...
  • LVM(逻辑管理卷)

    2018-08-03 23:23:38
    一 什么是LVM ...而遇到出现某个分区空间耗尽时,解决的方法通常使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题 而LVM Logical Volume Manager(逻...
  • Linux之逻辑卷管理

    2012-06-24 15:55:40
    什么是LVM? LVM是逻辑卷管理(Logical Volume Manager)的简称,他... LVM将存储虚拟化,使用逻辑卷不会受限于物理磁盘的大小,另外,与硬件相关的存储设置被隐藏,可以不用停止应用或卸载文件系统来调整大...
  • LVM-Linux逻辑卷管理器

    2019-12-08 12:11:22
    一LVM是什么? LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的 一种机制,是为了能够在不关机的前提下,可以对文件系统的大小进行调整,方便实现文件系统跨越不同磁盘...
  • Lvm基本应用 什么是LVM? LVM 的全称 Logical Volume Manager。中文为逻辑卷管理。...LVM 的重点在于能够动态的调整磁盘分区的大小。而并非数据的冗余性和完整性。 LVM的组成 PV:Physica...
  • LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,和硬件相关的存储设置被其隐藏,你能不用停止应用或卸载文件系统来调整大小或数据迁移.这样能减少操作成本. 二、 LVM基本术语...
  • 传统分区使用固定大小,重新调整大小十分麻烦,但是LVM可以创建和管理“逻辑”卷 而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小、操作简单,而不是损坏已存储的数据。可以随意将新的硬盘添加到...
  • 1 lvm是什么? lvm,基本的逻辑卷管理器,最大的好处是可以动态的调整逻辑卷。 2 lvm是怎么组成的 一个或者几个物理硬盘--创建分区--组成物理卷pv--vg--lv 创建过程,假设有两块硬盘,/dev/sda /dev/sdb 组建名...
  • 一、方法区定义 在一个jvm实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中,类型信息由类加载器在类加载时从...2.方法区的大小可以是非固定的,jvm可以根据应用需要动态调整,jvm也支持用户和程序指定...
  • 传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘...
  • 基于Philip Walton的使用自定义元素和调整大小观察器。 为什么? 如果容器位于会影响容器大小的动态应用程序布局内,例如布局具有可关闭的抽屉,则很难在容器内封装和定位响应逻辑。 今天存在的媒体查询不足。 ...
  • §3.4.20 对大卸出文件大小(MAX_DUMP_FILE_SIZE) 76 §3.4.21 对大回滚段数(MAX_ROLLBACK_SEGMENTS) 77 §3.4.22 打开的光标数(OPEN_CURSORS) 77 §3.4.23 优化方式(OPTIMIZER_MODE) 77 §3.4.24 进程数(PROCESSES) ...
  • 我们经常用CSS媒体查询来根据设备调整CSS属性(通常根据屏幕宽度调 整CSS属性),例如根据不同的屏幕宽度来设置不同的元素宽度或者悬浮位置。那么我们为什么不用这种方式来改变背景图片呢? /* 默认为桌面...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 225
精华内容 90
关键字:

逻辑大小调整是什么