Guide d'administration système : Gestion des ressources des conteneurs et des zones Oracle Solaris

Chapitre 23 Déplacement et migration de zones non globales (tâches)

Ce chapitre est nouveau pour la version Solaris 10 11/06. Des fonctions supplémentaires ont été ajoutées dans les versions ultérieures.

Ce chapitre décrit comment :

À partir de la version 10 10/08 de Solaris, lorsqu'un nouvel hôte dispose de la même version ou d'une version plus récente des packages dépendants de zones et des patchs associés, la commande zoneadm attach avec l'option -u permet de mettre à jour le jeu de packages minimum de la zone pour qu'il corresponde à celui du nouvel hôte. Si le nouvel hôte dispose à la fois de patchs plus anciens et plus récents que les patchs de l'hôte source, aucune mise à jour n'est autorisée au cours du rattachement.

La commande zoneadm attach avec l'option -u permet également migrer des données entre les classes de machine, notamment de la classe sun4u vers la classe sun4v.

À partir de la version Solaris 10 9/10, l'utilisation de la commande zoneadm attach avec l'option -u permet de mettre à jour tous les packages pour la zone, de sorte que ces packages correspondent à ceux qui seront affichés avec une nouvelle zone non globale installée sur cet hôte. Tout package installé à l'intérieur de la zone, mais qui n'est pas installé dans la zone globale n'est pas pris en compte et laissé en l'état. Cette option permet également d'effectuer une migration automatique d'une classe de machine vers une autre, notamment de sun4u vers sun4v.

Au lieu d'effectuer une mise à jour normale, les zones peuvent être retirées pendant la mise à jour de la zone globale, puis reconnectées avec l'option -u pour correspondre au niveau de patch de la zone globale.

Pour plus d'informations sur le déplacement et la migration de zones marquées lx, reportez-vous au Chapitre 37Déplacement et migration de zones marquées lx (tâches).

Solaris 10 11/06 : déplacement d'une zone non globale

Cette procédure permet de déplacer la zone vers un nouvel emplacement sur le même système en modifiant le zonepath. La zone doit être arrêtée. Le nouveau zonepath doit se trouver dans un système de fichiers local. Les critères de zonepath normaux décrits dans Types de ressources et de propriétés s'appliquent.

ProcedureDéplacement d'une zone

Pour exécuter la procédure ci-dessous, vous devez être administrateur global.

  1. Devenez superutilisateur ou assumez le rôle d'administrateur principal.

    Pour savoir comment créer le rôle et l'assigner à un utilisateur, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Arrêtez la zone à déplacer, ici db-zone.


    global# zoneadm -z db-zone halt
    
  3. Utilisez la commande zoneadm avec la sous-commande move pour déplacer la zone vers un nouveau zonepath, /export/zones/db-zone .


    global# zoneadm -z db-zone move /export/zones/db-zone
    
  4. Vérifiez le chemin.


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     -  my-zone  installed    /export/home/my-zone           native     shared
     -  db-zone  installed    /export/zones/db-zone          native     shared

Solaris 10 11/06 : migration d'une zone non globale vers une autre machine

La version Solaris 10 5/08 vous permet d'effectuer un essai de migration de zone avant de déplacer réellement la zone vers une machine différente. Pour plus d'informations, reportez-vous à la section Solaris 10 5/08 : à propos de la validation d'une zone avant la migration.

À propos de la migration d'une zone

Des informations supplémentaires ont été ajoutées à cette section depuis la version Solaris 10 11/06.

Vous pouvez utiliser les commandes zonecfg et zoneadm afin de migrer une zone non globale d'un système vers un autre. La zone est arrêtée et séparée de son hôte actuel. Le zonepath est déplacé vers l'hôte cible où il est attaché.

Les restrictions suivantes s'appliquent à la migration de zone :

Pour vérifier la version Solaris et l'architecture machine, tapez :


#uname -m

Le processus zoneadm detach permet la création des informations nécessaires au rattachement de la zone à un système différent. Le processus zoneadm attach vérifie que la configuration de la machine cible est adaptée à la zone.

