Hot add memory to vMA or other supported Linux guestOSes using vSphere ESX(i) 4.0

Version 7

    Summary

    This document will demonstrate how to hot add memory to a live running vMA (RHEL5) VM using vSphere ESX(i) 4.0, this feature is only supported on certain guestOSes, check vSphere documentation for more information.

     

    Resources

    http://adaptivethinking.wordpress.com/2009/07/27/vsphere-esx4-hot-add-memory-for-linux-guests/

     

    Requirements

    ESX(i) 4.0

    vMA 4.0 or other supported Linux guestOSes

     

    Instructions

    1. Hot add memory requires a VM to be running hardware version 7 and since vMA 4.0 by default is distributed as HW4, you'll need to first right click on the VM and upgrade to hardware 7 before powering on the VM. You will also need to enable hot add memory which is a new configuration item once you've upgraded to HW7 under OPTIONS->Memory/CPU Hotplug and just select 'enable'

     

    2. Power on vMA

     

    3. Let's verify the default memory available within vMA (this can be done using free,/proc/meminfo,top,etc)

     

    [vi-admin@vMa-resize ~]$ free -m
                 total       used       free     shared    buffers     cached
    Mem:           498        178        320          0          6         98
    -/+ buffers/cache:         73        425
    Swap:         1023          0       1023
    
    [vi-admin@vMa-resize ~]$ cat /proc/meminfo m
    MemTotal:       510668 kB
    MemFree:        327696 kB
    Buffers:          6740 kB
    Cached:         101200 kB
    SwapCached:          0 kB
    Active:         110392 kB
    Inactive:        43864 kB
    HighTotal:           0 kB
    HighFree:            0 kB
    LowTotal:       510668 kB
    LowFree:        327696 kB
    SwapTotal:     1048568 kB
    SwapFree:      1048568 kB
    Dirty:              24 kB
    Writeback:           0 kB
    AnonPages:       46340 kB
    Mapped:          43704 kB
    Slab:            12584 kB
    PageTables:       2408 kB
    NFS_Unstable:        0 kB
    Bounce:              0 kB
    CommitLimit:   1303900 kB
    Committed_AS:   222648 kB
    VmallocTotal: 34359738367 kB
    VmallocUsed:    263328 kB
    VmallocChunk: 34359474423 kB
    HugePages_Total:     0
    HugePages_Free:      0
    HugePages_Rsvd:      0
    Hugepagesize:     2048 kB
    
    

     

     

    Default installation of vMA 4.0 is 512mb of memory, we'll increase this to 1gb

     

    4. You will now use the vSphere Client and edit the vMA's memory and change it from 512mb to 1gb

     

    5. Download and copy online_hotplug_memory.sh to vMA

     

     

     

    [root@vMa-resize ~]# chmod +x online_hotplug_memory.sh
    

     

     

    6. Execute the script which will find any new memory allocated to vMA and online the memory

     

     

     

     

     

    [root@vMa-resize ~]# sudo ./online_hotplug_memory.sh
    Found sparsemem: "/sys/devices/system/memory/memory0" ...
            memory0 already online
    Found sparsemem: "/sys/devices/system/memory/memory1" ...
            memory1 already online
    Found sparsemem: "/sys/devices/system/memory/memory2" ...
            memory2 already online
    Found sparsemem: "/sys/devices/system/memory/memory3" ...
            memory3 already online
    Found sparsemem: "/sys/devices/system/memory/memory4" ...
            memory4 is new memory, onlining memory ...
    Found sparsemem: "/sys/devices/system/memory/memory5" ...
            memory5 is new memory, onlining memory ...
    Found sparsemem: "/sys/devices/system/memory/memory7" ...
            memory7 is new memory, onlining memory ...
    
    

     

     

    As you can see from the script output memory[0-3] was already allocated and split up but memory[4-7] was the newly added memory which needed to be brought online before the OS can use it.

     

    7. Let's verify the new memory that has been allocated while the VM was running

     

     

     

    [root@vMa-resize ~]# free -m
                 total       used       free     shared    buffers     cached
    Mem:           882        188        694          0          7        100
    -/+ buffers/cache:         80        802
    Swap:         1023          0       1023
    
    [root@vMa-resize ~]# cat /proc/meminfo
    MemTotal:       903884 kB
    MemFree:        711128 kB
    Buffers:          7644 kB
    Cached:         102612 kB
    SwapCached:          0 kB
    Active:         111996 kB
    Inactive:        45060 kB
    HighTotal:           0 kB
    HighFree:            0 kB
    LowTotal:       903884 kB
    LowFree:        711128 kB
    SwapTotal:     1048568 kB
    SwapFree:      1048568 kB
    Dirty:              36 kB
    Writeback:           0 kB
    AnonPages:       46836 kB
    Mapped:          43708 kB
    Slab:            12748 kB
    PageTables:       2460 kB
    NFS_Unstable:        0 kB
    Bounce:              0 kB
    CommitLimit:   1500508 kB
    Committed_AS:   224736 kB
    VmallocTotal: 34359738367 kB
    VmallocUsed:    263628 kB
    VmallocChunk: 34359474423 kB
    HugePages_Total:     0
    HugePages_Free:      0
    HugePages_Rsvd:      0
    Hugepagesize:     2048 kB