zoukankan      html  css  js  c++  java
  • How do I add more disk space to a virtual guest using LVM on Red Hat Enterprise Linux?

    Release Found: Red Hat Enterprise Linux 5 running one or more virtual guests

    Problem

    You want to add disk space to a virtual guest using LVM on a Red Hat Enterprise Linux 5 hypervisor.

    Solution

    First, stop the guest on the Dom0 system and make a backup of the original guest system:

    [root@rhel5-dom0 ~]# lvs|grep rhel5.guest
      rhel5u3.guest        vg0  -wi-a-  4.00G
    [root@rhel5-dom0 ~]# lvcreate -L 4G -n rhel5.backup vg0
      Logical volume "rhel5.backup" created
    [root@rhel5-dom0 ~]# dd if=/dev/vg0/rhel5.guest of=/dev/vg0/rhel5.backup
    8388608+0 records in
    8388608+0 records out
    4294967296 bytes (4.3 GB) copied, 381.72 seconds, 11.3 MB/s

    In this example, 2GB will be added to the logical volume of the guest on the dom0 system:

    [root@rhel5-dom0 ~] lvextend -L +2G /dev/vg0/rhel5.guest
      Extending logical volume rhel5.guest to 6.00 GB
      Logical volume rhel5.guest successfully resized

    Now, start the guest and wait for it to boot.  After it boots, remove the old partition and create a new one that starts in the same place as the old one and spans to the new end of the disk:

    [root@rhel5-guest ~]#  fdisk /dev/xvda

    Command (m for help): p <---(type "p")

    Disk /dev/xvda: 6442 MB, 6442450944 bytes
    255 heads, 63 sectors/track, 783 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         522     4088542+  8e  Linux LVM

    Notice that "783 cylinders" is the new end of the disk but the original partition for the physical volume only goes to 522 on /dev/xvda2. The second partition will need be be deleted then recreated from the cylinders 14 to 783.

    Command (m for help): d <---(type "d")
    Partition number (1-4): 2 <---(type "2")

    Command (m for help): n <---(type "n")
    Command action
    e   extended
    p   primary partition (1-4)
    p <---(type "p")

    Partition number (1-4): 2 <---(type "2")
    First cylinder (14-783, default 14): 14 <---(type "14")
    Last cylinder or +size or +sizeM or +sizeK (14-783, default 783): 783 <---(type "783")

    Command (m for help): t <---(type "t")
    Partition number (1-4): 2 <---(type "2")
    Hex code (type L to list codes): 8e <---(type "8e")
    Changed system type of partition 2 to 8e (Linux LVM)

    Command (m for help): p <---(type "p")

    Disk /dev/xvda: 6442 MB, 6442450944 bytes
    255 heads, 63 sectors/track, 783 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         783     6185025   8e  Linux LVM

    Command (m for help): w <---(type "w")
    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    The kernel still uses the old table.
    The new table will be used at the next reboot.
    Syncing disks.

    Now the guest system will need to be rebooted so the new partition table is read by the kernel.  After this the pvresize command will set the new size of the physical volume in LVM. 

    [root@rhel5-guest ~]# pvresize /dev/xvda2
    Physical volume "/dev/xvda2" changed
    1 physical volume(s) resized / 0 physical volume(s) not resized

    You should now see the free space in the volume group using the vgs command under the field VFree:

    [root@rhel5-guest ~]# vgs
      VG   #PV #LV #SN Attr   VSize VFree
      vg0    1   2   0 wz--n- 5.88G 2.00G

    Determine what logical volume your root filesystem is located on:

    [root@rhel5-guest ~]# lvs
      LV   VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert
      root vg0  -wi-ao   3.62G                                     
      swap vg0  -wi-ao 256.00M

    [root@rhel5-guest ~]# blkid
    /dev/mapper/vg0-swap: TYPE="swap"
    /dev/mapper/vg0-root: UUID="d9623f07-975e-4628-acd8-f6ec67d7afa4" TYPE="ext3"
    /dev/xvda1: LABEL="/boot" UUID="8d2d783c-b782-409c-b157-40f4f95220b3" TYPE="ext3"
    /dev/vg0/root: UUID="d9623f07-975e-4628-acd8-f6ec67d7afa4" TYPE="ext3"
    /dev/vg0/swap: TYPE="swap"

    The next step will be to extend the logical volume in the guest itself:

    [root@rhel5-guest ~]# lvextend -L +2G /dev/vg0/root
      Extending logical volume root to 5.62 GB
      Logical volume root successfully resized
    [root@rhel5-guest ~]# lvs
      LV   VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert
      root vg0  -wi-ao   5.62G                                     
      swap vg0  -wi-ao 256.00M

    The final step will be resizing the ext3 filesystem on the logical volume that was just extended:

    [root@rhel5-guest ~]# resize2fs /dev/vg0/root
    resize2fs 1.39 (29-May-2006)
    Filesystem at /dev/vg0/root is mounted on /; on-line resizing required
    Performing an on-line resize of /dev/vg0/root to 4558848 (4k) blocks.
    The filesystem on /dev/vg0/root is now 4558848 blocks long.

    You should now be able to confirm the new space with the df command:

    [root@rhel5-guest ~]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/vg0-root  5.5G  1.9G  3.4G  36% /
    /dev/xvda1             99M   13M   81M  14% /boot
    tmpfs                 513M     0  513M   0% /dev/shm
  • 相关阅读:
    Spring基础学习
    云服务器配置java环境
    Struts2学习笔记(一)--入门常见配置
    Hibernate学习笔记(二)
    Hibernate学习笔记(一)
    java---Listener & Filter知识点学习
    java----DBUtils知识点补充
    java----连接池C3p0使用的补充
    IOS之表视图单元格删除、移动及插入
    IOS之表视图添加索引
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400261.html
Copyright © 2011-2022 走看看