Comme OpenVZ utilise un modèle de noyau unique, il se comporte comme le noyau 2.6 de Linux, ce qui signifie qu'il supporte jusqu'à 64 processeurs et jusqu'à 64 GigaOctets de mémoire vive. Un environnement virtuel unique peut être étendu jusqu'à la machine physique dans sa totalité, c'est-à-dire tous les CPU et toute la RAM.
En effet, certains déploient un unique environnement virtuel OpenVZ. C'est étrange à première vue, mais étant donné qu'un VE unique peut employer toutes les ressources matérielles avec une performance proche du natif, tout en bénéficiant d'autres avantages tels que l'indépendance du matériel, la gestion des ressources et la migration à chaud, ceci est un choix évident dans beaucoup de scénarios.
OpenVZ peut accueillir des centaines d'environnements virtuels sur un matériel décent (les limitations principales sont la quantité de mémoire vive et le nombre de processeurs).
Le graphique montre la relation du temps de réponse du serveur web Apache dans un VE sur le nombre de VEs. Les mesures ont été faites sur une machine avec 768 Mo (¾ Gb) de RAM ; chaque VE faisait tourner l'ensemble habituel de processus : init, syslogd, crond, sshd et apache. Les daemons d'Apache servaient des pages statiques, qui étaient chargées par le http_load, et le premier temps de réponse était mesuré. Comme vous pouvez le voir, plus le nombre de VE se développe, plus le temps de réponse se dégrade en raison du manque de mémoire et du swap excessif.
Dans ce scénario, il est possible de faire tourner jusqu'à 120 VEs sur une machine avec ¾ Go de RAM. Ceci s'extrapole de façon linéaire, et il est donc possible de faire tourner jusqu'à près 320 VEs sur une machine avec 2 Gb de RAM.
Un propriétaire (root) du serveur physique OpenVZ (également connu sous le nom de nœud matériel) peut voir tous les processus et les fichiers des VE. Ceci permet de faire de la gestion de masse. Considérez que VMware ou Xen sont employés pour la consolidation de serveur : afin d'appliquer une mise à jour de sécurité à vos 10 serveurs virtuels, vous devez ouvrir une session dans chacun et lancer une procédure de mise à jour. Vous feriez la même chose avec les dix vrais serveurs physiques.
Dans le cas d'OpenVZ, vous pouvez faire tourner un simple script qui mettra à jour tous les (ou juste certains choisis) VEs immédiatement.
OpenVZ vient avec un outil en ligne de commande pour contrôler les VEs (vzctl), ainsi que des outils pour installer les logiciels dans les VEs (vzpkg).
C'est un outil en ligne de commande simple pour contrôler un VE.
Les templates (en français : gabarit) sont des images précréées utilisées pour créer un nouveau VE. Globalement, un template est un ensemble de packages, et un template cache est un tarball d'un environnement chrooté avec ces packages installés. Pendant l'étape de création vzctl, un tarball est déballé. En utilisant la technique template cache, un nouveau VE peut être créé en quelques secondes.
Les outils vzpkg sont un ensemble d'outils facilitant la création de template cache. Ils supportent actuellement rpm et les repositories de type yum. Ainsi, pour créer un template, par exemple, de distribution de Fedora Core 5, vous devez indiquer un ensemble repository (yum) qui ont les rpm FC5, et un ensemble de rpm à installer. De plus, des scripts de pre- et post-install peut être utilisés pour optimiser ou modifier un templace cache. Toutes les données ci-dessus (les repositories, listes de paquets, les scripts, clefs GPG etc.) forment un template metadata. Un template cache peut être créé automatiquement à partir d'un template metadata; vous lancez juste l'utilitaire vzpkgcache. le vzpkgcache téléchargera et installera les packages énumérés sur un VE provisoire, et emballera le résultat comme un template cache.
Des template cache pour les distros non-RPM peuvent aussi être créées, bien que ce soit plus un processus manuel. Par exemple, ce HOWTO donne des instructions détaillées pour créer un template cache de Debian.
Les template cache suivants (a.k.a. templates precréés) sont actuellement (mai 2006) disponibles :