LVM(Logical Volumn Manage)逻辑卷的常见使用方法

在 Linux 平台中,第三方的软件安装位置一般是:/usr/local/  和  /srv ,随着我们的应用渐渐增多。万一这些目录所在的分区使用完了。但是,这时候我们又需要安装新的应用软件,怎么办呢?

Linux 系统中 /usr/share目录是存放帮助手册的,通常该目录所占用的磁盘空间比较大,使用rpm包安装的应用,帮助手册一般会安装到 /usr/share 目录中。分区操作那时没有做到充分全面地考虑,随着我们的应用的增多,该目录所有的分区日渐用尽的情况是有可能的。我们想到最简单的方法就是扩大该目录所在的分区。但是磁盘的分区是不能扩展的。在对磁盘进行分区那一刻分区大小就固定下来了。以后再也不能改变的了。

数据是企业的命脉,数据安全由为重要。RAID保证不会因为磁盘故障而导致业务中断;备份保证了,因误操作或黑客攻击导致数据的损坏丢失。能够从备份中把数据恢复还原回来。

我们的应用服务很多使用到数据库服务器(如MySQL),为了不影响业务的正常运行,我们都要在线备份数据的,也就是热备份。商业的热备工具都很贵。有没有一种廉价的解决方案呢?

这时 LVM(逻辑卷),带来了福音。它可以动态地缩减边界的大小;它还有“快照snapshot”的功能,该功能做数据的全备份且是热备(其实是类热备),速度很快。

LVM (LogicalVolumn Manage)逻辑卷。有两个版本:LVM和LVM2。它有三部分组成:

1、PV层

PV由块设备组成,可以是分区、raid.

对空间大小无要求,只要求是块设备。

2、VG层

作用是把多个PV组合成一体。

PV加入VG的时候,PV被划分成一个个逻辑单元(PE)PageExtend。因为PE的大小是在在创建VG的时候指定的。所以刚创建PV的时候,查看PV的信息的时候显示PE总数为0、PE大小也为零。PE的大小默认是4MB。PE也就是我们存储数据的最小单元,类似于磁盘的block块,所以设置PE大小的时候,也要根据实际应用:是存储大数据文件呢还是存储小文件数据呢。我们可以这样理解:VG就一块磁盘。

3、LV层

VG可以理解成整个磁盘,那么创建LV的过程,可以理解为创建分区的过程。创建分区以后要在分区上创建文件系统,并把它挂载才可以使用的。LV也一样要创建文件系统,且使用的命令都一样,还要挂载才可以使用。只是在/dev目录下的设备文件不一样。

LVM的逻辑组成结构如下图:

创建逻辑卷的过程是从下到上一层层创建的:PV ---> VG ----à LV

一、创建逻辑卷并挂载使用

1、  先创建PV

操作pv使用到的命令

PV:
pvcreate             创建
pvdisplay             显示
pvmove              移动数据。在删除PV的时候,把存放在该PV的数据移动到其它的PV上。
pvremove            移(删)除卷
pvscan              扫描当前系统所有的PV并显示。

准备了三个分区用来创建PV。

[[email protected] 07.11_job]# fdisk -l /dev/sdb
  Device Boot      Start         End      Blocks  Id  System
/dev/sdb1               1          66      530113+ 8e  Linux LVM
/dev/sdb2              67         198    1060290   8e  Linux LVM
/dev/sdb3             199         460    2104515   8e  Linux LVM

把分区 /dev/sdb1和/dev/sdb3创建成pv

[[email protected] ~]# pvcreate  /dev/sdb1  /dev/sdb3
 Physical volume "/dev/sdb1" successfully created
 Physical volume "/dev/sdb3" successfully created
