|
无论是windows还是linux,当你添一块硬盘的时候,如何能合理的分配磁盘空间,成了一件让人非常头疼的事… 当你的一个硬盘分区空间耗尽时,你是否还想给它加大容量呢? 这种想法现实吗?在windows不太现实,但linux却能帮你搞定。它就是LVM。
LVM是 Logical Volume Manager的简写,意思为“逻辑卷管理” 它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分LVM区管理的灵活性。
在说LVM前,先讲几个LVM的术语:
一、物理介质 (physical media ) |
这里是指你的硬盘分区,例如 /dev/sdb1 /dev/sdb2 |
二、物理卷 (physical volume = PV) |
物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。 |
三、卷组 (volume group = VG) |
卷组是由一个或多个物理卷组成的,我们可以在卷祖上创建逻辑卷(LV) |
四、逻辑卷(logical volume = LV) |
和普通的硬盘分无无异。可以被格式化,可以挂载,可以建立文件系统。 |
五、PE(physicalextent) |
每一个物理卷被划分为称为PE(PhysicalExtents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。 |
六、LE(logicalextent) |
逻辑卷也被划分为被称为LE(LogicalExtents)的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。 |
LVM要做的就是,把物理介质形式转换成物理卷,再把一个或多个物理卷组成卷组,在卷组上来创建逻辑卷.. 当某个逻辑卷空间耗尽时,可以从卷组上分配空间。当然,也可以减小逻辑卷的容量。
LVM具体参数:
一、物理卷管理 |
pvcreate、pvdisplay、pvscan、pvmove、pvremove (可以用–help查看帮助) |
二、卷组管理 |
vgcreate、vgdisplay、vgscan、vgreduce、vgextend、vgchange、vgremove |
三、逻辑卷管理 |
lvcreate、lvdisplay、lvscan、lvreduce、lvextend、lvremove |
下面就以实例来讲解LVM具体的使用方法。 在使用LVM前,先要把分区的文件系统转换成linux lvm (fdisk命令 t参数 代码是8e)。
例如我把sdc这块硬盘分成了3个区,分别是sdc1、sdc2、sdc3. 我们要把它们都形式转换成LVM物理分区。
Device Boot Start End Blocks Id System
/dev/sdc1 1 261 2096451 8e Linux LVM
/dev/sdc2 262 522 2096482+ 8e Linux LVM
/dev/sdc3 523 783 2096482+ 8e Linux LVM
pvcreate 硬盘分区
root@willin-desktop:~# pvcreate /dev/sdc[1-3] Physical volume “/dev/sdc1″ successfully created |
创建完成后,就可以用pvdisplay 来查看物理卷组的具体情况。pvscan 是扫描已有的物理卷。 pvremove就是删除物理卷。
root@willin-desktop:~# pvscan PV /dev/sdc1 lvm2 [2.00 GB] |
物理卷创建好了,接下来就是创建一个卷组。可以把/dev/sdc[1-3]任意一个分区组成卷组。这里就以/dev/sdc1和/dev/sdc2组成卷组。
vgcreate 卷组名 物理卷
root@willin-desktop:~# vgcreate ltn /dev/sdc1 /dev/sdc2 Volume group “ltn” successfully created |
这时候ltn这个卷组就创建成功了!同样可以用vgdisplay查看卷组的一些信息。如果想把sdc3加入到ltn这个卷组,可以执行以下命令。
vgextend 卷组名 要加入的物理卷地址
root@willin-desktop:~# vgextend ltn /dev/sdc3 Volume group “ltn” successfully extended |
如果想把sdc3从卷组中分离,可以用
vgreduce 卷组名 要删除的物理卷地址
卷组创建好后,就是从卷组中创建逻辑卷了…这是我们的最后一步,创建好后格式化就能mount了!
lvcreate -L 500m -n xqm ltn
意思是从ltn这个卷组分配一个大小为500m,名字是xqm的逻辑卷。 注意L是大写的,可以以MB或GB为单位。如果是小写l,那么则是以PE大小。一个PE默认等于4M ,500m就是125个PE
lvcreate -l 125 -n xqm ltn
让我们用以上命令创建了逻辑卷后,再用pvscan查看物理卷的使用情况,会发现默认是从/dev/sdc1 分配空间的。
root@willin-desktop:~# pvscan PV /dev/sdc1 VG ltn lvm2 [2.00 GB / 1.51 GB free] PV /dev/sdc2 VG ltn lvm2 [2.00 GB / 2.00 GB free] PV /dev/sdc3 VG ltn lvm2 [2.00 GB / 2.00 GB free] Total: 3 [5.99 GB] / in use: 3 [5.99 GB] / in no VG: 0 [0 ] |
如果你想从sdc3分配空间给新创建的逻辑卷的话,可以加sdc3的地址。如
lvcreate -L 100m -n qiaoman ltn /dev/sdc3
root@willin-desktop:~# pvscan PV /dev/sdc1 VG ltn lvm2 [2.00 GB / 1.51 GB free] PV /dev/sdc2 VG ltn lvm2 [2.00 GB / 2.00 GB free] PV /dev/sdc3 VG ltn lvm2 [2.00 GB / 1.90 GB free] Total: 3 [5.99 GB] / in use: 3 [5.99 GB] / in no VG: 0 [0 ] root@willin-desktop:~# pvscanPV /dev/sdc1 VG ltn lvm2 [2.00 GB / 1.51 GB free]PV /dev/sdc2 VG ltn lvm2 [2.00 GB / 2.00 GB free]PV /dev/sdc3 VG ltn lvm2 [2.00 GB / 1.90 GB free]Total: 3 [5.99 GB] / in use: 3 [5.99 GB] / in no VG: 0 [0 ] |
逻辑卷创建完成后,可以用lvscan和pvdisplay来查看相关信息。
root@willin-desktop:~# lvscan ACTIVE ‘/dev/ltn/xqm’ [500.00 MB] inherit ACTIVE ‘/dev/ltn/qiaoman’ [100.00 MB] inherit |
如果想加大逻辑卷的容量,可以执行以下命令
lvextend -L +100m /dev/ltn/qiaoman /dev/sdc3
意思是qiaoman这个分区容量+100m 且从/dev/sdc3分配空间。 注意+号。必须的!减少磁盘空间就用lvreduce 和增加几乎一样的, +号变-号。
还有就是lvextend还支持创建磁盘镜像,当你使用pvmove的时候应当先备份一下。
lvextend -s -L 101m -n qiaomaniamge /dev/ltn/qiaoman
此时会创建一个名字为qiaomanimage,大小为101m的镜像,你可以挂载来使用!
注意:如果你挂载了逻辑卷,务必先卸载掉,再进行增加/减小容量,删除卷等操作。
我把pvmove放在最后才讲,因为pvmove相对于上面的命令要复杂一些。 字义上可以看出这就是一个移动的命令。移动什么呢?就是我们物理卷里面的数据。 但使用这个是需要一定条件的。一、 对象物理卷和被移动物理卷需在同一卷组
二、被移动物理卷需存在逻辑卷
三、容量要足够大(具体怎样视情况而定)
通过上面的演示,大家知道我在/dev/sdc3 非配了100m的空间给qiaoman这个逻辑卷,如果我想把/dev/sdc3 的数据都移动到/dev/sdc2,可以执行以下命令
root@willin-desktop:~# pvmove /dev/sdc3 /dev/sdc2 /dev/sdc3: Moved: 100.0% |
成功移动后,再用pvscan查看以下物理卷的使用情况,如下
root@willin-desktop:~# pvscan PV /dev/sdc1 VG ltn lvm2 [2.00 GB / 1.51 GB free] PV /dev/sdc2 VG ltn lvm2 [2.00 GB / 1.90 GB free] PV /dev/sdc3 VG ltn lvm2 [2.00 GB / 2.00 GB free] |
/dev/sdc3 的数据全部都移动到/dev/sdc2 了。因此/dev/sdc2的自由空间是1.90GB
在同一硬盘pvmove使用的不多,但当你加入一块新硬盘时,或许就会用到pvmove了。但注意同一卷组的问题。例如我加了一块硬盘,/dev/sdd
# pvcreate /dev/sdd
# vgextend vg1 /dev/sdd 同一卷组
# pvmove /dev/sdc /dev/sdd
联系我们|小黑屋|手机版|排行榜|橘汁仙剑网 ( 浙ICP备18045743号-1 )
GMT+8, 2024-4-28 10:41 , Processed in 0.092191 second(s), 20 queries .
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.