Il existe plusieurs manières de rendre le zonepath disponible sur le nouvel hôte. C'est pour cela que le passage réel du zonepath d'un système vers un autre est un processus manuel qui est réalisé par l'administrateur global.

Une fois jointe au nouveau système, la zone est à l'état Installé.

ProcedureMigration d'une zone non globale

Vous devez vous connecter en tant qu'administrateur global de la zone globale pour effectuer cette procédure.

  1. Devenez superutilisateur ou assumez le rôle d'administrateur principal.

    Pour savoir comment créer le rôle et l'assigner à un utilisateur, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Arrêtez la zone à migrer, ici my-zone.


    host1# zoneadm -z my-zone halt
    
  3. Détachez la zone.


    host1# zoneadm -z my-zone detach
    

    La zone détachée est maintenant en état configuré.

  4. Déplacez le zonepath de my-zone vers le nouvel hôte.

    Pour plus d'informations, reportez-vous à la section Déplacement du zonepath vers un nouvel hôte.

  5. Dans le nouvel hôte, configurez la zone.


    host2# zonecfg -z my-zone
    

    Le message système suivant s'affiche :


    my-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  6. Pour créer la zone my-zone dans le nouvel hôte, utilisez la commande zonecfg en spécifiant l'option -a et le zonepath sur le nouvel hôte.


    zonecfg:my-zone> create -a /export/zones/my-zone
    
  7. (Facultatif) Affichez la configuration.


    zonecfg:my-zone> info
    zonename: my-zone
    zonepath: /export/zones/my-zone
    autoboot: false
    pool:
    inherit-pkg-dir:
             dir: /lib
    inherit-pkg-dir:
             dir: /platform
    inherit-pkg-dir:
             dir: /sbin
    inherit-pkg-dir:
             dir: /usr
    net:
             address: 192.168.0.90
             physical: bge0
  8. Effectuez toute modification nécessaire à la configuration.

    Par exemple, le périphérique physique du réseau est différent sur le nouvel hôte, ou les périphériques faisant partie de la configuration ont des noms différents sur le nouvel hôte.


    zonecfg:my-zone> select net physical=bge0
    zonecfg:my-zone:net> set physical=e1000g0
    zonecfg:my-zone:net> end
    
  9. Validez la configuration et quittez-la.


    zonecfg:my-zone> commit
    zonecfg:my-zone> exit
    
  10. Rattachez la zone au nouvel hôte à l'aide d'une des méthodes suivantes.

    • Rattachez la zone avec une coche de validation.


      host2# zoneadm -z my-zone attach
      

      L'administrateur système est notifié des actions requises à effectuer si une des deux ou les deux conditions suivantes sont présentes :

      • Les packages et patchs requis ne se trouvent pas sur la nouvelle machine.

      • Les machines ne disposent pas des mêmes niveaux de logiciel.

    • Solaris 10 10/08 : rattachez la zone avec une coche de validation et mettez-la à jour afin de la faire correspondre à un hôte exécutant des versions plus récentes des packages dépendants ou disposant d'une classe de machine différente lors du rattachement.


      host2# zoneadm -z my-zone attach -u
      

      Astuce –

      Solaris 10 10/08 : si le système source exécute une version antérieure du système Solaris, il risque de ne pas générer la liste de packages correcte lors du détachement de la zone. Pour vous assurer que la liste de packages correcte est générée sur le système cible, vous pouvez supprimer le fichier SUNWdetached.xml du zonepath. La suppression de ce fichier entraîne la génération d'une nouvelle liste de packages par le système cible.

      Cela n'est pas nécessaire avec la version Solaris 10 5/09 et les versions ultérieures.


    • Solaris 10 9/10 : rattachez la zone en cochant la case de validation correspondante et mettez à jour tous les packages de la zone pour que ces derniers correspondent pour qu'ils correspondent aux données de l'installation d'une nouvelle zone non globale sur cet hôte. Tout package installé à l'intérieur de la zone, mais qui n'est pas installé dans la zone globale n'est pas pris en compte et laissé en l'état.


      host2# zoneadm -z my-zone attach -U
      
    • Solaris 10 5/09 et versions ultérieures : utilisez également l'option -b pour désinstaller les patchs spécifiés, officiels ou IDR, au cours du rattachement.


      host2# zoneadm -z my-zone attach -u -b IDR246802-01 -b 123456-08
      

      Vous pouvez utiliser l'option -b indépendamment des options -u ou -U.

    • Forcez l'opération de rattachement sans effectuer de validation.


      host2# zoneadm -z my-zone attach -F
      

      Attention – Attention –

      L'option -F permet de forcer le rattachement attach sans effectuer de validation. Cela peut s'avérer utile dans certains cas, comme par exemple dans celui d'un environnement en cluster ou pour les opérations de sauvegarde et de restauration, mais le système doit être correctement configuré pour héberger la zone. Une configuration incorrecte peut entraîner un comportement indéfini ultérieurement.


