您的位置:首页 > 运维架构 > Linux

LVM (Logic Volume Management,)扩充

2011-10-27 20:59 309 查看
LVM (Logic Volume Management,逻辑卷管理),是传统商业Unix就带有的一项高级磁盘管理工具,异常强大。后来LVM移植到了Linux操作系统上,尽管不像原来Unix版本那么强大,但瘦死的骆驼比马大,Linux的LVM仍然非常强大,可以在生产运行系统上面直接在线扩展硬盘分区,可以把分区umount以后收缩分区大小,还可以在系统运行过程中把一个分区从一块硬盘搬到另一块硬盘上面去等等,简直就像变魔术,而且这一切都可以在一个繁忙运行的系统上面直接操作,不会对你的系统运行产生任何影响,很安全。

还是拿JavaEye的网站服务器随便举个小例子吧。话说今天晚上我登录JavaEye网站服务器随便这么一查看磁盘使用状况:

C代码
df -h

df -h

竟然发现/home分区的磁盘消耗的很快
C代码
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/system-home 40G 32G 8G 80% /home

Filesystem Size Used Avail Use% Mounted on
/dev/mapper/system-home 40G 32G 8G 80% /home

有点出乎意料,已经使用了80%,如果用光了,可就有点麻烦了,所以为了安全,把/home分区扩大5GB,多给它点硬盘空间,敲入两条shell命令

C代码
lvextend -L +5G /dev/system/home
resize_reiserfs -s +5G /dev/system/home

lvextend -L +5G /dev/system/home
resize_reiserfs -s +5G /dev/system/home
先把逻辑卷扩大5GB,再把上面的reiserfs文件系统扩大5GB,前后耗时不超过3秒钟。再df -h查看一下:
C代码
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/system-home 45G 32G 13G 71% /home

Filesystem Size Used Avail Use% Mounted on
/dev/mapper/system-home 45G 32G 13G 71% /home

哈哈,/home立刻多了5GB,搞定收工,这是不是很像变戏法,我没停任何服务,没重起服务器,大家没有任何感觉,就一切搞定,说实话我也一直觉得LVM很cool,所以我一直是LVM+Reiserfs的忠实拥趸。有兴趣学习LVM的同学可以下载后面的附件,这可是我珍藏多年的LVM秘籍!

另外强烈推荐Daniel Robbins在IBM DW网站上面关于LVM的系列文章:

一、LVM系统分区

#安装系统的时候采用LVM分区

#先划分一个/boot分区





#将剩余空间划为一个物理卷(PV),创建一个名VolGroup00卷组(VG)

#并在VolGroup00卷组修建逻辑卷(LV)

























二、LVM分区创建、大小调整

1、新添加一块硬盘,使用LVM对这个磁盘进行分区管理

#检测所有存储设备

lvmdiskscan #或者使用fdisk -l









#创建物理分区(将整块硬盘划为一个物理分区)

fdisk /dev/sdb

#创建物理卷(PV)

pvcreate /dev/sdb1





#创建卷组(VG)

#创建一个名为VolGroup01的卷组,并将/dev/sdb1这个刚创建的特理卷加放该卷组中

vgcreate VolGroup01 /dev/sdb1





当多个物理卷组合成一个卷组后时,LVM会在所有的物理卷上做类似格式化的工作,将每个物理卷切成一块一块的空间,这一块一块

的空间就称为PE(Physical Extent ),它的默认大小是4MB。

由于受内核限制的原因,一个逻辑卷(Logic Volume)最多只能包含65536个PE(Physical Extent),所以一个PE的大小就决定了

逻辑卷的最大容量,4 MB 的PE决定了单个逻辑卷最大容量为 256 GB,若希望使用大于256G的逻辑卷,则创建卷组时需要指定更大

的PE。在Red Hat Enterprise Linux AS 4中PE大小范围为8 KB 到 16GB,并且必须总是 2 的倍数。

例如,如果希望使用 64 MB 的PE创建卷组,这样逻辑卷最大容量就可以为4 TB,命令如下:

vgcreate - 64MB VolGroup01 /dev/sdb1

#查看卷组

[root@LVM ~]# vgdisplay

--- Volume group ---

VG Name VolGroup01 #卷组名

System ID

Format lvm2 #格式

Metadata Areas 1

Metadata Sequence No 2

VG Access read/write

VG Status resizable

MAX LV 0 #最大逻辑卷的个数,0为不限制

Cur LV 1 #当前逻辑卷的个数

Open LV 0 #当前可用的逻辑卷个数

Max PV 0

Cur PV 1 #当前卷组中物理卷的个数

Act PV 1 #当前卷组中有一个活动的物理卷

VG Size 149.05 GB #卷组的总容量27.96G

PE Size 4.00 MB #卷组的最小I/O单位

Total PE 38156 #卷组中的桩点数

Alloc PE / Size 25600 / 100.00 GB #当前用掉的桩点和磁盘大小

Free PE / Size 12556 / 49.05 GB #当前可用的桩点和磁盘大小

VG UUID 7SPylC-awq8-t48R-1Yn5-UKxM-pd2C-VS4p1s

#创建逻辑卷(LV)

lvcreate -L 100G -n LogVol11 VolGroup01

#其中-L 100G表示这个LV的空间是100G

#-n LogVol11表示这个LV名字为LogVol11

#VolGroup01表示这个LV所在的VG

lvcreate -L 49G -n LogVol12 VolGroup01

#LV检测

lvscan









#格式化LV(格式化成ext3格式)

mkfs.ext3 /dev/VolGroup01/LogVol11

mkfs.ext3 /dev/VolGroup01/LogVol12





#挂载到普通目录上

mkdir /data1

mkdir /data2

mount /dev/VolGroup01/LogVol11 /data1

mount /dev/VolGroup01/LogVol12 /data2

#修改/etc/fstab可以在启动时候自动挂载到相应位置

vi /etc/fstab





#查看分区情况

df -h





2、调整LV的大小

#首先取消挂载

umount /data1

umount /data2

#/dev/VolGroup01/LogVol12减少10

e2fsck -f /dev/VolGroup01/LogVol12

resize2fs /dev/VolGroup01/LogVol12 39G #39G为调整后的磁盘空间大小

lvreduce -L-10G /dev/VolGroup01/LogVol12 #10G为减少的磁盘空间大小

resize2fs /dev/VolGroup01/LogVol12





#/dev/VolGroup01/LogVol11增加10G

lvextend -L+10G /dev/VolGroup01/LogVol11

e2fsck -f /dev/VolGroup01/LogVol11

resize2fs /dev/VolGroup01/LogVol11





#重新挂载

mount /dev/VolGroup01/LogVol11 /data1

mount /dev/VolGroup01/LogVol12 /data2

#再来查看下分区情况

df -h



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息