lvm(逻辑卷管理)的魅力

近来,随着课程的深入,开始接触到lvm逻辑卷。由开始的不懂,到现在的半知半懂,慢慢的感受到了lvm逻辑卷由内而外散发出的魅力。作为一个小白,为了能更好地学习和理解lvm逻辑卷的知识,特趁着难得的休息时间,总结一下自己所学的关于lvm逻辑卷的知识,有错误的地方,请各位大神指正,共同学习!

本人认为lvm逻辑卷主要有两大魅力:

1、逻辑卷的边界是可变化的。

2、lvm支持快照(snapshot)。

各位看官别着急,且听小生慢慢说来:

前言

首先,让我们思考一个问题:为什么会出现LVM技术?

本人是这样认为的:对于我们常用PC的人来说,我们总是不得不对磁盘执行分区。硬盘分区是一种令人厌烦,但公认是使操作系统设置和运行进程不可或缺的一部分。因为要做好工作,就要精确地估计每个分区需要的空间,所以硬盘分区很烦人。如果估计失误了,分得太大,会浪费空间;分得太少了,空间又不够用。为了解决这个问题,你甚至可能需要执行整个系统备份、将硬盘清除干净,然后将所有数据恢复到新的(可能比原来好一些)分区布局中。对于服务器来说,也是如此。传统的这种方法极为不便,不能动态地扩展或缩减分区的大小,所以就有了后来的lvm的出现。

一、lvm、相关概念以及两大魅力简介

 1、lvm简介

LVM: Logical Volumn Manager (逻辑卷管理器),它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。它于1998年发布到Linux社区中,它允许你在Linux系统上用简单的命令行管理一个完整的逻辑卷管理环境。

LVM实质上是将一个或多个底层块设备组织一个逻辑的工具。

2、lvm重要概念

重要的概念有:Physical volume (PV):物理卷, Physical extent (PE):盘区,Volume group (VG):卷组,Logical volume(LV) :逻辑卷

以下是概念的详细解释:

物理存储介质(The physical media):这里指系统的存储设备,如硬盘/分区,是存储系统最低层的存储单元。

物理卷(PV) :  LVM的基本存储逻辑块,一般会把硬盘/分区做成物理卷,甚至底层块设备是raid也能被做成物理卷。PV不同于基本的物理存储介质(如分区、磁盘等),它包含有与LVM相关的管理参数。(物理卷不能被格式化,它没有文件系统的概念。)

物理盘区(PE)  :  就是一块磁盘空间,物理卷被划分成多个同等大小的PE。大小固定,一般为4M或8M(一个PE只能属于一个逻辑卷)。

卷组(VG):LVM卷组完全类似于扩展分区,不能被直接使用必须进行再次划分。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),卷组由多个物理卷(PV)组成。

逻辑卷(LV):LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统,也就是从VG中划分的逻辑分区。

下面以一个简单的图说明一下物理卷、卷组、逻辑卷之间的关系:

创建逻辑卷的过程说明:

(1)先把磁盘/分区转换为pv(物理卷)。由于物理卷没有文件系统的概念,不能被格式化,所以转换为物理卷后,原磁盘/分区的文件系统不能被保留。

(2)创建卷组,把多个物理卷添加到卷组中。实质上,创建卷组会默认或可指定PE的大小,物理卷加入卷组后,会被分割成一个个固定大小的PE。

(3)卷组相当于扩展分区,不能被直接使用,于是要在卷组中创建逻辑卷。实质上,创建指定大小的逻辑卷是在卷组中把可用的多个PE分配给逻辑卷,由于PE的大小是固定的,所以创建出的逻辑卷的大小会有偏差。由此可知,逻辑卷只能看到卷组中的PE,而无法看不到底层中有多少块物理卷。逻辑卷相当于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统。

 3、lvm的两大魅力简介

    到这里,我们可以知道:

