逻辑卷LVM的实现

LVM(Logical Volume Manager,逻辑卷管理)可以实现把多个实体硬盘分区整合在一起,当作一个硬盘来重新操作处理。最重要的是LVM不像传统分区一旦确定分区大小就不能再调整,它允许我们弹性的调整分区及文件系统容量!

逻辑卷LVM的实现

通过几道练习题来说明LVM的实现

1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
2、新建用户 archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录
3、扩展testlv至7G,要求archlinux用户的文件不能丢失
4、收缩testlv至3G,要求archlinux用户的文件不能丢失
5、对testlv创建快照,并尝试基于快照备份数据,验正快照的功能

题1: PV、VG、LV的创建

[root@centos6 ~]fdisk /dev/sda                           <--调整分区sda1 id为8e
[root@centos6 ~]fdisk /dev/sdc                           <--调整分区sdc1 id为8e
[root@centos6 ~]#pvcreate /dev/sd{a6,c1}                 <--指定分区为PV
  Physical volume "/dev/sda6" successfully created
  Physical volume "/dev/sdc1" successfully created
[root@centos6 ~]#vgcreate -s 16M vg0 /dev/sd{a6,c1}      <--创建vg;-s 指定PE大小
  Volume group "vg0" successfully created
[root@centos6 ~]#lvcreate -n testlv -L 5G vg0            <--创建lv; -n 指定lv名字;-L 按照容量指定lv大小[MGT]参考1)
Wiping software RAID md superblock on /dev/vg0/testlv.
  Logical volume "testlv" created.
[root@centos6 ~]#mkfs.ext4 /dev/vg0/testlv               <--为lv指定文件系统
[root@centos6 ~]#mount /dev/vg0/testlv /app/lvm          <--挂载lv; 在/etc/fstab添加可实现开机自动挂载  

1)lv创建的时候也可以按照PE数量指定
  为testlv分配3000 个PE:lvcreate -n testlv -l 3000 vg0    
  把卷组所有PE分配给testlv:lvcreate -n testlv -l 100%vg vg0  
2)PV、VG、LV信息查询

[root@centos6 ~]#pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda6
  VG Name               vg0
  PV Size               10.00 GiB / not usable 4.58 MiB
  Allocatable           yes 
  PE Size               16.00 MiB
  Total PE              640                                     <--按照指定PE Size,该PV划分的PE数量
  Free PE               320                                     <--剩余没有分配给LV的PE数量
  Allocated PE          320                                     <--已经分配给LV的PE数量
  PV UUID               rbsdXo-s39N-vGar-Oxuc-5E6Z-sIuD-rZP5el
   
  --- Physical volume ---
  PV Name               /dev/sdc1
  VG Name               vg0
  PV Size               10.00 GiB / not usable 4.54 MiB
  Allocatable           yes 
  PE Size               16.00 MiB
  Total PE              640
  Free PE               640
  Allocated PE          0
  PV UUID               T9ehfV-wSc8-ez1y-ZlNF-T9P2-PU87-2rFe7Q
[root@centos6 ~]#vgdisplay 
  --- Volume group ---
  VG Name               vg0
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  14
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               20.00 GiB
  PE Size               16.00 MiB
  Total PE              1280
  Alloc PE / Size       320 / 5.00 GiB
  Free  PE / Size       960 / 15.00 GiB
  VG UUID               YlqvPD-Vhsk-2vxR-G5SY-X1HM-3GUk-BNoUzq
[root@centos6 ~]#lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg0/testlv
  LV Name                testlv
  VG Name                vg0
  LV UUID                nx4ENL-mE35-xlIf-DWQl-6f6j-m2t1-uznnNd
  LV Write Access        read/write
  LV Creation host, time centos6.ffu.com, 2017-06-22 15:29:38 +0800
  LV Status              available
  # open                 0
  LV Size                5.00 GiB
  Current LE             320                                           <--等同于PE数量
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

题2:

[root@centos6 app]#useradd -m -k /etc/skel -d /app/lvm/archlinux archlinux
[root@centos6 app]#su archlinux [archlinux@centos6 app]$cp -r /etc/pam.d/ lvm/archlinux/

题3:lv的扩展
逻辑卷的扩展是在线扩展,不用卸载lv,不影响用户使用

