Ce chapitre propose des instructions détaillées relatives à la migration d'un système de fichiers racine (/) UFS vers un pool racine ZFS sur un système comportant des zones non globales. Aucune zone non globale ne se trouve sur un système de fichiers partagé du système de fichiers UFS
La commande lucreate crée un environnement d'initialisation d'un pool racine ZFS à partir d'un système de fichiers racine (/) UFS. Avant de pouvoir exécuter la commande lucreate, un pool racine ZFS doit être créé avec des tranches plutôt qu'avec des disques complets et ce, afin de pouvoir être initialisé et mis à jour. Cette procédure explique la méthode utilisée pour copier une zone non globale avec le système de fichiers racine (/) UFS sur le nouvel environnement d'initialisation du pool racine ZFS.
Dans l'exemple suivant, la racine de la zone non globale, myzone, se trouve dans le système de fichiers racine (/) UFS, tandis que la racine de la zone zzone se trouve dans un système de fichiers ZFS du pool de stockage ZFS, pool. Solaris Live Upgrade procède à la migration de l'environnement d'initialisation UFS, c2t2d0s0, vers un environnement d'initialisation ZFS, zfs2BE. La zone basée sur UFS, myzone, migre vers un nouveau pool de stockage ZFS, mpool, créé avant l'utilisation de Solaris Live Upgrade. La zone non globale basée ZFS, zzone, est clonée, tout en étant conservée dans le pool ZFS, pool, puis migrée vers le nouvel environnement d'initialisation zfs2BE.
Lors de la première exécution de Solaris Live Upgrade, suivez la procédure suivante.
Pour créer des environnements d'initialisation ZFS à l'aide de Solaris Live Upgrade, la version installée sur votre système ne doit pas être antérieure à la version Solaris 10 10/08. car les versions précédentes ne disposent pas des logiciels Solaris Live Upgrade et ZFS pour procéder à l'exécution de ces tâches.
Au besoin, supprimez de votre système les packages Solaris Live Upgrade existants. Si vous procédez à une mise à niveau vers une nouvelle version, vous devez installer les packages correspondant à cette version.
Les trois packages Solaris Live Upgrade SUNWluu, SUNWlur et SUNWlucfg contiennent le logiciel nécessaire à la mise à niveau à l'aide de Solaris Live Upgrade. Outre les fonctionnalités existantes, ils intègrent de nouvelles fonctions ainsi que des correctifs de bogues. La mise à niveau de la version cible échoue si vous ne supprimez pas les packages existants et si vous installez les nouveaux packages sur le système préalablement à l'utilisation de Solaris Live Upgrade.
# pkgrm SUNWlucfg SUNWluu SUNWlur |
Installez les nouveaux packages Solaris Live Upgrade de la version pour laquelle vous effectuez la mise à niveau. Pour obtenir les instructions correspondantes, reportez-vous à la section Installation de Solaris Live Upgrade.
Avant d'installer ou d'exécuter Solaris Live Upgrade, vous devez installer les patchs suivants. Ces patchs garantissent que vous disposez des tout derniers correctifs de bogues et fonctions de la version.
Vérifiez que vous disposez de la dernière liste de patchs en visitant le site Web SunSolve. Recherchez l'info doc 206844 (auparavant nommé 72099 sur le site Web SunSolve.
Connectez-vous en tant que superutilisateur ou prenez un rôle équivalent.
Si vous stockez les patchs sur un disque local, créez un répertoire, tel que /var/tmp/lupatches, puis téléchargez les patchs dans ce répertoire.
Vous obtiendrez la liste des patchs sur le site Web SunSolve.
Allez dans le répertoire des patchs.
# cd /var/tmp/lupatches |
Installez les patchs en utilisant la commande patchadd.
# patchadd patch_id |
id_patch correspond au(x) numéro(s) de patch(s). Séparez les noms de patch par un espace.
Vous devez appliquer les patchs dans l'ordre spécifié dans l'info doc 206844.
Réinitialisez le système si nécessaire. Certains patchs doivent être réinitialisés pour être effectifs.
x86 uniquement. La réinitialisation du système est requise ou Solaris Live Upgrade échoue.
# init 6 |
Créez un pool racine ZFS.
Pour pouvoir être initialisé et mis à niveau, le pool racine ZFS doit se trouver sur une tranche unique.
# zpool create rpool c3t0d0s0 |
Dans cet exemple; le ZFS à créer est nommé rpool. Le pool est créé sur une tranche initialisable appelée c3t0d0s0.
Pour obtenir des informations sur la création d'un pool racine, reportez-vous au Guide d’administration Solaris ZFS.
Procédez à la migration du système de fichiers racine (/) UFS vers le nouveau pool racine ZFS.
# lucreate [-c ufsBE] -n new-zfsBE -p rpool |
Attribue le nom ufsBE à l'environnement d'initialisation UFS en cours. Cette option n'est pas obligatoire et n'est utilisée que pour créer un premier environnement d'initialisation. Si vous exécutez la commande lucreate pour la première fois et omettez l'option -c, le logiciel crée pour vous un nom par défaut.
Attribue le nom new-zfsBE à l'environnement d'initialisation à créer. Le nom doit être unique sur le système.
Place le dernier système de fichiers racine (/) ZFS créé dans le pool racine ZFS défini dans rpool.
Toutes les zones non globales non partagées sont copiées sur le nouvel environnement d'initialisation avec les systèmes de fichiers critiques. La création d'un environnement d'initialisation ZFS peut prendre un certain temps. Les données du système de fichiers UFS sont copiées dans le pool racine ZFS. Une fois l'environnement d'initialisation inactif créé, vous pouvez utiliser la commande luupgrade ou luactivate pour mettre à niveau ou activer cet environnement.
Si vous le souhaitez, vérifiez que la création de l'environnement d'initialisation est terminée.
La commande lustatus génère un rapport relatif à l'état de la création et de l'activation de l'environnement d'initialisation.
# lustatus boot environment Is Active Active Can Copy Name Complete Now OnReboot Delete Status ------------------------------------------------------------------------ ufsBE yes yes yes no - new-zfsBE yes no no yes - |
Si vous le souhaitez, vérifiez les informations de base sur les jeux de données du système.
La commande list affiche le nom de tous les jeux de données du système. Dans cet exemple, rpool est le nom du pool ZFS et new-zfsBE est le nom du dernier environnement d'initialisation ZFS créé.
# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 9.29G 57.6G 20K /rpool rpool/ROOT 5.38G 57.6G 18K /rpool/ROOT rpool/ROOT/new-zfsBE 5.38G 57.6G 551M /tmp/.alt.luupdall.110034 rpool/dump 1.95G - 1.95G - rpool/swap 1.95G - 1.95G - |
Les points de montage répertoriés pour le nouvel environnement d'initialisation sont créés temporairement jusqu'à l'exécution de la commande luactivate. Les volumes /dump et /swap ne sont pas partagés avec l'environnement d'initialisation UFS d'origine, mais dans le pool racine ZFS et dans les environnements d'initialisation de ce pool.
Dans l'exemple suivant, la racine de la zone non globale, myzone, se trouve dans le système de fichiers racine (/) UFS. tandis que la racine de la zone zzone se trouve dans un système de fichiers ZFS du pool de stockage ZFS, pool. Solaris Live Upgrade procède à la migration de l'environnement d'initialisation UFS, c2t2d0s0, vers un environnement d'initialisation ZFS, zfs2BE. La zone basée sur UFS, myzone, migre vers un nouveau pool de stockage ZFS, mpool, créé avant l'utilisation de Solaris Live Upgrade. La zone non globale basée ZFS, zzone, est clonée, tout en étant conservée dans le pool ZFS, pool, puis migrée vers le nouvel environnement d'initialisation zfs2BE.
# zoneadm list -iv ID NAME STATUS PATH BRAND IP 0 global running / native shared - myzone installed /zones/myzone native shared - zzone installed /pool/zones native shared # zpool create mpool mirror c3t0d0s0 c4td0s0 # lucreate -c c1t2d0s0 -n zfs2BE -p mpool Analyzing system configuration. No name for current boot environment. Current boot environment is named <c1t2d0s0>. Creating initial configuration for primary boot environment <c1t2d0s0>. The device </dev/dsk/c1t2d0s0> is not a root device for any boot environment; cannot get BE ID. PBE configuration successful: PBE name <c1t2d0s0> PBE Boot Device </dev/dsk/c1t2d0s0>. Comparing source boot environment <c1t2d0s0> file systems with the file system(s) you specified for the new boot environment. Determining which file systems should be in the new boot environment. Updating boot environment description database on all BEs. Updating system configuration files. The device </dev/dsk/c1t0d0s0> is not a root device for any boot environment; cannot get BE ID. Creating configuration for boot environment <zfsBE>. Source boot environment is <c1t2d0s0>. Creating boot environment <zfsBE>. Creating file systems on boot environment <zfsBE>. Creating <zfs> file system for </> in zone <global> on <rpool/ROOT/zfsBE>. Populating file systems on boot environment <zfsBE>. Checking selection integrity. Integrity check OK. Populating contents of mount point </>. Copying. Creating shared file system mount points. Creating compare databases for boot environment <zfsBE>. Creating compare database for file system </>. Making boot environment <zfsBE> bootable. Creating boot_archive for /.alt.tmp.b-cBc.mnt updating /.alt.tmp.b-cBc.mnt/platform/sun4u/boot_archive Population of boot environment <zfsBE> successful. Creation of boot environment <zfsBE> successful. |
Une fois l'exécution de la commande lucreate terminée, utilisez la commande lustatus pour afficher l'état de l'environnement d'initialisation, comme dans cet exemple.
# lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------- c1t2d0s0 yes yes yes no - zfsBE yes no no yes - |
# zoneadm list -iv ID NAME STATUS PATH BRAND IP 0 global running / native shared - myzone installed /zones/myzone native shared - zzone installed /pool/zones native shared |
Ensuite, utilisez la commande luactivate pour activer le nouvel environnement d'initialisation ZFS. Exemple :
# luactivate zfsBE ********************************************************************** The target boot environment has been activated. It will be used when you reboot. NOTE: You MUST NOT USE the reboot, halt, or uadmin commands. You MUST USE either the init or the shutdown command when you reboot. If you do not use either init or shutdown, the system will not boot using the target BE. ********************************************************************** In case of a failure while booting to the target BE, the following process needs to be followed to fallback to the currently working boot environment: 1. Enter the PROM monitor (ok prompt). 2. Change the boot device back to the original boot environment by typing: setenv boot-device /pci@1f,0/pci@1/scsi@4,1/disk@2,0:a 3. Boot to the original boot environment by typing: boot ********************************************************************** Modifying boot archive service Activation of boot environment <ZFSbe> successful. |
Réinitialisez le système de l'environnement d'initialisation ZFS.
# init 6 # svc.startd: The system is coming down. Please wait. svc.startd: 79 system services are now being stopped. . . . |
Vérifiez le nouvel environnement d'initialisation et l'état des zones migrées, comme dans cet exemple.
# lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------- c1t2d0s0 yes yes yes no - zfsBE yes no no yes - |
Si vous procédez à la restauration de l'environnement d'initialisation UFS, vous devrez importer à nouveau tout pool de stockage ZFS créé dans l'environnement d'initialisation ZFS, car ces pools ne sont pas automatiquement disponibles dans l'environnement UFS. Lors de la restauration de l'environnement UFS, des messages s'affichent, similaires à ceux présentés ci-dessous.
# luactivate c1t2d0s0 WARNING: The following files have changed on both the current boot environment <ZFSbe> zone <global> and the boot environment to be activated <c1t2d0s0>: /etc/zfs/zpool.cache INFORMATION: The files listed above are in conflict between the current boot environment <ZFSbe> zone <global> and the boot environment to be activated <c1t2d0s0>. These files will not be automatically synchronized from the current boot environment <ZFSbe> when boot environment <c1t2d0s0> |