[[email protected] 07.11_job]# pvdisplay  /dev/sdb3
 "/dev/sdb3" is a new physical volume of "2.01 GiB"
  ---NEW Physical volume ---
  PVName               /dev/sdb3
  VGName
  PVSize               2.01 GiB
 Allocatable           NO
  PESize               0
 Total PE              0
 Free PE               0
 Allocated PE          0
  PVUUID              cIL2HD-TqAV-6ICp-iCkX-BJrW-JYZd-AoKhJV

说明:

在PV没有加入VG之前,PE的各项参数都显示为0的。PE的大小,在创建VG的时候设置的。默认是:4M.其实PE就是数据的存储最小单元。类似于block.

1、  创建VG

命令格式:

Vgcreate  [option]   卷组名称   指定加入到卷组的pv

创建卷组的时候只把 /dev/sdb3 加入该卷组

[[email protected] 07.11_job]# vgcreate  –s  8M  myvg /dev/sdb3
 Volume group "myvg" successfully created
[[email protected] 07.11_job]# vgdisplay myvg
  ---Volume group ---
  VGName               myvg
 System ID
 Format                lvm2
 Metadata Areas        1
 Metadata Sequence No  1
  VGAccess             read/write
  VGStatus             resizable
  MAXLV                0
  CurLV                0
 Open LV               0
  MaxPV                0
  CurPV                1
  ActPV                1
  VGSize               2.00 GiB
  PESize               8.00 MiB
 Total PE              256
 Alloc PE / Size       0 / 0
 Free  PE / Size       256 / 2.00 GiB
  VGUUID               fG0uMm-ipew-DrQu-oXGI-ssGq-tYZq-0YxNbH
 
[[email protected] 07.11_job]# pvdisplay  /dev/sdb3
  ---Physical volume ---
  PVName               /dev/sdb3
  VGName               myvg
  PVSize               2.01 GiB / not usable7.19 MiB
 Allocatable           yes
  PESize               8.00 MiB
 Total PE              256
 Free PE               256
 Allocated PE          0
  PVUUID              cIL2HD-TqAV-6ICp-iCkX-BJrW-JYZd-AoKhJV

操作VG使用到的命令:

vgcreate            vg的创建
vgdisplay            显示VG相关的信息
vgextend            vg的扩展。
vgreduce            vg的缩减
vgscan              扫描当前系统上有什么卷组

第3步:创建逻辑卷LV

格式:
Lvcreate  -L  逻辑卷的大小  -n  逻辑卷名称   在哪个卷中创建逻辑卷

创建大小为2G的逻辑卷 mylv

[[email protected] ~]# lvcreate  -L 2G -n mylv myvg
Logical volume "mylv" created

看看创建的逻辑卷的大小是不是2GB?

[[email protected] ~]# lvscan | grep"mylv\>"
 ACTIVE            ‘/dev/myvg/mylv‘ [2.00 GiB] inherit

操作LV 使用的命令:

lvcreate           创建逻辑卷
lvdisplay          显出逻辑卷的信息,如果想显示指定的逻辑卷的信息,要指定逻辑卷的设备名称                    # lvdisplay /dev/myvg/mylv
lvextend           扩展逻辑卷
lvreduce           缩减逻辑卷
lvscan             列出当前系统上所有的逻辑卷

第4步:格式化并挂载

1、  格式化逻辑卷 mylv

[[email protected]~]# mke2fs -t ext4 /dev/myvg/mylv
mke2fs1.41.12 (17-May-2010)
Filesystemlabel=
OS type:Linux
Blocksize=4096 (log=2)
Fragmentsize=4096 (log=2)
Stride=0blocks, Stripe width=0 blocks
131072inodes, 524288 blocks
26214blocks (5.00%) reserved for the super user
Firstdata block=0
Maximumfilesystem blocks=536870912
16 blockgroups
32768blocks per group, 32768 fragments per group
8192inodes per group
Superblockbackups stored on blocks:
        32768, 98304, 163840, 229376, 294912
 
Writinginode tables: done
Creatingjournal (16384 blocks): done
Writingsuperblocks and filesystem accounting information: done
 
