注册 登录
橘汁仙剑网 返回首页

守望者的个人空间 https://www.ojpal.com/?27572 [收藏] [复制] [分享] [RSS]

日志

真能折腾

已有 429 次阅读2010-8-14 12:01 |个人分类:ot

无论是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
Physical volume “/dev/sdc2″ successfully created
Physical volume “/dev/sdc3″ successfully created


创建完成后,就可以用pvdisplay 来查看物理卷组的具体情况。pvscan 是扫描已有的物理卷。 pvremove就是删除物理卷。

root@willin-desktop:~# pvscan

PV /dev/sdc1                      lvm2 [2.00 GB]
PV /dev/sdc2                      lvm2 [2.00 GB]
PV /dev/sdc3                      lvm2 [2.00 GB]
Total: 3 [6.00 GB] / in use: 0 [0   ] / in no VG: 3 [6.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

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

联系我们|小黑屋|手机版|排行榜|橘汁仙剑网 ( 浙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.

返回顶部