认识Lunux中的LVM PV VG LV

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,他是磁盘管理的一种工具,就目前基本上所有操作系统均支持,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volume group),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“DBdata”和“DBSoft”,而不是使用物理磁盘名“sda”和“sdb”或”hda”和”hdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可,架构可以参考如下图:

1、基本概念介绍

物理存储介质(The physical media)

这里指系统的存储设备:硬盘,如:/dev/hda、/dev/sda等等,是存储系统最低层的存储单元。

物理卷(PV physical volume)

物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

卷组(VG Volume Group)

LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。

逻辑卷(LV logical volume)

LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。

PE(physical extent)

每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。

LE(logical extent)

逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

首先可以看到,物理卷(PV)被由大小等同的基本单元PE组成。

一个卷组由一个或多个物理卷组成:

从上图可以看到,PE和LE有着一一对应的关系。逻辑卷建立在卷组上。逻辑卷就相当于非LVM系统的磁盘分区,可以在其上创建文件系统。

下图是磁盘分区、卷组、逻辑卷和文件系统之间的逻辑关系的示意图:

和非LVM系统将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的VGDA(卷组描述符区域)中。VGDA包括以下内容: PV描述符、VG描述符、LV描述符、和一些PE描述符 。

系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置。

2、LVM创建和管理

1)虚拟机添加两块磁盘,并识别为sdb和sdc

2)创建PV,使用sdb和sdc

[[email protected] ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created
[[email protected] ~]# pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created
[[email protected] ~]# pvs
  PV         VG   Fmt  Attr PSize PFree
  /dev/sda2  vg00 lvm2 a--  7.80g    0 
  /dev/sdb   vgzx lvm2 a--  8.00g 8.00g
  /dev/sdc   vgzx lvm2 a--  8.00g 8.00g

3)创建VG,使用刚创建的两个PV

[[email protected] ~]# vgcreate vgzx /dev/sdb /dev/sdc
  Volume group "vgzx" successfully created
[[email protected] ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  vg00   1   2   0 wz--n-  7.80g     0 
  vgzx   2   0   0 wz--n- 15.99g 15.99g

4)创建LV,在刚创建的VG上创建两个LV

[[email protected] ~]# lvcreate -L 2G -n lvzx01 vgzx
  Logical volume "lvzx01" created.
[[email protected] ~]# lvcreate -L 2G -n lvzx02 vgzx
  Logical volume "lvzx02" created.
[[email protected] ~]# lvs
  LV     VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data   vg00 -wi-ao---- 5.85g                                                    
  swap   vg00 -wi-ao---- 1.95g                                                    
  lvzx01 vgzx -wi-a----- 2.00g                                                    
  lvzx02 vgzx -wi-a----- 2.00g

5)使用刚创建的LV创建文件系统并挂载到操作系统

[[email protected] ~]# mkfs.ext4 /dev/vgzx/lvzx01 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[[email protected] ~]# mkfs.ext4 /dev/vgzx/lvzx02 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[[email protected] ~]# mkdir /orasoft
[[email protected] ~]# mkdir /oradata
[[email protected] ~]# mount /dev/mapper/vgzx-lvzx01 
mount: can‘t find /dev/mapper/vgzx-lvzx01 in /etc/fstab or /etc/mtab
[[email protected] ~]# mount /dev/mapper/vgzx-lvzx01 /oradata/
[[email protected] ~]# mount /dev/mapper/vgzx-lvzx02 /orasoft/
[[email protected]t ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg00-data
                      5.7G  1.9G  3.6G  34% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             190M   36M  145M  20% /boot
/dev/mapper/vgzx-lvzx01
                      2.0G  3.0M  1.9G   1% /oradata
/dev/mapper/vgzx-lvzx02
                      2.0G  3.0M  1.9G   1% /orasoft

如果想挂载随机启动需要修改/etc/fastab文件。

6)扩展LV

[[email protected] ~]# lvextend -L +2G /dev/mapper/vgzx-lvzx01 
  Size of logical volume vgzx/lvzx01 changed from 2.00 GiB (512 extents) to 4.00 GiB (1024 extents).
  Logical volume lvzx01 successfully resized
[[email protected] ~]# lvextend -L +3G /dev/mapper/vgzx-lvzx02
  Size of logical volume vgzx/lvzx02 changed from 2.00 GiB (512 extents) to 5.00 GiB (1280 extents).
  Logical volume lvzx02 successfully resized
[[email protected] ~]# lvs
  LV     VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data   vg00 -wi-ao---- 5.85g                                                    
  swap   vg00 -wi-ao---- 1.95g                                                    
  lvzx01 vgzx -wi-ao---- 4.00g                                                    
  lvzx02 vgzx -wi-ao---- 5.00g                                                    
[[email protected] ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg00-data
                      5.7G  1.9G  3.6G  34% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             190M   36M  145M  20% /boot
/dev/mapper/vgzx-lvzx01
                      2.0G  3.0M  1.9G   1% /oradata
/dev/mapper/vgzx-lvzx02
                      2.0G  3.0M  1.9G   1% /orasoft

7)扩展文件系统resize2fs

从上面可以看出,LV分别做了扩展,但在操作系统上还没有显示为扩展

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

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

