Les exemples suivants illustrent le clonage d'environnements d'initialisation et les divergences du processus de clonage en fonction de la zone et de la structure des jeux de données. Le premier exemple illustre la façon dont le clonage opère dans un système incluant des zones globales et non globales. Le deuxième exemple montre les spécificités du jeu de données liées au clonage. Le troisième exemple montre ce qu'il advient des jeux de données partagés lorsque vous clonez un système.
Cet exemple présente l'impact sur les zones de la commande beadm create lorsque vous clonez un environnement d'initialisation dans une zone globale contenant des zones non globales.
Si l'environnement d'initialisation en cours de clonage est associé à un environnement d'initialisation de zone dans une zone non globale, l'environnement d'initialisation associé est également cloné. Par exemple : BE1 est associé à un environnement d'initialisation de zone, BE2, dans une zone non globale. Si BE1 est cloné, BE2 est également cloné.
Dans cet exemple, l'environnement d'initialisation original de la zone globale est nommé solaris et le jeu de données root se trouve sous rpool/ROOT/solaris.
Il existe une zone globale nommée z1 dont le chemin de zone est le jeu de données rpool/zones/z1. L'environnement d'initialisation original solaris de la zone globale est associé à l'environnement d'initialisation de la zone non globale z1. Cet environnement d'initialisation associé nommé solaris contient un jeu de données root sous rpool/zones/z1/rpool/ROOT/solaris.
# zfs list -r rpool NAME USED AVAIL REFER MOUNTPOINT rpool 11.5G 3.89G 4.46M /rpool rpool/ROOT 8.47G 3.89G 31K legacy rpool/ROOT/solaris 2.98M 3.89G 2.49G / rpool/ROOT/solaris/var 428K 3.89G 298M /var rpool/dump 1.03G 3.92G 1.00G - rpool/export 120K 3.89G 32K /export rpool/export/home 88.5K 3.89G 32K /export/home rpool/export/home/user1 56.5K 3.89G 56.5K /export/home/user1 rpool/swap 1.03G 3.92G 1.00G - rpool/zones 672M 3.89G 32K /zones rpool/zones/z1 672M 3.89G 32K /zones/z1 rpool/zones/z1/rpool 671M 3.89G 31K /rpool rpool/zones/z1/rpool/ROOT 671M 3.89G 31K legacy rpool/zones/z1/rpool/ROOT/solaris 671M 3.89G 591M /zones/z1/root rpool/zones/z1/rpool/ROOT/solaris/var 79.3M 3.89G 78.4M /zones/z1/root/var rpool/zones/z1/rpool/export 62K 3.89G 31K /export rpool/zones/z1/rpool/export/home 31K 3.89G 31K /export/home
Dans cet exemple, la commande suivante est exécutée en tant que root afin de cloner l'environnement d'initialisation dans la zone globale et de nommer le nouvel environnement d'initialisation solaris-1 :
# beadm create test # zfs list -r rpool NAME USED AVAIL REFER MOUNTPOINT rpool 11.5G 3.89G 4.46M /rpool rpool/ROOT 8.47G 3.89G 31K legacy rpool/ROOT/solaris 2.98M 3.89G 2.49G / rpool/ROOT/solaris/var 428K 3.89G 298M /var rpool/ROOT/test 71K 3.89G 2.50G / rpool/ROOT/test/var 1K 3.89G 2.88G /var rpool/dump 1.03G 3.92G 1.00G - rpool/export 120K 3.89G 32K /export rpool/export/home 88.5K 3.89G 32K /export/home rpool/export/home/user1 56.5K 3.89G 56.5K /export/home/user1 rpool/swap 1.03G 3.92G 1.00G - rpool/zones 672M 3.89G 32K /zones rpool/zones/z1 672M 3.89G 32K /zones/z1 rpool/zones/z1/rpool 671M 3.89G 31K /rpool rpool/zones/z1/rpool/ROOT 671M 3.89G 31K legacy rpool/zones/z1/rpool/ROOT/solaris 671M 3.89G 591M /zones/z1/root rpool/zones/z1/rpool/ROOT/solaris/var 79.3M 3.89G 78.4M /zones/z1/root/var rpool/zones/z1/rpool/ROOT/solaris-1 2K 3.89G 591M / rpool/zones/z1/rpool/ROOT/solaris-1/var 1K 3.89G 78.4M /var rpool/zones/z1/rpool/export 62K 3.89G 31K /export rpool/zones/z1/rpool/export/home 31K 3.89G 31K /export/home
Le clone est nommé test et son jeu de données se trouve sous rpool/ROOT/test.
Notez que dans la mesure où l'environnement d'initialisation solaris de la zone globale est associé à un environnement d'initialisation de zone dans la zone non globale z1, le processus de clonage clone également l'environnement d'initialisation de zone associé dans z1. Le jeu de données root du nouveau clone solaris-1 de la zone z1 se trouve sous rpool/zones/z1/rpool/ROOT/solaris-1.
Exemple 3-2 Clonage d'un nouvel environnement d'initialisation avec des jeux de donnéesCet exemple présente la configuration des jeux de données dans un environnement d'initialisation qui vient d'être créé. Cet exemple n'implique pas plusieurs zones.
En tant qu'utilisateur root, exécutez la commande suivante.
# beadm create BE2
Dans cet exemple, l'environnement d'initialisation original est BE1 et son jeu de données root se trouve sous rpool/ROOT/BE1 et contient un autre jeu de données, var.
# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 42.5G 24.4G 4.65M /rpool rpool/ROOT 25.6G 24.4G 31K legacy rpool/ROOT/BE1 8.91M 24.4G 4.17G / rpool/ROOT/BE1/var 3.96M 24.4G 276M /var
Une fois BE1 cloné, le nouveau clone, BE2, contient un jeu de données root et d'autres jeux de données imbriqués, tous clonés à partir de BE1. Etant donné que BE1 contient le système de fichiers /var sous le jeu de données root, /var a également été cloné.
# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 42.5G 24.4G 4.65M /rpool rpool/ROOT 25.6G 24.4G 31K legacy rpool/ROOT/BE1 8.91M 24.4G 4.17G / rpool/ROOT/BE1/var 3.96M 24.4G 276M /var rpool/ROOT/BE2 8.91M 24.4G 4.17G / rpool/ROOT/BE2/var 3.96M 24.4G 276M /var
Au contraire, si un système de fichiers partagé est situé en dehors du jeu de données root, ce système de fichiers n'est jamais cloné. L'environnement d'initialisation d'origine et le clone se partageraient le système de fichiers partagé d'origine, comme indiqué dans l'exemple suivant.
Exemple 3-3 Création d'un nouvel environnement d'initialisation avec des jeux de données partagés existantsCet exemple présente la création d'un nouvel environnement d'initialisation lorsqu'il existe des jeux de données partagés. Dans cet exemple, l'environnement d'initialisation original est BE1 et les jeux de données partagés sont rpool/export et rpool/export/home. Cet exemple n'implique pas plusieurs zones.
En tant qu'utilisateur root, exécutez la commande permettant de cloner BE1 et de nommer le clone BE2 :
# beadm create BE2
Les jeux de données partagés, tank et tank/export, ne sont pas clonés lors du clonage de l'environnement d'initialisation. Les jeux de données partagés se trouvent hors des jeux de données rpool/ROOT/BeName et sont référencés à leur emplacement d'origine par l'environnement d'initialisation cloné, BE2.
L'environnement d'initialisation d'origine, BE1, et les jeux de données sont les suivants :
# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 42.5G 24.4G 4.65M /rpool rpool/ROOT 25.6G 24.4G 31K legacy rpool/ROOT/BE1 8.91M 24.4G 4.17G / rpool/ROOT/BE1/var 3.96M 24.4G 276M /var tank 450K 457G 18K /tank tank/home 315K 457G 21K /tank/home
Le jeu de données root est situé sous rpool/ROOT/BE1 et un jeu de données /var est situé sous le jeu de données root. Le jeu de données root et /var sont tous deux clonés.
L'environnement d'initialisation cloné, BE2, possède un nouveau jeu de données root et un nouveau jeu de données /var, mais les jeux de données partagés originaux, tank et tank/home, restent inchangés.
# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 42.5G 24.4G 4.65M /rpool rpool/ROOT 25.6G 24.4G 31K legacy rpool/ROOT/BE1 8.91M 24.4G 4.17G / rpool/ROOT/BE1/var 3.96M 24.4G 276M /var rpool/ROOT/BE2 8.91M 24.4G 4.17G / rpool/ROOT/BE2/var 3.96M 24.4G 276M /var tank 450K 457G 18K /tank tank/home 315K 457G 21K /tank/home