(1)由于lvm可把物理卷分割成PE和划分逻辑卷的特性,可知lvm逻辑卷的边界是可以动态扩展和缩减的。实质上,逻辑卷边界的动态扩展和缩减是分为两层的:物理边界和逻辑边界各自的扩展和缩减。这里不细讲,以下会有详细事例进一步说明。

(2)lvm如果仅有逻辑卷这么一个功能,就不可能那么受欢迎了。lvm令人兴奋的是,它还支持快照的功能。有了快照后,我们对于数据库的备份就会变得非常简单+easy了。这里也不细说,以下会进一步说明。

二、lvm逻辑卷创建过程详解

   lvm逻辑卷创建的整个过程大致如下:

分区 --> PV --> VG --> LV  --> 将分区格式化(为分区创建文件系统)--> 挂载逻辑分区

下面,用一个实例来加深各位对lvm的理解。

  1、分区

使用分区工具fdisk分区,为了使其能被lvm支持,需要把分区的系统ID改为8e(注意:一定要把分区的系统ID该为8e,否则不能将分区转换为物理卷)。

另一个分区的创建就不贴图了,各位小伙伴可以去尝试一下,很好玩的!-_-

 2、创建物理卷(PV)

    [[email protected] ~]# pvcreate /dev/sda3 /dev/sdb1     
      Physical volume "/dev/sda3" successfully created
      Physical volume "/dev/sdb1" successfully created

物理卷(pv)相关命令介绍:

pvcreate : 创建pv(物理卷)

pvs, pvdisplay : 查看pv

pvremove : 移除pv

pvmove : 移动pv(把该物理卷上的数据移到卷组的其他物理卷上)

pvscan : 扫描有哪些pv

  3、创建卷组(VG)

    [[email protected] ~]# vgcreate -s 8 myvg /dev/sda3 /dev/sdb1   
      Volume group "myvg" successfully created
    [[email protected] ~]# vgs
      VG   #PV #LV #SN Attr   VSize  VFree 
      myvg   2   0   0 wz--n- 10.02g 10.02g
      vg0    1   4   0 wz--n- 59.99g  7.99g
    [[email protected] ~]# vgdisplay
      --- Volume group ---
      VG Name               myvg
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  6
      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               10.02 GiB
      PE Size               8.00 MiB      #指定PE的大小为8M
      Total PE              1282
      Alloc PE / Size       640 / 5.00 GiB
      Free  PE / Size       642 / 5.02 GiB
      VG UUID               5cHXI4-WSz9-ACFQ-IiQj-iUIW-vcxd-gahSK8

卷组(VG)相关命令介绍:

vgcreate : 创建卷组,-s 选项可以指定PE的大小

vgs, vgdisplay :查看卷组的信息

vgremove : 移除卷组

vgextend : 扩展卷组的空间

vgreduce : 缩减卷组的空间

缩减卷组中的空间,一般都是通过移除某一个物理卷来完成的。

需要注意的是:

移除卷组中的某一物理卷时,应该先使用pvmove命令把该物理卷上的数据移到卷组上别的分区,然后才用vgreduce命令指定移除该物理卷

vgscan:扫描有哪些卷组

    4、创建逻辑卷(LV)

逻辑卷(LV)相关命令介绍:

lvcreate : 创建逻辑卷(lv)

-n lv_name (指定逻辑卷的名称)

-L #UNIT{mMgGtT}  (指定逻辑卷的大小)

lvs,lvdisplay :查看逻辑卷的信息

lvremove : 移除指定的逻辑卷

lvextend : 扩展逻辑卷

lvreduce : 缩减逻辑卷

lvscan :扫描有哪些逻辑卷

5、格式化逻辑卷

mke2fs:用来格式化分区(为分区创建文件系统)

-t 指定文件系统类型

6、挂载分区

mount :用于挂载分区

挂载mylv逻辑分区后,就能在该逻辑分区上存储数据了!

怎样?是不是很简单啊!好了,下面让我们进一步深入lvm 吧!

以下所讲的是我们高级班的内容,要学请转入我们的高级班,只要999元!!!