Thisfilesystem will be automatically checked every 39 mounts or
180 days,whichever comes first.  Use tune2fs -c or-i to override.
[[email protected]~]# echo $?
0

2、  挂载

Linux 的哲学思想之一是:一切皆文件。挂载设备要指定被挂载的设备,而设备在Linux系统中表现为文件(它是我们访问设备的入口)。设备文件存放在 /dev 目录上。先要找到设备文件然后才可以使用【mount】命令挂载之。

逻辑卷的设备名称一般是:

[[email protected] ~]# ll /dev/dm-
dm-0  dm-1  dm-2 dm-6  dm-7

而表示逻辑卷的设备文件有两个,所以挂载的时候使用那个设备名称都可以的

[[email protected] ~]# ll /dev/myvg/mylv
lrwxrwxrwx. 1 root root 7 Jul 16 13:04 /dev/myvg/mylv ->../dm-2
[[email protected] ~]# ll /dev/mapper/myvg-mylv
lrwxrwxrwx. 1 root root 7 Jul 16 13:04 /dev/mapper/myvg-mylv-> ../dm-2

挂载逻辑卷 mylv

[[email protected] ~]# mount -t ext4 /dev/myvg/mylv /mydata/
[[email protected] ~]# mount | grep "mylv\>"
/dev/mapper/myvg-mylv on /mydata type ext4 (rw)

[[email protected] ~]# mount -t ext4 /dev/mapper/myvg-mylv  /mydata/

[[email protected] ~]# mount | grep "mylv\>"

/dev/mapper/myvg-mylv on /mydata type ext4 (rw)

二、假如,逻辑卷 mylv 没有多少剩余空间了,怎么扩展它的大小呢?

扩展条件:

        卷组myvg必需有足够大的剩余空间提供给扩展使用
        否则的话就要扩展卷组的大小了。
        做逻辑卷扩展时,要先扩展物理边界,再扩展逻辑边界。

扩展逻辑卷的步骤如下图如示:

1、  先查看卷组myvg的使用情况?

[email protected] ~]# vgdisplay myvg | grep "VG[[:space:]]Size"
VG Size               2.00 GiB
[[email protected] ~]# lvdisplay /dev/myvg/mylv | grep"LV[[:space:]]Size"
  LV Size                2.00 GiB

2、  假如,我们要把逻辑卷mylv扩展为 4GB 大小。

从上面可以看得出卷组myvg已经使用完了,我们必需先扩展卷组myvg,再扩展逻辑卷 mylv.

先往该卷组中加入PV

[[email protected] ~]# pvcreate /dev/sdb4
Physical volume "/dev/sdb4" successfully created

把刚创建的pv加入到卷组myvg中来:

未加入前,myvg的大小

[[email protected] ~]# vgdisplay myvg | grep "VG[[:space:]]Size"
  VG Size               2.00 GiB

把/dev/sdb4加入卷组myvg

[[email protected] ~]# vgextend myvg /dev/sdb4
  Volume group"myvg" successfully extended

加入用户的PV后,卷组的大小

[[email protected] ~]# vgdisplay myvg | grep "VG[[:space:]]Size"
VGSize               18.47 GiB

3、  卷组myvg已经有足够的剩余空间了。接下来进行逻辑卷的扩展

(1)、首先扩展逻辑卷 mylv的物理边界

[[email protected] ~]# lvextend -L 4G/dev/myvg/mylv
 Extending logical volume mylv to 4.00 GiB
 Logical volume mylv successfully resized
[[email protected] ~]# lvdisplay/dev/myvg/mylv  | grep"LV[[:space:]]Size"
 LVSize                4.00 GiB

但是查看实际可用的磁盘空间还是2GB.

[[email protected] ~]# df -h | grep -A 1"mylv\>"
/dev/mapper/myvg-mylv
                      2.0G   67M 1.9G   4% /mydata

(2)、物理边界扩展成功以后才可以扩展逻辑卷mylv的逻辑边界

