Linux入门之磁盘管理(9)LVM逻辑卷案例

Linux入门之磁盘管理(9)LVM逻辑卷案例

案例介绍阶段(1):

创建一个由两个物理卷组成的大小未20G的卷组myvg,要求其PE大小为16M;而在此卷组中创建一个大小未5G的逻辑卷lvtest,此逻辑卷要能在开机后自动挂载至/mnt/lvtest目录,且支持ACL功能。

1、准备工作

#这里我们分别从两个磁盘选择10G来准备组合为PV

[[email protected] ~]# fdisk -l | grep -o ‘/.*B‘
/dev/sda: 21.5 GB
/dev/sdb: 21.5 GB
/dev/sdc: 21.5 GB
/dev/sdd: 10.7 GB
/dev/sde: 10.7 GB

#这里我们选择从sdb磁盘和sdbc磁盘中分别划分两个10G分区进行组合

[[email protected] ~]# fdisk -l | grep ‘^/dev/sd[bc][0-9]‘
/dev/sdb1             1        1306    10490413+  8e  Linux LVM
/dev/sdc1             1        1306    10490413+  8e  Linux LVM

注意:这里使用fdisk进行的新增分区,在创建分区后,最后使用t子命令转换为8e表示分区类型为Linux LVM,表示LVM专用。

#显示刚才的2个10G分区

[[email protected] ~]# lsblk | grep -o ‘sd[bc]1.*‘
sdb1   8:17   0   10G  0 part 
sdc1   8:33   0   10G  0 part

2、创建pv物理卷

#将两个分区创建为pv物理卷

[[email protected] ~]# pvcreate /dev/sd{b,c}1
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created

#查看pv物理卷