-_- ,说笑的~

三、逻辑卷的扩展与缩减

lvm存储空间边界分为两类:

物理边界:物理磁盘的存储大小

逻辑边界:逻辑卷的空间大小

如下图所示:

内圆范围是文件系统(逻辑),外圆范围是存储空间(物理)。

文件系统是在存储空间上抹上一层软件级别的管理方案。因而文件系统空间大小不能大于存储空间的大小。

因此我们知道逻辑卷扩展和缩减是有要求的:

扩展:物理 --> 逻辑(先扩展物理卷,然后才扩展逻辑卷。)

缩减:逻辑 --> 物理(先缩减逻辑卷,然后才缩减物理卷。)

缩减不能少于已经存储的所有数据空间的大小!!!(缩减须谨慎!!!)

1、扩展逻辑卷

(1)先确定扩展的目标大小;并确保对应的卷组中有足够的空闲空间可用;

             [[email protected] ~]# vgs
             VG   #PV #LV #SN Attr   VSize  VFree
             myvg   2   1   0 wz--n- 10.02g 5.02g
             vg0    1   4   0 wz--n- 59.99g 7.99g

(2)扩展物理边界

增加新的分区:

把分区转换成PV:

把新的物理卷加入卷组:

            [[email protected] ~]# vgextend myvg /dev/sdb2 # vgextend扩展逻辑卷的大小
              Volume group "myvg" successfully extended
            [[email protected] ~]# vgs
              VG   #PV #LV #SN Attr   VSize  VFree 
              myvg   3   1   0 wz--n- 15.02g 10.02g
              vg0    1   4   0 wz--n- 59.99g  7.99g

扩展物理边界:

            [[email protected] ~]# lvs
              LV   VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
              mylv myvg -wi-ao----  5.00g                                             
              root vg0  -wi-ao---- 20.00g                                             
              swap vg0  -wi-ao----  2.00g                                             
              usr  vg0  -wi-ao---- 10.00g                                             
              var  vg0  -wi-ao---- 20.00g                                             
            [[email protected] ~]# lvextend -L 10G /dev/myvg/mylv     # 注意:-L 10G 是指定扩展后的逻辑卷大小为10G,并不是+10G的意思
              Extending logical volume mylv to 10.00 GiB           #       -L指定的扩展后的逻辑卷大小不能比原来逻辑卷的大小还小
              Logical volume mylv successfully resized
            [[email protected] ~]# lvs
              LV   VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
              mylv myvg -wi-ao---- 10.00g                                             
              root vg0  -wi-ao---- 20.00g                                             
              swap vg0  -wi-ao----  2.00g                                             
              usr  vg0  -wi-ao---- 10.00g                                             
              var  vg0  -wi-ao---- 20.00g

(3)扩展逻辑边界

        [[email protected] ~]# blkid /dev/myvg/mylv    # blkid命令可以查看块设备的UUID号,也可以查看该块设备的文件系统类型    
         /dev/myvg/mylv: UUID="b9301aad-ca3b-497a-88e2-22e121247914" TYPE="ext4" 
        [[email protected] ~]# resize2fs /dev/myvg/mylv  # resize2fs命令表示重新调整文件系统的大小(根据物理边界的大小,自动调整)
         resize2fs 1.41.12 (17-May-2010)
         Filesystem at /dev/myvg/mylv is mounted on /mnt; on-line resizing required
         old desc_blocks = 1, new_desc_blocks = 1
         Performing an on-line resize of /dev/myvg/mylv to 2621440 (4k) blocks.
         The filesystem on /dev/myvg/mylv is now 2621440 blocks long. 
        [[email protected] ~]# blkid /dev/myvg/mylv
         /dev/myvg/mylv: UUID="b9301aad-ca3b-497a-88e2-22e121247914" TYPE="ext4" 
        [[email protected] ~]# ls /mnt   # 扩展逻辑卷mylv后,数据没丢失
         fstab  lost+found

  2、缩减逻辑卷

 注意:a、缩减逻辑卷的操作是很危险的,操作不当,很有可能会使得数据丢失。请慎重!!!

                       b、缩减逻辑卷时,逻辑卷要离线,不能处在挂载当中!