[[email protected] ~]# resize2fs -p /dev/myvg/mylv
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv is mounted on/mydata; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of/dev/myvg/mylv to 1048576 (4k) blocks.
The filesystem on /dev/myvg/mylv is now1048576 blocks long.
 
[[email protected] ~]# echo $?
0

扩展逻辑边界以后,看看是否扩展成功

[[email protected] ~]# df -h | grep -A 1"mylv\>"
/dev/mapper/myvg-mylv
                      4.0G  771M 3.0G  21% /mydata

三、使用逻辑卷的“快照”功能进行在线备份

其实,创建快照的过程就是备份数据的过程。

假如,我们创建快照耗时 10S, 而我们的应用每秒钟会增加100M的数据量。

那么,我们的快照卷大小至少需要:原卷的数据大小 +  10*100M

创建快照卷的条件:

         快照卷必需要和原卷在同一个卷组当中。
          卷组有足够的剩余空间使用
          快照卷是只读的,为了保证数据的一致性,在创建快照卷时指定是只读的
          挂载快照卷以只读方式挂载

创建快照卷的方法:

lvcreate   -L  快照卷的大小  -s  -p  r  -n  快照卷名称  对哪个逻辑卷进行快照
           -p       指定权限。读写
           -n       快照卷的名字
           -s        表示创建的是快照卷
[[email protected] ~]# mount -o remount,ro /dev/myvg/mylv  /mydata/                  lvcreate -L 4G -n back-snap -p r -s/dev/myvg/mylv                   mount -oremount,rw  /dev/myvg/mylv /mydata
  Logical volume"back-snap" created

说明:

创建快照卷要先对原卷施加读锁,然后再创建快照卷。等到快照卷创建完成以后再对原卷施加读写锁。创建快照卷的时间很短,对在线业务几乎没有影响。我们称这种备份数据的方法为:温备。

 挂载并查看,快照卷的数据大小和原卷是不是一样?

[[email protected] ~]# mount -r/dev/mapper/myvg-back--snap /backup/
[[email protected] ~]# df -h | grep -A 1"myvg"
/dev/mapper/myvg-mylv
                      4.0G  1.8G 2.1G  47% /mydata
/dev/mapper/myvg-back--snap
                      4.0G  1.8G 2.1G  47% /backup

LVM(Logical Volumn Manage)逻辑卷的常见使用方法,布布扣,bubuko.com

时间: 2024-08-03 20:37:20

LVM(Logical Volumn Manage)逻辑卷的常见使用方法的相关文章

LVM: Logical Volume Manager 逻辑卷管理

一.LVM介绍 LVM: Logical Volume Manager, Version: 2 允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小 允许在多个物理设备间重新组织文件系统 将设备指定为物理卷 用一个或者多个物理卷来创建一个卷组 le   逻辑盘区 ,从卷组中划分pe给逻辑卷后,即成为le pe : 物理盘区.即在卷组中指定的块,在物理设备中的表现 物理卷是用固定大小的物理区域( Physical Extent,PE)来定义的 在物理卷上创建的逻辑卷是由物理区域( PE)组成

LVM(2)逻辑卷的扩展、缩减、快照卷

一.扩展逻辑卷:lvextend   扩展逻辑卷物理边界    -L [+]# /PATH/TO/LV2G, +3G5G 下面开始扩展: 查看剩余是否够用 扩展物理边界: 扩展逻辑边界:resize2fs  扩展文件系统边界(ext2.3)    resize2fs  /PATH/TO/LV  5G resize2fs -p /PATH/TO/LV -p能有多大扩展多大 二.缩减逻辑卷:(有风险)注意:1.不能在线缩减,得先卸载:      2.确保缩减后的空间大小依然能存储原有的所有数据:  

LVM 逻辑卷管理器

