Utiliser sa propre licence avec des nœuds à locataire unique

Compute Engine offre la possibilité d'utiliser votre propre licence (BYOL) avec des nœuds à locataire unique afin de répondre aux exigences en matière de licences qui restreignent l'utilisation de matériel physique. Vous pouvez par exemple utiliser des nœuds à locataire unique pour importer une image personnalisée dans Compute Engine, utiliser l'image pour démarrer une VM et activer les redémarrages sur place afin que la VM redémarre sur le même serveur physique chaque fois que cela est possible. En utilisant des nœuds à locataire unique pour héberger vos VM, vous vous assurez que vos VM fonctionnent avec du matériel entièrement dédié à votre utilisation tout en limitant l'utilisation du cœur physique. Compute Engine offre également des rapports d'utilisation du serveur afin que vous puissiez suivre les informations sur le matériel physique pour l'utilisation des licences.

Pour obtenir une vue d'ensemble de cette fonctionnalité, y compris des exigences et des considérations relatives à la charge de travail, consultez la page Présentation.

Avant de commencer

Vérifier les systèmes d'exploitation compatibles et les licences requises

Avant de commencer, assurez-vous que votre système d'exploitation est compatible et que vous avez lu la section Licences et activation. Vous devez veiller à ce que vos contrats de licence autorisent l'utilisation de logiciels dans l'environnement BYOL, comme décrit dans cette documentation. De plus, vous devez préparer votre image d'invité pour BYOL conformément à vos accords.

Si vous avez des questions ou si vous avez besoin d'aide, veuillez contacter votre revendeur de licences pour toute question sur les licences et l'assistance Google Cloud pour toute question relative à cette fonctionnalité.

Examiner les régions compatibles

Cette fonctionnalité est disponible uniquement dans certaines régions. Consultez la section sur les tarifs et la disponibilité pour obtenir la liste complète des régions compatibles.

Tenir compte de la charge de travail

Certaines charges de travail conviennent mieux à cette fonctionnalité que d'autres. Examinez les considérations relatives à la charge de travail pour connaître les recommandations générales.

Créer un projet et une demande de quota

Si vous n'avez pas encore de projet, créez-en un.

Le quota de processeurs des nouveaux projets est limité à 100. Cela pourrait ne pas suffire à vos besoins. Si vous avez besoin de plus de quota pour votre projet, vous pouvez demander des ajustements de quota via la page Quotas de la console GCP. Vous aurez peut-être également besoin d'augmentations de quota pour d'autres ressources telles que les adresses IP, en fonction de votre configuration.

Activer l'API Cloud Build

Cette fonctionnalité utilise le service Cloud Build pour importer et créer des images Compute Engine. Vous devez activer l'API Cloud Build pour utiliser cette fonctionnalité.

Activez l'API Cloud Build.

Compute Engine attribuera également au compte de service Cloud Build les rôles suivants afin de lui permettre d'importer des images dans Compute Engine :

  • roles/iam.serviceAccountTokenCreator
  • roles/compute.admin
  • roles/iam.serviceAccountUser

Activer Stackdriver Logging pour les journaux d'audit

Si la création de rapports sur l'utilisation du serveur physique est requise pour la gestion de licences, activez l'API Stackdriver Logging avant de lancer des VM sur des nœuds à locataire unique. Cela vous permet d'importer et d'afficher des informations sur l'utilisation du serveur à l'aide de BigQuery (vivement recommandé).

Activer l'API Stackdriver Logging

En configurant la journalisation, vous pouvez tirer parti de BigQuery pour suivre les informations pertinentes, telles que l'utilisation du cœur physique, pour vos besoins relatifs aux licences. Pour plus de détails, consultez la section Déterminer l'utilisation du serveur.

Créer un fichier de disque virtuel

Vous devez disposer d'un fichier de disque virtuel existant (VMDK, VHD) pour importer l'image dans Compute Engine. L'installation d'un système d'exploitation directement sur une VM à partir d'une image d'installation, telle que iso, img, DVD, USB, etc., n'est pas acceptée. La mise à niveau du système d'exploitation sur place sur une VM Compute Engine n'est pas acceptée non plus.

