zoukankan      html  css  js  c++  java
  • LVM逻辑卷管理练习

         小编今天要讲的内容是如何创建逻辑卷,然后扩展它、缩减它。LVM 的重点就在于可以弹性的调整文件系统的容量!所以,下面练习开始。

    1、创建一个至少有两个PV组成的大小为20G的名为testvg的 VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻 辑卷testlv;挂载至/users目录。

    ①准备两个10G的分区

    [root@localhost ~]# fdisk -l /dev/sdd |grep sdd*   
    Disk /dev/sdd: 214.7 GB, 214748364800 bytes
    /dev/sdd1               1        1306    10490413+  8e  Linux LVM
    /dev/sdd2            1307        2612    10490445   8e  Linux LVM

    (这里小编用fdisk新的分区之后,t类型转换为8e为LINUX LVM)

    *显示分好的2个10G分区

    [root@localhost ~]# lsblk |grep sdd[0-9]
    ├─sdd1   8:49   0    10G  0 part 
    └─sdd2   8:50   0    10G  0 part 

    ②创建PV物理卷

    [root@localhost ~]# pvcreate /dev/sdd{1..2}
    Physical volume "/dev/sdd1" successfully created
    Physical volume "/dev/sdd2" successfully created

    *查看PV物理卷

    [root@localhost ~]# pvs
    PV         VG       Fmt  Attr PSize   PFree 
    /dev/sdd1           lvm2 ----  10.00g 10.00g
    /dev/sdd2           lvm2 ----  10.00g 10.00g

    (也可以用pvdisplay查看详细信息)

    ③创建VG卷组

    [root@localhost ~]# vgcreate -s 16M testvg /dev/sdd{1..2}
      Volume group "testvg" successfully created

    (-s用来指定PE大小为16M)

    *查看VG

    [root@localhost ~]# vgs
      VG       #PV #LV #SN Attr   VSize   VFree 
      VolGroup   1   3   0 wz--n- 199.51g     0 
      testvg     2   0   0 wz--n-  20.00g 20.00g

    (总大小为20G,由两个PV组成的VG卷组)

    *查看分配的PE相关信息

    [root@localhost ~]# vgdisplay testvg|egrep -io "(Pe|VG).*size.*"   
    VG Size               20.00 GiB
    PE Size               16.00 MiB
    PE / Size       0 / 0   
    PE / Size       1280 / 20.00 GiB

    (VG大小为20G,PE大小为16M)

    ④创建5G的逻辑卷,名称为testlv

    [root@localhost ~]# lvcreate -L 5G -n testlv testvg
      Logical volume "testlv" created.

    (-L指定大小,-n指定名称)

    *查看LV列表

    [root@localhost ~]# lvs
      LV      VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert                                                  
      testlv  testvg   -wi-a-----   5.00g 

    ⑤创建文件系统

    *格式化为ext4文件系统类型

    [root@localhost ~]# mkfs.ext4 /dev/testvg/testlv

    *查看是否分配了UUID

    [root@localhost ~]# blkid /dev/testvg/testlv 
    /dev/testvg/testlv: UUID="d3c176ac-4c1b-4fe9-84af-e4818aacaad6" TYPE="ext4" 

    ⑥创建一个目录并挂载

    [root@localhost ~]# mkdir users
    [root@localhost ~]# mount /dev/testvg/testlv /users/ 

    *查看分区情况及大小

    [root@localhost ~]# df -Ph |grep "/users"
    /dev/mapper/testvg-testlv     4.8G   10M  4.6G   1% /users

    ⑦设置自动挂载

    *使用vim编辑/etc/fstab配置文件

    [root@localhost ~]# vim /etc/fstab

    *读出lvtest的UUID及type信息写入到文件

    2、新建用户archlinux,要求其家目录为/users/archlinux ,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录

    *创建用户并指定其家目录

    [root@localhost ~]# useradd archlinux -d /users/archlinux

    (-d指定用户家目录)

    *切换用户,并复制文件

    [root@localhost ~]# su - archlinux
    [archlinux@localhost ~]$ cp -av /etc/pam.d /users/archlinux/

    *查看文件个数

    [archlinux@localhost ~]$ ls /users/archlinux/pam.d/ | wc -l
    58

    3、扩展testlv至7G,要求archlinux用户的文件不能丢失

    *先检查需要扩展的大小,VG是否有足够可用空间

    [root@localhost ~]# vgs
      VG       #PV #LV #SN Attr   VSize   VFree 
      testvg     2   1   0 wz--n-  20.00g 15.00g

    (剩余15G,有足够可用空间)

    *查看逻辑卷

    [root@localhost ~]# lvs
      LV      VG       Attr       LSize   Pool Origin Data%  Meta%  Move                                                 
      testlv  testvg   -wi-ao----   5.00g 

    (显示总大小为5G)

    *扩展逻辑卷大小,由上面得知testLV大小为5G,扩展至7G需要加上2G

    [root@localhost ~]# lvextend -L +2G -r /dev/testvg/testlv            
      Size of logical volume testvg/testlv changed from 5.00 GiB (320 extents) to 7.00 GiB (448 extents).
      Logical volume testlv successfully resized.

    *再次查看lestLV逻辑卷大小

    [root@localhost ~]# lvs
      LV      VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert                                                   
      testlv  testvg   -wi-ao----   7.00g

    (已经变成了7G)

    *查看物理大小

    [root@localhost ~]# df -Ph |grep "testlv"
    /dev/mapper/testvg-testlv     6.8G   12M  6.5G   1% /users

    (发现由4.8G增加2G到6.8G,有误差,但表示扩展成功)

    *查看拷贝的pam.d目录下的文件个数

    [root@localhost ~]# ls /users/archlinux/pam.d | wc -l           
    58

    4、收缩testlv至3G,要求archlinux用户的文件不能丢失

    *必须先卸载,处于离线状态

    [root@localhost ~]# umount /dev/testvg/testlv

    *检查文件系统是否完好

    [root@localhost ~]# e2fsck -f -y /dev/testvg/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/testvg/testlv: 78/458752 files (0.0% non-contiguous), 64509/1835008 blocks

    *设置文件系统大小

    [root@localhost ~]# resize2fs /dev/testvg/testlv 3G
    resize2fs 1.41.12 (17-May-2010)
    Resizing the filesystem on /dev/testvg/testlv to 786432 (4k) blocks.
    The filesystem on /dev/testvg/testlv is now 786432 blocks long.

    *缩减逻辑卷

    [root@localhost ~]# lvreduce -L 3G /dev/testvg/testlv 
      WARNING: Reducing active logical volume to 3.00 GiB.
      THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce testvg/testlv? [y/n]: y
      Size of logical volume testvg/testlv changed from 7.00 GiB (448 extents) to 3.00 GiB (192 extents).
      Logical volume testlv successfully resized.

    *再次查看逻辑卷大小

    [root@localhost ~]# lvs
      LV      VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert                                                    
      testlv  testvg   -wi-a-----   3.00g 

    (发现已经缩减到3G)

    *再次挂载

    [root@localhost ~]# mount /dev/testvg/testlv /users

    *查看物理卷

    [root@localhost ~]# df -Ph |grep "/users"   
    /dev/mapper/testvg-testlv     2.9G  7.8M  2.7G   1% /users

    (也被缩减改为3G左右)

    *查看pam.d目录中文件个数

    [root@localhost ~]# ls /users/archlinux/pam.d | wc -l  
    58

    5、对testlv创建快照,并尝试基于快照备份数据,验正快照的功能

    *创建大小为1G只读的快照

    [root@localhost ~]# lvcreate -L 1G -s -n testsnap -p r /dev/testvg/testlv 
      Logical volume "testsnap" created.

    (快照不能太小,上面的过程把逻辑卷缩减到了3G,所以创建1G的快照足够了)

    *查看lvs

    [root@localhost ~]# lvs
      LV       VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert                                                   
      testlv   testvg   owi-aos---   3.00g                                                    
      testsnap testvg   sri-a-s---   1.00g      testlv 0.00 

    *创建快照目录并挂载

    [root@localhost ~]# mkdir /users/testsnap
    [root@localhost ~]# mount /dev/testvg/testsnap /users/testsnap/
    mount: block device /dev/mapper/testvg-testsnap is write-protected, mounting read-only

    *删除pam.d中以a开头的文件

    [root@localhost ~]# rm -f /users/archlinux/pam.d/a*
    [root@localhost ~]# ls /users/archlinux/pam.d/ |wc -l
    52

    (发现文件个数只剩52个了)

    *查看快照中pam.d中的文件个数

    [root@localhost ~]# ls /users/testsnap/archlinux/pam.d |wc -l          
    58

    (还是58个)

    *备份快照卷数据

    [root@localhost ~]# tar -zcf /tmp/bakup.tar.gz /users/testsnap/archlinux/pam.d/* 
    tar: Removing leading `/' from member names

    (小编这里备份到了tmp下)

    *取消挂载

    [root@localhost /tmp]# umount /users/testsnap/
    [root@localhost /tmp]# umount /users/

    *还原文件

    [root@localhost /users]# tar -zxf /tmp/bakup.tar.gz ./
    [root@localhost /users]# ls
     archlinux

    *查看原文件个数为58,数据恢复成功

    [root@localhost /users]# ls archlinux/pam.d/ |wc -l
    58

    练习终于搞定了,小编在此过程中就路径这个问题折腾了好久,所以大家在做练习的时候注意一下哦。



  • 相关阅读:
    【Vijos1067】守望者的烦恼【矩阵乘法】
    【Vijos1067】守望者的烦恼【矩阵乘法】
    【洛谷P3514】LIZ-Lollipop【思维】【模拟】
    【洛谷P3514】LIZ-Lollipop【思维】【模拟】
    【CF617E】XOR and Favorite Number【莫队】
    【CF617E】XOR and Favorite Number【莫队】
    【牛客练习赛46-A】华华教奕奕写几何【二分】
    【牛客练习赛46-A】华华教奕奕写几何【二分】
    【洛谷P1494】【BZOJ2038】小Z的袜子【莫队】
    【洛谷P1494】【BZOJ2038】小Z的袜子【莫队】
  • 原文地址:https://www.cnblogs.com/Qian-free/p/7622249.html
Copyright © 2011-2022 走看看