Création et utilisation d'Oracle® Solaris Zones

Quitter la vue de l'impression

Mis à jour : Mai 2015
 
 

Configuration d'une zone

Pour créer une zone non globale, seules les propriétés zonename et zonepath sont nécessaires pour les zones avec une ressource rootzpool. Les autres ressources et propriétés sont facultatives. Pour certaines ressources facultatives, vous devez également choisir entre plusieurs possibilités, comme par exemple, utiliser la ressource dedicated-cpu ou la ressource capped-cpu. Reportez-vous à la section Données de configuration de zones du manuel Présentation d’Oracle Solaris Zones pour plus d'informations sur les propriétés et les ressources zonecfg.

Pour effectuer cette procédure, vous devez être administrateur global ou disposer des autorisations appropriées pour la zone globale.

  1. Connectez-vous en tant qu'administrateur.

    Pour plus d'informations, reportez-vous à la section A l’aide de vos droits administratifs attribués du manuel Sécurisation des utilisateurs et des processus dans Oracle Solaris 11.2 .

  2. Attribuez à la zone le nom que vous avez choisi.

    Dans cet exemple, la zone est nommée my-zone.

    global# zonecfg -z my-zone

    Si c'est la première fois que vous configurez cette zone, le message suivant s'affiche :

    my-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  3. Créez la configuration de la nouvelle zone.

    Les paramètres utilisés sont les paramètres par défaut.

    zonecfg:my-zone> create
    create: Using system default template 'SYSdefault'
  4. Définissez le chemin de la zone, ici /zones/my-zone.
    zonecfg:my-zone> set zonepath=/zones/my-zone

    La zone doit résider sur un jeu de données ZFS. Le jeu de données ZFS est automatiquement créé lorsque la zone est installée ou jointe. Si un jeu de données ZFS ne peut pas être créé, l'installation ou la jonction de la zone est impossible. Notez que si le répertoire parent du chemin de la zone existe, il doit correspondre au point de montage d'un jeu de données monté.

    Si le jeton %{zonename} a été utilisé explicitement à la place du nom de la zone dans le chemin zonepath, les outils Unified Archive et de zones remplaceraient le nom de la zone existante par le nom de la nouvelle zone lorsque la zone est clonée.

    zonecfg:my-zone> set zonepath=/zones/%{zonename}

    Reportez-vous à la section Propriété zonecfg template du manuel Présentation d’Oracle Solaris Zones .

  5. Définissez la valeur d'initialisation automatique.

    Si cette propriété est définie sur true, l'initialisation de la zone globale entraîne automatiquement celle de cette zone. La valeur par défaut est false. Notez que les zones ne s'initialisent automatiquement que si le service svc:/system/zones:default est activé. Ce service est activé par défaut.

    zonecfg:my-zone> set autoboot=true
  6. Définissez des arguments d'initialisation permanents pour la zone.
    zonecfg:my-zone> set bootargs="-m verbose"
  7. Dédiez une ou plusieurs CPU à cette zone.
    zonecfg:my-zone> add dedicated-cpu
    1. Définissez le nombre de CPU.
      zonecfg:my-zone:dedicated-cpu> set ncpus=1-2
    2. (Facultatif) Définissez l'importance.
      zonecfg:my-zone:dedicated-cpu> set importance=10

      La valeur par défaut est 1.

    3. Clôturez la spécification.
      zonecfg:my-zone:dedicated-cpu> end
  8. Révisez le jeu de privilèges par défaut.
    zonecfg:my-zone> set limitpriv="default,sys_time"

    Cette ligne ajoute la capacité à définir l'horloge système sur le jeu de privilèges par défaut.

  9. Définissez la classe de programmation sur FSS.
    zonecfg:my-zone> set scheduling-class=FSS
  10. Ajoutez une limite de mémoire.
    zonecfg:my-zone> add capped-memory
    1. Définissez la limite de mémoire.
      zonecfg:my-zone:capped-memory> set physical=1g
    2. Définissez la limite de mémoire swap.
      zonecfg:my-zone:capped-memory> set swap=2g
    3. Définissez la limite de mémoire verrouillée.
      zonecfg:my-zone:capped-memory> set locked=500m
    4. Terminez la spécification des limites de mémoire.
      zonecfg:my-zone:capped-memory> end

    Remarque -  Pour utiliser la ressource capped-memory, le package resource-cap doit être installé dans la zone globale.
  11. Ajoutez un système de fichiers.
    zonecfg:my-zone> add fs
    1. Définissez le point de montage du système de fichiers, ici /usr/local.
      zonecfg:my-zone:fs> set dir=/usr/local
    2. Spécifiez que /opt/local de la zone globale doit être monté comme /usr/local dans la zone en cours de configuration.
      zonecfg:my-zone:fs> set special=/opt/local

      Dans la zone non globale, le système de fichiers /usr/local sera accessible en lecture et en écriture.

    3. Spécifiez le type de système de fichiers, ici lofs.
      zonecfg:my-zone:fs> set type=lofs

      Le type indique la manière dont le noyau dialogue avec le système de fichiers.

    4. Clôturez la spécification du système de fichiers.
      zonecfg:my-zone:fs> end

    Cette étape peut être répétée pour ajouter plus d'un système de fichiers.

  12. Au besoin, définissez l'ID de l'hôte hostid.
    zonecfg:my-zone> set hostid=80f0c086
  13. Ajoutez un jeu de données ZFS nommé sales dans le pool de stockage tank.
    zonecfg:my-zone> add dataset
    1. Spécifiez le chemin du jeu de données ZFS sales.
      zonecfg:my-zone> set name=tank/sales
    2. Terminez la spécification du jeu de données.
      zonecfg:my-zone> end

    L'administrateur de zone peut créer et détruire les instantanés, les systèmes de fichiers et les volumes dans le jeu de données. L'administrateur de zone peut modifier les propriétés de l'ensemble de données et contrôler la compression et le chiffrement.

  14. Créez une zone en mode IP exclusif avec une carte d'interface réseau virtuelle (VNIC) automatique.
    zonecfg:my-zone> set ip-type=exclusive
    zonecfg:my-zone> add anet
    1. Choisissez le lien sous-jacent auto pour créer le lien.
      zonecfg:my-zone:anet> set lower-link=auto

      Le démon zoneadmd sélectionne automatiquement le lien sur lequel la VNIC va être créée à chaque initialisation de la zone. Les liaisons IPoIB sont ignorées lorsque vous sélectionnez la liaison de données.

    2. Clôturez la spécification.
      zonecfg:my-zone:anet> end
  15. Ajoutez un périphérique.
    zonecfg:my-zone> add device
    1. Définissez la correspondance de périphérique, /dev/sound/* dans cette procédure.
      zonecfg:my-zone:device> set match=/dev/sound/*
    2. Terminez la spécification du périphérique.
      zonecfg:my-zone:device> end

    Cette étape peut être répétée pour ajouter plusieurs périphériques.

  16. Ajoutez des périphériques OFUV (Open Fabrics User Verbs) pour les composants d'OFUV qui ne sont pas des outils de diagnostic IB.
    zonecfg:my-zone> add device
    1. Définissez la correspondance de périphérique, infiniband/ofs/* dans cette procédure.
      zonecfg:my-zone:device> set match=infiniband/ofs/*
    2. Terminez la spécification du périphérique.
      zonecfg:my-zone:device> end

    Les outils de diagnostic IB ne sont pas pris en charge dans les zones non globales. Les périphériques ajoutés peuvent être utilisés avec les composants d'OFUV, par exemple les verbes et rdma_cm.

    Cette étape peut être répétée pour ajouter plusieurs périphériques.

  17. Ajoutez les périphériques OFUV pour les composants d'OFUV autres que les outils de diagnostic IB.
    zonecfg:my-zone> add device
    1. Définissez la correspondance de périphérique, infiniband/hca/*, dans cette procédure.
      zonecfg:my-zone:device> set match=infiniband/hca/*
    2. Terminez la spécification du périphérique.
      zonecfg:my-zone:device> end

    Les outils de diagnostic IB ne sont pas pris en charge dans les zones non globales. Les périphériques ajoutés peuvent être utilisés avec les composants d'OFUV, par exemple les verbes et rdma_cm.

    Cette étape peut être répétée pour ajouter plusieurs périphériques.

  18. Pour permettre l'étiquetage du disque avec la commande format, un disque/LUN entier doit être délégué à une zone et la propriété allow-partition doit être définie.
    zonecfg:my-zone> add device
    1. Définissez la correspondance de périphérique, ici /dev/*dsk/c2t40d3*.
      zonecfg:my-zone:device> set match=/dev/*dsk/c2t40d3*
    2. Réglez la propriété allow-partition sur true.
      zonecfg:my-zone:device> set allow-partition=true
    3. Terminez la spécification du périphérique.
      zonecfg:my-zone:device> end

    Cette étape peut être répétée pour ajouter plusieurs périphériques.

  19. Afin d'autoriser les opérations uscsi sur un disque, vous devez définir la propriété allow-raw-io.
    zonecfg:my-zone> add device
    1. Définissez la correspondance de périphérique, ici /dev/*dsk/c2t40d3*.
      zonecfg:my-zone:device> set match=/dev/*dsk/c2t40d3*
    2. Réglez la propriété allow-raw-io sur true.
      zonecfg:my-zone:device> set allow-raw-io=true
    3. Terminez la spécification du périphérique.
      zonecfg:my-zone:device> end

      Caution

      Mise en garde  -  Si vous autorisez les opérations uscsi d'une zone sur un disque, vous autorisez l'accès de la zone à tout autre périphérique connecté au même bus que le disque. Par conséquent, l'activation de cette fonctionnalité peut créer un risque en matière de sécurité et susciter des attaques contre la zone globale ou d'autres zones qui utilisent les ressources sur le même bus. Pour plus d'informations, reportez-vous à uscsi(7I).


    Cette étape peut être répétée pour ajouter plusieurs périphériques.

  20. Ajoutez un contrôle de ressource à l'échelle de la zone à l'aide du nom de propriété.
    zonecfg:my-zone> set max-sem-ids=10485200

    Cette étape peut être répétée pour ajouter plusieurs contrôles de ressource.

  21. Ajoutez un commentaire à l'aide du type de ressource attr.
    zonecfg:my-zone> add attr
    1. Définissez le nom sur comment.
      zonecfg:my-zone:attr> set name=comment
    2. Définissez le type sur string.
      zonecfg:my-zone:attr> set type=string
    3. Définissez la valeur sur un commentaire décrivant cette zone.
      zonecfg:my-zone:attr> set value="This is my work zone."
    4. Clôturez la spécification du type de ressource attr.
      zonecfg:my-zone:attr> end
  22. Vérifiez la configuration de la zone.
    zonecfg:my-zone> verify
  23. Validez la configuration de la zone.
    zonecfg:my-zone> commit
  24. Quittez la commande zonecfg.
    zonecfg:my-zone> exit

    Notez que, même si vous ne répondez pas explicitement commit à l'invite, l'opération commit est automatiquement tentée lorsque vous tapez exit ou lorsqu'une condition EOF se produit.

Utilisation de plusieurs sous-commandes sur la ligne de commande


Conseil  -  La commande zonecfg prend également en charge des sous-commandes multiples, placées entre guillemets et séparées par des points-virgules, d'un même appel de shell.
global# zonecfg -z my-zone "create ; set zonepath=/zones/my-zone"
Pour les zones en mode IP partagé, vous ne pouvez affecter une adresse statique qu'à une ressource zonecfg net. Elle n'est pas disponible sur la ligne de commande.