<div class='slidealt'>Projets de recherche de virtualisation <a title='kvm en logiciel libre pour ARM multicoeur' href='/fr/innovation/'>pour les systèmes embarqués et le cloud</a></div> <div class='slidealt'>Solutions de virtualisation pour systèmes <a title='solutions en logiciels libres de virtualisation pour ARMv7-ARMv8' href='/fr/solutions/'>hétérogènes multicoeur ARM</a></div> <div class='slidealt'>Faites appelle à des <a title='services de full virtualisation pour kvm sur coeur ARM' href='/fr/services/'>services de virtualisation sur mesure</a></div> <div class='slidealt'>Expérimentez des extensions de <a title='virtualisation pour plateformes hétérogènes à base de processeurs ARM' href='/fr/produits/'>virtualisation KVM</a></div> <div class='slidealt'>Virtualisation KVM des E/S's pour coeurs ARMv7, ARMv8 <a title='extensions de virtualisation de plateforme VFIO des E/S par kvm sur arm en logiciel libre' href='/fr/solutions/guides/vfio-sur-arm/'>par extensions VFIO/IOMMU</a></div>

La Virtualisation Complète KVM sur Versatile Express

Un guide détaillé pour déployer la virtualisation KVM sur Cortex-A15

Ce guide explique le déploiement de la virtualisation complète KVM sur une plateforme matérielle ARM Cortex-A15 Versatile Express. Il utilise les extensions de virtualisation matérielles du Cortex-A15, sur la base de la technologie de virtualisation KVM-sur-ARM développée par Virtual Open Systems, permettant ainsi à plusieurs instances de systèmes d'exploitation (machines virtuelles invités) d'afficher des performances quasi-natives. Se faisant, des cas d'usage spécifiques peuvent être facilement réalisés, tels que: Android multi-persona, BYOD, la virtualisation de systèmes hétérogènes ou de plusieurs instances du même système d'exploitation.

Introduction à la virtualisation du Cortex-A15

Encore récemment, beaucoup de travaux sur le portage de KVM sur l'architecture ARM ont été faits grâce à l'environnement de simulation Fast Models. En raison d'un manque de véritable matériel Cortex-A15, les Fast Models se sont révélés être des outils essentiels pour le développement de nouveaux projets. Bien qu'ils fournissent une alternative directe et facile à utiliser, les Fast models présentent quelques insuffisances en ce qui concerne ses performances en fonction de la charge de travail.

Avec les dernières versions des plateformes SoC établies (Exynos, OMAP, Tegra) vers fin 2012 et 2013, la disponibilité du matériel pour Cortex-A15 a commencé à se répandre. Actuellement, ARM fournit deux CoreTiles différents de Cortex-A15 sur leur plateforme Versatile Express: Un dual core Cortex-A15 (TC1) cadencé à 1,2 GHz, et leur dernier CoreTile (TC2), auquel s'ajoute un groupe A7 dual core qui est la version à faible consommation de A15 (également appelé big.LITTLE).

Ce guide sera axé sur le déploiement d'un hôte Ubuntu sur la plateforme Versatile Express, avec les dernières fonctionnalités du noyau KVM-sur-ARM. Par la suite, on va montrer comment virtualiser entièrement deux machines virtuelles d'invités différents:

bullet Android Jelly Bean

bullet Ubuntu 12.04

Avec Android, nous pouvons montrer que l'interactivité de l'interface utilisateur est assez décente par rapport à la performance, même en absence d'une accélération matérielle dans la plateforme Versatile Express. D'autre part, un invité Ubuntu peut donner l'exemple d'un déploiement futur sur les serveurs d'ARM à grande échelle. Pour avoir une idée du résultat final, une vidéo de démonstration à été mise en place, ainsi que d'autres démonstrations relatives à l'activité de développement de la technologie de virtualisation..

Composants Requis

Pour bien compléter ce guide, il y a quelques conditions de base:

bullet La plateforme Versatile Express, avec un Cortex-A15 (TC1) ou big.LITTLE (TC2) CoreTile

bullet Environnement de développement Linux. Consulter le KVM-on-ARM guide

bullet Souris et clavier PS/2 ou USB

bullet Écran avec une résolution d'au moins 1024 * 768

bullet Disque dur USB ou une clé USB, comme support de démarrage

Versatile Express

La famille de plateformes de développement Versatile Express fournit un environnement favorable pour le prototypage et conceptions de la nouvelle génération de système-sur-puce. Grâce à sa souplesse, son architecture modulaire, et interfaces à haut débit, des applications logicielles et matérielles peuvent être développées et déboguées rapidement et efficacement.

/static/vosapp/images/guides/kvm_on_arm_vexpress/images/Versatile_Express_system_block.png

Schéma Bloc de Versatile Express [1]

Présentation de la Plateforme

La plateforme se compose de trois blocs principaux:

bullet Carte mère: Se compose de plusieurs périphériques et l'addition éventuelle de cartes filles plug-in.

bullet CoreTile: Bloc CPU supportant des processeurs Cortex-A15, Cortex-A9 et Cortex-A5.

bullet LogicTiles: Les blocs optionnels de carte fille pour étendre la fonctionnalité de la plateforme.

Cortex-A15

Le nouveau processeur Cortex-A15 MPCore, est le premier processeur de la série ARM-A à introduire des extensions de virtualisation matérielle, avec de hautes performances (jusqu'à 40% plus rapide que A9) et des caractéristiques standard de faible consommation de l'architecture ARM. Ces principales caractéristiques sont:

bullet La virtualisation complète à l'aide des extensions de matériel

bullet Les Extensions de Large Physical Address (LPAE)

bullet Virgule Flottante VFPv4

bullet Extensions NEON SIMD avancées

bullet 1-4x SMP dans un seul cluster des processeurs et jusqu'à 2 groupes par puce

/static/vosapp/images/guides/kvm_on_arm_vexpress/images/cortex-a15-block.png

Schéma Bloc de Cortex-A15 [2]

Les Composants Périphériques

Parmi les principaux composants périphériques de la plateforme Versatile Express (et Cortex-A15), on distingue:

bullet PL011 UART (communication série)

bullet PL031 Horloge temps réel

bullet PL050 L'interface PS2 pour clavier et souris

bullet PL110/PL111 LCD/HDLCD Couleur (le rendement logiciel, sans GPU)

bullet L'Interface de la Carte MultiMedia (MMCI)

bullet PL390 Contrôleur d'Interruption Générique (GIC)

bullet PL041_AACI interface audio

bullet SMSC91C111 contrôleur ethernet

bullet ISPI1761 contrôleur USB 2.0

Identifiant ou inscription pour visualiser l'information complète