首页 > 代码库 > Linux 文件系统在线扩容实战

Linux 文件系统在线扩容实战

1.关于LVM的简要介绍


LVM,即logic volume manager,逻辑卷管理。LVM的架构图如下:

wKioL1O6Xx2yP5r3AAJQ8MbX44w519.jpg

说明:


第一,重点需要关注pv(physical volume) 物理卷,vg(volume group) 卷组,lv(logic volume) 逻辑卷这3个概念。


第二,对于具有LVM类型的分区,可以组成PV;VG是由一个个PV组成;VG不可以直接使用,它类似于扩展分区一样,随着VG中的PV的增减,VG也会自动增减;在VG的上层就是LV,LV就类似于逻辑分区,通过将LV格式化(也就是创建文件系统),挂载后,就可以使用了。




2. 在线扩容操作分享


实验环境

操作系统:RedHat Enterprise Linux Server release 5.0 - 32bit

文件系统:ext3


实验步骤

第一步,创建2个LVM分区


利用fdisk命令进行创建,利用选项t调整分区类型为8e(LINUX LVM),如下所示:

/dev/sdb6              33          57      200781   8e  Linux LVM

/dev/sdb7              58          82      200781   8e  Linux LVM



第二步,创建PV


[root@localhost /]# pvcreate /dev/sdb{6,7}

  Physical volume "/dev/sdb6" successfully created

  Physical volume "/dev/sdb7" successfully created


[root@localhost /]# pvs

  PV         VG   Fmt  Attr PSize   PFree  

  /dev/sdb6       lvm2 --   196.08M 196.08M

  /dev/sdb7       lvm2 --   196.08M 196.08M


通过pvdisplay可以查看更加详细具体的信息。


第三步:创建VG


[root@localhost /]# vgcreate myvg /dev/sdb{6,7}

  Volume group "myvg" successfully created

[root@localhost /]# vgs

  VG   #PV #LV #SN Attr   VSize   VFree  

  myvg   2   0   0 wz--n- 384.00M 384.00M



第四步:创建LV

[root@localhost /]# lvcreate -L 4M -n mylv1 myvg

  Logical volume "mylv1" created

[root@localhost /]# lvs

  LV    VG   Attr   LSize Origin Snap%  Move Log Copy% 

  mylv1 myvg -wi-a- 4.00M       


注意,为了演示实验效果,这里只创建了一个4M大小的LV。



第五步:格式化LV,并挂载使用


[root@localhost /]# mke2fs -j /dev/myvg/mylv1 


[root@localhost /]# mount /dev/myvg/mylv1 /users


[root@localhost /]# df -lh

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2             3.8G  3.3G  384M  90% /

/dev/sda3              14G  1.1G   12G   9% /home

/dev/sda1              46M   11M   34M  24% /boot

tmpfs                 252M     0  252M   0% /dev/shm

/dev/mapper/myvg-mylv1

                      3.9M  1.1M  2.7M  29% /users


[root@localhost /]# cd /users

[root@localhost users]# ls -l

total 12

drwx------ 2 root root 12288 Jul  6 16:40 lost+found

[root@localhost users]# cp /etc/inittab .

[root@localhost users]# ls -l

total 15

-rw-r--r-- 1 root root  1666 Jul  6 16:41 inittab

drwx------ 2 root root 12288 Jul  6 16:40 lost+found

[root@localhost users]# lvs

  LV    VG   Attr   LSize Origin Snap%  Move Log Copy% 

  mylv1 myvg -wi-ao 4.00M                             



需要注意的是,df查看的是文件系统的大小。上面我们对LV创建了EXT3的文件系统,并挂在至/users目录下,同时将一个文件复制到/users下面。



第六步:在线调整文件系统的大小


[root@localhost users]# lvextend -L 32M /dev/myvg/mylv1   ====》这是物理扩容

  Extending logical volume mylv1 to 32.00 MB

  Logical volume mylv1 successfully resized


[root@localhost users]# lvs

  LV    VG   Attr   LSize  Origin Snap%  Move Log Copy% 

  mylv1 myvg -wi-ao 32.00M                     

         

[root@localhost users]# resize2fs -p /dev/myvg/mylv1     ====》这是逻辑扩容

resize2fs 1.39 (29-May-2006)

Filesystem at /dev/myvg/mylv1 is mounted on /users; on-line resizing required

Performing an on-line resize of /dev/myvg/mylv1 to 32768 (1k) blocks.

The filesystem on /dev/myvg/mylv1 is now 32768 blocks long.



[root@localhost users]# df -lh

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2             3.8G  3.3G  384M  90% /

/dev/sda3              14G  1.1G   12G   9% /home

/dev/sda1              46M   11M   34M  24% /boot

tmpfs                 252M     0  252M   0% /dev/shm

/dev/mapper/myvg-mylv1

                       32M  1.1M   30M   4% /users


[root@localhost users]# cat /users/inittab 

#

# inittab       This file describes how the INIT process should set up

#               the system in a certain run-level.

#

# Author:       Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>



通过LVM的逻辑架构图,需要明确的是,如果要对文件系统进行扩容,应该分为2步进行操作,首先进行物理扩容,然后是逻辑扩容。所谓物理扩容,是从物理的角度,对LV进行扩展,当然LV本身的大小收到VG的限制;所谓逻辑扩容,是通过对文件系统的逻辑边界进行重新确定,是依附于物理边界之上的。


3.小结

通过LVM工具,给大家展示一种Linux文件系统在线扩容办法,无需重启服务器,无需重新挂载文件系统,应用也无需做任何更改。 


本文出自 “我想超越自我” 博客,请务必保留此出处http://zhangfengzhe.blog.51cto.com/8855103/1435410