# PowerVM

PowerVM, anciennement connu sous le nom de Advanced Power Virtualization (APV), est la technologie de virtualisation d'IBM sur les serveurs d'architecture processeur IBM POWER (IBM Power Systems, System p, System i et BladeCenter JSxx).
Il s'agit d'une combinaison de logiciels et d'aptitudes matérielles permettant de mettre en œuvre les fonctions de virtualisation. PowerVM est composé des modules suivants :
* Virtual I/O Server (VIOS)
* Live Partition Mobility
* Integrated Virtualization Manager (IVM)
* Partition Load Manager (PLM)
* Micro-partitionnement (Micro-partitioning)
* Partage de processeur (Shared Processor LPAR)
* Capacité dédiée partagée (Shared Dedicated Capacity)
* Groupes de processeurs partagés multiples (Multiple Shared Processor Pools)
* Lx86
* Active Memory Sharing (AMS)
* Active Memory Expansion (AME)
PowerVM constitue le savoir-faire d'IBM en matière de virtualisation dont les débuts datent de 1967.

## Fonctions de PowerVM
### Virtual I/O Server (VIOS)

Virtual I/O Server est un Operating System basé sur AIX offrant des fonctions de virtualisation. Une partition VIOS peut virtualiser des environnements AIX, Linux POWER et IBM i. VIOS fournit des ressources I/O virtuelles (disques, adaptateurs réseau, lecteurs de bandes et lecteurs optiques) pour des partitions dites clientes. La virtualisation du processeur et de la mémoire étant quant à elle réalisée par le POWER Hypervisor. VIOS est destiné à réduire les coûts en réduisant le nombre de ressources physiques nécessaires pour les différentes partitions tournant sur un System p, System i, IBM Power Systems ou BladeCenter.

### Live Partition Mobility

Cette fonction permet de déplacer à chaud, c'est-à-dire sans interruption de production, une partition d'un système vers un autre système physique. Il ne s'agit pas d'un module de Haute Disponibilité, Live Partition Mobility permet de s'affranchir des contraintes d'arrêt d'un serveur lors d'une interruption programmée. Seuls les serveurs System p, System i et IBM Power Systems dotés de processeurs POWER6 au minimum supportent cette fonction. Live Partition Mobility n'est disponible que dans la version PowerVM Enterprise Edition.

### Integrated Virtualization Manager (IVM)

IVM est une interface de gestion des partitions et des ressources virtuelles disponible via un navigateur Web, fournie par Virtual I/O Server. IVM permet de créer des partitions intégralement virtualisées sans console HMC.

### Partition Load Manager (PLM)

Partition Load Manager est une fonctionnalité, uniquement disponible pour les environnements AIX, permettant de répartir automatiquement la charge processeur et mémoire entre les différentes partitions d'un système.

### Micro-partitionnement (Micro-partitioning)

Le micro-partitionnement est la possibilité de réaliser des partitions logiques sur des portions de processeur. Il n'est pas obligatoire d'utiliser des processeurs dédiés pour créer des partitions logiques. Le minimum requis pour la création d'une micro-partition, en termes de ressources processeur, est de 1/10ème de processeur. Cette flexibilité permet de créer jusqu'à 10 partitions sur un processeur. La granularité au-dessus du minimum est de 1/100ème de processeur. Pour ce faire, on doit créer un pool de processeur partagé dans lequel on intègre les micro-partitions. Chez IBM, une unité processeur correspond à une tranche de temps processeur de 10 ms. Ainsi, 1/10ème de processeur est égal à un processeur physique durant une période de 1 ms.

### Partage de processeur (Shared Processor LPAR)

Le pool de processeur LPAR ou pool partagé est un ensemble de processeurs regroupant les micro-partitions et permettant l'optimisation des cycles processeurs non utilisés via la fonction débridage (uncapped). La définition de processeurs virtuels pour chaque partition permet l'utilisation de tous les cycles processeurs non utilisés par les autres partitions du pool de processeur en cas de besoin d'une puissance supplémentaire à celle initialement définie sur une partition.

