[原创]小试ubuntu 8.10下LVM的应用---能在线扩大和缩小逻辑卷

漏洞扫描、网关、防火墙、补丁升级、数据备份和迁移、系统故障排除
回复
头像
be00
帖子: 805
注册时间: 2008-07-28 19:51
来自: 长沙
送出感谢: 1 次
接收感谢: 2 次
联系:

[原创]小试ubuntu 8.10下LVM的应用---能在线扩大和缩小逻辑卷

#1

帖子 be00 » 2009-02-22 19:28

新买一个320G的硬盘,打算用LVM进行分区管理。

本机的光驱早罢工了,为了保险一点,现在虚拟机上测试了一下,在虚拟硬盘上分区后,用Ubuntu_8.04.1_i386.iso启动虚拟机,把grub装在mbr上,ubuntu-8.10-alternate-i386.iso拷贝到一个fat32分区中,设置menu.lst,然后从硬盘启动开始安装,艰辛的过程就不说了。
(真实环境下是把320G硬盘挂上,重复前面的操作,然后装上新硬盘启动继续安装。用Ubuntu_8.04.1_i386.iso分区的时候没有LVM的选项,也可以启动后挂载硬盘操作,安装grub,lvm包后再次硬盘重启也可以,但过程更麻烦,而且Ubuntu_8.04.1_i386.iso不能自定义安装,所以用ubuntu-8.10-alternate-i386.iso自定义最小化安装)

一、虚拟硬盘分区结构

代码: 全选

root@ubuntu:/home/zhangg# fdisk -l

Disk /dev/sda: 3017 MB, 3017213952 bytes
255 heads, 63 sectors/track, 366 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000c2691

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14         251     1911735   8e  Linux LVM
/dev/sda3             252         366      923737+  83  Linux

Disk /dev/sdb: 104 MB, 104857600 bytes
64 heads, 32 sectors/track, 100 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table
系统已经建立了1个卷组rootvg,上面用了2个逻辑卷:
lvroot用于/分区,lvswap用于swap分区

代码: 全选

root@ubuntu:/home/zhangg# lvscan 
  ACTIVE            '/dev/rootvg/lvroot' [2.40 GB] inherit
  ACTIVE            '/dev/rootvg/lvswap' [308.00 MB] inherit
目前卷组已经没有多的空间可以扩展了

代码: 全选

root@ubuntu:/home/zhangg# vgdisplay 
  --- Volume group ---
  VG Name               rootvg
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  9
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               2.70 GB
  PE Size               4.00 MB
  Total PE              691
  Alloc PE / Size       691 / 2.70 GB
  Free  PE / Size       0 / 0   <-------------------------------没有多的空间
  VG UUID               vqg3rf-FGCF-Huny-QlsJ-wdpu-WTwz-CC46C8
磁盘空间也不足

代码: 全选

root@ubuntu:/home/zhangg# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-lvroot
                      2.4G  2.0G  315M  87% /
tmpfs                 252M     0  252M   0% /lib/init/rw
varrun                252M   92K  252M   1% /var/run
varlock               252M     0  252M   0% /var/lock
udev                  252M  2.7M  249M   2% /dev
tmpfs                 252M     0  252M   0% /dev/shm
lrm                   252M  2.0M  250M   1% /lib/modules/2.6.27-7-generic/volatile
/dev/sda1              99M   18M   76M  19% /boot
我的乌斑兔儿:http://zhanggang.net/m/b/b1/ubuntu右键选择在新的窗体打开
右边有一只黄手 ----> 或者注册Dropbox中文版感谢我
头像
be00
帖子: 805
注册时间: 2008-07-28 19:51
来自: 长沙
送出感谢: 1 次
接收感谢: 2 次
联系:

Re: [原创]小试ubuntu 8.10下LVM的应用---能在线扩大和缩小逻辑卷

#2

帖子 be00 » 2009-02-22 19:31

卷组的调整
先把另外一个磁盘/dev/sdb加入到卷组

代码: 全选

root@ubuntu:~# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created
新的卷组加入到现有的rootvg中

代码: 全选

root@ubuntu:~# vgextend rootvg /dev/sdb
  Volume group "rootvg" successfully extended
这样rootvg就有空余的空间了,显示如下:

代码: 全选

root@ubuntu:~# vgdisplay 
  --- Volume group ---
  VG Name               rootvg
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  10
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               2.79 GB
  PE Size               4.00 MB
  Total PE              715
  Alloc PE / Size       691 / 2.70 GB
  Free  PE / Size       24 / 96.00 MB  <----------------------------------------------多了96M
  VG UUID               vqg3rf-FGCF-Huny-QlsJ-wdpu-WTwz-CC46C8
