L'utilitaire beadm permet de créer et de gérer des instantanés et des clones de vos environnements d'initialisation.
Veuillez noter les distinctions suivantes s'appliquant à l'administration d'un environnement d'initialisation :
Un instantané est une image en lecture seule d'un jeu de données ou d'un environnement d'initialisation à un instant t. Un instantané n'est pas amorçable.
Un environnement d'initialisation est un environnement Oracle Solaris amorçable se composant d'un jeu de données root et, en option, d'autres jeux de données montés sous celui-ci. Il ne peut y avoir plus d'un environnement d'initialisation actif à la fois.
Pour créer un clone d'un environnement d'initialisation, copiez un autre environnement d'initialisation. Les clones sont amorçables.
Un clone de l'environnement d'initialisation contient l'intégralité du contenu, ordonné dans une arborescence sous le jeu de données root principal de l'environnement d'initialisation d'origine. Les jeux de données partagés ne se trouvent pas sous le jeu de données root et ne sont pas clonés. À la place, l'environnement d'initialisation accède aux jeux de données partagés d'origine.
Un jeu de données correspond à une entité ZFS, par exemple un clone, un système de fichiers ou un instantané. Dans le contexte de l'administration d'un environnement d'initialisation, le terme « jeu de données » fait plus spécifiquement référence aux spécifications de système de fichiers d'un environnement d'initialisation ou d'un instantané donné.
Les jeux de données partagés sont des répertoires définis par l'utilisateur, comme /export, dont le point de montage est le même dans les deux environnements d'initialisation, actif et inactif. Les jeux de données partagés se trouvent en dehors de la zone du jeu de données root de chaque environnement d'initialisation.
Les jeux de données critiques d'un environnement d'initialisation sont inclus dans la zone du jeu de données root de cet environnement.
Vous devez assumer le rôle root sur votre système pour utiliser l'utilitaire beadm.
Pour des instructions détaillées concernant l'utilitaire beadm, reportez-vous à la page de manuel beadm(1M). Reportez-vous également à l'annexe du Chapitre 4Annexe : Aide-mémoire de beadm.
La sous-commande beadm list permet d'afficher tous les instantanés, environnements d'initialisation et jeux de données créés à l'aide de la commande beadm.
Vous pouvez créer des instantanés et des environnements d'initialisation à l'aide de la commande beadm. Vous pouvez également créer des instantanés et des environnements d'initialisation à l'aide d'autres utilitaires. Par exemple, la commande pkg peut créer automatiquement un clone d'un environnement d'initialisation lors de l'installation ou de la mise à jour des packages à l'aide de cette commande. La sortie de la commande beadm list affiche aussi les environnements d'initialisation qui sont créés au moyen de la commande pkg.
Choisissez les informations à afficher, comme décrit dans cette étape.
Choisissez une option de la commande beadm list dans la liste suivante :
-a : répertorie toutes les informations disponibles sur l'environnement d'initialisation. Cette option inclut les jeux de données et instantanés subordonnés.
-d : répertorie les informations relatives aux jeux de données d'un environnement d'initialisation.
-s : répertorie les informations relatives aux instantanés d'un environnement d'initialisation.
-H : exclut les informations d'en-tête de l'affichage. Si vous choisissez cette option, il devient plus facile de rechercher des scripts ou d'autres programmes dans l'affichage obtenu.
Vous pouvez également choisir de spécifier un nom d'environnement d'initialisation lorsque vous exécutez la commande beadm list.
Par défaut, si vous n'indiquez pas de nom d'environnement d'initialisation, les résultats incluent tous les environnements d'initialisation.
Si vous spécifiez en revanche le nom d'un environnement d'initialisation dans la commande beadm list, les informations obtenues ne concerneront que celui-ci.
Saisissez la commande beadm list avec les options de votre choix.
Par exemple, vous pouvez inclure l'option -a et spécifier l'environnement d'initialisation BE1 (Boot Environment 1) comme suit :
$ beadm list -a BE1 |
Examinez les informations affichées relatives aux environnements d'initialisation disponibles.
Cet exemple inclut l'option -a et spécifie l'environnement d'initialisation BE2 (Boot Environment 2) comme suit :
$ beadm list -a BE2 |
Des résultats s'affichent. L'environnement BE2 sera actif à la réinitialisation, comme indiqué par le R qui figure dans la colonne Active (Actif).
BE/Dataset Active Mountpoint Space Policy Created ---------- ------ ---------- ----- ------ ------- BE2 rpool/ROOT/BE2 R /mnt 89.67M static 2008-09-17 20:17 rpool/ROOT/BE2/var - /mnt/var 0 static 2008-09-17 20:17 |
Deux jeux de données sont inclus dans BE2, le jeu de données rpool/ROOT/BE2 et le jeu de données rpool/ROOT/BE2/var. Les valeurs indiquées dans la colonne Active (Actif) peuvent être :
R : actif à la réinitialisation ;
N : actif en ce moment ;
« - » : inactif.
Cet exemple inclut l'option -s qui affiche des informations sur tout instantané présent sur l'image actuelle. L'état de ces instantanés correspond à la liste affichée par la commande zfs(1M).
$ beadm list -s test-2 |
Des résultats s'affichent.
BE/Snapshot Space Policy Created ----------- ----- ------ ------- test-2 test-2@2010-04-12-22:29:27 264.02M static 2010-04-12 16:29 test-2@2010-06-02-20:28:51 32.50M static 2010-06-02 14:28 test-2@2010-06-03-16:51:01 16.66M static 2010-06-03 10:51 test-2@2010-07-13-22:01:56 25.93M static 2010-07-13 16:01 test-2@2010-07-21-17:15:15 26.00M static 2010-07-21 11:15 test-2@2010-07-25-19:07:03 13.75M static 2010-07-25 13:07 test-2@2010-07-25-20:33:41 12.32M static 2010-07-25 14:33 test-2@2010-07-25-20:41:23 30.60M static 2010-07-25 14:41 test-2@2010-08-06-15:53:15 8.92M static 2010-08-06 09:53 test-2@2010-08-06-16:00:37 8.92M static 2010-08-06 10:00 test-2@2010-08-09-16:06:11 193.72M static 2010-08-09 10:06 test-2@2010-08-09-20:28:59 102.69M static 2010-08-09 14:28 test-2@install 205.10M static 2010-03-16 19:04 |
Dans les exemples de résultats, chaque instantané titre inclut un horodatage, indiquant le moment auquel l'instantané a été pris.
Si vous voulez créer une sauvegarde d'un environnement d'initialisation existant, par exemple avant de modifier l'environnement d'initialisation original, vous pouvez utiliser la commande beadm pour créer et monter un nouvel environnement d'initialisation qui soit un clone de votre environnement d'initialisation actif. Ce clone est inactif et s'affiche en tant qu'option secondaire à la réinitialisation dans le menu de GRUB pour les systèmes x86 et dans le menu d'initialisation pour les systèmes SPARC. Le menu d'initialisation SPARC est situé dans le fichier /rpool/boot/menu.lst.
À la création d'un nouveau environnement d'initialisation, un instantané de l'environnement d'initialisation d'origine est automatiquement pris. Un clone est ensuite dérivé de cet instantané. Le nouvel instantané et le nouveau clone sont conservés par le système.
Sur la ligne de commande, saisissez ce qui suit :
$ beadm create beName |
La variable beName correspond au nom du nouvel environnement d'initialisation. Ce nouvel environnement d'initialisation est inactif.
La commande beadm create ne crée pas d'environnement d'initialisation partiel. Soit elle crée un environnement d'initialisation complet, soit elle échoue.
(Facultatif) La commande beadm mount permet de monter le nouvel environnement d'initialisation comme suit :
$ beadm mount beName mountpoint |
Si le répertoire du point de montage n'existe pas, l'utilitaire beadm le crée puis y monte l'environnement d'initialisation.
Si l'environnement d'initialisation est déjà monté, la commande beadm mount échoue et ne remonte pas l'environnement d'initialisation au nouvel emplacement spécifié.
L'environnement d'initialisation est monté mais reste inactif. Vous pouvez mettre à niveau un environnement d'initialisation inactif monté.
Démontez l'environnement d'initialisation avant la réinitialisation.
(Facultatif) Si vous souhaitez initialiser le système avec ce nouvel environnement d'initialisation, activez l'environnement d'initialisation à l'aide de la commande suivante.
$ beadm activate beName |
La variable beName correspond au nom de l'environnement d'initialisation à activer.
À la réinitialisation, le nouvel environnement d'initialisation actif s'affiche en tant que sélection par défaut dans le menu x86 GRUB ou dans le menu d'initialisation SPARC.
L'environnement d'initialisation par défaut affiché dans le menu de GRUB ou dans le menu d'initialisation correspond toujours au dernier environnement d'initialisation à avoir été activé.
L'exemple suivant illustre les jeux de données dans un environnement d'initialisation qui vient d'être créé.
Saisissez la commande suivante :
$ beadm create BE2 |
Dans cet exemple, l'environnement d'initialisation d'origine est BE1. Le nouvel environnement d'initialisation, BE2, contient des jeux de données distincts clonés à partir de BE1. Si BE1 contient des jeux de données distincts pour les systèmes de fichiers traditionnels, tels que /var ou /opt, alors ces jeux de données sont aussi clonés.
rpool/ROOT/BE1 rpool/ROOT/BE1/usr rpool/ROOT/BE1/var rpool/ROOT/BE1/opt |
rpool/ROOT/BE2 rpool/ROOT/BE2/usr rpool/ROOT/BE2/var rpool/ROOT/BE2/opt |
Dans cet exemple, rpool est le nom du pool de stockage. Le pool existe déjà sur le système, il a été préconfiguré par l'installation initiale ou la mise à niveau. Le jeu de données ROOT est un jeu de données spécial également créé lors de l'installation initiale ou de la mise à niveau. ROOT est exclusivement réservé à une utilisation par les roots de l'environnement d'initialisation.
L'exemple suivant illustre un environnement d'initialisation qui vient d'être créé et a des jeux de données partagés.
Les jeux de données partagés sont des répertoires définis par l'utilisateur, comme /export, dont le point de montage est le même dans les deux environnements d'initialisation, actif et inactif. Les jeux de données partagés se trouvent en dehors de la zone du jeu de données root de chaque environnement d'initialisation.
Saisissez la commande suivante :
$ beadm create BE2 |
Les jeux de données partagés, rpool/export et rpool/export/home, ne sont pas clonés avec l'environnement d'initialisation. Les jeux de données partagés se trouvent hors des jeux de données rpool/ROOT/<BE> et sont référencés à leur emplacement d'origine par l'environnement d'initialisation cloné.
L'environnement d'initialisation d'origine, BE1, et les jeux de données sont les suivants :
rpool/ROOT/BE1 rpool/ROOT/BE1/usr rpool/ROOT/BE1/var rpool/ROOT/BE1/opt rpool/export rpool/export/home |
L'environnement d'initialisation cloné, BE2, a de nouveaux jeux de données root mais les jeux de données partagés d'origine, rpool/export et rpool/export/home, sont inchangés.
rpool/ROOT/BE2 rpool/ROOT/BE2/usr rpool/ROOT/BE2/var rpool/ROOT/BE2/opt rpool/export rpool/export/home |
Par défaut, un nouvel environnement d'initialisation est créé à partir de l'environnement d'initialisation actif. Vous pouvez toutefois créer un environnement d'initialisation basé sur un environnement d'initialisation inactif existant à l'aide de la commande beadm create.
Connectez-vous en tant que superutilisateur ou prenez un rôle équivalent.
Pour créer un environnement d'initialisation inactif à partir d'un environnement d'initialisation inactif, saisissez la commande suivante :
$ beadm create -e non-activeBeName beName |
La variable non-activeBeName correspond à l'environnement d'initialisation inactif existant cloné à l'aide de cette commande.
La variable beName correspond au nom du nouvel environnement d'initialisation.
Par défaut, le nouvel environnement d'initialisation est inactif.
Vous pouvez créer manuellement un instantané d'un environnement d'initialisation existant à titre de référence. Un instantané est une image en lecture seule d'un jeu de données ou d'un environnement d'initialisation à un instant t. Vous pouvez donner à cet instantané un nom personnalisé qui donne une indication sur sa date de création ou son contenu.
Exécutez la commande suivante pour créer un instantané.
$ beadm create BEname@snapshotdescription |
Remplacez la variable BEname@snapshotdescription par le nom que vous souhaitez attribuer à l'instantané. Ce nom personnalisé doit utiliser le format BEname@snapshotdescription, où BEname est le nom de l'environnement d'initialisation à partir duquel vous souhaitez créer cet instantané. Saisissez une description personnalisée de l'instantané (snapshotdescription) qui indique sa date ou son objectif.
Vous pouvez, par exemple, attribuer les noms suivants aux instantanés :
BE1@0312200.12h15 ;
BE2@sauvegarde ;
BE1@13mars2008.
À moins que vous utilisiez la commande beadm create pour affecter un titre personnalisé à un instantané, les titres d'instantanés incluent automatiquement un horodatage qui indique à quel moment l'instantané a été pris.
L'instantané d'un environnement d'initialisation n'est pas amorçable. Vous pouvez cependant créer un nouvel environnement d'initialisation amorçable à partir d'un instantané existant. Vous pouvez ensuite activer et initialiser ce nouvel environnement d'initialisation.
Exécutez la commande suivante pour créer un environnement d'initialisation à partir d'un instantané.
$ beadm create -e BEname@snapshotdescription beName |
Remplacez la variable BEname@snapshotdescription par le nom d'un instantané existant. Comme décrit dans la tâche précédente, les noms d'instantanés adoptent le format BEname@snapshotdescription, où BEname est le nom d'un environnement d'initialisation existant et snapshotdescription la description d'un instantané spécifique réalisé à partir de l'environnement d'initialisation existant.
Remplacez la variable BEname par le nom que vous souhaitez attribuer au nouvel environnement d'initialisation.
Voyez l'exemple suivant :
$ beadm create -e BE1@now BE2 |
Cette commande permet de créer un environnement d'initialisation nommé BE2 à partir de l'instantané BE1@now. Vous pouvez activer cet environnement d'initialisation en suivant la procédure ci-après.
Vous pouvez changer un environnement d'initialisation inactif en un environnement d'initialisation actif. Il ne peut pas y avoir plus d'un environnement d'initialisation actif à la fois. L'environnement d'initialisation que vous venez d'activer deviendra l'environnement par défaut à la première réinitialisation.
Exécutez la commande suivante pour activer un environnement d'initialisation inactif :
$ beadm activate beName |
La variable beName correspond au nom de l'environnement d'initialisation à activer.
Veuillez noter les spécifications suivantes :
beadm activate BEname active un environnement d'initialisation en définissant la propriété de pool amorçable, bootfs, sur la valeur du jeu de données ROOT de l'environnement d'initialisation en cours d'activation.
beadm activate définit l'environnement d'initialisation activé comme environnement par défaut dans le fichier menu.lst.
À la création d'un environnement d'initialisation, qu'il soit ou non actif, une entrée correspondant à cet environnement d'initialisation est créée dans le menu x86 GRUB ou dans le menu d'initialisation SPARC. L'environnement d'initialisation par défaut est le dernier environnement d'initialisation à avoir été activé.
Réinitialisez le système.
L'environnement d'initialisation qui vient d'être activé correspond désormais à l'environnement d'initialisation par défaut dans le menu x86 GRUB ou dans le menu d'initialisation SPARC.
En cas d'échec de l'initialisation de l'environnement d'initialisation, réinitialisez le système et sélectionnez l'environnement d'initialisation précédent à partir du menu de GRUB ou du menu d'initialisation.
Pour mettre à jour des packages sur un environnement d'initialisation inactif existant, vous pouvez monter cet environnement puis, éventuellement, y mettre à jour les packages.
La commande beadm mount permet de monter un environnement d'initialisation comme suit :
$ beadm mount beName mountpoint |
Si le répertoire indiqué pour le point de montage n'existe pas, l'utilitaire beadm le crée puis y monte l'environnement d'initialisation.
Si l'environnement d'initialisation est déjà monté, la commande beadm mount échoue et ne remonte pas l'environnement d'initialisation au nouvel emplacement spécifié.
L'environnement d'initialisation est monté mais reste inactif.
(Facultatif) Vous pouvez mettre à jour les packages sur l'environnement d'initialisation à l'aide de la commande pkg.
Par exemple, vous pouvez également utiliser la commande pkg install, avec l'option -R pour mettre à jour des packages spécifiques dans cet environnement d'initialisation.
$ pkg -R /mnt install packagename |
Où /mnt est le point de montage de l'environnement d'initialisation.
Démontez l'environnement d'initialisation avant la réinitialisation.
Pour plus d'informations, consultez la page de manuel pkg(1)
La commande beadm permet de démonter un environnement d'initialisation existant.
Il est impossible de démonter l'environnement d'initialisation actuellement initialisé.
Pour démonter l'environnement d'initialisation, saisissez la commande suivante :
$ beadm unmount beName |
Si vous voulez rendre davantage d'espace disponible sur votre système, vous pouvez utiliser la commande beadm pour détruire un environnement d'initialisation existant.
Veuillez noter les spécifications suivantes :
Il est impossible de détruire l'environnement d'initialisation en cours d'initialisation.
La commande beadm destroy supprime automatiquement l'entrée de l'environnement d'initialisation détruit du menu x86 GRUB ou dans le menu d'initialisation SPARC.
La commande beadm destroy détruit uniquement les jeux de données critiques ou non-partagés de l'environnement d'initialisation. Les jeux de données partagés se trouvent en dehors de la zone du jeu de données root de l'environnement d'initialisation et ne sont pas affectés lors de la destruction d'un environnement d'initialisation.
Reportez-vous à l'exemple suivant où BE1 et BE2 partagent les jeux de données rpool/export et rpool/export/home. Les jeux de données sont les suivants :
rpool/ROOT/BE1 rpool/ROOT/BE2 rpool/export rpool/export/home |
Détruisez BE2 en utilisant la commande suivante :
beadm destroy BE2 |
Les jeux de données partagés rpool/export et rpool/export/home ne sont pas détruits avec l'environnement d'initialisation BE2. Les jeux de données suivants sont conservés.
rpool/ROOT/BE1 rpool/export rpool/export/home |
Pour détruire un environnement d'initialisation, saisissez la commande suivante :
$ beadm destroy beName |
Avant de détruire l'environnement d'initialisation, la commande beadm destroy vous demande confirmation. Ajoutez l'option -F à la commande beadm destroy pour forcer la destruction de l'environnement d'initialisation sans demande de confirmation. Ajoutez l'option -f pour forcer la destruction de l'environnement d'initialisation même s'il est monté.
La commande beadm rename permet de renommer un environnement d'initialisation existant. Cette commande permet de créer un nom personnalisé pour un environnement d'initialisation, un nom plus significatif, adapté à la situation. Par exemple, vous pourriez renommer les environnements d'initialisation de façon à indiquer comment vous les avez personnalisés. Le nom du jeu de données de l'environnement d'initialisation est également modifié pour correspondre au nom du nouvel environnement d'initialisation.
Un environnement d'initialisation actif ne peut pas être renommé. Vous ne pouvez renommer un environnement d'initialisation que s'il est inactif. Il est impossible de renommer l'environnement d'initialisation en cours d'initialisation. Si vous voulez renommer l'environnement d'initialisation actif, commencez par créer un autre environnement d'initialisation actif et initialisez-le. Ensuite, vous pouvez renommer l'environnement d'initialisation inactif.