博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux--逻辑卷管理器
阅读量:5090 次
发布时间:2019-06-13

本文共 9665 字,大约阅读时间需要 32 分钟。

这章我们学习了解一下逻辑卷管理器的相关概念以及实际操作。

一.概念简介

逻辑卷管理器是允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小;

是允许在多个物理设备间重新组织文件系统 。

在此,我们先了解一下物理卷的概念, 物理卷是用固定大小的物理区域来定义的 ,表示为PE。

当我们将设备指定为物理卷时,用一个或者多个物理卷来创建一个卷组。

所以可以知道,PE便是逻辑卷的最小单位。

在物理卷上创建逻辑卷之后可以在逻辑卷上创建文件系统。

那么学习逻辑卷,可以应用在哪些方面,又或者说,逻辑卷的用处体现在什么方面?

由逻辑卷的概念我们可以知道很明显的用处,便是重新设定文件系统大小。

随着对磁盘的使用,块设备以及文件系统的剩余空间不够,此时就需要使用逻辑卷对文件系统进行在线拉伸,

这样既能确保文件系统大小扩展,又可以保证业务正常运行以及保留数据。

二.创建LVM过程

    1.新增分区或增加新的硬盘

如果新增硬盘,注意在VMware添加后,需要在终端输入 echo '- - -' > /sys/class/scsi_host/host0/scan,识别新磁盘。

如果是分区,则需要注意分区的ID设置为8e,fdisk 选项t来修改分区ID

     2.创建物理卷pv
         pvcreate /dev/sdX /dev/sdXn /dev/md1:创建sdX,sdXn为md1物理卷pv

1 [root@mmmm(mei) ~]# pvcreate /dev/sdd /dev/sde /dev/sdf2   Physical volume "/dev/sdd" successfully created3   Physical volume "/dev/sde" successfully created4   Physical volume "/dev/sdf" successfully created

查看pv相关命令:

        pvs:查看所有pv物理卷

1 [root@mmmm(mei) ~]# pvs2   PV         VG   Fmt  Attr PSize PFree3   /dev/sdd        lvm2 ---- 1.00g 1.00g4   /dev/sde        lvm2 ---- 1.00g 1.00g5   /dev/sdf        lvm2 ---- 1.00g 1.00g

         pvdisplay [/dev/sdX]:查看某物理卷详细信息

1 [root@mmmm(mei) ~]# pvdisplay /dev/sdd 2   "/dev/sdd" is a new physical volume of "1.00 GiB"     #描述 3   --- NEW Physical volume --- 4   PV Name               /dev/sdd 5   VG Name                                               #由于第一步创建pv,并没有创建vg,所以此处为空 6   PV Size               1.00 GiB 7   Allocatable           NO 8   PE Size               0    9   Total PE              010   Free PE               011   Allocated PE          012   PV UUID               gUwnnl-CZO1-hidM-0cAz-ijeE-mL2R-9t2dEK

 

     3.创建卷组vg
         vgcreate [-s xM] vgName /dev/sdX …… :选项-s指定PE大小,创建卷组,组名+成员

1 [root@mmmm(mei) ~]# vgcreate -s 16M testvg /dev/sdd /dev/sde /dev/sdf2   Volume group "testvg" successfully created

         vgs:查看所有卷组vg

1 [root@mmmm(mei) ~]# vgs2   VG     #PV #LV #SN Attr   VSize VFree3   testvg   3   0   0 wz--n- 2.95g 2.95g    #三个1G的pv组成,可查看是否正确组成卷组vg

        

         vgdisplay [vgname]:查看某卷组详细信息

1 [root@mmmm(mei) ~]# vgdisplay testvg 2   --- Volume group --- 3   VG Name               testvg 4   System ID              5   Format                lvm2 6   Metadata Areas        3 7   Metadata Sequence No  1 8   VG Access             read/write 9   VG Status             resizable10   MAX LV                011   Cur LV                012   Open LV               013   Max PV                014   Cur PV                315   Act PV                316   VG Size               2.95 GiB17   PE Size               16.00 MiB          # -s 指定PE大小18   Total PE              18919   Alloc PE / Size       0 / 0   20   Free  PE / Size       189 / 2.95 GiB21   VG UUID               o1lhj2-SnLl-4kVa-jDPn-jHXF-0Bcd-gfqThl

 

     4.创建逻辑卷lv
         lvcreate -l pe num /-L size -n lvname vgname:创建逻辑卷 -l指定PE数量,-L指定大小

1 [root@mmmm(mei) ~]# lvcreate -L 1G -n testlv testvg2   Logical volume "testlv" created.

         lvs:查看所有逻辑卷lv

1 [root@mmmm(mei) ~]# lvs2   LV     VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert3   testlv testvg -wi-a----- 1.00g

 

         lvdisplay [/dev/vgname/lvname]:查看某逻辑卷详细信息