我的乌斑兔儿:http://zhanggang.net/m/b/b1/ubuntu右键选择在新的窗体打开
右边有一只黄手 ----> 或者注册Dropbox中文版感谢我
头像
be00
帖子: 805
注册时间: 2008-07-28 19:51
来自: 长沙
送出感谢: 1 次
接收感谢: 2 次
联系:

Re: [原创]小试ubuntu 8.10下LVM的应用---能在线扩大和缩小逻辑卷

#3

帖子 be00 » 2009-02-22 19:35

SWAP的扩大和缩小
swap空间需要swapoff后,用mkswap再次激活(为什么这样我也不知道),现取消swap卷

代码: 全选

root@ubuntu:~# swapoff -a

代码: 全选

root@ubuntu:~# swapon -s
Filename				Type		Size	Used	Priority
这样系统就没有swap分区了

代码: 全选

root@ubuntu:~# free
             total       used       free     shared    buffers     cached
Mem:        514296     178008     336288          0      10148      97908
-/+ buffers/cache:      69952     444344
Swap:            0          0          0
没有也运行的很好,开始扩展lvswap卷的大小:

代码: 全选

root@ubuntu:~# lvextend -L +20M /dev/rootvg/lvswap
  Extending logical volume lvswap to 328.00 MB
  Logical volume lvswap successfully resized

root@ubuntu:~# lvresize -L 328M /dev/rootvg/lvswap 
  New size (82 extents) matches existing size (82 extents)
  Run `lvresize --help' for more information.
扩展后重新挂载上

代码: 全选

root@ubuntu:~# mkswap /dev/rootvg/lvswap 
Setting up swapspace version 1, size = 335868 KiB
no label, UUID=0d0a4939-5944-4362-a6a4-ce3e8431cb70

代码: 全选

root@ubuntu:~# swapon -a
用free查看新的空间

代码: 全选

root@ubuntu:~# free
             total       used       free     shared    buffers     cached
Mem:        514296     178380     335916          0      10240      97932
-/+ buffers/cache:      70208     444088
Swap:       335864          0     335864
也可以用swapon查看

代码: 全选

root@ubuntu:~# swapon -s
Filename				Type		Size	Used	Priority
/dev/mapper/rootvg-lvswap               partition	335864	0	-1
简述一下缩小的过程:

代码: 全选

root@ubuntu:~# lvreduce -L -20M /dev/rootvg/lvswap 
  WARNING: Reducing active and open logical volume to 308.00 MB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lvswap? [y/n]: y
  Reducing logical volume lvswap to 308.00 MB
  Logical volume lvswap successfully resized

root@ubuntu:~# lvresize -L 308M /dev/rootvg/lvswap 
  New size (77 extents) matches existing size (77 extents)
  Run `lvresize --help' for more information.
我的乌斑兔儿:http://zhanggang.net/m/b/b1/ubuntu右键选择在新的窗体打开
右边有一只黄手 ----> 或者注册Dropbox中文版感谢我
头像
photor
论坛版主
帖子: 11005
注册时间: 2008-04-26 12:41
送出感谢: 8 次
接收感谢: 36 次

Re: [原创]小试ubuntu 8.10下LVM的应用---能在线扩大和缩小逻辑卷

#4

帖子 photor » 2009-02-22 19:40

不太懂,有空慢慢学习…… :em09
另外,mkswap相当于按照swap分区格式化,你调整了分区大小之后当然得重新格式化了 :em01
头像
be00
帖子: 805
注册时间: 2008-07-28 19:51
来自: 长沙
送出感谢: 1 次
接收感谢: 2 次
联系:

Re: [原创]小试ubuntu 8.10下LVM的应用---能在线扩大和缩小逻辑卷

#5

帖子 be00 » 2009-02-22 19:47

根分区的扩大

直接扩展lvroot分区,不用umount,也不可能umount

代码: 全选

root@ubuntu:~# lvextend -L +96M /dev/rootvg/lvroot 
  Extending logical volume lvroot to 2.49 GB
  Logical volume lvroot successfully resized