(1)先确定缩减后的目标大小;并确保对应的目标逻辑卷大小中有足够的空间可容纳原有所有数据;

        [[email protected] ~]# lvs /dev/myvg/mylv        
        LV   VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
        mylv myvg -wi-a----- 10.00g

(2)先制裁文件系统,并要执行强制检测

        [[email protected] ~]# mount  # mount命令能查看当前系统中挂载的设备
        /dev/mapper/myvg-mylv on /mnt type ext4 (rw)
        [[email protected] ~]# umount /dev/myvg/mylv    # umount命令可卸载所指定的已挂载的设备
        [[email protected] ~]# e2fsck -f /dev/myvg/mylv  # e2fsck -f ,强制检测逻辑卷mylv的文件系统
        e2fsck 1.41.12 (17-May-2010)
        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/myvg/mylv: 12/655360 files (0.0% non-contiguous), 76784/2621440 blocks

(3)缩减逻辑边界

        [[email protected] ~]# resize2fs /dev/myvg/mylv 5G  # 这表示自动调整逻辑卷mylv的文件系统大小到5G
        resize2fs 1.41.12 (17-May-2010)
        Resizing the filesystem on /dev/myvg/mylv to 1310720 (4k) blocks.
        The filesystem on /dev/myvg/mylv is now 1310720 blocks long.

(4)缩减物理边界

        [[email protected] ~]# lvreduce -L 5G /dev/myvg/mylv    # 这表示缩减逻辑卷mylv的存储空间到5G
        WARNING: Reducing active logical volume to 5.00 GiB
        THIS MAY DESTROY YOUR DATA (filesystem etc.)
        Do you really want to reduce mylv? [y/n]: y    # 注意:这里会提示你当前的操作有可能会使得数据丢失,问你是否要继续?(想清楚额,后果自付!!!)
        Reducing logical volume mylv to 5.00 GiB
        Logical volume mylv successfully resized

(5)重新把逻辑卷挂载上去,查看数据是否丢失

呼!!!看到这里,各位看官是不是都有点视觉疲劳了?

革命尚未成功,同志仍须继续!

不过,写到这里篇幅已经不够了,本人决定另起一篇博客(是这篇博客的续写)继续写下去。

欲知后事如何,且听下回分解!

时间: 2024-12-14 02:09:28

lvm(逻辑卷管理)的魅力的相关文章

LVM逻辑卷管理

本次内容 1.什么是LVM 2.为什么使用LVM 3.LVM的操作命令 4.LVM的具体操作实现 一.什么是LVM LVM:Logical Volume Manager,即逻辑卷管理,它是Linux环境下的一种磁盘管理方式,其功能在于能弹性调整文件系统的容量.LVM中有几个专业名词,重点来说以下一个 PV:物理卷 LVM的基本存储逻辑块,但和基本的物理存储介质(如分区.磁盘等)比较,却包含有与LVM相关的管理参数. VG:卷组 由一个或多个PV构成,为上层的逻辑卷提供空间 LV:逻辑卷 类似于磁

[Linux] centOS 6.5 LVM 逻辑卷 管理 实验报告

目录 1.      LVM 简介 2.      LVM基本术语 3.      LVM的安装 4.      LVM的使用 4.1        物理卷的管理 4.2        卷组的管理: 4.3        逻辑卷的管理: 5.      一个例子 5.1        练习: 5.2        开始部署 1.   LVM 简介 LVM逻辑卷管理器(英语:Logical Volume Manager,缩写为LVM),又译为逻辑卷宗管理器.逻辑扇区管理器.逻辑磁盘管理器,是Lin