[root@centos6 app]#lvextend -L +2G /dev/vg0/testlv                  <---L 按照容量指定扩展大小(Num增加到;+Num额外增加);参考1)
[root@centos6 archlinux]#df -hTP
Filesystem             Type     Size  Used Avail Use% Mounted on
/dev/sda2              ext4      96G  9.6G   82G  11% /
tmpfs                  tmpfs    491M   76K  491M   1% /dev/shm
/dev/sda3              ext4      48G  125M   46G   1% /app
/dev/sda1              ext4     969M   35M  885M   4% /boot
/dev/sdb7              ext4     2.0G  923M 1016M  48% /testdir
/dev/sr0               iso9660  3.7G  3.7G     0 100% /media/CentOS_6.9_Final
/dev/mapper/vg0-testlv ext4     4.8G   11M  4.6G   1% /app/lvm       <--没有扩展文件系统,没有识别增加的2G 
[root@centos6 archlinux]#resize2fs /dev/vg0/testlv                   <--同步文件系统;参考2) [root@centos6 archlinux]#df -hTP
Filesystem             Type     Size  Used Avail Use% Mounted on
/dev/sda2              ext4      96G  9.6G   82G  11% /
tmpfs                  tmpfs    491M   76K  491M   1% /dev/shm
/dev/sda3              ext4      48G  125M   46G   1% /app
/dev/sda1              ext4     969M   35M  885M   4% /boot
/dev/sdb7              ext4     2.0G  923M 1016M  48% /testdir
/dev/sr0               iso9660  3.7G  3.7G     0 100% /media/CentOS_6.9_Final
/dev/mapper/vg0-testlv ext4     6.8G   12M  6.5G   1% /app/lvm

1)同样可以按照PV数量指定
  为testlv新增600个PE:lvextend -l 600 /dev/vg0/testlv    
  把卷组剩余所有空闲PE分配给testlv:lvextend -l 100%free /dev/vg0/testlv
2)resize2fs 只用于ext系统;对于xfs系统要用xfs_growfs +挂载点(注意不是设备名)
  此例中是在挂载的状态下进行扩展,如果事先卸载的话,就需要先进行强制磁盘检查–> e2fsck -f /dev/vg0/testlv 
  其实在扩展lv时加上-r选项就可以一并扩展文件系统–> lvextend -r -l +100%free /dev/vg0/testlv  

题4:lv的缩减

逻辑卷的扩展会影响用户使用,不能在线扩展

[root@centos6 archlinux]#cp /app/lvm /app/test  -r                    <--缩减会影响用户使用,不能在线操作,缩减之前建议先备份  
[root@centos6 ~]#umount /app/lvm                                      <--必须先卸载
[root@centos6 ~]#e2fsck -f /dev/vg0/testlv                            <--强制磁盘检查;必要步骤
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/vg0/testlv: 80/458752 files (0.0% non-contiguous), 64511/1835008 blocks
[root@centos6 ~]#resize2fs /dev/vg0/testlv 3G                         <--先缩减文件系统
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg0/testlv to 786432 (4k) blocks.
The filesystem on /dev/vg0/testlv is now 786432 blocks long.
[root@centos6 ~]#lvreduce -L 3G /dev/vg0/testlv                       <--再缩减逻辑卷
  WARNING: Reducing active logical volume to 3.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg0/testlv? [y/n]: y
  Size of logical volume vg0/testlv changed from 7.00 GiB (448 extents) to 3.00 GiB (192 extents).

  Logical volume testlv successfully resized.
[root@centos6 ~]#mount /dev/vg0/testlv /app/lvm                       <--挂载
[root@centos6 ~]#ls /app/lvm                                          <--数据并没有丢失
archlinux  lost+found 

题5:快照的使用
快照是一种特殊的逻辑卷,它是在生成快照时对存在同一VG下的逻辑卷的准确拷贝。
快照区有两部分组成:变更之前的数据和未变更的数据组成。当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中,而没有被变动的数据依旧保持在原本的区块内。

[root@centos6 ~]#df -hP                                                      <--查看要备份的lv上的数据大小
Filesystem              Size  Used Avail Use% Mounted on
/dev/sda2                96G  9.6G   82G  11% /
tmpfs                   491M   76K  491M   1% /dev/shm
/dev/sda3                48G  125M   46G   1% /app
/dev/sda1               969M   35M  885M   4% /boot
/dev/sdb7               2.0G  923M 1016M  48% /testdir
/dev/sr0                3.7G  3.7G     0 100% /media/CentOS_6.9_Final
/dev/mapper/vg0-testlv  2.9G  7.8M  2.7G   1% /app/lvm                       <--快照大小设置应不大于数据大小
[root@centos6 ~]#lvcreate -n testlv-snapshot -s -L 16M -p r /dev/vg0/testlv  <--参考1)
  Logical volume "testlv-snapshot" created.
[root@centos6 ~]#lvdisplay                                                   <--可以查看快照逻辑卷
[root@centos6 app]#mkdir snap
[root@centos6 app]#mount /dev/vg0/testlv-snapshot /app/snap                  <--挂载快照
mount: block device /dev/mapper/vg0-testlv--snapshot is write-protected, mounting read-only
[root@centos6 lvm]#rm -rf /app/lvm/archlinux/                                <--删除逻辑卷testlv上的archlinux目录
[root@centos6 lvm]#ls ../snap                                                <--可以看到快照中archlinux目录还在
archlinux  lost+found
利用快照恢复testlv
[root@centos6 app]#umount /app/lvm                                           <--卸载逻辑卷
[root@centos6 app]#umount /app/snap/                                         <--卸载快照
[root@centos6 app]#lvconvert --merge /dev/vg0/testlv-snapshot                <--利用快照testlv-snapshot恢复testlv
  Merging of volume testlv-snapshot started.
  testlv: Merged: 100.0%
  Merge of snapshot into logical volume testlv has finished.
  Logical volume "testlv-snapshot" successfully removed                      <--恢复后快照自动删除;参考2)