root@ubuntu:~# lvresize -L 2.49GB /dev/rootvg/lvroot 
  Rounding up size to full physical extent 2.49 GB
  New size (638 extents) matches existing size (638 extents)
  Run `lvresize --help' for more information.
需要重新检测新的分区大小,否则重启会报错。

代码: 全选

root@ubuntu:~# e2fsck /dev/rootvg/lvroot 
e2fsck 1.41.3 (12-Oct-2008)
/dev/rootvg/lvroot is mounted.  

WARNING!!!  Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.

Do you really want to continue (y/n)? yes

/dev/rootvg/lvroot: recovering journal

/dev/rootvg/lvroot: clean, 86200/163200 files, 516988/628736 blocks (check after next mount)

代码: 全选

root@ubuntu:~# resize2fs /dev/rootvg/lvroot 
resize2fs 1.41.3 (12-Oct-2008)
Filesystem at /dev/rootvg/lvroot is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/rootvg/lvroot to 653312 (4k) blocks.
The filesystem on /dev/rootvg/lvroot is now 653312 blocks long.
查看新的分区,可以与上面的数据对照一下

代码: 全选

root@ubuntu:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-lvroot
                      2.5G  2.0G  411M  83% /
tmpfs                 252M     0  252M   0% /lib/init/rw
varrun                252M   92K  252M   1% /var/run
varlock               252M     0  252M   0% /var/lock
udev                  252M  2.7M  249M   2% /dev
tmpfs                 252M     0  252M   0% /dev/shm
lrm                   252M  2.0M  250M   1% /lib/modules/2.6.27-7-generic/volatile
/dev/sda1              99M   18M   76M  19% /boot
同样简述一下缩小的过程,有很多确认项,建立尽量不要缩小,下面的过程没有成功:

代码: 全选

root@ubuntu:~# lvreduce -L -96M /dev/rootvg/lvroot 
  WARNING: Reducing active and open logical volume to 2.40 GB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lvroot? [y/n]: y
  Reducing logical volume lvroot to 2.40 GB
  Logical volume lvroot successfully resized
root@ubuntu:~# lvresize -L 2.40GB /dev/rootvg/lvroot 
  Rounding up size to full physical extent 2.40 GB
  Extending logical volume lvroot to 2.40 GB
  Logical volume lvroot successfully resized
root@ubuntu:~# e2fsck /dev/rootvg/lvroot 
e2fsck 1.41.3 (12-Oct-2008)
/dev/rootvg/lvroot is mounted.  

WARNING!!!  Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.

Do you really want to continue (y/n)? yes

ext3 recovery flag is clear, but journal has data.
Run journal anyway<y>? yes

/dev/rootvg/lvroot: recovering journal
The filesystem size (according to the superblock) is 653312 blocks
The physical size of the device is 629760 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort<y>? no

Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/dev/rootvg/lvroot: ***** FILE SYSTEM WAS MODIFIED *****
/dev/rootvg/lvroot: ***** REBOOT LINUX *****
/dev/rootvg/lvroot: 86202/163200 files (0.7% non-contiguous), 516990/653312 blocks
root@ubuntu:~# resize2fs /dev/rootvg/lvroot 
resize2fs 1.41.3 (12-Oct-2008)
Filesystem at /dev/rootvg/lvroot is mounted on /; on-line resizing required
On-line shrinking from 653312 to 629760 not supported.
我的乌斑兔儿:http://zhanggang.net/m/b/b1/ubuntu右键选择在新的窗体打开
右边有一只黄手 ----> 或者注册Dropbox中文版感谢我
头像
be00
帖子: 805
注册时间: 2008-07-28 19:51
来自: 长沙
送出感谢: 1 次
接收感谢: 2 次
联系:

Re: [原创]小试ubuntu 8.10下LVM的应用---能在线扩大和缩小逻辑卷

#6

帖子 be00 » 2009-02-23 10:07

查找了一下,下面这个链接能够成功缩小

http://blog.chinaunix.net/u1/33254/showart_371203.html

代码: 全选

减小分区的过程与增大分区刚好相反,需要先resize文件系统,然后再reduce分区。但是,和增大分区对比,减少分区受的限制却比较多。

首先,对ext2/ext3文件系统来说,resize2fs工具并不能在线缩小文件系统。什么是在线?就像在增大分区里边说的那样,对一个正常使用的文件系统进行增大操作,就叫在线操作。因此,比需要先卸载了这个分区的文件系统才行。

其次,resize2fs工具也不能像LVM的工具那样,可以指定增量或者是减量,因此必须要知道分区减小以后的容量大小才可以。这个容量也是有单位的,我也用M。

幸亏,LVM的分区减小工具lvreduce,也提供了减量和绝对量两种方式,所以减小分区的时候可以都采用绝对容量比较容易一些。

最后,resize2fs工具可能会提示要e2fsck -f这块分区,可以带上-f选项强制执行,不过我建议还是让检查一下比较保险。
我的乌斑兔儿:http://zhanggang.net/m/b/b1/ubuntu右键选择在新的窗体打开
右边有一只黄手 ----> 或者注册Dropbox中文版感谢我
回复

回到 “服务器维护和硬件相关”