### Capacité dédiée partagée (Shared Dedicated Capacity)

Permet la récupération des cycles processeurs dédiés non utilisés dans le pool de processeurs partagés. Concrètement, si une partition utilisant des processeurs dédiés (donc non partagés), ne consomme pas tous les cycles processeur à sa disposition, et que des partitions du pool partagé ont besoin de ressources supplémentaires, alors les cycles perdus seront mis à disposition du pool partagé. Les cycles disponibles restent prioritairement réservés à la partition dédiée en cas de besoin.

### Groupes de processeurs partagés multiples (Multiple Shared Processor Pools)

Possibilité de créer plusieurs pools de processeurs partagés afin de « dédier » des ressources pour certains environnements tout en bénéficiant de ressources partagées. Cette fonction permet également de réduire les coûts des licences des différents Operating Systems AIX, Linux sur POWER et IBM i en restreignant leur champ d'action.

### Lx86

PowerVM Lx86 est un logiciel de translation binaire x86 permettant d'exécuter des applications Linux x86 32-bit sur des processeurs d'architecture POWER sans recompilation. Lx86 est un logiciel tournant sur une partition Linux POWER, qui permet de consolider des environnements Linux x86 sur les serveurs System p, IBM Power Systems et BladeCenter JSxx. Anciennement connu sous le nom de System p AVE (System p Application Virtual Environment), il a été nommé à tort par la presse sous le nom de PAVE (Portable Advanced Virtualization Emulator). Lx86 se base sur une émulation proche de celle utilisée par Apple pour faire tourner Mac OS X, dont les binaires sont compilés pour processeurs PowerPC, sur les processeurs Intel de la gamme Macintosh.

### Active Memory Sharing (AMS)

AMS est une technologie de virtualisation de la mémoire permettant le déplacement intelligent de mémoire d'une partition à une autre. Elle optimise l'utilisation et la flexibilité de la mémoire centrale. Les prérequis nécessaires sont :
* des serveurs à base de processeur POWER6 ou POWER6+
* des partitions virtualisées par VIOS
* l'utilisation d'un pool de mémoire partagée
* AIX 6.1, IBM i 6.1 ou SUSE Linux Enterprise Server 11 au minimum

### Active Memory Expansion (AME)

AME est une technique de compression / décompression de la mémoire dans le but d'augmenter la taille de la mémoire réelle. AME utilise les ressources processeurs de la partition pour exécuter les opérations de compression / décompression. Les prérequis sont :
* des serveurs à base de processeur POWER7 ou POWER7+
* AIX 6.1 TL4 SP2

## Éditions PowerVM

PowerVM est décliné en 3 éditions. Chacune d'entre elles dispose des fonctionnalités suivantes :
* Integrated Virtualization Manager
* Lx86
* Virtual I/O Server
* Capacité dédiée partagée (sur processeurs POWER6 uniquement)
* Partition Load Manager (sur AIX uniquement)
* Support pour AIX, Linux POWER et IBM i
Puis, chaque édition apporte des fonctionnalités supplémentaires et dispose de contraintes particulières.

### PowerVM Express

* 3 partitions maximum par serveur
* Supportée uniquement sur les modèles Power 520 (8203-EA4) et Power 550 (8204-EA8)
* Gestion par console IVM obligatoirement

### PowerVM Standard

* 10 partitions maximum par cœur
* Gestion par console IVM ou HMC
* Supportée sur toute la gamme IBM Power Systems (POWER6, POWER6+ et POWER7), System p (POWER5/POWER5+), System i (POWER5/POWER5+) et BladeCenter JS12/JS22/JS23/JS43.
* Groupes de processeurs partagés multiples (sur les POWER6 seulement)

### PowerVM Enterprise

* Toutes les fonctionnalités de PowerVM Standard
* Partition Live Mobility
* Active Memory Sharing
* Supportée sur toute la gamme IBM Power Systems (à l'exception du Power 520 (9407-M15)) et sur les BladeCenter JS12/JS22/JS23/JS43.