Les étapes de création d'un fichier de disque virtuel varient en fonction de votre environnement. Veuillez consulter la documentation appropriée à votre système d'exploitation.

Importer un fichier de disque virtuel

Pour démarrer une VM avec votre propre licence, importez un disque virtuel qui contient le système d'exploitation que vous souhaitez utiliser. Utilisez l'outil gcloud pour importer votre fichier. L'outil gcloud est compatible avec l'importation de VHD ou de VMDK à partir d'un bucket Google Cloud Storage ou d'un poste de travail local. Si le disque virtuel est hébergé sur votre ordinateur local, le processus d'importation importera d'abord le fichier dans un bucket Cloud Storage avant d'importer l'image dans Compute Engine.

Avant d'importer le disque de votre VM, téléchargez et exécutez notre outil de vérification préalable à l'intérieur de votre VM. Cet outil de vérification préalable permet de vérifier qu'il n'y a pas d'incompatibilité lors de la migration vers GCP.

Pour une explication complète de l'outil d'importation d'image, consultez la documentation sur l'importation de disque virtuel.

Lorsque vous êtes prêt, exécutez la commande gcloud suivante pour importer votre disque virtuel :

gcloud compute images import [IMAGE_NAME] \
    --source-file [SOURCE_FILE] \
    --os [OS]

où :

  • [IMAGE_NAME] correspond au nom que vous voulez donner à cette image.
  • [SOURCE_FILE] correspond à un fichier de disque virtuel, hébergé localement ou stocké dans Cloud Storage. Si votre disque virtuel est un fichier local, vous pouvez utiliser un chemin d'accès absolu ou relatif. Si votre fichier de disque virtuel est déjà stocké dans Cloud Storage, celui-ci doit exister dans un bucket dans le même projet que celui utilisé pour le processus d'importation. Vous devez spécifier le chemin complet du fichier au format gs://[BUCKET_NAME]/[OBJECT_NAME].

  • [OS] correspond au système d'exploitation Windows du SOURCE_FILE. Les systèmes d'exploitation Windows suivants sont compatibles :

    • windows-2008r2-byol
    • windows-2012-byol
    • windows-2012r2-byol
    • windows-2016-byol
    • windows-7-byol
    • windows-10-byol

Notez que les fichiers stockés dans Cloud Storage et les images stockées dans Compute Engine font l'objet de frais. Après avoir vérifié que l'image a bien été importée et qu'elle démarre correctement en tant qu'instance Compute Engine, vous pouvez supprimer le fichier de disque virtuel dans Cloud Storage.

Si un fichier local est spécifié pour le --source-file, l'opération d'importation peut durer des dizaines de minutes, en fonction de la taille du disque virtuel et de la vitesse de la connexion réseau.

Une fois l'image créée, vous pouvez partager l'image avec des utilisateurs extérieurs à votre projet ou à votre organisation, à l'aide de rôles ou d'autorisations IAM.

gcloud projects add-iam-policy-binding [PROJECT_ID] \
    --member user:[USER_EMAIL] \
    --role roles/compute.imageUser

Dans ce cas, [PROJECT_ID] correspond au projet qui possède l'image à laquelle vous souhaitez accorder l'accès.

Ensuite, l'utilisateur peut accéder à cette image en spécifiant l'ID de projet où l'image réside dans leurs requêtes. Exemple :

gcloud compute instances create my-vm \
    --custom-cpu 4 \
    --custom-memory 8 \
    --image https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/images/[IMAGE_NAME] \
    --zone us-central1-a \
    --node-affinity-file node-affinity-prod.json \
    --restart-on-failure \
    --maintenance-policy terminate

Démarrer une instance de VM avec votre propre licence

