1.理论知识
    LVM 的全名是 Logical Volume Manager,中文可以翻译作逻辑卷轴管理员。
    Physical Volume, PV, 实体卷轴 Volume Group, VG, 卷轴群组 Physical Extent, PE, 实体范围区块 LVM 默认使用 4MB 的 PE 区块 Logical Volume, LV, 逻辑卷轴
    我们刚刚有谈到 LVM 可弹性的变更 filesystem 的容量,那是如何办到 的?
    其实他就是通过“交换 PE ”来进行数据转换, 将原本 LV 内的 PE 移转到其他设
    备中以降低 LV 容量,或将其他设备的 PE 加到此 LV 中以加大容量!
    image.jpeg

    image.jpeg
    那么我的数据写入这个 LV 时,到底他是怎么写入硬盘当中的?
    好问题~其实,依据写入机制的不同,而有两种方式:
    线性模式 (linear):假如我将 /dev/vda1, /dev/vdb1 这两个 partition 加入到 VG 当中,并且整个 VG 只有一个 LV 时,那么所谓的线性模式就是:当 /dev/vda1 的容量 用完之后,/dev/vdb1 的硬盘才会被使用到, 这也是我们所建议的模式。
    交错模式 (triped):那什么是交错模式?很简单啊,就是我将一笔数据拆成两部
    分,分别写入 /dev/vda1 与 /dev/vdb1 的意思,感觉上有点像 RAID 0 啦!如此一来,
    一份数据用两颗硬盘来写入,理论上,读写的性能会比较好。
    基本上,LVM 最主要的用处是在实现一个可以弹性调整容量的文件系统上, 而不
    是在创建一个性能为主的磁盘上,LVM 默认的读写模式是线性模 式啦

    2.lvm的安装(我的阿里云服务器就没有我是从新安装的 一般都有)
    LVM的安装

    1. 加载device-mapper模块
    2. linux内核2.6.9开始,device-mapper模块就已经包含在内,所以你只需加载即可。加载mapper模块:
    3. modprobe dm_mod
    4. 查看是否已经加载:
    5. lsmod | grep dm_mod
    6. 出现如下输出,即表示加载成功:
    7. dm_mod 63097 4 dm_mirror,dm_multipath,dm_raid45,dm_log
    8. 如果你的内核高于2.6.9却没有此模块,可以使用yum install device-mapper命令安装
    9. 直接yum安装:
    10. yum install lvm2

    报错
    [root@ds ~]# vgextend ds /dev/vda8
    Couldn’t create temporary archive name.
    出现这个的原因可能是安装的时候 出现的问题 我们要先加载这个模块
    然后在安装lvm 我用的是阿里云的服务器 正常的虚拟机 应该是不会有这种情况的
    我的解决 办法 先把lvm卸载之后 然后重新加载一下模块
    然后 在重新安装就解决了

    3.实验

    1. 使用 4 个 partition ,每个 partition 的容量均为 1GB 左右,且 system ID 需要为 8e;
    2. 全部的 partition 整合成为一个 VG,VG 名称设置为 vbirdvg;且 PE 的大小为 16MB;
    3. 创建一个名为 vbirdlv 的 LV,容量大约 2G 好了!
    4. 最终这个 LV 格式化为 xfs 的文件系统,且挂载在 /srv/lvm 中

      [root@ds ~]# fdisk -l
      
      Device Boot      Start         End      Blocks   Id  System
      /dev/vda1            2048    41945087    20971520   83  Linux
      /dev/vda2        41945088    52430847     5242880   83  Linux
      /dev/vda3        52430848    56625151     2097152   83  Linux
      /dev/vda4        56625152    77596671    10485760    5  Extended
      /dev/vda5        56627200    58724351     1048576   8e  Linux LVM
      /dev/vda6        58726400    60823551     1048576   8e  Linux LVM
      /dev/vda7        60825600    62922751     1048576   8e  Linux LVM
      /dev/vda8        62924800    65021951     1048576   8e  Linux LVM
      #上边的4个分区就是我们用来设置LVM的4个分区
      其实 system ID 不改变也没关系!, 不过某些 LVM 的侦测指令可能会 侦测不到该 partition 就是了
      只是为了让我们管理员清楚知道该 partition 的内容, 
      # 所以这里建议还是修订成正确的磁盘内容较佳!
      

    1.pv阶段
    pvcreate :将实体 partition 创建成为 PV ;pvscan :搜寻目前系统里面任何具有 PV 的磁盘;
    pvscan :搜寻目前系统里面任何具有 PV 的磁盘;
    pvdisplay :显示出目前系统上面的 PV 状态;
    pvremove :将 PV 属性移除,让该 partition 不具有 PV 属性

    # 1. 检查有无 PV 在系统上,然后将 /dev/vda{5-8} 创建成为 PV 格式 
    [root@study ~]# pvscan 
    PV /dev/vda3 VG centos lvm2 [30.00 GiB / 14.00 GiB free] 
    Total: 1 [30.00 GiB] / in use: 1 [30.00 GiB] / in no VG: 0 [0 ] 
    # 其实安装的时候,我们就有使用 LVM 了喔!所以会有 /dev/vda3 存在的! 
    
    [root@study ~]# pvcreate /dev/vda{5,6,7,8} 
    Physical volume "/dev/vda5" successfully created 
    Physical volume "/dev/vda6" successfully created 
    Physical volume "/dev/vda7" successfully created 
    Physical volume "/dev/vda8" successfully created 
    # 这个指令可以一口气创建这四个 partition 成为 PV 啦!注意大括号的用途
    
    [root@study ~]# pvscan 
    PV /dev/vda3 VG centos lvm2 [30.00 GiB / 14.00 GiB free] 
    PV /dev/vda8 lvm2 [1.00 GiB] 
    PV /dev/vda5 lvm2 [1.00 GiB] 
    PV /dev/vda7 lvm2 [1.00 GiB] 
    PV /dev/vda6 lvm2 [1.00 GiB] 
    Total: 5 [34.00 GiB] / in use: 1 [30.00 GiB] / in no VG: 4 [4.00 GiB] 
    # 这就分别显示每个 PV 的信息与系统所有 PV 的信息。尤其最后一行,显示的是: 
    # 整体 PV 的量 / 已经被使用到 VG 的 PV 量 / 剩余的 PV 量 
    
    # 2. 更详细的列示出系统上面每个 PV 的个别信息: 
    [root@study ~]# pvdisplay /dev/vda5 
    "/dev/vda5" is a new physical volume of "1.00 GiB" 
    --- NEW Physical volume --- 
    PV Name /dev/vda5 <==实际的 partition 设备名称 
    VG Name <==因为尚未分配出去,所以空白! 
    PV Size 1.00 GiB <==就是容量说明 
    Allocatable NO <==是否已被分配,结果是 NO 
    PE Size 0 <==在此 PV 内的 PE 大小 
    Total PE 0 <==共分区出几个 PE 
    Free PE 0 <==没被 LV 用掉的 PE 
    Allocated PE 0 <==尚可分配出去的 PE 数量 
    PV UUID Cb717z-lShq-6WXf-ewEj-qg0W-MieW-oAZTR6 
    # 由于 PE 是在创建 VG 时才给予的参数,因此在这里看到的 PV 里头的 PE 都会是 0 
    # 而且也没有多余的 PE 可供分配 (allocatable)。
    

    2.VG
    vgcreate :就是主要创建 VG 的指令啦!他的参数比较多,等一下介绍。
    vgscan :搜寻系统上面是否有 VG 存在?
    vgdisplay :显示目前系统上面的 VG 状态;vgextend :在 VG 内增加额外的 PV ;
    vgextend :在 VG 内增加额外的 PV ;
    vgreduce :在 VG 内移除 PV;
    vgchange :设置 VG 是否启动 (active);
    vgremove :删除一个 VG 啊!

    [root@study ~]# vgcreate [-s N[mgt]] VG名称 PV名称 
    选项与参数: 
    -s :后面接 PE 的大小 (size) ,单位可以是 m, g, t (大小写均可) 
    
    # 1. 将 /dev/vda5-7 创建成为一个 VG,且指定 PE 为 16MB 喔! 
    [root@study ~]# vgcreate -s 16M vbirdvg /dev/vda{5,6,7} 
    Volume group "vbirdvg" successfully created 
    
    [root@study ~]# vgscan 
    Reading all physical volumes. This may take a while... 
    Found volume group "vbirdvg" using metadata type lvm2 # 我们手动制作的 
    Found volume group "centos" using metadata type lvm2 # 之前系统安装时作的 
    
    [root@study ~]# pvscan 
    PV /dev/vda5 VG vbirdvg lvm2 [1008.00 MiB / 1008.00 MiB free] 
    PV /dev/vda6 VG vbirdvg lvm2 [1008.00 MiB / 1008.00 MiB free] 
    PV /dev/vda7 VG vbirdvg lvm2 [1008.00 MiB / 1008.00 MiB free] 
    PV /dev/vda3 VG centos lvm2 [30.00 GiB / 14.00 GiB free] 
    PV /dev/vda8 lvm2 [1.00 GiB] 
    Total: 5 [33.95 GiB] / in use: 4 [32.95 GiB] / in no VG: 1 [1.00 GiB] 
    # 嘿嘿!发现没!有三个 PV 被用去,剩下 1 个 /dev/vda8 的 PV 没被用掉! 
    
    [root@study ~]# vgdisplay vbirdvg 
    --- Volume group --- 
    VG Name vbirdvg 
    System ID 
    Format lvm2 
    Metadata Areas 3 
    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 3 
    Act PV 3 
    VG Size 2.95 GiB <==整体的 VG 容量有这么大 
    PE Size 16.00 MiB <==内部每个 PE 的大小 
    Total PE 189 <==总共的 PE 数量共有这么多! 
    Alloc PE / Size 0 / 0 
    Free PE / Size 189 / 2.95 GiB <==尚可配置给 LV 的 PE数量/总容量有这么多! 
    VG UUID Rx7zdR-y2cY-HuIZ-Yd2s-odU8-AkTW-okk4Ea 
    # 最后那三行指的就是 PE 能够使用的情况!由于尚未切出 LV,因此所有的 PE 均可自由使用。
    

    增加这个VG的容量

    # 2. 将剩余的 PV (/dev/vda8) 丢给 vbirdvg 吧!
    [root@study ~]# vgextend vbirdvg /dev/vda8 
    Volume group "vbirdvg" successfully extended 
    [root@study ~]# vgdisplay vbirdvg 
    ....(前面省略).... 
    VG Size 3.94 GiB 
    PE Size 16.00 MiB 
    Total PE 252 
    Alloc PE / Size 0 / 0 
    Free PE / Size 252 / 3.94 GiB 
    # 基本上,不难吧!这样就可以抽换整个 VG 的大小啊!
    

    3.LV
    lvcreate :创建 LV 啦!
    lvscan :查询系统上面的 LV ;
    lvdisplay :显示系统上面的 LV 状态啊!
    lvextend :在 LV 里面增加容量!
    lvreduce :在 LV 里面减少容量;
    lvremove :删除一个 LV !
    lvresize :对 LV 进行容量大小的调整!

    [root@study ~]# lvcreate [-L N[mgt]] [-n LV名称] VG名称 
    [root@study ~]# lvcreate [-l N] [-n LV名称] VG名称 
    选项与参数: 
    -L :后面接容量,容量的单位可以是 M,G,T 等,要注意的是,最小单位为 PE, 
    因此这个数量必须要是 PE 的倍数,若不相符,系统会自行计算最相近的容量。 
    -l :后面可以接 PE 的“个数”,而不是数量。若要这么做,得要自行计算 PE 数。 
    -n :后面接的就是 LV 的名称啦! 
    更多的说明应该可以自行查阅吧! man lvcreate 
    
    # 1. 将 vbirdvg 分 2GB 给 vbirdlv 喔! 
    [root@study ~]# lvcreate -L 2G -n vbirdlv vbirdvg 
    Logical volume "vbirdlv" created 
    # 由于本案例中每个 PE 为 16M ,如果要用 PE 的数量来处理的话,那使用下面的指令也 OK喔! 
    # lvcreate -l 128 -n vbirdlv vbirdvg 
    
    [root@study ~]# lvscan 
    ACTIVE '/dev/vbirdvg/vbirdlv' [2.00 GiB] inherit <==新增加的一个 LV 啰! 
    ACTIVE '/dev/centos/root' [10.00 GiB] inherit 
    ACTIVE '/dev/centos/home' [5.00 GiB] inherit 
    ACTIVE '/dev/centos/swap' [1.00 GiB] inherit 
    
    [root@study ~]# lvdisplay /dev/vbirdvg/vbirdlv 
    --- Logical volume --- 
    LV Path /dev/vbirdvg/vbirdlv # 这个是 LV 的全名喔! 
    LV Name vbirdlv 
    VG Name vbirdvg 
    LV UUID QJJrTC-66sm-878Y-o2DC-nN37-2nFR-0BwMmnLV Write Access read/write 
    LV Creation host, time study.centos.vbird, 2015-07-28 02:22:49 +0800 
    LV Status available 
    # open 0 
    LV Size 2.00 GiB # 容量就是这么大! 
    Current LE 128 
    Segments 3 
    Allocation inherit 
    Read ahead sectors auto 
    - currently set to 8192 
    Block device 253:3
    

    要特别注意的是, VG 的名称为 vbirdvg , 但是 LV 的名称必须使用全名!亦即是
    /dev/vbirdvg/vbirdlv

    格式化 挂载

    # 1. 格式化、挂载与观察我们的 LV 吧! 
    [root@study ~]# mkfs.xfs /dev/vbirdvg/vbirdlv <==注意 LV 全名! 
    [root@study ~]# mkdir /srv/lvm 
    [root@study ~]# mount /dev/vbirdvg/vbirdlv /srv/lvm 
    [root@study ~]# df -Th /srv/lvm 
    Filesystem Type Size Used Avail Use% Mounted on 
    /dev/mapper/vbirdvg-vbirdlv xfs 2.0G 33M 2.0G 2% /srv/lvm 
    [root@study ~]# cp -a /etc /var/log /srv/lvm 
    [root@study ~]# df -Th /srv/lvm 
    Filesystem Type Size Used Avail Use% Mounted on 
    /dev/mapper/vbirdvg-vbirdlv xfs 2.0G 152M 1.9G 8% /srv/lvm <==确定是可用的啊!
    

    4.放大LVM容量
    1)放大LV
    2)文件系统阶段的放大:我们的 Linux 实际使用的其实不是 LV 啊!而是 LV 这个设备
    内的文件系统! 所以一切最终还是要以文件系统为依归!目前在 Linux 环境下,鸟
    哥测试过可以放大的文件系统有 XFS 以及 EXT 家族! 至于缩小仅有 EXT 家族,目
    前 XFS 文件系统并不支持文件系统的容量缩小喔!要注意!要注意!XFS 放大文件
    系统通过简单的 xfs_growfs 指令即可!
    整个文件系统在最初格式化 的时候就创建了 inode/block/superblock 等信息,
    要改变这些信息是很难的! 不过因为文
    件系统格式化的时候创建的是多个 block group ,因此我们可以通过在文件系统当中增加
    block group 的方式来增减文件系统的量!而增减 block group 就是利用 xfs_growfs 啰!所
    以最后一步是针对文件系统来处理的, 前面几步则是针对 LVM 的实际容量大小!

    Tips: 因此,严格说起来,放大文件系统并不是没有进行“格式化”喔!放大
    文件系统时,格式化的位置在于该设备后来新增的部份,设备的前面
    已经存在的文件系统则没有变化。 而新增的格式化过的数据,再反馈回原本
    的 supberblock 这样而已

    实验:我们给/srv/lvm在增加500M的容量
    第一步;
    先扩大 LVM的容量

    # 1. 由前面的过程我们知道 /srv/lvm 是 /dev/vbirdvg/vbirdlv 这个设备,所以检查 vbirdvg 吧! 
    [root@study ~]# vgdisplay vbirdvg 
    --- Volume group --- 
    VG Name vbirdvg 
    System IDFormat lvm2 
    Metadata Areas 4 
    Metadata Sequence No 3 
    VG Access read/write 
    VG Status resizable 
    MAX LV 0 
    Cur LV 1 
    Open LV 1 
    Max PV 0 
    Cur PV 4 
    Act PV 4 
    VG Size 3.94 GiB 
    PE Size 16.00 MiB 
    Total PE 252 
    Alloc PE / Size 128 / 2.00 GiB 
    Free PE / Size 124 / 1.94 GiB  # 看起来剩余容量确实超过 500M 的! 
    VG UUID Rx7zdR-y2cY-HuIZ-Yd2s-odU8-AkTW-okk4Ea 
    # 既然 VG 的容量够大了!所以直接来放大 LV 吧!!
    
    # 2. 放大 LV 吧!利用 lvresize 的功能来增加! 
    [root@study ~]# lvresize -L +500M /dev/vbirdvg/vbirdlv 
    Rounding size to boundary between physical extents: 512.00 MiB 
    Size of logical volume vbirdvg/vbirdlv changed from 2.00 GiB (128 extents) to 2.50 GiB 
    (160 extents). 
    Logical volume vbirdlv successfully resized 
    # 这样就增加了 LV 了喔!lvresize 的语法很简单,基本上同样通过 -l 或 -L 来增加! 
    # 若要增加则使用 + ,若要减少则使用 - !详细的选项请参考 man lvresize 啰! 
    
    [root@study ~]# lvscan 
    ACTIVE '/dev/vbirdvg/vbirdlv' [2.50 GiB] inherit 
    ACTIVE '/dev/centos/root' [10.00 GiB] inherit 
    ACTIVE '/dev/centos/home' [5.00 GiB] inherit 
    ACTIVE '/dev/centos/swap' [1.00 GiB] inherit 
    # 可以发现 /dev/vbirdvg/vbirdlv 容量由 2G 增加到 2.5G 啰!
    
    [root@study ~]# df -Th /srv/lvm 
    Filesystem Type Size Used Avail Use% Mounted on 
    /dev/mapper/vbirdvg-vbirdlv xfs 2.0G 111M 1.9G 6% /srv/lvm
    

    注意看上边的 我们的LV虽然添加了 500M的空间 变成了2.5G
    但是我们的文件系统的空间还是没有变 还是2G
    我们的LVM具有线上处理的功能 不需要要在重新格式化 然后挂载
    第二部: 增加文件系统

    # 3.1 先看一下原本的文件系统内的 superblock 记录情况吧! 
    [root@study ~]# xfs_info /srv/lvm 
    meta-data=/dev/mapper/vbirdvg-vbirdlv isize=256 agcount=4, agsize=131072 blks 
    = sectsz=512 attr=2, projid32bit=1 
    = crc=0 finobt=0 
    data = bsize=4096 blocks=524288, imaxpct=25 
    = sunit=0 swidth=0 blks 
    naming =version 2 bsize=4096 ascii-ci=0 ftype=0 
    log =internal bsize=4096 blocks=2560, version=2 
    = sectsz=512 sunit=0 blks, lazy-count=1 
    realtime =none extsz=4096 blocks=0, rtextents=0 
    
    [root@study ~]# xfs_growfs /srv/lvm # 这一步骤才是最重要的! 
    [root@study ~]# xfs_info /srv/lvm 
    meta-data=/dev/mapper/vbirdvg-vbirdlv isize=256 agcount=5, agsize=131072 blks 
    = sectsz=512 attr=2, projid32bit=1 
    = crc=0 finobt=0 
    data = bsize=4096 blocks=655360, imaxpct=25 
    = sunit=0 swidth=0 blks 
    naming =version 2 bsize=4096 ascii-ci=0 ftype=0 
    log =internal bsize=4096 blocks=2560, version=2= sectsz=512 sunit=0 blks, lazy-count=1 
    realtime =none extsz=4096 blocks=0, rtextents=0 
    
    [root@study ~]# df -Th /srv/lvm 
    Filesystem Type Size Used Avail Use% Mounted on 
    /dev/mapper/vbirdvg-vbirdlv xfs 2.5G 111M 2.4G 5% /srv/lvm 
    
    [root@study ~]# ls -l /srv/lvm 
    drwxr-xr-x. 131 root root 8192 Jul 28 00:12 etc 
    drwxr-xr-x. 16 root root 4096 Jul 28 00:01 log 
    # 刚刚复制进去的数据可还是存在的喔!并没有消失不见!
    

    在上表中,注意看两次 xfs_info 的结果,你会发现到 1)整个 block group
    (agcount) 的数量增加一个!那个 block group 就是纪录新的设备容量之文件系统所在!
    而你也会 2)发现整体的 block 数量增加了!这样整个文件系统就给他放大了!同时,使
    用 df 去查阅时,就真的看到增加的量了吧! 文件系统的放大可以在 On-line 的环境下实现
    最后,请注意!目前的 XFS 文件系统中,并没有缩小文件系统容量的设计!也就
    是说,文件系统只能放大不能缩小喔!如果你想要保有放大、缩小的本事, 那还请回去
    使用 EXT 家族最新的 EXT4 文件系统啰!XFS 目前是办不到的!

    使用 LVM thin Volume 让 LVM 动态自动调整磁盘使用率
    实验:
    1. 由 vbirdvg 的剩余容量取出 1GB 来做出一个名为 vbirdtpool 的 thin pool LV 设备,这
    就是所谓的磁盘容量储存池 (thin pool)
    2. 由 vbirdvg 内的 vbirdtpool 产生一个名为 vbirdthin1 的 10GB LV 设备
    3. 将此设备实际格式化为 xfs 文件系统,并且挂载于 /srv/thin 目录内!

    # 1. 先以 lvcreate 来创建 vbirdtpool 这个 thin pool 设备: 
    [root@study ~]# lvcreate -L 1G -T vbirdvg/vbirdtpool # 最重要的创建指令 
    [root@study ~]# lvdisplay /dev/vbirdvg/vbirdtpool 
    --- Logical volume --- 
    LV Name vbirdtpool 
    VG Name vbirdvg 
    LV UUID p3sLAg-Z8jT-tBuT-wmEL-1wKZ-jrGP-0xmLtkLV Write Access read/write 
    LV Creation host, time study.centos.vbird, 2015-07-28 18:27:32 +0800 
    LV Pool metadata vbirdtpool_tmeta 
    LV Pool data vbirdtpool_tdata 
    LV Status available 
    # open 0 
    LV Size 1.00 GiB # 总共可分配出去的容量 
    Allocated pool data 0.00% # 已分配的容量百分比 
    Allocated metadata 0.24% # 已分配的中介数据百分比 
    Current LE 64 
    Segments 1 
    Allocation inherit 
    Read ahead sectors auto 
    - currently set to 8192 
    Block device 253:6 
    # 非常有趣吧!竟然在 LV 设备中还可以有再分配 (Allocated) 的项目耶!果然是储存池! 
    [root@study ~]# lvs vbirdvg # 语法为 lvs VGname 
    LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert 
    vbirdlv vbirdvg -wi-ao---- 2.50g 
    vbirdtpool vbirdvg twi-a-tz-- 1.00g 0.00 0.24 
    # 这个 lvs 指令的输出更加简单明了!直接看比较清晰! 
    # 2. 开始创建 vbirdthin1 这个有 10GB 的设备,注意!必须使用 --thin 与 vbirdtpool 链接喔! 
    [root@study ~]# lvcreate -V 10G -T vbirdvg/vbirdtpool -n vbirdthin1 
    [root@study ~]# lvs vbirdvg 
    LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert 
    vbirdlv vbirdvg -wi-ao---- 2.50g 
    vbirdthin1 vbirdvg Vwi-a-tz-- 10.00g vbirdtpool 0.00 
    vbirdtpool vbirdvg twi-aotz-- 1.00g 0.00 0.27 
    # 很有趣吧!明明连 vbirdvg 这个 VG 都没有足够大到 10GB 的容量,通过 thin pool 
    # 竟然就产生了 10GB 的 vbirdthin1 这个设备了!好有趣! 
    # 3. 开始创建文件系统 
    [root@study ~]# mkfs.xfs /dev/vbirdvg/vbirdthin1 
    [root@study ~]# mkdir /srv/thin 
    [root@study ~]# mount /dev/vbirdvg/vbirdthin1 /srv/thin 
    [root@study ~]# df -Th /srv/thin 
    Filesystem Type Size Used Avail Use% Mounted on 
    /dev/mapper/vbirdvg-vbirdthin1 xfs 10G 33M 10G 1% /srv/thin 
    # 真的有 10GB 耶!! 
    # 4. 测试一下容量的使用!创建 500MB 的文件,但不可超过 1GB 的测试为宜! 
    [root@study ~]# dd if=/dev/zero of=/srv/thin/test.img bs=1M count=500 
    [root@study ~]# lvs vbirdvg 
    LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert 
    vbirdlv vbirdvg -wi-ao---- 2.50g 
    vbirdthin1 vbirdvg Vwi-aotz-- 10.00g vbirdtpool 4.99 
    vbirdtpool vbirdvg twi-aotz-- 1.00g 49.93 1.81 
    # 很要命!这时已经分配出 49% 以上的容量了!而 vbirdthin1 却只看到用掉 5% 而已! 
    # 所以鸟哥认为,这个 thin pool 非常好用!但是在管理上,得要特别特别的留意!
    

    LVM使用的指令集合
    image.jpeg
    卸载LVM
    1. 先卸载系统上面的 LVM 文件系统 (包括快照与所有 LV);
    2. 使用 lvremove 移除 LV ;
    3. 使用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标志;
    4. 使用 vgremove 移除 VG:
    5. 使用 pvremove 移除 PV;
    6. 最后,使用 fdisk 修改 ID 回来啊!
    磁盘快照
    鸟哥P493