[[email protected] ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdb1       lvm2 ---- 10.00g 10.00g
  /dev/sdc1       lvm2 ---- 10.00g 10.00g

#扫描pv

[[email protected] ~]# pvscan 
  PV /dev/sdb1                      lvm2 [10.00 GiB]
  PV /dev/sdc1                      lvm2 [10.00 GiB]
  Total: 2 [20.01 GiB] / in use: 0 [0   ] / in no VG: 2 [20.01 GiB]

解析:这里显示了当前pv总大小未20G,分别为两个10G pv组成,并且未使用,下面对其创建vg卷组。

3、创建vg组给指定pv分配PE

#指定vg组分配的PE大小每个为16M

[[email protected] ~]# vgcreate -s 16 myvg /dev/sd{b,c}1
  Volume group "myvg" successfully created

#查看当前vg,myvg中有2个PV,总大小为20G

[[email protected] ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  myvg   2   0   0 wz--n- 20.00g 20.00g

#扫描为假,正在分配PE

[[email protected] ~]# vgscan 
  Reading all physical volumes.  This may take a while...
  Found volume group "myvg" using metadata type lvm2

#查看PV,以及显示被分配了VG组为myvg

[[email protected] ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdb1  myvg lvm2 a--u 10.00g 10.00g
  /dev/sdc1  myvg lvm2 a--u 10.00g 10.00g

#使用vgdisplay显示其分配的PE相关信息

[[email protected] ~]# vgdisplay myvg | grep -io ‘\(pe\|vg\).*size.*‘
VG Size               20.00 GiB
PE Size               16.00 MiB
PE / Size       0 / 0   
PE / Size       1280 / 20.00 GiB

解析:这里显示每个PE占用大小为16M,总共有1280个分区,0个使用。

4、创建一个5G 的lv逻辑卷

#创建lv逻辑卷大小未5G,逻辑卷名称为lvtest

[[email protected] ~]# lvcreate -n lvtest -L 5G myvg
  Logical volume "lvtest" created.

#扫描LV,显示分配了5G

[[email protected] ~]# lvscan
  ACTIVE            ‘/dev/myvg/lvtest‘ [5.00 GiB] inherit

#显示lv列表

[[email protected] ~]# lvs
  LV     VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lvtest myvg -wi-a----- 5.00g

#再次查看vg列表,发现LV列中为1,表示myvg组中有1个逻辑卷,剩余15G

[[email protected] ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  myvg   2   1   0 wz--n- 20.00g 15.00g

6、创建文件系统,添加测试数据

#格式化为ext4文件系统

[[email protected] ~]# mke2fs -t ext4 -L lvtest /dev/myvg/lvtest

#测试是否已经被分配了UUID

[[email protected] ~]# blkid /dev/myvg/lvtest 
/dev/myvg/lvtest: LABEL="lvtest" UUID="8b5e3d38-33ed-40b3-a53b-d7b039099378" TYPE="ext4"

#挂载分区

[[email protected] ~]# mkdir /mnt/lvtest; mount /dev/myvg/lvtest /mnt/lvtest

#查看分区占用大小及总大小

[[email protected] ~]# df -Ph | grep ‘/mnt/lvtest‘
/dev/mapper/myvg-lvtest  4.8G   10M  4.6G   1% /mnt/lvtest

#添加测试数据

[[email protected] ~]# cp /etc/issue /mnt/lvtest/
[[email protected] ~]# cat /mnt/lvtest/issue 
CentOS release 6.8 (Final)
Kernel \r on an \m

#修改文件数据

[[email protected] ~]# echo ‘************‘ >> /mnt/lvtest/issue 
[[email protected] ~]# cat /mnt/lvtest/issue 
CentOS release 6.8 (Final)
Kernel \r on an \m
************

7、设置自动挂载

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

[[email protected] ~]# vim /etc/fstab

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

#添加额外功能acl

[[email protected] ~]# grep ‘/mnt/lvtest‘ /etc/fstab
UUID="8b5e3d38-33ed-40b3-a53b-d7b039099378" /mnt/lvtest ext4   defaults,acl  0 0

#刚才进行了挂载,因此先卸载,去重读fstab配置

[[email protected] ~]# umount /dev/myvg/lvtest

#查看lvtest逻辑卷是否已经启用了acl功能

[[email protected] ~]# mount | grep ‘.*lvtest‘
/dev/mapper/myvg-lvtest on /mnt/lvtest type ext4 (rw,acl)

案例介绍阶段(2):

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

8、添加文件及用户设置

#添加用户archlinux并设置指定目录为其家目录

[[email protected] ~]# useradd -d /mnt/lvtest/archlinux archlinux && echo "123456" | passwd --stdin archlinux
Changing password for user archlinux.
passwd: all authentication tokens updated successfully.

#切换用户

[[email protected] ~]# su - archlinux

#查看当前登录用户

[[email protected] ~]$ whoami
archlinux

#查看当前所在目录

[[email protected] ~]$ pwd
/mnt/lvtest/archlinux

#拷贝目录

[[email protected] ~]$ cp -r /etc/pam.d/ /mnt/lvtest/archlinux/

#查看目录中的文件个数,有57个

[[email protected] ~]$ ls /mnt/lvtest/archlinux/pam.d/ | sed -n ‘$=‘
57

案例介绍阶段(3):

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

准备工作:

#查看分区的占用大小,只用了11M,总4.8G,剩余4.6G

[[email protected] ~]# df -Ph | grep ‘lvtest‘
/dev/mapper/myvg-lvtest  4.8G   11M  4.6G   1% /mnt/lvtest

#查看lv逻辑卷总大小为5G

[[email protected] ~]# lvs /dev/myvg/lvtest 
  LV     VG   Attr  LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lvtest myvg -wi-ao---- 5.00g

#查看myvg卷组中还预留剩余15G空间可用于扩展

[[email protected] ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  myvg   2   1   0 wz--n- 20.00g 15.00g

进行扩展:

#扩展逻辑卷大小,由上面得知lvtest原本为5G,扩展到7G加上2G即可

[[email protected] ~]# lvextend -L +2G /dev/myvg/lvtest 
  Size of logical volume myvg/lvtest changed from 5.00 GiB (320 extents) to 7.00 GiB (448 extents).
  Logical volume lvtest successfully resized.

#再次查看lvtest逻辑卷大小,已经变成了5G

[[email protected] ~]# lvs /dev/myvg/lvtest 
  LV     VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lvtest myvg -wi-ao---- 7.00g

#查看物理大小,发现并未改变

[[email protected] ~]# df -Ph | grep ‘lvtest‘
/dev/mapper/myvg-lvtest  4.8G   11M  4.6G   1% /mnt/lvtest

#重新设置物理卷大小为扩展到7G

[[email protected] ~]# resize2fs /dev/myvg/lvtest 7G
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/lvtest is mounted on /mnt/lvtest; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg/lvtest to 1835008 (4k) blocks.
The filesystem on /dev/myvg/lvtest is now 1835008 blocks long.

#再次查看,总大小6.8G,显示的一些小误差而已,已经扩展成功

[[email protected] ~]# df -Ph | grep ‘lvtest‘
/dev/mapper/myvg-lvtest  6.8G   12M  6.5G   1% /mnt/lvtest

#下面检查文件数据是否损坏和丢失,查看刚才修改的issue文件

[[email protected] ~]# cat /mnt/lvtest/issue 
CentOS release 6.8 (Final)
Kernel \r on an \m
************

#查看拷贝的pam.d目录下的文件个数,任然是57个没有丢失

[[email protected] ~]# ls /mnt/lvtest/archlinux/pam.d | sed -n ‘$=‘
57

案例介绍阶段(4):

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

准备工作

#必须先卸载,否则缩减会失败

[[email protected] ~]# umount /dev/myvg/lvtest

#必须先检查文件系统是否完好

[[email protected] ~]# e2fsck -f /dev/myvg/lvtest 
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
lvtest: 80/458752 files (0.0% non-contiguous), 64511/1835008 blocks

#上次查看得知分区剩余6.5G,占用了11M,缩减到3G,是够的,下面缩减物理卷

[[email protected] ~]# resize2fs /dev/myvg/lvtest 3G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/lvtest to 786432 (4k) blocks.
The filesystem on /dev/myvg/lvtest is now 786432 blocks long.

#缩减逻辑卷

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

注意:缩减逻辑会提示警告可能会有损数据,当然准备好上面的准备工作来降低缩减失败率,最后在缩减前先将其分区中文件进行备份。

#再次查看逻辑卷大小,已经缩减到3G

[[email protected] ~]# lvs /dev/myvg/lvtest 
  LV     VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lvtest myvg -wi-a----- 3.00g

#再次挂载

[[email protected] ~]# mount -a

#物理卷也被缩减改为3G左右

[[email protected] ~]# df -Ph | grep ‘lvtest‘
/dev/mapper/myvg-lvtest  2.9G  7.8M  2.7G   1% /mnt/lvtest

#检查分区中数据是否损坏和缺少,issue文件内容完整

[[email protected] ~]# cat /mnt/lvtest/issue 
CentOS release 6.8 (Final)
Kernel \r on an \m
************

#查看pam.d目录中文件个数,仍然是57个

[[email protected] ~]# ls /mnt/lvtest/archlinux/pam.d/ | wc -l 
57

案例介绍阶段(5):

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

创建快照卷

#创建一个3G大小的基于lvtest逻辑卷的快照卷,并设置为只读

[[email protected] ~]# lvcreate -n lvtest-sanp -L 3G -p r -s /dev/myvg/lvtest 
  Logical volume "lvtest-sanp" created.

#查看lvs,这里显示它们在同一个vg组

[[email protected] ~]# lvs
  LV       VG   Attr      LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lvtest    myvg owi-aos---     3.00g                                                    
  lvtest-sanp  myvg sri-a-s---  3.00g      lvtest 0.00

注意:Attr属性那列中lvtest中为owi,而lvtest-sanp快照卷为sri,表示为快照

使用快照卷

#挂载快照卷

[[email protected] ~]# mkdir /mnt/lvtest-sanp && mount /dev/myvg/lvtest-sanp /mnt/lvtest-sanp 
mount:block device /dev/mapper/myvg-lvtest--sanp is write-protected, mounting read-only

#查看快照卷数据文件

[[email protected] ~]# cat /mnt/lvtest-sanp/issue 
CentOS release 6.8 (Final)
Kernel \r on an \m
************

#查看pam.d目录下文件任然为57个

[[email protected] ~]# ls /mnt/lvtest-sanp/archlinux/pam.d/ | grep -n $ | tail -1 | cut -d: -f1
57

#下面修改原逻辑卷中文件数据

[[email protected] ~]# echo {1..10} > /mnt/lvtest/issue
[[email protected] ~]# cat !$
cat /mnt/lvtest/issue
1 2 3 4 5 6 7 8 9 10

#删除原逻辑卷中pam.d目录下几个文件

[[email protected] ~]# rm -f /mnt/lvtest/archlinux/pam.d/c*

#原逻辑卷中pam.d文件夹只有51个文件了

[[email protected] ~]# ls /mnt/lvtest/archlinux/pam.d/ | wc -l
51

#下面查看快照卷中数据issue文件,并未改变

[[email protected] ~]# cat /mnt/lvtest-sanp/issue 
CentOS release 6.8 (Final)
Kernel \r on an \m
************

#查看快照卷中的pam.d目录是否还是57个

[[email protected] ~]# ls /mnt/lvtest-sanp/archlinux/pam.d/ | wc -l
57

下面我们将逻辑卷中的数据还原

#备份快照卷数据

[[email protected] ~]# tar -jcf /tmp/lvtest.tar.bz2 /mnt/lvtest-sanp/
tar: Removing leading `/‘ from member names

#查看备份文件已经生成

[[email protected] ~]# ls -l /tmp/lvtest.tar.bz2 
-rw-r--r--. 1 root root 3849 Aug 18 22:30 /tmp/lvtest.tar.bz2

#还原文件及目录结构

[[email protected] lvtest]# tar -jxf /tmp/lvtest.tar.bz2 -C ./ 
[[email protected] lvtest]# ls
mnt
[[email protected] lvtest]# mv mnt/lvtest-sanp/* ./
[[email protected] lvtest]# rmdir mnt/lvtest-sanp/

解析:默认tar命令会保存全路径,所有要进行目录结构调整,当然也可以可以切换到指定目录下进行打包压缩,更方便使用目录结构

#查看文件内容,已经恢复到了原来逻辑卷中的数据状态

[[email protected] lvtest]# ls
archlinux  issue  lost+found  mnt
[[email protected] lvtest]# cat issue 
CentOS release 6.8 (Final)
Kernel \r on an \m
************
[[email protected] lvtest]# ls archlinux/pam.d/ | wc -l
57

解析:这里表示已经完全还原回来了,原来快照卷只从被创建,里面的文件就只是保存原本未改变的数据,如果原文件被改变,那么快照卷卷就会将原文件未改变的数据存入快照卷,实际上快照卷无需很多,里面只是存放被改变的文件后删除文件后原来的文件内容或文件结构。因此快照卷只是做了一个原数据保留。

时间: 2024-12-20 22:15:20

Linux入门之磁盘管理(9)LVM逻辑卷案例的相关文章

Linux入门之磁盘管理(8)LVM逻辑卷的使用

在Linux中虽然有raid来保证数据的稳定以及磁盘性能的提高,但是其扩展性并不是很好,在很多生产环境中,都是数据正在使用中,在这时如果中断一段时间就会有很大的损失,因此Linux提供了LVM虚拟逻辑卷的概念,同样多个磁盘设备或分区设备组合在一起,但是,如果空间需要缩减或者扩展,可以很方便的进行动态改变,甚至进行数据快照. 逻辑卷管理器(LVM): 1.允许对卷进行方便操作的抽象层,包括重新定义文件系统的大小 2.允许在多个目录设备间重新组织文件系统 (1)将设备指定为物理卷 (2)用一个或多个

Linux磁盘管理:LVM逻辑卷创建及使用

Linux磁盘管理:LVM逻辑卷创建及使用    一.创建LVM逻辑卷    通过图文并茂的方式来看看如何创建我们的LVM ,首先是要将我们的物理硬盘格式化成PV,然后将多个PV加入到创建好的VG中,最后通过VG创建我们的LV.所以我们第一步就是将我们的物理硬盘格式化成PV(物理卷) ①将物理硬盘格式化成PV(物理卷) 使用的是 pvcreate 命令 这里我已经事先虚拟化了3快物理硬盘,每块硬盘的大小为8G,通过 fdisk -l 命令可以查看 [[email protected] ~]# f

【转载】Linux磁盘管理:LVM逻辑卷管理

Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理 这篇随笔将详细讲解Linux磁盘管理机制中的LVM逻辑卷的基本概念以及LVM的工作原理!!! 一.传统的磁盘管理 其实在Linux操作系统中,我们的磁盘管理机制和windows上的差不多,绝大多数都是使用MBR(Master Boot Recorder)都是通过先对一个硬盘进行分区,然后再将该分区进行文件系统的格式化,在Linux系统中如果要使用该分区就将其挂载上去即可,windows的话其实底

LInux磁盘管理:LVM逻辑卷

Linux磁盘管理:LVM逻辑卷 LVM简介   LVM(Logical Volume Manager 逻辑卷管理),是Linux操作系统的逻辑卷管理器.   LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性.   与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储.它使系统管理员可以更方便的为应用与用户分配存储空间. 逻辑卷基本术语 物

linux磁盘管理之LVM逻辑卷认识与管理详解(实验详细,可跟做)

Linux磁盘管理之LVM逻辑卷认识与管理详解 前言 本文接着上篇文章作如下延伸:链接:Linux磁盘管理之磁盘管理与文件系统 什么是LVM?为什么需要LVM? 如何具体进行LVM逻辑卷管理? 什么是磁盘配额?为什么需要磁盘配额? 在Linux中进行磁盘配额的条件是什么呢? 如何具体进行磁盘配额? 下面对以上问题逐一讲解,深入实例进行操作,带你深入理解linux磁盘管理之LVM逻辑卷管理. 一.LVM概述 1.什么是LVM?为什么需要LVM? ? 许多 Linux 使用者安装操作系统时都会遇到这

Linux磁盘管理:LVM逻辑卷的创建及使用

一.创建LVM逻辑卷 事先添加了三块虚拟物理磁盘/dev/sdb 1G, /dev/sdc 2G, /dev/sdd 3G 使用fdisk –l命令查看: [[email protected] ~]# fdisk -l Disk /dev/sda: 8589 MB, 8589934592 bytes, 16777216 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes /

Linux磁盘管理:LVM逻辑卷的拉伸及缩减

转载:http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/24/3097785.html 在上一篇详细讲解了LVM逻辑卷的创建及使用,我们知道创建逻辑卷的步骤是先格式化物理硬盘位PV,然后创建一个VG,再将多个PV加入到VG中,最后基于VG创建我们的LV.在这篇随笔里,我们将继续学习LVM逻辑卷的知识,包括逻辑卷的拉伸及缩减... 一.拉伸一个逻辑卷 我们知道相比于传统磁盘管理方式的各种问题,使用LVM逻辑卷来管理我们的磁盘,我们可以对

Linux磁盘管理之LVM逻辑卷快照

一.快照的工作原理 所谓快照就是将当时的系统数据记录下来,在未来若有数据变动,则会将变更前的数据放入快照区进行保存.我们可理解为快照就是给系统拍了一张照片,记录当时系统在拍快照的状态.只不过现实生活中的照片是没有办法将现在的生活还原到照片的时候,而Linux系统里LVM快照是可以的.从上面的阐述可以了解到,被做快照的逻辑卷是分成了两个部分,一部分是数据没有改动前的和数据变更后的.它是怎么工作的呢?在我们给系统做快照的前提是,系统上基于LVM管理的,且快照和逻辑卷必须是在同一卷组上:在我们给LVM

磁盘管理:LVM逻辑卷

LVM简介 ??LVM(Logical Volume Manager 逻辑卷管理),是Linux操作系统的逻辑卷管理器.??LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性.??与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储.它使系统管理员可以更方便的为应用与用户分配存储空间. 逻辑卷基本术语 物理存储介质(The physical