Une fois qu'une image est importée, vous pouvez démarrer une instance de VM sur un nœud à locataire unique à l'aide de l'image importée et activer la fonctionnalité de redémarrage sur place en spécifiant la propriété restart-node-on-minimal-servers. Cette propriété garantit que si un événement de maintenance se produit, la VM redémarre sur le même serveur physique, si possible. Si le même serveur physique n'est pas disponible, un serveur physique est créé et ajouté au groupe de nœuds. Compute Engine indique l'ID de serveur du nouveau serveur.

Pour les charges de travail BYOL qui ne concernent pas l'utilisation du cœur physique ou du socket en fonction de la nature de la licence et des termes du produit, vous pouvez simplement utiliser des nœuds à locataire unique et omettre la fonctionnalité de redémarrage sur place. Cela garantit que vos instances de VM atterrissent sur du matériel dédié, mais ne réduit pas le nombre de serveurs physiques sous-jacents utilisés.

Suivez ces étapes pour démarrer votre instance de VM (détaillées ci-dessous) :

  1. Créez un modèle de nœud et activez le redémarrage sur place, si nécessaire, à l'aide de la console Google Cloud Platform, de l'outil gcloud ou de l'API.

  2. Créez un groupe de nœuds avec le modèle nouvellement créé.

  3. Enfin, créez des VM dans le groupe de nœuds avec votre image importée.