LVM:Logical Volumn Manager逻辑卷管理器,一种开源软件,它有2个版本--lvm,lvm2.目前我们常用的是lvm2版本,而lvm本质是使用dm(device mapper)模块来实现将一个或多个底层块设备组织成一个逻辑设备的工具 物理卷-简称PV 物理卷在逻辑卷管理器中属于最底层的,任何的逻辑卷和卷组都必需依靠物理卷来建立,物理卷可以是一个完整的硬盘,也可以是硬盘中的莫一个分区2卷组-简称VG 卷组是建立在物理卷之上,一个卷组中可以包含一个物理卷组或者多个物理卷3逻辑卷-

逻辑卷LVM的实现

LVM(logical volume manager ,逻辑卷管理) 可以实现将多块硬盘的分区整合在一起,当做一块硬盘使用,而且LVM 不像传统分区那样,一旦分区完成,分区的大小就不可以再进行调整,包括可以重新设定文件系统的大小,而且允许在多个物理设备间重新组织文件系统. 通过几道练习题来说明LVM的实现 1.创建一个至少有两个PV组成的大小为20G的名为testvg的VG:要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv:挂载至/users目录 2. 新建用户archl

Linux下逻辑卷管理

LVM --Logical Volume Manager (逻辑卷管理)  逻辑卷管理是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,用来提高磁盘分区管理的灵活性. 一.优点 磁盘空间的动态划分和管理实现分区的动态拉伸和回缩 二.逻辑卷管理的组成 1.物理卷(PV--PvcreateVolume) 物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘.2.卷组(VG--Vgcreate Group) 卷组建立在物理卷之上,一

第八章 磁盘和文件系统管理LVM逻辑卷管理

                      第八章LVM逻辑卷管理 LVM机制的基本概念 Pv(Physical Volume,物理卷) 整个硬盘,或使用fdisk等工具建立的普通分区 包括许多默认4MB大小的PE(Physical Extent,基本单元) VG(Volume Group,卷组) 一个或多个物理卷组合而成的整体 LV(Logical Volume,逻辑卷) 从卷组中分割出的一块空间,用于建立文件系统 (创建物理卷--创建卷组--从卷组中创建逻辑卷) 相关命令 pvcreate

lvm 逻辑卷 和 网络管理

逻辑卷管理器(LVM) LVM: Logical Volume Manager, Version: 2 dm: device mapper: 将一个或多个底层块设备组织成一个 逻辑设备的模块 设备名: /dev/dm-# 软链接: /dev/mapper/VG_NAME-LV_NAME /dev/mapper/vol0-root /dev/VG_NAME/LV_NAME /dev/vol0/root 1 允许对卷进行方便操作的抽象层,包括重新设定 文件系统的大小 2 允许在多个物理设备间重新组织

lvm(逻辑卷管理)的魅力

近来,随着课程的深入,开始接触到lvm逻辑卷.由开始的不懂,到现在的半知半懂,慢慢的感受到了lvm逻辑卷由内而外散发出的魅力.作为一个小白,为了能更好地学习和理解lvm逻辑卷的知识,特趁着难得的休息时间,总结一下自己所学的关于lvm逻辑卷的知识,有错误的地方,请各位大神指正,共同学习! 本人认为lvm逻辑卷主要有两大魅力: 1.逻辑卷的边界是可变化的. 2.lvm支持快照(snapshot). 各位看官别着急,且听小生慢慢说来: 前言 首先,让我们思考一个问题:为什么会出现LVM技术? 本人是这

LVM逻辑卷管理-软RAID磁盘阵列

LVM逻辑卷管理软RAID磁盘阵列管理################################################# 一.LVM逻辑卷管理 1. 基本概念    Logical Volume Manager        ** 多个物理分区/磁盘 ==> 组合成一个整体 ==>划分逻辑存储单位,即逻辑卷        ** 逻辑分区的大小可以根据需要扩大.缩减        ** /boot 用来存放引导文件,不能使用LVM逻辑卷(启动时会找不到内核) PV(Physica