linux基础之lvm操作流程

linux基础之lvm基本操作流程
    LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
   

LVM模型

linux基础之lvm操作流程

LVM模型

前言

      每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估 计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。
      虽然有很多动态调整磁盘的工具可以使用,例如PartitionMagic等等,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要 重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的,而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解 决问题。
     因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。幸运的是Linux提供的逻辑盘卷管理(LVM,LogicalVolumeManager)机制就是一个完美的解决方案。
     LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系 统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的 文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。
      基本术语
      前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的存储卷,在存储卷上建立文件系统。首先我们讨论以下几个LVM术语:
      物理存储介质(PhysicalStorageMedia)
      指系统的物理存储设备:磁盘,如:/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)

LVM抽象模型

linux基础之lvm操作流程

LVM抽象模型
    逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
    图所示LVM抽象模型,展示了PV、VG、LV三者之间关系:
    和非LVM系统将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的VGDA(卷组描述符区域)中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符、和一些PE描述符。
   系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置。
   安装
   首先确定系统中是否安装了lvm工具:
   [root@wwwroot]#rpm –qa | grep lvm
   lvm-1.0.3-4
   如果命令结果输入类似于上例,那么说明系统已经安装了LVM管理工具;如果命令没有输出则说明没有安装LVM管理工具,则需要从网络下载或者从光盘装LVMrpm工具包。

创建lvm逻辑卷

    一、准备分区或硬盘

   fdisk  进行分区  并更改system ID(t  -L)  8e(mbr分区表上的lvm)   15(gpt分区表上lvm)  
   二、.创建物理卷(pv)
   pvcreate  /dev/sd{b,c1}
    可以通过查看命令查看是否创建成功
    pvs 查看
    pvdisplay 查看详细信息
    blkid
  三、创建卷组       
     vgcreate  vg0  -s 16M /dev/sd{b,c1}   
    pvdisplay  查看详细信息
    vgs   查看卷组信息
    ll /dev/vg0  是没有这个设备的
 四、创建逻辑卷
    lvcreate  -n  lv0  -l 1000  vg0
    -n  指定逻辑卷名称
    -l  多少个pe个数

    -L  直接指定容量大小 

    lvs   查看逻辑卷

 五、格式化 创建文件系统
     mkfs.xfs /dev/vgo/lv0   格式化并创建为xfs文件系统
     mkfs.ext4 /dev/vgo/lv0   格式化并创建为ext4文件系统
六.手动挂载
     mkdir /mnt/lv0
     mount  /dev/vgho/lv0  /mnt/lv0  
七、配置成开机自动挂载
     vim  /etc/fstab
     UUID=”07a34e17-7833-4ec8-8846-c6b590e36fba”    /mnt/lv0  xfs   defaults 0 0 
     mount -o remount /mnt/lv0 
    mount

扩展逻辑卷 

       一、扩展逻辑卷容量大小
               lvextend  -L 5G   /dev/vg0/lv0
               lvextend -r  -L 5G   /dev/vg0/lv0  同时扩展容量并更新扩展文件系统
                          5G  增加到5G  也就是算上原有的容量到5G
                         +5G  就是在原有的基础上再增加5G
                   -l  多少个pe个数
                   -L  直接指定容量大小 
            lvextend    /dev/vg0/lv0  -l +100%FREE  剩余空闲空间全部用完
                 df -h  查看分区信息
    二、卷容量扩展后需要更新ext4文件系统的大小信息
           resize2fs  /dev/vg0/lv0
           resize2fs  同步ext系列文件系统
      如果是xfs文件系统:卷容量扩展后需要更新xfs文件系统的大小信息
          xfs_growfs /dev/vg0/lv0
          xfs_growfs 同步xfs文件系统
卷组扩
      1.磁盘变成物理卷
         pvcreate /dev/sdd
         pvs
     2.扩展卷组
        vgextend vg0 /dev/sdd
缩减逻辑卷
       缩减不支持在线,必须离线
        ext4可以缩减
        xfs 只能增长不能缩减

1.)因为缩减只能离线,所以必须把需要缩减的逻辑卷取消挂载
  umount  /mnt/lv0   卸载(取消挂载)
2.)缩减逻辑卷上的文件系统大小(lvm上的文件系统)
  resize2fs /dev/vgo/lv0 5G   (操作这个步骤后会出现报错提示,提示你需要先校验文件系统后,再进行这一步操作)
     5G  缩减到5G  也就是在原有的空间熔炼上缩减到5G
     +5G  在原有的容量基础基础直接减去5G
