Pages

Tuesday, 24 January 2012

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): 8eChanged 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进去动态扩容即可。

    resize2fs /dev/VolGroup00/LogVol00
运行vgextend、vgdisplay返回错误:
    Couldn't find device with uuid ************************
    Cannot change VG VolGroup00 while PVs are missing
此时可以运行:
    vgreduce VolGroup00  --removemissing
然后重新扩容LVM即可.
--------------------------------------------------------------------------
Xen CentOS VPS下实现重装系统后,数据不丢失教程


挂载未启用的磁盘为ext3格式.按照接下来的教程做.可以实现的功能:重装系统,网站文件目录/home/中的文件不丢失.MySql数据库数据不丢失.缺点是你将不能应用系统盘剩余的空间到/home/或MySql中.
教程开始:
cd ~
./lnmp stop
关闭lnmp
——-
fdisk -l
查看硬盘分区情况
——-
fdisk /dev/xvdb
n 新建分区
p 主分区
1 输入第几个分区
w 保存退出
对硬盘/dev/xvdb进行增加分区操作
——-
mkfs.ext3 /dev/xvdb1
格式化xvdb1为ext3格式
——-
mount /dev/xvdb1 /mnt
挂载xvdb1到mnt临时目录(lost+found是ext文件系统在发现损坏文件或者索引丢失文件之后存储的目录,类似于fat32文件系统时候有个file0000什么的目录.不用管它)
——-
cp -a /home/* /mnt
拷贝home目录所有文件到mnt临时目录
——-
rm -rf /home/*
删除home目录所有文件
——-
cp -a /usr/local/mysql/var/ /mnt/database
拷贝MySql数据库目录所有文件到mnt临时目录
——-
rm -rf /usr/local/mysql/var/
清除原来数据库目录
——-
umount /mnt
解除挂载xvdb1到mnt临时目录
——-
mount /dev/xvdb1 /home
挂载xvdb1到home目录
——-
ln -s /home/database/ /usr/local/mysql/var
创建数据库目录软连接
——-
df -hal
查看已划分区空间使用情况
——-
最后设置每次启动时自动挂载.修改自动挂载配置文件
vim /etc/fstab
在最后添加一行
/dev/xvdb1 /home ext3 defaults 1 2
你也可以使用这个命令
echo “/dev/xvdb1 /home ext3 defaults 1 2″ >> /etc/fstab
——-
cd ~
./lnmp start
重新启动lnmp
重装系统后需要做的:
cd ~
./lnmp stop
关闭lnmp
——-
rm -rf /usr/local/mysql/var/
清除原来数据库目录
——-
mount /dev/xvdb1 /home
挂载xvdb1到home目录
——-
ln -s /home/database/ /usr/local/mysql/var
创建数据库目录软连接
——-
df -hal
查看已划分区空间使用情况
——-
最后设置每次启动时自动挂载.修改自动挂载配置文件
vim /etc/fstab
在最后添加一行
/dev/xvdb1 /home ext3 defaults 1 2
你也可以使用这个命令
echo “/dev/xvdb1 /home ext3 defaults 1 2″ >> /etc/fstab
——-
cd ~
./lnmp start
重新启动lnmp

No comments:

Post a Comment