ProcedureDéplacement du zonepath vers un nouvel hôte

Il existe de nombreuses méthodes de création d'une archive du zonepath. Vous pouvez par exemple utiliser les commandes cpio ou pax décrites dans les pages de manuel cpio(1)) et pax(1) man pages.

Il existe également de nombreuses méthodes pour le transfert des archives vers le nouvel hôte. Le mécanisme utilisé pour le transfert du zonepath à partir de l'hôte source vers sa destination dépend de la configuration locale. Dans certains cas, comme celui d'un SAN, les données de zonepath pourraient ne pas se déplacer. Il suffit de reconfigurer le SAN pour que le zonepath soit visible dans le nouvel hôte. Dans d'autres cas, le zonepath peut être écrit sur une bande, laquelle est ensuite envoyée à un autre site.

C'est pour cela que cette étape n'est pas automatisée. L'administrateur système doit sélectionner la technique la plus adaptée pour le déplacement du zonepath vers le nouvel hôte.

  1. Devenez superutilisateur ou assumez le rôle d'administrateur principal.

    Pour savoir comment créer le rôle et l'assigner à un utilisateur, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Déplacez le zonepath vers le nouvel hôte. Utilisez soit la méthode décrite dans cette procédure, soit une autre méthode.


Exemple 23–1 Archivage et déplacement du zonepath à l'aide de la commande tar

  1. Créez un fichier tar pour le zonepath sur host1 et transférez-le vers host2 à l'aide de la commande sftp.


    host1# cd /export/zones
    host1# tar cf my-zone.tar my-zone
    host1# sftp host2
    Connecting to host2...
    Password:
    sftp> cd /export/zones
    sftp> put my-zone.tar
    Uploading my-zone.tar to /export/zones/my-zone.tar
    sftp> quit
    
  2. Dans host2, décompressez le fichier tar.


    host2# cd /export/zones
    host2# tar xf my-zone.tar
    

Pour de plus amples informations, reportez-vous aux pages de manuel sftp(1) et tar(1).


Erreurs fréquentes

Consultez la section Résolution de problèmes via l'opération zoneadm attach pour obtenir des informations relatives à la résolution des problèmes suivants :

Étapes suivantes

Si vous avez copié les données (au lieu de reconfigurer un SAN), les données zonepath restent visibles sur l'hôte source alors même que la zone se trouve à présent en état Configuré. Vous pouvez supprimer le zonepath de l'hôte source manuellement une fois les données déplacées vers le nouvel hôte ou, reconnecter la zone à l'hôte source et utiliser la commande zoneadm uninstall pour supprimer le zonepath.

Solaris 10 5/08 : à propos de la validation d'une zone avant la migration

Avant de déplacer une zone vers une nouvelle machine, vous pouvez simuler sa migration grâce à l'option "no execute" -n.

La sous-commande zoneadm detach utilisée avec l'option -n génère un fichier manifest sur une zone en cours d'exécution sans séparer réellement cette dernière du système d'origine. L'état de la zone sur ce système demeure donc inchangé. Le fichier manifest de la zone est envoyé à stdout. L'administrateur global peut diriger cette sortie vers un fichier ou l'envoyer dans une commande distante en vue de sa validation immédiate sur l'hôte cible. La sous-commande zoneadm attach utilisée avec l'option -n interprète le fichier manifest et s'assure que la configuration de la machine cible permet effectivement d'héberger la zone sans procéder à un rattachement.