e2fsck -f /dev/vg0/lv0  
      校验文件系统
resize2fs /dev/vgo/lv0 5G 
       执行缩减文件系统操作
3.)缩减逻辑卷(lvm)
lvreduce -L 5G /dev/vg0/lv1
 注意:逻辑卷(lvm)缩减的大小要与文件系统上缩减的大小一致
            在做缩减前,做好把需要缩减的逻辑卷的数据做一下备份,避免导致文件丢失
4.)缩减完成后再进行挂载
mount -a     (如果挂载信息已经写入到/etc/fstab文件中了,可以使用该命令,反之就手动挂载) 
mount /dev/vg0/lv1  /mnt/lv1  (手动挂载)
5.)查看缩减后的容量信息
   df -h

从卷组(vg)中移除单个物理卷pv(硬盘或者分区)

1)移动pv  sdb的空间,到其他卷组上去(空间搬移过去,数据也是一并移动过去)
     pvmove  /dev/sdb  
     pvmove 是表示移动某个pv上的空间到同一个卷组中其他成员上面去,至于其他成员是谁,这个系统会自动分配。  (pvmove 移动 迁移)
2)显示迁移过后的物理卷信息
     pvdisplay
3) 把sdb从vg0卷组中移除
     vgreduce vg0 /dev/sdb    
4)把物理卷(pv) sdb删除
    pvremove /dev/sdb       
5) 显示其他物理卷信息
    pvdisplay  

逻辑卷删除

 1) 取消逻辑卷(lvm)的挂载  
      umount /mnt/lv1  或者 umount /dev/vg0/lv1
 2)删除取消挂载的逻辑卷(lvm)
      lvremove /dev/vg0/lv1
  3)显示移除逻辑卷后的逻辑卷信息
       lvdisplay 
13.卷组删除
1) 取消挂载该卷组上所有的逻辑卷lvm
   umount /dev/vg0/lv#
 2)删除该卷组上所有取消的挂载逻辑卷(lvm)
      lvremove /dev/vg0/lv#
3)删除卷组
    vgremove vg0     
4)显示删除卷组后其他的未删除的卷组信息
       vgdisplay 或 vgs

原创文章,作者:花火,如若转载,请注明出处:http://www.178linux.com/71382

(0)
花火花火
上一篇 2017-03-19
下一篇 2017-03-19

相关推荐

  • 文件系统挂载

    挂载: 将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为 卸载: 为解除此关联关系的过程 把设备关联挂载点:mount Point mount 卸载时:可使用设备,也可以使用挂载点 umount mount   umount命令都是临时生效,机器重启后失效 挂载点下原有文件在挂载完成…

    Linux干货 2017-04-30
  • linux下的打包与压缩

    linux压缩或解压缩工具有很多,除了已经很少有人使用的compress外,现在常用的还有tar,bzip2,xz 和gzip等,我们来说说它们的用法。 先来说bzip2。bunzip2和bzcat可以由bzip2指定选项来执行同样的结果,这里只介绍bzip2的用法。使用bzip2这个工具创建的文件以.bz2,.bz,.tbz,.tar.bz2或者…

    Linux干货 2017-04-16
  • 进程的简单概念

    什么是进程?进程是载入内存的一个指令集合。 PID代表进程号, centos7之前的第一个进程都为inet。centos7的第一个位systemd 进程优先级分为系统优先级和实时优先级,系统优先级0到139表示,值越大优先级越低。centos6用0到98表示值越大优先级越低 实时优先级用99到0表示,值越大优先级越高。 进程类型:守护进程和前台进程。(俩者可…

    Linux干货 2017-05-08
  • Systemd——CentOS7的init

    Systemd:     POST –> Boot Sequeue(BIOS) –> Bootloader(MBR) –> kernel(ramdisk) –> rootfs –> /sbin/init init:   &nbsp…

    Linux干货 2016-09-20
  • suid, sgid, sticky简介

    SUID属性 passwd命令可以用于更改用户的密码,一般用户可以使用这个命令修改自己的密码。但是保存用户密码的/etc/shadow文件的权限是000,也就是说只有文件的所有者root用户可以写入,那为什么其他用户也可以修改自己的密码呢?这就是由于Linux的文件系统中的文件有SUID属性。 [root@centos6 ~]# ll /etc/shadow…

    Linux干货 2017-07-27
  • 正则表达式及grep使用

    正则表达式分为:“基本正则表达式 BRE”跟“扩展正则表达式 ERE” 基本正则表达式:     (1)字符匹配               "."任意单个字符 &nbs…

    Linux干货 2016-07-10