[[email protected] ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg00-data
                      5.7G  1.9G  3.6G  34% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             190M   36M  145M  20% /boot
/dev/mapper/vgzx-lvzx01
                      3.9G  4.0M  3.7G   1% /oradata
/dev/mapper/vgzx-lvzx02
                      4.9G  4.0M  4.7G   1% /orasoft

如果是文件系统是xfs格式的,需要使用xfs_growfs命令执行扩展文件系统。

参考:http://blog.csdn.net/lenovouser/article/details/54233570

时间: 2024-08-04 19:51:05

认识Lunux中的LVM PV VG LV的相关文章

linux命令:lvm管理磁盘文件pv vg lv

    命令简介: physical volume (pv)物理卷管理命令:     pvcreate 创建,pvremove 移除pv上面的数据,pvscan 扫描     pvdisplay 详细查看(pvs查看简单信息), pvmove 移动某pv上数据到别的pv上   命令格式: pvcreat /dev/sda{10,11}   pvs查看pv信息 volume group (vg)卷组管理命令:    vgcreate 创建,vgremove 删除vg,pvscan 扫描,vgext

LUN/PV/VG/LV

存储中的几个概念,参考一些网络资料重新画个图梳理下,如下: LUN:lun是针对存储设备(如磁盘阵列)的逻辑概念,物理上可能就是几块硬盘.那么主机的HBA 卡看到的存储上的存储资源就靠主要两个东西定位,一个就是控制器(Target),一个就是LUN ID,这个LUN是由存储的控制系统给定的,是存储系统的某部分存储资源. PV:PC是物理卷,可以对应到具体服务器的硬盘,也可以对应到存储设备的lun: VG:LVM系统中将所有的PV组成一个资源池,即VG(卷组): LV:逻辑卷组是在VG中划出的一个

Centos_Lvm_Create pv vg lv and mount

re-scan new disks without restarting CentOS re-scan new disks(/dev/sdc): #ls /sys/class/scsi_host/ host0 host1 host2 [[email protected]_13:56:14 /data] #echo "- - -" > /sys/class/scsi_host/host0/scan [[email protected]_13:57:57 /data] #echo &

LVM实现原理(pv,vg,lv,pe,le)

LVM是依附于DM的功能的,DM(device mapper)是 Linux 2.6 内核中提供的一种从逻辑设备到物理设备的映射框架机制,在该机制下,用户可以很方便的根据自己的需要制定实现存储资源的管理策略,当前比较流行的 Linux 下的逻辑卷管理器如 LVM2(Linux Volume Manager 2 version).EVMS(Enterprise Volume Management System).dmraid(Device Mapper Raid Tool)等都是基于该机制实现的.

centos扩容(pv,vg,lv)

preFace: (应用场景需求分析) 由于安装系统前未合理规划存储,或是随着业务扩展对存储空间需求量成几何级增长,原先规划的系统存储不足服务当前业务需求,同时当前的系统app运行较完美,admin不想重新规划新架构OS,所以extend disk capacity 迫在眉睫,那么根据你OS架构该如何适应OS自动的CLI扩展文件存储呢? 下面我们简单演示如何适应linux下的相关CLI对Os系统存储进行扩容; 1,  查看待扩容的系统pv(physcial volume物理卷),vg(volum

逻辑卷管理PV/VG/LV RAID

  如何搭建 & 扩容 LVM PV就是硬盘分区 VG是硬盘分区的集合 LV是VG的部分空间 [[email protected] dev]# pvcreate /dev/sdd1 /dev/sdd4 /dev/sdd5 /dev/sdd6 /dev/sdd7 WARNING: ext4 signature detected on /dev/sdd1 at offset 1080. Wipe it? [y/n] y Wiping ext4 signature on /dev/sdd1. Phys

AIX中PV,VG,LV及FS常用相关命令

1.PV常用相关命令 1)lsdev:列出ODM(Object Data Manager)中的设备. 2)chdev:修改一个AIX设备的属性. 3)mkdev:创建一个AIX设备. 4)chpv:修改PV的状态和属性. 5)lspv:查看AIX中PV的相关信息. 6)migratepv:将一个PV中的PP(物理分区)迁移到另一个PV.   2.VG常用相关命令 1)mkvg:创建新VG. 2)extendvg:扩展现有VG. 3)reducevg:缩小现有VG. 4)chvg:修改现有VG的属

浅谈centos7的lvm(pv,vg,lv)

一.lvm逻辑卷1.lvm的作用动态调整磁盘空间大小2.lvm的特点打破传统分区必须是连续的提高磁盘使用率动态调整分区大小可伸缩性强使用system-config-lvm工具进行管理boot分区不能使用lvm逻辑卷二.逻辑卷的组成1.pv物理卷将普通分区转换为物理卷会被分成若干个小块每个块4m,方便用户进行扩展和收缩2.vg卷组vg将位于多块硬盘分区进行统一管理必须先创建物理卷后创建卷组必须先创建物理卷后创建卷组vg灵活性强3.lv逻辑卷逻辑卷用于存储数据使用逻辑卷必须在卷组的基础之上创建三.l

PV\VG\LV对LVM分区的操作测试;

[[email protected] dev]# pvscan  PV /dev/sda2   VG rhel_linuxprobe   lvm2 [19.51 GiB / 0    free]  PV /dev/sdb    VG rhel_linuxprobe   lvm2 [1020.00 MiB / 720.00 MiB free]  Total: 2 [20.50 GiB] / in use: 2 [20.50 GiB] / in no VG: 0 [0   ][[email prot