第八章 磁盘和文件系统管理LVM逻辑卷管理

                      第八章LVM逻辑卷管理 LVM机制的基本概念 Pv(Physical Volume,物理卷) 整个硬盘,或使用fdisk等工具建立的普通分区 包括许多默认4MB大小的PE(Physical Extent,基本单元) VG(Volume Group,卷组) 一个或多个物理卷组合而成的整体 LV(Logical Volume,逻辑卷) 从卷组中分割出的一块空间,用于建立文件系统 (创建物理卷--创建卷组--从卷组中创建逻辑卷) 相关命令 pvcreate

关于 LVM 逻辑卷管理

逻辑卷管理 (LVM)    允许对卷进行方便操作的抽象层,包括从新设定文件系统的大小    允许在多个设备间重新组织文件系统将设备指定为物理卷用一个或者多个物理卷来创建一个卷组物理卷是用固定大小的物理区域(Physical Extent PE) 来定义的在物理卷上创建的逻辑卷是由物理区域(PE)组成 可以在逻辑卷上创建文件系统下面看图解            LVM: Logical Volume Manager, Version: 2     dm: device mapper:将一个或多个

Linux的lvm逻辑卷管理

一.LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现.LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性. 与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储.它使系统管理员可以更方便的为应用与用户分配存储空间.在LVM管理下的存储卷

CentOS下LVM逻辑卷管理技术解释

1.LVM逻辑卷管理技术产生的背景 企业日益变化的存储需要使得传统的磁盘分区存储显得不够灵活 2.磁盘分区存储 对于这样的三个物理分区的话,迟早有一天会被数据填满,因为它是死的,无法进行缩放. 假设下面表示的是/dev/sda磁盘上的三个分区: 1).初始化/dev/sda上的这三个物理分区: 命令:# pvcreate /dev/sda1 /dev/sda2 /dev/sda3 或#pvcreate /dev/sda[1-3] 2).将这三个物理卷PV ,合并成一个卷组(VG Volume G

linux服务器 磁盘和文件系统管理(二) LVM逻辑卷管理的基本操作

上一章我们说完了硬盘的分区.格式化与挂载分区,用是可以正常使用了,但是一旦出现系统分区不够用了,我们不得不备份.删除相关数据或者重新规划分区来满足系统的需要,那么如何才能解决这类的问题呢?这就可以用到我们标题中所提到的LVM动态分区,所谓LVM,它功能就是可以在现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性 在进行LVM逻辑卷管理之前,我们需要先了解下LVM的几个基本术语: PV(Physical Volume,物理卷)物理卷是LVM机制的基本存储设备,通常对应一个普通分区或整个

LVM逻辑卷管理测试(一)

虚拟机里再添加两块硬盘,如下所示: 启动系统后,我们可以看到新添加的两块硬盘为/dev/sdb和/dev/sdc.每个2GB. [[email protected] ~]# fdisk -l Disk /dev/sdb: 2147 MB, 2147483648 bytes, 4194304 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O

LVM逻辑卷管理-软RAID磁盘阵列

LVM逻辑卷管理软RAID磁盘阵列管理################################################# 一.LVM逻辑卷管理 1. 基本概念    Logical Volume Manager        ** 多个物理分区/磁盘 ==> 组合成一个整体 ==>划分逻辑存储单位,即逻辑卷        ** 逻辑分区的大小可以根据需要扩大.缩减        ** /boot 用来存放引导文件,不能使用LVM逻辑卷(启动时会找不到内核) PV(Physica

LVM逻辑卷管理详解

LVM逻辑卷管理(Logical Volume Manager) 什么是LVM?LVM的产生及作用 随着数据的逐渐增加,当初设计的磁盘大小已经满足不了现在的需求了,当磁盘面临着满盘时,运维人员如何解决问题?是换一个更大的磁盘,把原先的数据copy到现在更大的磁盘里面,继续撑一段时间,还是寻找其它方法?LVM的出现很好的解决了这一问题.LVM是linux环境下对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性. 物理卷physical volume (PV