02 abr

Añadir memoria y cpu en caliente linux

Bueno como ahora está de moda el tema de la virtualizacion, muchos sistemas de virtualizacion nos permiten añadir CPU o RAM en las máquinas virtuales sin necesidad de apagarlas, o sea en caliente. En este post explicare como hacerlo en Linux, ya que en windows es bastante trivial.

Así que vamos al lio,

Es sistema de virtualización que utilizaremos es vmware esxi 5.1, lo primero de todo deberemos activar ambas opciones en las características de la máquina virtual, asi pues nos iremos a edit settings y marcaremos las siguientes opciones.

activate hot memory

Una vez activada las opciones arrancamos la máquina virtual.

Ahora vamos a ver la situación actual de la máquina, la memoria

free -m

total       used       free     shared    buffers     cached
Mem:          3825        264       3560          0         88         63
-/+ buffers/cache:        112       3712
Swap:         2047          0       2047

La cpu,

cat /proc/cpuinfo

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 37
model name      : Intel(R) Xeon(R) CPU           X5650  @ 2.67GHz
stepping        : 1
cpu MHz         : 2666.761
cache size      : 12288 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_ts
c aperfmperf unfair_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes hypervisor lahf_lm arat epb dts
bogomips        : 5333.52
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

etc

En resumen la maquina tiene 4 CPUS y 4 GB de RAM.

Bueno pues empezamos con la RAM, vamos al vcenter y aumentamos en 2GB la memoria RAM.

Captura de pantalla de 2013-04-02 13:45:47

Bueno, ahora nos vamos a la maquina Linux, lanzamos

grep line /sys/devices/system/memory/*/state

Nos debemos fijar en aquellos que nos salga offline.

Y ahora los activamos, tal que

echo online > /sys/devices/system/memory/memory[number]/state
free -m

Donde [number] pondremos el numero, si son muchos los que tenemos en offline, facilmente podemos hacer un for, ya que por norma general suelen ser secuenciales.

for i in numbers; do "echo online > /sys/devices/system/memory/memory$i/state"; done

free -m

Bueno ahora vemos el aumento de la RAM

total       used       free     shared    buffers     cached
Mem:        5873        309       5564          0         88         63
-/+ buffers/cache:        157       5716
Swap:         2047          0       2047

Pues ahora que tenemos la ram en su punto, vamos a por la CPU

Ampliamos la CPU en el vcenter.

Captura de pantalla de 2013-04-02 14:00:06

Y nuevamente nos vamos al linux, utilizamos el siguiente script ya hecho :)

#!/bin/bash
# William Lam
# http://engineering.ucsb.edu/~duonglt/vmware/

for CPU in $(ls /sys/devices/system/cpu/ | grep cpu | grep -v idle)
do
CPU_DIR="/sys/devices/system/cpu/${CPU}"
echo "Found cpu: "${CPU_DIR}" ..."
CPU_STATE_FILE="${CPU_DIR}/online"
if [ -f "${CPU_STATE_FILE}" ]; then
STATE=$(cat "${CPU_STATE_FILE}" | grep 1)
if [ "${STATE}" == "1" ]; then
echo -e "t${CPU} already online"
else
echo -e "t${CPU} is new cpu, onlining cpu ..."
echo 1 > "${CPU_STATE_FILE}"
fi
else
echo -e "t${CPU} already configured prior to hot-add"
fi
done

Comprobamos

cat /proc/cpuinfo | grep processor | wc -l
8

Y con esto ya tenemos más potencia en la máquina sin perder el uptime…

Ale a disfrutarlo!!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>