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

LVM逻辑卷管理练习

*读出lvtestUUIDtype信息写入到文件

LVM逻辑卷管理练习

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

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



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

(1)
QianzhiheQianzhihe
上一篇 2017-08-26
下一篇 2017-08-26

相关推荐

  • Linux开学一周的学习心得

    Linux,这个名字第一次听到是通过张超老师给我讲解,因为我在学校学的是金融数学,平时对这方面没有太多接触。当时对Linux就知道是个系统,随后在网上搜了搜,了解也不太多。 直到今天已经来马哥教育一星期了,刚入学的这一星期上课,都是一些基本的命令,感觉学着还蛮有意思,教学的安排也非常合理,我们大家学一天还能自己动手操作一天,既能专心听课,又能把学到的知识巩固…

    2017-07-15
  • Linux文本处理工具grep,egrep

    简介:     grep即(Global search REgular expression and Print out the line)全局的搜索正则表达式并且打印显示出来。     通俗点讲:根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,显示能匹配到的行。 &n…

    Linux干货 2015-05-11
  • Openssl——为你的信息保驾护航

    OpenSSL基础 ·传输层协议:TCP,UDP,SCTP         port:进程地址,进程向内核注册使用某端口(独占) ·同一主机上的进程间通信:IPC,message queue,shm,semerphor ·不同主机上的进程间通信:socket  &nbs…

    Linux干货 2016-09-22
  • http请求过程

    1、浏览器根据访问的域名找到其IP地址。DNS查找过程如下: 1.浏览器缓存:浏览器会缓存DNS记录一段时间。 2.系统缓存:如果在浏览器缓存里没有找到需要的域名,浏览器会查系统缓存中的记录。 3.路由器缓存:如果系统缓存也没找到需要的域名,则会向路由器发送查询请求。 4.ISP DNS缓存:如果依然没找到需要的域名,则最后要查的就是ISP缓存DNS的服务器…

    Linux干货 2017-10-23
  • MariaDB数据类型总结

        数据类型是数据的一种属性,它决定了数据的存储格式、有效范围及其它相应的限制。MariaDB的数据类型包括:字符型、整型、浮点值、日期时间型、布尔型及内建类型。 一、字符型     1、CHAR和VARCHAR类型     &nbsp…

    Linux干货 2015-06-30
  • linux的基本命令

    先安装一个软件SecureFX8.0,作为伪终端来远程控制虚拟机 1.hostname是虚拟机连接的IP地址 下面来介绍一些linux的基本命令 1. useradd xx 创建一个用户   userdel xx 删除一个用户 不删除用户的文件   User -r xx  删除一个用户且删除该用户的…

    2017-07-14