zoukankan      html  css  js  c++  java
  • Linux从入门到精通——lvm逻辑券

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

      lvm是类unix系统下的软件硬盘管理方式
      物理卷是lvm所使用的基础“物理”存储,着通常是块设备,例如分区或完整磁盘,设备必须初始化为LVM物理卷,才能与LVM结合使用。
      卷组是存储池,由一个或多个物理卷组成。
      物理区块是物理卷中存储的小型数据区块,用作LVM存储的后端

    逻辑卷有助于更加轻松地管理磁盘空间。如果文件系统需要更多的空间,可以将其卷组的可用空间分配给逻辑卷,并且可以调整文件系统的大小

    ####lvm逻辑卷管理###

           pv    ##物理卷,被lv命令处理过的物理分区。指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
           vg    ##物理卷组,被组装到一起的物理卷。类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
           pe    ##物理扩展,lvm设备的最小存储单元,1vm是pe的整数倍。每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。

      lv    ##逻辑卷。类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。

           lvm  ##逻辑卷,直接使用的设备,可以增大缩减并保持原有数据不变

       

    1.lvm建立

            分区并设定分区标签为8e
             pvcreate /dev/vdb                    ##用于初始化分区   
             vgcreate  vg0 /dev/vdb           ##创建物理卷组
             lvcreate -L 20M -n lv0 vg0     ##从vg0上可用物理区块创建名为lv0,容量为2G的信逻辑卷
             mkfs.xfs /dev/vg0/lv0              ##创建文件系统,进行格式化
             mount /dev/vg0/lv0 /mnt
             df -H /mnt                                 ## -H 10^n   -h 2^n

    2.lvm的拉伸
       lvm支持热拉伸
       (1)当vg中的剩余容量充足情况
                  lvextend -L 80M /dev/vg0/lv0            ##拉伸设备
                  xfs_grow /dev/vg0/lv0                        ##拉伸文件系统

        注意:如果只执行第一步,那么只是将vg0里面的容量变成80M,lv0里面的文件系统的大小没有变化,不执行下面那一步的话,lv0能使用的大小依旧是原来的大小,扩展后的那部分没有文件系统,所以不能使用。

       (2)当vg0中的容量不足时

                 再次建立分区并修改标签为8e
                 pvcreate /dev/vdb1     
                 vgextend vg0 /dev/vdb1                 ##拉伸物理券组
                 lvextend -L 200M vg0
                 xfs_grow /dev/vg0/lv0                    ##拉伸文件系统

        注意:想要查看pv,vg,lv时,可以使用命令pvs,vgs,lvs.
        也可以用监控  watch -n 1 “ pvs;vgs;lvs;df -h /mnt ”
        注意:此时的文件类型是xfs,不支持缩减。但是设备可以缩减。ext文件系统的文件支持拉伸和缩减

        blkid 可以查看/dev/vdb1是xfs格式的

    3.针对ext文件系统的设备的拉伸和缩减

             umount /mnt
             mkfs.ext4 /dev/vg0/lv0                      ##格式化成ext模式
             mount /dev/vg0/lv0 /mnt

       ##拉伸
             lvextend -L 250M /dev/vg0/lv0       ##拉伸LVM
             resize2fs /dev/vg0/lv0                     ##拉伸文件系统

       ##缩减
       (1)缩减lvm
             umount /dev/vg0/lv0 /mnt
             e2fsck -f /dev/vg0/lv0                           ##检测文件的使用情况和总容量
             resize2fs /dev/vg0/lv0 100M
                                ##如果这个后面不跟100M,代表将其填满:跟上小容量代表缩减
             lvreduce -L 100M /dev/vg0/lv0           ##缩减lvm到100M
             mount /dev/vg0/lv0 /mnt

       (2)缩减vg
             移除空闲的vg
             vgremove vg0 /dev/vdb2
            移除含有数据的设备(两个都必须在vg0里面)
             ##可以把含有的数据移到另一个pv里面,当移动数据的时候,不可以按ctrl+c强迫停止,会使两边的数据都丢失
             pvmove /dev/vdb1 /dev/vdb2
             vgreduce vg0 /dev/vdb1

             如果想要把删除的vdb彻底从pv里面删除
             pvremove /dev/vdb1

    4.lvm的快照

            这个快照和虚拟机的快照是一样的,访问快照lv0-backup其实是通过快照,去访问母盘lv0,快照的大小比母盘的大小要小,对快照的修改其实是对通过母盘将修改写入快照

            lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
                ##快照的大小取决于要修改原lvm的大小,如果修改的大小比修改原来定的40M大,那么快照会损坏,损坏的快照不能挂载。
            mount /dev/vg0/lv0-backup /mnt

            模仿快照损坏 rm -fr /mnt/*
            解决方式:删除原来的快照,再重新照一张
            unmount /mnt
            lvremove /dev/vg0/lv0-backup
            lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
            mount /dev/vg0/lv0-backup /mnt


    5.lvm的删除(要按照以下的顺序删除)
            lvremove /dev/vg0/lv0-backup
            lvremove /dev/vg0/lv0
            vgremove vg0
            pvremove /dev/vdb


       
      

  • 相关阅读:
    Notes about "Exploring Expect"
    Reuse Sonar Checkstyle Violation Report for Custom Data Analysis
    Eclipse带参数调试的方法
    MIT Scheme Development on Ubuntu
    Manage Historical Snapshots in Sonarqube
    U盘自动弹出脚本
    hg的常用配置
    Java程序员的推荐阅读书籍
    使用shared memory 计算矩阵乘法 (其实并没有加速多少)
    CUDA 笔记
  • 原文地址:https://www.cnblogs.com/wf-aiyouwei/p/9420444.html
Copyright © 2011-2022 走看看