Linux磁盘管理LVM逻辑卷基本概念及LVM的工作原理.docx
- 文档编号:7354354
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:25
- 大小:201.88KB
Linux磁盘管理LVM逻辑卷基本概念及LVM的工作原理.docx
《Linux磁盘管理LVM逻辑卷基本概念及LVM的工作原理.docx》由会员分享,可在线阅读,更多相关《Linux磁盘管理LVM逻辑卷基本概念及LVM的工作原理.docx(25页珍藏版)》请在冰豆网上搜索。
Linux磁盘管理LVM逻辑卷基本概念及LVM的工作原理
Linux磁盘管理:
LVM逻辑卷基本概念及LVM的工作原理
这篇将详细讲解Linux磁盘管理机制中的LVM逻辑卷的基本概念以及LVM的工作原理!
!
!
一、传统的磁盘管理
其实在Linux操作系统中,我们的磁盘管理机制和windows上的差不多,绝大多数都是使用MBR(MasterBootRecorder)都是通过先对一个硬盘进行分区,然后再将该分区进行文件系统的格式化,在Linux系统中如果要使用该分区就将其挂载上去即可,windows的话其实底层也就是自动将所有的分区挂载好,然后我们就可以对该分区进行使用了。
但是这种传统的磁盘管理经常会带来很多的问题,比如说当我们使用的一个分区,其空间大小已经不再够用了,这个时候我们没有办法通过拉伸分区来进行分区扩充,当然目前也有其他第三方的磁盘管理软件可以进行磁盘的分区空间划分,但是这样会给我们的文件系统造成很大的伤害,有时会导致文件系统崩溃等问题。
对于传统的磁盘管理如果说我们碰到当分区大小不足的时候,我们只能通过增加新的硬盘,然后在新的硬盘上创建分区,对分区进行格式化以后,然后将之前分区的所有东西都拷贝到新的分区里面才行。
但是新增加的硬盘是作为独立的文件系统存在的,原有的文件系统并没有得到任何的扩充,上层应用只能访问到一个文件系统。
这样的方式对个人的电脑来说可能还能接受,但是如果对于生产环境下的服务器来说,这是不可接受的。
因为如果要把一个分区的内容都拷贝到另一个分区上去,势必要首先卸载掉之前的那个分区,然后*对整个分区进行拷贝,如果服务器上运行着一个重要的服务,比如说WWW或者FTP,其要求是7*24小时运行正常的,那么卸载掉分区这是不可想象的,同时如果该分区保存的内容非常非常的多,那么在对分区进行转移时时间可能会耗费很久,所以,这个时候我们就会受到传统磁盘管理的限制,因为其不能够进行动态的磁盘管理。
因此,为了解决这个问题,LVM技术就诞生了!
!
!
二、LVM的磁盘管理
正是因为传统的磁盘管理不能对我们的磁盘空间进行动态的管理,因此就诞生出了LVM这个技术,那么LVM到底是什么呢?
它又是怎么对磁盘进行管理的呢?
LVM(LogicalvolumeManager)是逻辑卷管理的简称。
它是Linux环境下对磁盘分区进行管理的一种机制。
现在不仅仅是Linux系统上可以使用LVM这种磁盘管理机制,对于其它的类UNIX操作系统,以及windows操作系统都有类似与LVM这种磁盘管理软件。
LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。
在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。
比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上次服务的是以逻辑卷的方式。
LVM最大的特点就是可以对磁盘进行动态管理。
因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。
我们如果新增加了硬盘,其也不会改变现有上层的逻辑卷。
作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性!
!
!
三、LVM的原理
要想理解好LVM的原理,我们必须首先要掌握4个基本的逻辑卷概念。
①PE (PhysicalExtend) 物理拓展
②PV (PhysicalVolume) 物理卷
③VG (VolumeGroup) 卷组
④LV (LogicalVolume) 逻辑卷
我们知道在使用LVM对磁盘进行动态管理以后,我们是以逻辑卷的方式呈现给上层的服务的。
所以我们所有的操作目的,其实就是去创建一个LV(LogicalVolume),逻辑卷就是用来取代我们之前的分区,我们通过对逻辑卷进行格式化,然后进行挂载操作就可以使用了。
那么LVM的工作原理是什么呢?
所谓无图无真相,咱们下面通过图来对逻辑卷的原理进行解释!
!
1.将我们的物理硬盘格式化成PV(PhysicalVolume)
我们看到,这里有两块硬盘,一块是sda,另一块是sdb,在LVM磁盘管理里,我首先要将这两块硬盘格式化为我们的PV(PhysicalVolume),也就是我们的物理卷,其实格式化物理卷的过程中LVM是将底层的硬盘划分为了一个一个的PE(PhysicalExtend),我们的LVM磁盘管理中PE的默认大小是4M大小,其实PE就是我们逻辑卷管理的最基本单位。
比如说我有一个400M的硬盘,那么在将其格式化成PV的时候,其实际就是将这块物理硬盘划分成了100个的PE,因为PE默认的大小就是4M。
这个就是我们的第一步操作。
2.创建一个VG(VolumeGroup)
在将硬盘格式化成PV以后,我们第二步操作就是创建一个卷组,也就是VG(VolumeGroup),卷组在这里我们可以将其抽象化成一个空间池,VG的作用就是用来装PE的,我们可以把一个或者多个PV加到VG当中,因为在第一步操作时就已经将该硬盘划分成了多个PE,所以将多个PV加到VG里面后,VG里面就存放了许许多多来自不同PV中的PE,我们通过上面的图片就可以看到,我们格式化了两块硬盘,每个硬盘分别格式化成了3个PE,然后将两块硬盘的PE都加到了我们的VG当中,那么我们的VG当中就包含了6个PE,这6个PE就是两个硬盘的PE之和。
通常创建一个卷组的时候我们会为其取一个名字,也就是该VG的名字。
3.基于VG创建我们最后要使用的LV(LogicalVolume)
【注意】PV以及VG创建好以后我们是不能够直接使用的,因为PV、VG是我们逻辑卷底层的东西,我们其实最后使用的是在VG基础上创建的LV(LogicalVolume),所以第三步操作就是基于VG来创建我们最终要使用的LV。
当我们创建好我们的VG以后,这个时候我们创建LV其实就是从VG中拿出我们指定数量的PE,还是拿上图来说,我们看到我们此时的VG里面已经拥有了6个PE,这时候我们创建了我们的第一个逻辑卷,它的大小是4个PE的大小,也就是16M(因为一个PE的默认大小是4M),而这4个PE有三个是来自于第一块硬盘,而另外一个PE则是来自第二块硬盘。
当我们创建第二个逻辑卷时,它的大小就最多只有两个PE的大小了,因为其中的4个PE已经分配给了我们的第一个逻辑卷。
所以创建逻辑卷其实就是我们从VG中拿出我们指定数量的PE,VG中的PE可以来自不同的PV,我们可以创建的逻辑卷的大小取决于VG当中PE存在的数量,并且我们创建的逻辑卷其大小一定是PE的整数倍(即逻辑卷的大小一定要是4M的整数倍)。
4.将我们创建好的LV进行文件系统的格式化,然后挂载使用
在创建好LV以后,这个时候我们就能够对其进行文件系统的格式化了,我们最终使用的就是我们刚创建好的LV,其就相当于传统的文件管理的分区,我们首先要对其进行文件系统的格式化操作,然后通过mount命令对其进行挂载,这个时候我们就能够像使用平常的分区一样来使用我们的逻辑卷了。
我们在创建好LV以后,我们会在/dev目录下看到我们的LV信息,例如/dev/vgname/lvname,我们每创建一个VG,其会在/dev目录下创建一个以该VG名字命名的文件夹,在该VG的基础上创建好LV以后,我们会在这个VG目录下多出一个以LV名字命名的逻辑卷。
下面我们来对整个LVM的工作原理进行一个总结:
(1)物理磁盘被格式化为PV,空间被划分为一个个的PE
(2)不同的PV加入到同一个VG中,不同PV的PE全部进入到了VG的PE池内
(3)LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘
(4)LV现在就直接可以格式化后挂载使用了
(5)LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据
我们看到,我们这里如果要对LV进行扩充,直接加进来一块sdc硬盘,然后将其格式化成PE,然后将该PV加入到了VG当中,这个时候我们就可以通过增加LV中PE的数量来动态的对LV进行扩充了,只要我们的LV的大小不要超过我们VG空余空间的大小就行了!
!
本篇主要讲解了传统磁盘管理与LVM动态管理磁盘机制的不同,并详细讲解了LVM的工作原理,在下一篇随笔当中,将会详细的讲解LVM的基本配置,包括创建PV、VG以及VG,并动态的对我们的LV进行扩充、减少操作!
!
!
Linux磁盘管理:
LVM逻辑卷的创建及使用
在前面Linux磁盘管理:
LVM逻辑卷基本概念及LVM的工作原理,详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理,包括LVM中最重要的四个基本点(PE、PV、VG以及LV),这篇随笔将会详细的讲解LVM逻辑卷的创建、使用以及删除.
一、创建LVM逻辑卷
我们通过图文并茂的方式来看看如何创建我们的LVM,在上一篇随笔中,我们已经熟悉了LVM的工作原理,首先是要将我们的物理硬盘格式化成PV,然后将多个PV加入到创建好的VG中,最后通过VG创建我们的LV。
所以我们第一步就是将我们的物理硬盘格式化成PV(物理卷)
①将物理硬盘格式化成PV(物理卷) 使用的是pvcreate命令
这里我已经事先虚拟化了3快物理硬盘,每块硬盘的大小为8G,通过fdisk-l命令可以查看
[root@xiaoluo~]#fdisk-l
Disk/dev/sda:
21.5GB,21474836480bytes
255heads,63sectors/track,2610cylinders
Units=cylindersof16065*512=8225280bytes
Sectorsize(logical/physical):
512bytes/512bytes
I/Osize(minimum/optimal):
512bytes/512bytes
Diskidentifier:
0x00093d90
DeviceBootStartEndBlocksIdSystem
/dev/sda11523419430482Linuxswap/Solaris
Partition1doesnotendoncylinderboundary.
/dev/sda2*52326111677619283Linux
Disk/dev/sdb:
8589MB,8589934592bytes
255heads,63sectors/track,1044cylinders
Units=cylindersof16065*512=8225280bytes
Sectorsize(logical/physical):
512bytes/512bytes
I/Osize(minimum/optimal):
512bytes/512bytes
Diskidentifier:
0x00000000
Disk/dev/sdc:
8589MB,8589934592bytes
255heads,63sectors/track,1044cylinders
Units=cylindersof16065*512=8225280bytes
Sectorsize(logical/physical):
512bytes/512bytes
I/Osize(minimum/optimal):
512bytes/512bytes
Diskidentifier:
0x00000000
Disk/dev/sdd:
8589MB,8589934592bytes
255heads,63sectors/track,1044cylinders
Units=cylindersof16065*512=8225280bytes
Sectorsize(logical/physical):
512bytes/512bytes
I/Osize(minimum/optimal):
512bytes/512bytes
Diskidentifier:
0x00000000
这里我们根据上面图所示,我们先将/dev/sdb、/dev/sdc两块硬盘格式化成PV
[root@xiaoluo~]#pvcreate/dev/sdb/dev/sdc
Physicalvolume"/dev/sdb"successfullycreated
Physicalvolume"/dev/sdc"successfullycreated
创建完PV以后,我们可以使用pvdisplay(显示详细信息)、pvs命令来查看当前pv的信息
[root@xiaoluo~]#pvdisplay
"/dev/sdb"isanewphysicalvolumeof"8.00GiB"
---NEWPhysicalvolume---
PVName/dev/sdb
VGName
PVSize8.00GiB
AllocatableNO
PESize0
TotalPE0
FreePE0
AllocatedPE0
PVUUID93UEEl-cxBU-A4HC-LNSh-jp9G-uU5Q-EG8LM9
"/dev/sdc"isanewphysicalvolumeof"8.00GiB"
---NEWPhysicalvolume---
PVName/dev/sdc
VGName
PVSize8.00GiB
AllocatableNO
PESize0
TotalPE0
FreePE0
AllocatedPE0
PVUUIDlH1vul-KBHx-H2C6-wbt1-8AdK-yHpr-bBIul5
[root@xiaoluo~]#pvs
PVVGFmtAttrPSizePFree
/dev/sdblvm2a--8.00g8.00g
/dev/sdclvm2a--8.00g8.00g
通过这两个命令我们可以看到我们已经创建好的PV的信息,两个PV都是8G,目前还没有使用,PFree都是8G.
②创建卷组(VG),并将PV加入到卷组中 通过vgcreate命令
在创建完PV以后,这时候我们需要创建一个VG,然后将我们的PV都加入到这个卷组当中,在创建卷组时要给该卷组起一个名字
[root@xiaoluo~]#vgcreatexiaoluo/dev/sdb/dev/sdc
Volumegroup"xiaoluo"successfullycreated
同样,在创建好VG以后,我们也可以使用vgdisplay或者vgs命来来查看VG的信息。
[root@xiaoluo~]#vgdisplay
---Volumegroup---
VGNamexiaoluo
SystemID
Formatlvm2
MetadataAreas2
MetadataSequenceNo1
VGAccessread/write
VGStatusresizable
MAXLV0
CurLV0
OpenLV0
MaxPV0
CurPV2 //当前这里有两个PV,分别是我们的/dev/sdb和/dev/sdc
ActPV2
VGSize15.99GiB //当前VG的大小
PESize4.00MiB //通过这个我们也可以看到我们LVM默认的PE大小就是4M
TotalPE4094 //因为VG里面存放的就是各个PV中的PE,所以PE的数量就是VG大小除以默认PE的大小
AllocPE/Size0/0
FreePE/Size4094/15.99GiB
VGUUIDB8eavI-21kD-Phnm-F1t1-eo4K-wgvg-T5qUbt
[root@xiaoluo~]#vgs
VG#PV#LV#SNAttrVSizeVFree
xiaoluo200wz--n-15.99g15.99g
③基于卷组(VG)创建逻辑卷(LV) 通过lvcreate命令
因为创建好的PV、VG都是底层的东西,我们上层使用的是逻辑卷,所以我们要基于VG创建我们的逻辑卷才行
[root@xiaoluo~]#lvcreate-nmylv-L2Gxiaoluo
Logicalvolume"mylv"created
通过lvcreate命令基于VG创建好我们的逻辑卷,名字为mylv,大小为2G,同样我们可以使用lvdisplay或者lvs命令来查看创建好的逻辑卷的信息
[root@xiaoluo~]#lvdisplay
---Logicalvolume---
LVPath/dev/xiaoluo/mylv //逻辑卷的路径
LVNamemylv //逻辑卷的名字
VGNamexiaoluo //逻辑卷所属卷组的名字
LVUUIDPYuiYy-WpI6-XZB8-IhnQ-ANjM-lcz0-dlk4LR
LVWriteAccessread/write
LVCreationhost,timexiaoluo,2013-05-2323:
45:
08+0800
LVStatusavailable
#open0
LVSize2.00GiB //逻辑卷的大小
CurrentLE512
Segments1
Allocationinherit
Readaheadsectorsauto
-currentlysetto256
Blockdevice253:
0
[root@xiaoluo~]#lvs
LVVGAttrLSizePoolOriginData%MoveLogCpy%SyncConvert
mylvxiaoluo-wi-a----2.00g
这样子我们的逻辑卷也就已经创建好了,我们这个时候再通过vgs还有pvs命令查看一下我们的PV与VG的信息
[root@xiaoluomnt]#vgs
VG#PV#LV#SNAttrVSizeVFree
xiaoluo210wz--n-15.99g13.99g //我们看到LV的数量此时变成了1,因为我们刚创建好了一个LV,LVFree还有14G
[root@xiaoluomnt]#pvs
PVVGFmtAttrPSizePFree
/dev/sdbxiaoluolvm2a--8.00g6.00g //刚创建好的LV用的是/dev/sdb这块硬盘的,所以这块硬盘的PFree还剩下6G
/dev/sdcxiaoluolvm2a--8.00g8.00g
我们发现,当我们每创建完一个LV时,VG与PV的信息都是时时在变化的,并且我们创建LV的大小是根据当前VG的大小来决定的,不能超过当前VG的剩余大小!
我们在上一篇随笔里面有讲过,每创建好一个逻辑卷,都会在/dev目录下出现一个以该卷组命名的文件夹,基于该卷组创建的所有的逻辑卷都是存放在这个文件夹下面,我们可以查看一下
[root@xiaoluo~]#ls/dev/xiaoluo/mylv
/dev/xiaoluo/mylv
我们每创建一个新的逻辑卷,该VG目录下都会多出这么一个设备。
二、格式化并使用我们的逻辑卷
我们已经创建好了我们的PV、VG以及LV,这时候我们如果要使用逻辑卷,就必须将其格式化成我们需要用的文件系统,并将其挂载起来,然后就可以像使用分区一样去使用逻辑卷了
[root@xiaoluo~]#mkfs.ext4/dev/xiaoluo/mylv
mke2fs1.41.12(17-May-2010)
Filesystemlabel=
OStype:
Linux
Blocksize=4096(log=2)
Fragmentsize=4096(log=2)
Stride=0blocks,Stripewidth=0blocks
131072inodes,524288blocks
26214blocks(5.00%)reservedforthesuperuser
Firstdatablock=0
Maximumfilesystemblocks=536870912
16blockgroups
32768blockspergroup,32768fragmentspergroup
8192inodespergroup
Superblockbackupsstoredonblocks:
32768,98304,163840,229376,294912
Writinginodetables:
done
Creatingjournal(16384blocks):
done
Writingsuperblocksandfilesystemaccountinginformation:
done
Thisfilesystemwillbeautomaticallycheckedevery31mountsor
180days,whichevercomesfirst.Usetune2fs-cor-itooverride.
格式化我们的逻辑卷以后,就可以使用mount命令将其进行挂载,我们将其挂载到/mnt目录下
[root@xiaoluo~]#mount/dev/xiaoluo/mylv/mnt
[root@xiaoluo~]#mount
/dev/sda2on/typeext4(rw)
procon/proctypeproc(rw)
sysfson/systypesysfs(rw)
devptson/dev/ptstypedevpts(rw,gid=5,mode=620)
tmpfson/dev/shmtypetmpfs(rw,rootcontext="system_u:
object_r:
tmpfs_t:
s0")
noneon/proc/sys/fs/binfmt_misctypebinfmt_misc(rw)
sunrpcon/var/lib/nfs/rpc_pipefst
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 磁盘 管理 LVM 逻辑 基本概念 工作 原理