1 [root@mmmm(mei) ~]# lvdisplay /dev/testvg/testlv 2   --- Logical volume --- 3   LV Path                /dev/testvg/testlv 4   LV Name                testlv 5   VG Name                testvg 6   LV UUID                3DA5wa-GIUg-qtJt-0wY4-j8uT-8LEd-vzSnid 7   LV Write Access        read/write 8   LV Creation host, time mmmm, 2018-08-11 21:31:27 +0800 9   LV Status              available                    #  有时候可以禁用逻辑卷10   # open                 011   LV Size                1.00 GiB12   Current LE             6413   Segments               214   Allocation             inherit15   Read ahead sectors     auto16   - currently set to     25617   Block device           253:0

 

    5.挂载,在这里需要注意的是,在挂载前需要对逻辑卷进行格式化,也可以对pv格式化再进行创建vg、lv

       

1 [root@mmmm(mei) ~]# mount /dev/testvg/testlv /testlv2 mount: you must specify the filesystem type3 [root@mmmm(mei) ~]# mkfs.ext4 /dev/testvg/testlv 4 mke2fs 1.41.12 (17-May-2010)5 Filesystem label=6 OS type: Linux.......
1 [root@mmmm(mei) ~]# mount /dev/testvg/testlv /testlv2 [root@mmmm(mei) ~]# df /testlv/3 Filesystem           1K-blocks  Used Available Use% Mounted on4 /dev/mapper/testvg-testlv5                         999320  1284    945608   1% /testlv

 

三.删除过程

    1.卸载umont

    2.lvremove

1 [root@mmmm(mei) ~]# lvremove /dev/testvg/testlv 2 Do you really want to remove active logical volume testlv? [y/n]: y3    Logical volume "testlv" successfully removed

     3.vgremove vgmage

1 [root@mmmm(mei) ~]# vgs2 VG #PV #LV #SN Attr VSize VFree3 testvg 2 0 0 wz--n- 1.97g 1.97g4 [root@mmmm(mei) ~]# vgremove testvg5 Volume group "testvg" successfully removed

 

     4.使用pvremove  命令:pvremove + pvname即可

1 [root@mmmm(mei) ~]# pvremove /dev/sdd2   Labels on physical volume "/dev/sdd" successfully wiped

四.拓展已存在逻辑卷

第一种情况,需要扩展的pe数量

vg可以提供 lvextend -L +500M /dev/testvg/testlv

resize2fs /dev/testvg/testlv 

或者lvextend中指定 -r 选项,即:lvextend -L +500M -r /dv/testvg/testlv

1 [root@mmmm(mei) ~]# lvextend -L +1G /dev/testvg/testlv     # -L 选项注意:+表示在原有大小基础上增加,直接跟数字表示变成该数字大小2   Size of logical volume testvg/testlv changed from 1.00 GiB (64 extents) to 2.00 GiB (128 extents).3   Logical volume testlv successfully resized.4 [root@mmmm(mei) ~]# resize2fs /dev/testvg/testlv 5 resize2fs 1.41.12 (17-May-2010)6 Filesystem at /dev/testvg/testlv is mounted on /testlv; on-line resizing required7 old desc_blocks = 1, new_desc_blocks = 18 Performing an on-line resize of /dev/testvg/testlv to 524288 (4k) blocks.9 The filesystem on /dev/testvg/testlv is now 524288 blocks long.
1 [root@mmmm(mei) ~]# lvs2   LV     VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert3   testlv testvg -wi-ao---- 2.00g

 

第二种情况,vg空间不够,需先扩展vg

扩展vg就是往vg中加pv,这里命令使用结合上面所使用的,便不多介绍。

1.加硬盘,或创建分区等来增加block device

2.创建pv
pvcreate /dev/sdb
3.扩展vg
vgextend vgmage /dev/sdb
4.lvextend -L 4G -r /dev/vgmage/lv01

第三种,减小逻辑卷

在这里需要注意的是,减小逻辑卷一定要特别注意,不能减小有数据的区,防止损坏数据。

那我们如何知道哪些块设备是空闲的呢?

这里就需要用到文件格式化的命令——e2fsck,对块设备

另一方面我们需要知道,一切皆文件,即需要保证文件系统永远小于块设备,所以需要

先减少文件系统大小。具体步骤如下:

1 [root@mmmm(mei) ~]# umount /testlv/ 2 [root@mmmm(mei) ~]# e2fsck -f /dev/testvg/testlv  3 e2fsck 1.41.12 (17-May-2010) 4 Pass 1: Checking inodes, blocks, and sizes 5 Pass 2: Checking directory structure 6 Pass 3: Checking directory connectivity 7 Pass 4: Checking reference counts 8 Pass 5: Checking group summary information 9 /dev/testvg/testlv: 11/131072 files (0.0% non-contiguous), 16812/524288 blocks10 [root@mmmm(mei) ~]# resize2fs /dev/testvg/testlv 1000M11 resize2fs 1.41.12 (17-May-2010)12 Resizing the filesystem on /dev/testvg/testlv to 256000 (4k) blocks.13 The filesystem on /dev/testvg/testlv is now 256000 blocks long.14 15 [root@mmmm(mei) ~]# lvreduce -L 1000M /dev/testvg/testlv 16   Rounding size to boundary between physical extents: 1008.00 MiB.17   WARNING: Reducing active logical volume to 1008.00 MiB.18   THIS MAY DESTROY YOUR DATA (filesystem etc.)19 Do you really want to reduce testvg/testlv? [y/n]: y20   Size of logical volume testvg/testlv changed from 2.00 GiB (128 extents) to 1008.00 MiB (63 extents).21   Logical volume testlv successfully resized.22 [root@mmmm(mei) ~]# mount -a23 [root@mmmm(mei) ~]# lvs24   LV     VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert25   testlv testvg -wi-a----- 1008.00m

 

五.XFS文件系统的在线扩展

xfs文件系统创建逻辑卷步骤同ext一样,不一样的xfs文件系统的在拓展

在这里多加注意的是,xfs文件系统不支持减小逻辑卷。

1 root@localhost(mei) ~]# pvcreate /dev/sdc /dev/sdd /dev/sde 2   Physical volume "/dev/sdc" successfully created. 3   Physical volume "/dev/sdd" successfully created. 4   Physical volume "/dev/sde" successfully created. 5 [root@localhost(mei) ~]# vgcreate testvg /dev/sdc /dev/sdd /dev/sde -s 16M    #指定PE大小 6   Volume group "testvg" successfully created 7 [root@localhost(mei) ~]# lvcreate -l 2 -n testlv testvg     #指定PE个数, 8   Logical volume "testlv" created. 9 [root@localhost(mei) ~]# lvdisplay /dev/testvg/testlv 10   --- Logical volume ---11   LV Path                /dev/testvg/testlv12   LV Name                testlv13   VG Name                testvg14   LV UUID                fBiNq7-tp3F-C5gy-37u9-t7bU-fXkL-PyYAZG15   LV Write Access        read/write16   LV Creation host, time localhost.localdomain, 2018-08-12 19:38:01 +080017   LV Status              available18   # open                 019   LV Size                32.00 MiB             #即两个PE大小20   Current LE             221   Segments               122   Allocation             inherit23   Read ahead sectors     auto24   - currently set to     819225   Block device           253:3

 

第一种情况,需要扩展的pe数量,vg可以提供

lvextend -L +500M /dev/vgmage/lv01

xfs_growfs /dev/vgmage/lv01 或 lvextend中指定-r

1 [root@localhost(mei) ~]# lvextend -L 1600M -r /dev/testvg/testlv  2   Size of logical volume testvg/testlv changed from <1.47 GiB (94 extents) to 1.56 GiB (100 extents). 3   Logical volume testvg/testlv successfully resized. 4 meta-data=/dev/mapper/testvg-testlv isize=512    agcount=2, agsize=4096 blks 5          =                       sectsz=512   attr=2, projid32bit=1 6          =                       crc=1        finobt=0 spinodes=0 7 data     =                       bsize=4096   blocks=8192, imaxpct=25 8          =                       sunit=0      swidth=0 blks 9 naming   =version 2              bsize=4096   ascii-ci=0 ftype=110 log      =internal               bsize=4096   blocks=855, version=211          =                       sectsz=512   sunit=0 blks, lazy-count=112 realtime =none                   extsz=4096   blocks=0, rtextents=013 data blocks changed from 8192 to 409600

 

第二种情况,vg空间不够,需先扩展vg,扩展vg就是往vg中加pv

1.加硬盘,或创建分区等来增加block device

2.创建pv
pvcreate /dev/sdb
3.扩展vg
vgextend vgmage /dev/sdb
4.lvextend -L 4G -r /dev/vgmage/lv01

 

转载于:https://www.cnblogs.com/0715mmmm/p/9461138.html

你可能感兴趣的文章
15 FFT及其框图实现
查看>>
Linux基本操作
查看>>
osg ifc ifccolumn
查看>>
C++ STL partial_sort
查看>>
3.0.35 platform 设备资源和数据
查看>>
centos redis 安装过程,解决办法
查看>>
IOS小技巧整理
查看>>
WebDriverExtensionsByC#
查看>>
我眼中的技术地图
查看>>
lc 145. Binary Tree Postorder Traversal
查看>>
sublime 配置java运行环境
查看>>
在centos上开关tomcat
查看>>
重启rabbitmq服务
查看>>
正则表达式(进阶篇)
查看>>
无人值守安装linux系统
查看>>
【传道】中国首部淘宝卖家演讲公开课:农业本该如此
查看>>
jQuery应用 代码片段
查看>>
MVC+Servlet+mysql+jsp读取数据库信息
查看>>
黑马程序员——2 注释
查看>>
用OGRE1.74搭建游戏框架(三)--加入人物控制和场景
查看>>