Il n'est pas nécessaire de configurer la zone du système cible sur le nouvel hôte avant de simuler un rattachement.

ProcedureSolaris 10 5/08 : méthode de validation d'une migration de zone avant la migration réelle

Pour exécuter la procédure ci-dessous, vous devez être administrateur global.

  1. Devenez superutilisateur ou assumez le rôle d'administrateur principal.

    Pour savoir comment créer le rôle et l'assigner à un utilisateur, reportez-vous à la section Using the Solaris Management Tools With RBAC (Task Map) du System Administration Guide: Basic Administration.

  2. Choisissez l'une des méthodes suivantes.

    • Générez le fichier manifest sur l'hôte source pour my-zone et envoyez la sortie dans une commande distante en vue de sa validation immédiate sur l'hôte cible :


      global# zoneadm -z my-zone detach -n | ssh remotehost zoneadm attach -n -
      

      Le trait d'union () figurant en fin de ligne spécifie la stdin pour le chemin.

      La validation est dirigée en sortie vers l'écran de l'hôte source, c'est-à-dire stdout.

    • Générez le fichier manifest sur l'hôte source pour my-zone et dirigez la sortie vers un fichier :


      global# zoneadm -z my-zone detach -n > filename
      

      Copiez le fichier manifest sur le nouveau système hôte, comme indiqué à la section Déplacement du zonepath vers un nouvel hôte, puis procédez à la validation :


      global# zoneadm attach -n path_to_manifest
      

      Le chemin peut contenir un trait d'union spécifiant la stdin.

Migration d'une zone à partir d'une machine inutilisable

Une machine hébergeant une zone Solaris native peut se trouver inutilisable. Toutefois, si l'espace de stockage dans lequel réside la zone (un SAN, par exemple) est utilisable, il reste possible de migrer la zone vers un autre hôte. Vous pouvez déplacer le zonepath de la zone vers le nouvel hôte. Dans certains cas, comme celui d'un SAN, les données de zonepath pourraient ne pas se déplacer. Il suffit de reconfigurer le SAN pour que le zonepath soit visible dans le nouvel hôte. Comme la zone n'a pas été correctement séparée, vous devrez d'abord créer la zone sur le nouvel hôte à l'aide de la commande zonecfg. Ensuite, connectez la zone sur le nouvel hôte. Le nouvel hôte indique que la zone n'a pas été correctement séparée, mais le système tente tout de même la connexion.

La procédure à suivre pour réaliser cette tâche correspond aux étapes 4 à 8 de la section Migration d'une zone non globale. Reportez-vous également à la section Déplacement du zonepath vers un nouvel hôte.

Utilisation de la mise à jour lors du rattachement en tant que solution d'application de patch

Le processus de mise à jour lors du rattachement développé pour la migration de zones vers un autre système peut également être utilisé pour l'application de patch aux zones. Cette méthode permet de mettre à disposition la zone globale plus rapidement. L'administrateur système peut contrôler les zones mises à jour en premier et exécuter ces zones avant que des zones moins importantes soient mises à jour et initialisées.

Le processus suivant met à jour tous les patchs de sorte que la zone ressemble à une zone récemment installée sur le système :

  1. Avant d'appliquer un ensemble de patchs à la zone globale, détachez toutes les zones non globales.

  2. Appliquez l'ensemble de patchs à la zone globale.

  3. Une fois l'ensemble appliqué et le système réinitialisé, utilisez la commande zoneadm attach avec l'option -u pour que les zones non globales soient au même niveau de patch que celui de la zone globale.

Tout package installé à l'intérieur de la zone, mais qui n'est pas installé dans la zone globale n'est pas pris en compte et laissé en l'état.

Reportez-vous à la section Solaris 10 10/09 : Application de patchs en parallèle pour réduire le temps d'application de patchs pour une solution d'application de patch rapide exploitant l'utilitaire patchadd.