Total Pageviews

Thursday, 17 November 2011

Linux VPS下启用未使用的硬盘空间扩充:LVM

SSH登陆后,查看现有分区、挂载及swap情况:
可以看到大概8G的硬盘空间分布情况
  1. df -hal
  2. free -m
复制代码
[root@XenSystem ~]# df -hal
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
5.7G 1.1G 4.4G 20% /
proc 0 0 0 - /proc
sysfs 0 0 0 - /sys
devpts 0 0 0 - /dev/pts
/dev/xvda1 99M 27M 67M 29% /boot
tmpfs 257M 0 257M 0% /dev/shm
none 0 0 0 - /proc/sys/fs/binfmt_misc
sunrpc 0 0 0 - /var/lib/nfs/rpc_pipefs

[root@XenSystem~]# free -m
             total       used       free     shared    buffers     cached
Mem:           512        506          5          0        447          9
-/+ buffers/cache:         49        463
Swap:         2079          0       2079


查看硬盘设备列表:
  1. fdisk -l
复制代码

Disk /dev/xvdb: 23.6 GB, 23622320128 bytes
255 heads, 63 sectors/track, 2871 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/xvdb doesn't contain a valid partition table
Disk /dev/xvda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1          13      104391   83  Linux
/dev/xvda2              14        1044     8281507+  8e  Linux LVM


硬盘/dev/xvdb尚未划分使用,接下来我们为dev/xvdb分区
  1. fdisk /dev/xvdb
复制代码

[root@XenSystem ~]# fdisk /dev/xvdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

The number of cylinders for this disk is set to 2871.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

#输入n,新建分区
Command (m for help): n

#输入P,主分区 Command action
   e   extended
   p   primary partition (1-4)
p

#目前是xvdb第一个分区输入1
Partition number (1-4): 1

#敲回车,默认就行了
First cylinder (1-2871, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-2871, default 2871):
Using default value 2871

#这里输入t,指定分区的格式为8e (LVM)
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM)

#这里输入w,保存退出
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

重启使其生效
  1. reboot
复制代码


重启后,再次运行fdisk -l,可看到我们划分的xvdb1已经生效了
[root@XenSystem]# fdisk -l
Disk /dev/xvdb: 23.6 GB, 23622320128 bytes
255 heads, 63 sectors/track, 2871 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/xvdb1 1 2871 23061276 8e Linux LVM

Disk /dev/xvda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/xvda1 * 1 13 104391 83 Linux
/dev/xvda2 14 1044 8281507+ 8e Linux LVM


执行vgs查看卷组情况,可以看到只有一个卷组VolGroup00(此名称因系统而异)
  1. vgs
复制代码
[root@XenSystem ~]# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup00 2 2 0 wz--n- 49.84G 0


创建物理卷,并将物理卷加入到组VolGroup00(此名称因系统而异)
  1. pvcreate /dev/xvdb1
  2. vgextend VolGroup00 /dev/xvdb1
复制代码
[root@XenSystem~]# pvcreate /dev/xvdb1
  Physical volume "/dev/xvdb1" successfully created
[root@XenSystem~]# vgextend VolGroup00 /dev/xvdb1
  Volume group "VolGroup00" successfully extended


执行vgdisplay查看卷组空间情况
  1. vgdisplay
复制代码
[root@XenSystem~]# vgdisplay
  --- Volume group ---
  VG Name               VolGroup00
  System ID
  Format                lvm2
  Metadata Areas        2
  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                2
  Act PV                2
  VG Size               29.84 GB
  PE Size               32.00 MB
  Total PE              955
  Alloc PE / Size       252 / 7.88 GB
  Free  PE / Size       703 / 21.97 GB
  VG UUID               jWlke0-R01B-RqBP-Qp1X-xxi0-ltOI-FompAt

可以看到大概有21.97G的空间可以扩充使用,我们将卷组下的卷LogVol00扩容21.96G
  1. lvresize -L +21.96G /dev/VolGroup00/LogVol00
  2. resize2fs /dev/VolGroup00/LogVol00
复制代码
[root@XenSystem~]# lvresize -L +21.96G /dev/VolGroup00/LogVol00
Rounding up size to full physical extent 21.97 GB
Extending logical volume LogVol00 to 27.81 GB
Logical volume LogVol00 successfully resized
[root@XenSystem~]# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing require d
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 7290880 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 7290880 blocks long.

运行完成后,我们可以持到相应的空间已经扩展出来可以使用了
[root@XenSystem~]# df -hal
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
27G 1.1G 25G 5% /
proc 0 0 0 - /proc
sysfs 0 0 0 - /sys
devpts 0 0 0 - /dev/pts
/dev/xvda1 99M 27M 67M 29% /boot
tmpfs 257M 0 257M 0% /dev/shm
none 0 0 0 - /proc/sys/fs/binfmt_misc
sunrpc 0 0 0 - /var/lib/nfs/rpc_pipefs
------------------------------------完结-----------------------------------------------
 
 

系统重装后的重装扩展处理!

重装后,直接执行resize2fs进去动态扩容即可。
  1. resize2fs /dev/VolGroup00/LogVol00


PVs missing导致LVM无法重新扩容的解决办法!

运行vgextend、vgdisplay返回错误:
  1. Couldn't find device with uuid ************************
  2. Cannot change VG VolGroup00 while PVs are missing.
复制代码

此时可以运行
  1. vgreduce VolGroup00  --removemissing



然后重新扩容LVM即可。

No comments:

Post a Comment