Une fois que les VM sont planifiées sur un nœud, elles adhèrent aux mêmes libellés d’affinité physique lors des redémarrages et des événements de maintenance. Cela signifie que, bien que le serveur physique sous-jacent puisse changer, vous pouvez utiliser des sélecteurs de libellés pour vous assurer que certaines VM se trouvent toujours sur le ou les mêmes nœuds (avec l'affinité de nœud correspondante) ou ne partagent jamais le même nœud (anti-affinité de nœud).

Pour plus de commodité, un libellé d'affinité supplémentaire, similaire au nom du nœud et au nom du groupe de nœuds, est automatiquement ajouté à tous les nœuds à locataire unique configurés avec l'option restart-node-on-minimal-servers. Vous pouvez inclure ce libellé dans votre fichier d'affinité pour vous assurer que vos VM ne démarrent que sur des nœuds pour lesquels la fonctionnalité restart-node-on-minimal-server est activée. Le libellé se présente comme suit :

  • Clé : compute.googleapis.com/node-server-binding-type
  • Valeur : restart-node-on-minimal-server

Console

  1. Créez un modèle de nœud avec l'option de redémarrage minimal du serveur.

    1. Accédez à la page Créer un modèle de nœud.

      Accéder à la page Créer un modèle de nœud

    2. Saisissez un nom pour le modèle.
    3. Spécifiez la région dans laquelle vous prévoyez d'exécuter votre groupe de nœuds.
    4. Indiquez le type de nœud que vos groupes de nœuds doivent utiliser. Vous pouvez également préciser le plus petit nœud disponible, ce qui permet l'exécution des groupes de nœuds sur n'importe quel type de nœud disponible.
    5. Spécifiez des libellés d'affinité de nœud pour vos instances si vous le souhaitez. Par exemple, vous pouvez spécifier les libellés workload=front-end et environment=prod.
    6. Développez la section Configuration avancée de redémarrage du nœud.
    7. Sélectionnez les serveurs minimaux.
    8. Créez votre modèle de nœud.
  2. Fournissez un groupe de nœuds à l'aide du modèle de nœud.

    1. Accédez à la page Créer un groupe de nœuds.

      Accéder à la page Créer un groupe de nœuds

    2. Saisissez un nom pour le groupe
    3. Spécifiez la zone dans laquelle vous voulez exécuter votre groupe de nœuds. Un modèle de nœud doit exister dans la même région.
    4. Indiquez le modèle de nœud à utiliser.
    5. Précisez le nombre de nœuds à exécuter dans le groupe. Vous pourrez modifier ce nombre par la suite.
    6. Cliquez sur Créer pour terminer la création du groupe de nœuds.
  3. Créez une instance qui s'exécute dans votre groupe de nœuds ou sur des nœuds spécifiques. Si vous avez utilisé des libellés d'affinité de nœuds spécifiques, vous pouvez créer une instance en suivant le processus normal et spécifier l'affinité de nœuds dans les paramètres de location unique. Pour cet exemple, créez les instances directement depuis la page d'informations du groupe de nœuds.

    1. Accédez à la page des nœuds à locataire unique.

      Accéder à la page des nœuds à locataire unique

    2. Cliquez sur le nom du groupe de nœuds dans lequel créer une instance.
    3. Cliquez sur Créer une instance pour créer une instance n'importe où dans ce groupe de nœuds. Si vous souhaitez que l'instance s'exécute sur un nœud spécifique du groupe, cliquez sur le nom du nœud dans le groupe pour afficher les détails correspondants. Ensuite, cliquez sur Créer une instance pour créer l'instance sur ce nœud.
    4. Configurez les paramètres de l'instance. La région, la zone et les libellés d'affinité de nœuds par défaut sont déjà indiqués étant donné que vous avez déjà sélectionné le groupe de nœuds ou un nœud spécifique.
    5. Sélectionnez l'onglet Gestion.
    6. Sous Règles de disponibilité > Pendant la maintenance de l'hôte, sélectionnez Arrêter.

    7. Sous Redémarrage automatique, sélectionnez Activé (recommandé).

    8. Cliquez sur Créer pour terminer la création de l'instance.

gcloud

  1. Créez un modèle de nœud et définissez l'indicateur restart-node-on-minimal-servers. Choisissez des libellés d'affinité de nœud pour vos instances si vous le souhaitez. Exemple :

    gcloud compute sole-tenancy node-templates create my-node-template \
        --node-type n1-node-96-624 \
        --region us-east1 \
        --node-affinity-labels workload=front-end,environment=prod \
        --server-binding restart-node-on-minimal-servers
    
  2. Fournissez un groupe de nœuds à l'aide du modèle de nœud. Par exemple, la commande suivante crée un groupe de deux instances à l'aide du modèle de nœud créé à l'étape précédente :

     gcloud compute sole-tenancy node-groups create my-node-group \
         --node-template my-node-template \
         --target-size 2 \
         --zone us-east1-b
    
  3. Créez un fichier d'affinité de nœud contenant les libellés d'affinité correspondants du groupe de nœuds. Cela garantit que votre VM est créée uniquement sur des nœuds contenant tous ces libellés. Exemple :

     // CREATE AFFINITY LABEL FILE
     cat > node-affinity-prod.json
     [{
       "key" : "workload",
       "operator" : "IN",
       "values" : ["front-end"]
       },
       {
       "key" : "environment",
       "operator" : "IN",
        "values" : ["prod"]
      },
      {
        "key" : "compute.googleapis.com/node-server-binding-type",
        "operator" : "IN",
        "values" : "restart-node-on-minimal-server"
      }]
    
  4. Démarrez une instance de VM et spécifiez le fichier de libellé d'affinité. Par exemple, la requête suivante crée une VM avec 4 processeurs et 8 Go de mémoire en utilisant l'image importée, dans la zone us-east1-b. De plus, elle définit l'indicateur --restart-on-failure- ainsi qu'une stratégie de maintenance terminate, qui est actuellement la seule stratégie acceptable pour les VM fonctionnant avec votre propre licence.

     gcloud compute instances create my-vm \
         --custom-cpu 4 --custom-memory 8 \
         --image my-imported-image \
         --zone us-east1-b \
         --node-affinity-file node-affinity-prod.json \
         --restart-on-failure --maintenance-policy terminate
    

API

  1. Créez un modèle de nœud et définissez la propriété RESTART_NODE_ON_MINIMAL_SERVERS. Choisissez également des libellés d'affinité de nœud pour vos instances. Exemple :

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/nodeTemplates
    
    {
       "name": "[TEMPLATE_NAME]",
       "nodeType": "[NODE_TYPE]"
       "nodeAffinityLabels": {
          "[KEY]": "[VALUE]"
       },
       "serverBinding":
       {
         "type": "RESTART_NODE_ON_MINIMAL_SERVERS"
       }
    }
    

    où :

    • [PROJECT_ID] est l'ID de votre projet.
    • [TEMPLATE_NAME] est le nom du nouveau modèle de nœud.
    • [NODE_TYPE] est le type de nœud à utiliser pour ce modèle. Par exemple, vous pouvez spécifier le type de nœud n1-node-96-624 pour créer un nœud avec 96 processeurs virtuels et 624 Go de mémoire système.
    • [KEY]:[VALUE] est une liste de libellés d'affinité séparés par une virgule.
    • [REGION] est la région dans laquelle vous utiliserez ce modèle.
  2. Après avoir créé le modèle de nœud, créez un groupe de nœuds. Utilisez la méthode compute.nodeGroups.insert :

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/nodeGroups?initialNodeCount=[TARGET_SIZE]
    
    {
     "nodeTemplate": "regions/[REGION]/nodeTemplates/[TEMPLATE_NAME]",
     "name": "[GROUP_NAME]"
    }
    

    où :

    • [PROJECT_ID] est l'ID de votre projet.
    • [ZONE] est la zone où se trouve le groupe de nœuds. Cette zone doit appartenir à la même région que le modèle de nœud que vous utilisez.
    • [TARGET_SIZE] est le nombre de nœuds à créer dans le groupe.
    • [REGION] est la région où se trouve le modèle de nœud.
    • [TEMPLATE_NAME] est le nom du nouveau modèle de nœud.
    • [GROUP_NAME] est le nom du nouveau groupe de nœuds.
    • [TEMPLATE_NAME] est le nom du modèle de nœud permettant de créer ce groupe.
  3. Après avoir créé le groupe de nœuds, vous pouvez créer des instances dans ce groupe à l'aide de la méthode compute.instances.insert. Spécifiez une entrée nodeAffinities qui pointe vers le nom de votre groupe de nœuds. Par exemple, vous pouvez créer une instance avec un type de machine personnalisé :

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances
    
    {
     "machineType": "zones/[ZONE]/machineTypes/custom-[VCPUS]-[MEMORY]",
     "name": "[INSTANCE_NAME]",
     "scheduling": {
      "nodeAffinities": [
       {
        "key": "compute.googleapis.com/node-server-binding-type",
        "operator": "IN",
        "values": [
         "restart-node-on-minimal-server"
        ]
       }
      ]
     },
     "networkInterfaces": [
      {
       "network": "global/networks/[NETWORK]",
       "subnetwork": "regions/[REGION]/subnetworks/[SUBNETWORK]"
      }
     ],
     "disks": [
      {
       "boot": true,
       "initializeParams": {
        "sourceImage": "projects/[IMAGE_PROJECT]/global/images/family/[IMAGE_FAMILY]"
       }
      }
     ]
    }
    

    où :

    • [PROJECT_ID] est l'ID de votre projet.
    • [INSTANCE_NAME] est le nom de la nouvelle instance.
    • [ZONE] est la zone où se trouve le groupe de nœuds.
    • [REGION] est la région où se trouvent le modèle de nœud et le sous-réseau.
    • [IMAGE_FAMILY] est l'une des familles d'images disponibles.
    • [IMAGE_PROJECT] est le projet d'image auquel appartient la famille d'images.
    • [GROUP_NAME] est le nom du groupe de nœuds dans lequel placer l'instance.
    • [VCPUS] est le nombre de processeurs virtuels à utiliser avec cette instance.
    • [MEMORY] est la quantité en Mo de mémoire système pour l'instance. Par exemple, vous pouvez spécifier 5376MB.
    • [NETWORK] est le nom du réseau auquel connecter votre instance.
    • [SUBNETWORK] est le nom du sous-réseau auquel connecter votre instance.

Étape suivante

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Compute Engine