[root@centos6 app]#mount /dev/vg0/testlv /app/lvm
[root@centos6 app]#ls /app/lvm                                               <--archlinux目录已经恢复
archlinux  lost+found

1)-s 指定创建的逻辑卷为快照;-n 指定快照名字;-L 指定快照大小(至少为设定的PE大小);
  -p r 设为只读属性,也可以挂载时候设置–>mount -o ro /dev/vg0/testlv-snapshot /app/snap
2)快照恢复也可手动把快照内数据复制到对应逻辑卷挂载目录下;手动删除快照命令为:#lvremove /dev/vg0/testlv-snapshot

补充:如何移除一个PV
沿用上例,移除sda6设备,首先要查看该设备上是否有分配给lv的PE(注意不是数据),如果有要转移到对应vg下的其它pv上, 而且其PE数量要小于对应vg的剩余free PE数量

[root@centos6 ~]#pvdisplay                                                  
  --- Physical volume ---
  PV Name               /dev/sda6
  VG Name               vg0
  PV Size               10.00 GiB / not usable 4.58 MiB
  Allocatable           yes 
  PE Size               16.00 MiB
  Total PE              640
  Free PE               448
  Allocated PE          192                                                   <--需要把192个PE转移到/dev/sdc1
  PV UUID               rbsdXo-s39N-vGar-Oxuc-5E6Z-sIuD-rZP5el
   
  --- Physical volume ---
  PV Name               /dev/sdc1
  VG Name               vg0
  PV Size               10.00 GiB / not usable 4.54 MiB
  Allocatable           yes 
  PE Size               16.00 MiB
  Total PE              640
  Free PE               640
  Allocated PE          0
  PV UUID               T9ehfV-wSc8-ez1y-ZlNF-T9P2-PU87-2rFe7Q
[root@centos6 ~]#pvmove /dev/sda6 /dev/sdc1
  /dev/sda6: Moved: 0.5%
  /dev/sda6: Moved: 15.6%
  /dev/sda6: Moved: 30.7%
  /dev/sda6: Moved: 56.8%
  /dev/sda6: Moved: 78.6%
  /dev/sda6: Moved: 100.0%
[root@centos6 ~]#vgreduce vg0 /dev/sda6                                    <--把pv/dev/sda6从vg0中移除
  Removed "/dev/sda6" from volume group "vg0"
[root@centos6 ~]#pvremove /dev/sda6                                        <--把设备/dev/sda6从pv中移除
  Labels on physical volume "/dev/sda6" successfully wiped

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

(0)
ffuffu
上一篇 2017-06-25
下一篇 2017-06-25

相关推荐

  • Linux用户和组管理及相关命令详解

        概要:在学习Linux的初级阶段,用户管理是基础管理的重要部分,任何命令的运行,系统的正常运转,均离不开用户管理的内容,本篇就为大家介绍下Linux用户管理的一些基础概念和一些基础命令的用法。内容主要分为以下三个部分:        &nbs…

    Linux干货 2016-08-02
  • linux 文件管理类命令及功能用法

    第一题:Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例演示。 文件管理类的命令有: cd,ls,touch,mldir,cp,mv,rm,rmdir,pwd,tree 使用方法 (1),cd命令用来切换工作目录至dirname。其中dirName表示法可为绝对路径或相对路径。 常用格式: cd #进入用户家目录 cd~ #进入用户家目录 c…

    Linux干货 2017-07-09
  • 第四周 博客作业

    grep useradd cp

    Linux干货 2017-12-28
  • 10yum源的配置

    yum仓库使用起来特别方便,然而使用之前当然是要配置的啦。下面就介绍一下怎么从0 配置一个yum仓库。 首先要创建yum仓库,当然不能使只给一台服务器用,那要给多个服务器用的话,就需要网络服务。yum仓库支持的网络服务有两种,FTP和HTTP。用yum主要用到的是数据传输,因此FTP更适合创建yum仓库,下面就以FTP为例,说明一下yum仓库的配置。 第一步…

    Linux干货 2016-11-04
  • FHS文件系统共能介绍

    FHS文件系统共能介绍   FHS,即File Hierarchy Standard,文件层级标准。多数Linux系统下的文件管理采用此种文件组织形式,它定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。   这中组织是一种倒树状结构,所有的文件与目录都是由根目录”/”开始,然后…

    Linux干货 2016-10-18
  • 马哥教育网络班21期+第2周课程练习

    一:在Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例。     在Linux中,文件管理类命令主要有cp,mv,rm三个     其中cp命令的使用格式如下:           …

    Linux干货 2016-07-16