由于系统部署的时候,分区使用的默认分区管理,系统规划不是很好,swap过于大,浪费了很多磁盘空间,这里讲将swap下线,进行缩容,然后将缩减出的容量补充到在线的根分区上。固然只有一个根分区不好,这样规划以后会出一些问题,这里只讨论操作的扩缩的操作步骤。

下文中,红色加粗字体的部分是操作的命令,蓝色部分是需要特别注意的地方。通过这些蓝色的输出来确定你的服务器该怎么调整容量大小,并且检查是否达到调整的预期。

思路:首先查看swap的大小及分区,然后调整swap大小,使vg中有空余的空间可以给根分区的lv进行补充。然后重建swap,挂载swap,检查vg的空余容量显示是否正常,然后给根分区的lv扩容,resize2fs,完成。

此操作为真实线上服务器的调整记录,供朋友们参考,在真实上线操作之前,请务必在与你在的平台完全相同的实验环境进行详细的测试,然后方可实施操作。我的系统环境是:

操作系统:RHEL 5u3 64bit

内核版本:2.6.18-128.el5



[root@server10 ~]# free -g
             total       used       free     shared    buffers     cached
Mem:            62         62          0          0          0         60
-/+ buffers/cache:          2         60
Swap:          127          0        127
[root@server10 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      147G   74G   65G  54% /

/dev/sda1              99M   13M   81M  14% /boot
tmpfs                  32G     0   32G   0% /dev/shm
[root@server10 ~]# cat /etc/fstab
/dev/VolGroup00/LogVol00 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0
[root@server10 ~]# lvdisplay
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                oZ7rEm-hphT-MsGk-fNaD-RC5X-INgZ-oCJdml
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                150.84 GB
  Current LE             4827
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
  
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol01
  VG Name                VolGroup00
  LV UUID                pCpqVB-cwXV-MunF-OtBQ-usYA-hFxt-l07IJc
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                127.91 GB
  Current LE             4093
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
  
[root@server10 ~]# vgdisplay
  --- Volume group ---
  VG Name               VolGroup00
  System ID            
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               278.75 GB
  PE Size               32.00 MB
  Total PE              8920
  Alloc PE / Size       8920 / 278.75 GB
  Free  PE / Size       0 / 0  

  VG UUID               9hHRZZ-VUd4-bMwc-rnhK-wiyq-sPZw-dtJREo  
[root@server10 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:         64449      64129        320          0        327      61494
-/+ buffers/cache:       2307      62142
Swap:       130975          0     130975
[root@server10 ~]# swapoff -a
[root@server10 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:         64449      64065        384          0        327      61494
-/+ buffers/cache:       2243      62206
Swap:            0          0          0
[root@server10 ~]# lvreduce /dev/VolGroup00/LogVol01 -L -64G
  WARNING: Reducing active logical volume to 63.91 GB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LogVol01? [y/n]: y
  Reducing logical volume LogVol01 to 63.91 GB
  Logical volume LogVol01 successfully resized
[root@server10 ~]# mkswap /dev/VolGroup00/LogVol01
Setting up swapspace version 1, size = 68618809 kB
[root@server10 ~]# swapon /dev/VolGroup00/LogVol01
[root@server10 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:         64449      64150        299          0        327      61549
-/+ buffers/cache:       2273      62175
Swap:        65439          0      65439
[root@server10 ~]# free -g
             total       used       free     shared    buffers     cached
Mem:            62         62          0          0          0         60
-/+ buffers/cache:          2         60
Swap:           63          0         63
[root@server10 ~]# vgdisplay
  --- Volume group ---
  VG Name               VolGroup00
  System ID            
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               278.75 GB
  PE Size               32.00 MB
  Total PE              8920
  Alloc PE / Size       6872 / 214.75 GB
  Free  PE / Size       2048 / 64.00 GB

  VG UUID               9hHRZZ-VUd4-bMwc-rnhK-wiyq-sPZw-dtJREo
  
[root@server10 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      147G   74G   65G  54% /

/dev/sda1              99M   13M   81M  14% /boot
tmpfs                  32G     0   32G   0% /dev/shm
[root@server10 ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
[root@server10 ~]# lvextend /dev/VolGroup00/LogVol00 -l +100%FREE
  Extending logical volume LogVol00 to 214.84 GB
  Logical volume LogVol00 successfully resized

[root@server10 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      147G   74G   65G  54% /

/dev/sda1              99M   13M   81M  14% /boot
tmpfs                  32G     0   32G   0% /dev/shm
[root@server10 ~]# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 56320000 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 56320000 blocks long.


[root@server10 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      209G   74G  124G  38% /

/dev/sda1              99M   13M   81M  14% /boot
tmpfs                  32G     0   32G   0% /dev/shm
[root@server10 ~]#