# [sysfs] hotplug ram (résolu)

## thejack

Bonjour,

Je ne sais pas si beaucoup de monde a eu l'occasion d'essayer le CPU et la RAM hotplug mais je ne connais pas vraiment d'autres endroit ou poser la question.

Je suis en train de tester des fonctionnalités VMWare ESX qui me permettent de rajouter des CPU et de la RAM a chaud sur de nombreux systemes. De part mes recherches le systeme linux gere cela. En effet j'ai reussi a ajouter de la RAM a chaud sur une Centos, un CPU a chaud sur une Debian, mais pas les deux sur chaque distrib ... Sur ma Gentoo la fonctionnalité hotplug cpu fonctionne ... mais il manque la partie RAM. Je m'explique.

De ce que j'ai pu lire pour rajouter de la RAM a chaud il faut que le dossier /sys/devices/system/memory/ soit présent sur le systeme. Cependant il n'etait présent que sur la Centos 5 que j'ai testé et je ne sais pas comment configurer mon OS pour le faire apparaitre.

Si quelqu'un aurait deja essayé cela ici et pourrait m'aider .... je trouve pas grand chose sur le net concernant cette partie la ...

Merci d'avance.Last edited by thejack on Sun Nov 22, 2009 3:04 pm; edited 1 time in total

----------

## Tom_

Tu as regardé dans les options du kernel ? A mon avis, il faut recompiler le kernel en sélectionnant les options d'hotplug cpu et mémoire.  :Wink:  Normalement, /sys/devices/system/memory/  devrait apparaître de cette manière.  :Wink: 

Je n'ai jamais essayé l'hotplug cpu/mémoire donc c'est seulement des suppositions.

----------

## thejack

En fait oui je suis dessus ... ya des trucs a activer ... 

 *Quote:*   

> - For all memory hotplug
> 
> 109	    Memory model -> Sparse Memory  (CONFIG_SPARSEMEM)
> 
> 110	    Allow for memory hot-add       (CONFIG_MEMORY_HOTPLUG)
> ...

 

Il faut aussi desactiver le support de l'hibernation.

Mais même en les activant il y a une erreur a l'ajout ... faut que je voit ça j'ai du manquer quelque chose.

Je vous tiendrais au courant  :Very Happy: 

En tout cas le hotplug CPU est tres bien geré ... un ajout de core en plein milieu d'une compilation noyau ça le gene pas le moins du monde...

----------

## thejack

Alors j'ai compris pourquoi ça marchait pas ... ya une certains limitation a l'ajout de RAM sur les machines 32bit je crois.

Tout ce qui est ajout de RAM entre 0 et 3Go de RAM n'est pas pris en compte, c'est surement du a des adresses virtuelles prises par le hard. Mais tout ce qui est au dessus est pris sans probleme. Passer de 3 a 6Go a chaud est d'une grande simplicité.

Il faut que le noyau aie le support de l'hibernation desactivé et les options sus cités actives. Ensuite lorsque l'on ajoute de la RAM un nouveau dossier memoryX, X correspondant a l'ID de la barrette apparait dans le dossier /sys/devices/system/memory. Il suffit de faire un 

```
echo online > /sys/devices/system/memory/memoryX/state
```

Pour que la RAM ajoutée soit prises en compte.

Pour les CPU il faut aussi que le support HOTPLUG CPU soit actif dans le noyau, ensuite quand vous ajouterez un CPU a chaud un nouveau dossier cpuY (y l'id du CPU) sera ajouté dans le dossier /sys/devices/system/cpu.

```
echo 1 > /sys/devices/system/cpu/cpuY/online
```

Et le cpu est pris en compte immediatement.

Bon bah ca va etre sympa ça pour des machines virtuelles de production sous dimensionnées ... même plus besoin de programmer un downtime  :Smile: 

----------

