Guide d'administration Oracle Solaris ZFS

Initialisation à partir d'un système de fichiers racine ZFS

Les systèmes SPARC et les systèmes x86 utilisent le nouveau type d'initialisation à l'aide d'une archive d'initialisation, qui est une image de système de fichiers contenant les fichiers requis pour l'initialisation. Lorsque vous initialisez un système à partir d'un système de fichiers racine ZFS, les noms de chemin de l'archive d'initialisation et du fichier noyau sont résolus dans le système de fichiers racine sélectionné pour l'initialisation.

Lorsque vous réinitialisez un système en vue d'une installation, un disque RAM est utilisé pour le système de fichiers racine tout au long du processus d'installation.

L'initialisation à partir d'un système de fichiers ZFS diffère de celle à partir d'un système de fichiers UFS car avec ZFS, un spécificateur de périphérique d'initialisation identifie un pool de stockage par opposition à un seul système de fichiers racine. Un pool de stockage peut contenir plusieurs jeux de données d'initialisation ou systèmes de fichiers racine ZFS. Lorsque vous initialisez un système à partir de ZFS, vous devez spécifier un périphérique d'initialisation et un système de fichiers racine contenu dans le pool qui a été identifié par le périphérique d'initialisation.

Par défaut, le jeu de données sélectionné pour l'initialisation est identifié par la propriété bootfs du pool. Cette sélection par défaut peut être remplacée en spécifiant un jeu de données d'initialisation alternatif dans la commande boot -Z.

Initialisation à partir d'un disque alternatif d'un pool racine ZFS mis en miroir

Vous pouvez créer un pool racine ZFS mis en miroir lors de l'installation du système ou pouvez connecter un disque pour créer un pool racine ZFS mis en miroir après l'installation. Pour de plus amples informations, consultez les références suivantes :

Consultez les problèmes connus suivants relatifs aux pools racine ZFS mis en miroir :

SPARC : Initialisation à partir d'un système de fichiers racine ZFS

Sur un système SPARC avec environnements d'initialisation ZFS multiples, vous pouvez initialiser à partir de tout environnement d'initialisation en utilisant la commande luactivate.

Au cours de l'installation du SE Solaris et de la procédure Oracle Solaris Live Upgrade, le système de fichiers racine ZFS est automatiquement désigné avec la propriété bootfs.

Un pool peut contenir plusieurs jeux de données d'initialisation. Par défaut, l'entrée du jeu de données d'initialisation figurant dans le fichier /nom-du-pool/boot/menu.lst est identifiée par la propriété bootfs du pool. Cependant, une entrée menu.lst peut contenir une commande bootfs qui spécifie un jeu de données alternatif du pool. Le fichier menu.lst peut ainsi contenir les entrées de plusieurs systèmes de fichiers racine du pool.

Lorsqu'un système est installé avec un système de fichiers racine ZFS ou est migré vers un système de fichiers racine ZFS, une entrée du type suivant est ajoutée au fichier menu.lst :


title zfsBE
bootfs rpool/ROOT/zfsBE
title zfs2BE
bootfs rpool/ROOT/zfs2BE

Lorsqu'un nouvel environnement d'initialisation est créé, le fichier menu.lst est mis à jour automatiquement.

Sur un système SPARC, deux nouvelles options d'initialisation sont disponibles :


Exemple 5–8 SPARC : Initialisation à partir d'un environnement d'initialisation ZFS spécifique

Si vous disposez de plusieurs environnements d'initialisation ZFS dans un pool de stockage ZFS situé sur le périphérique d'initialisation de votre système, vous pouvez utiliser la commande luactivate pour spécifier un environnement d'initialisation par défaut.

Par exemple, les environnements d'initialisation ZFS suivants sont disponibles comme décrit par la sortie de lustatus :


# lustatus
Boot Environment           Is       Active Active    Can    Copy      
Name                       Complete Now    On Reboot Delete Status    
-------------------------- -------- ------ --------- ------ ----------
zfsBE                      yes      no     no        yes    -         
zfs2BE                     yes      yes    yes       no     -

Si votre système SPARC comporte plusieurs environnements d'initialisation ZFS, vous pouvez également utiliser la commande boot -L pour initialiser le système à partir d'un autre environnement d'initialisation que celui par défaut. Cependant, un environnement d'initialisation démarrant à partir d'une session boot -L n'est pas redéfini en tant qu'environnement d'initialisation par défaut et la propriété bootfs n'est pas mise à jour. Si vous souhaitez qu'un environnement d'initialisation démarre par défaut à partir d'une session boot -L, vous devez activer ce dernier avec la commande luactivate.

Exemple :


ok boot -L
Rebooting with command: boot -L
Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0  File and args: -L

1 zfsBE
2 zfs2BE
Select environment to boot: [ 1 - 2 ]: 1
To boot the selected entry, invoke:
boot [<root-device>] -Z rpool/ROOT/zfsBE

Program terminated
ok boot -Z rpool/ROOT/zfsBE


Exemple 5–9 SPARC : Initialisation d'un système de fichiers ZFS en mode de secours

Vous pouvez initialiser un système SPARC à partir de l'archive de secours située dans /platform/`uname -i`/failsafe, comme suit .


ok boot -F failsafe

Pour initialiser une archive de secours à partir d'un jeu de données d'initialisation ZFS donné, employez une syntaxe du type suivant :


ok boot -Z rpool/ROOT/zfsBE -F failsafe

x86 : initialisation à partir d'un système de fichiers ZFS racine

Les entrées suivantes sont ajoutées au fichier /pool-name /boot/grub/menu.lst au cours du processus d'installation du SE Solaris ou de l'opération Oracle Solaris Live Upgrade pour initialiser ZFS automatiquement :


title Solaris 10 9/10  X86
findroot (rootfs0,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive
title Solaris failsafe
findroot (rootfs0,0,a)
kernel /boot/multiboot kernel/unix -s -B console=ttya
module /boot/x86.miniroot-safe

Si le périphérique identifié par GRUB comme périphérique d'initialisation contient un pool de stockage ZFS, le fichier menu.lst est utilisé pour créer le menu GRUB.

Sur un système x86 contenant plusieurs environnements d'initialisation ZFS, vous pouvez sélectionner un environnement d'initialisation à partir du menu GRUB. Si le système de fichiers racine correspondant à cette entrée de menu est un jeu de données ZFS, l'option suivante est ajoutée:


-B $ZFS-BOOTFS

Exemple 5–10 x86 : Initialisation d'un système de fichiers ZFS

Lorsqu'un système s'initialise à partir d'un système de fichiers ZFS, le périphérique racine est spécifié par le paramètre d'initialisation -B $ZFS-BOOTFS sur la ligne kernel ou module de l'entrée du menu GRUB. Cette valeur de paramètre, tout comme tous les paramètres spécifiés par l'option -B, est transmise par GRUB au noyau. Exemple :



title Solaris 10 9/10  X86
findroot (rootfs0,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive
title Solaris failsafe
findroot (rootfs0,0,a)
kernel /boot/multiboot kernel/unix -s -B console=ttya
module /boot/x86.miniroot-safe

Exemple 5–11 x86 : Initialisation d'un système de fichiers ZFS en mode de secours

L'archive x86 de secours est /boot/x86.miniroot-safe et peut être initialisée en sélectionnant l'entrée "Solaris failsafe" dans le menu GRUB. Exemple :


title Solaris failsafe
findroot (rootfs0,0,a)
kernel /boot/multiboot kernel/unix -s -B console=ttya
module /boot/x86.miniroot-safe

Résolution de problèmes de point de montage empêchant l'initialisation (Solaris 10 10/08)

Le meilleur moyen de changer d'environnement d'initialisation actif est d'utiliser la commande luactivate. En cas d'échec de l'initialisation de l'environnement actif, qu'il soit dû à un correctif défectueux ou à une erreur de configuration, le seul moyen d'initialiser à partir d'un environnement différent consiste à le sélectionner lors de l'initialisation. Vous pouvez sélectionner un autre environnement d'initialisation à partir du menu GRUB sur un système x86 ou en effectuant une initialisation explicite à partir du PROM sur un système SPARC.

Étant donné la présence d'un bogue dans la fonctionnalité Oracle Solaris Live Upgrade de Solaris 10 10/08, il se peut que l'environnement d'initialisation inactif ne puisse pas s'initialiser. Ce problème est lié à la présence d'un point de montage non valide dans les jeux de données ZFS ou dans le jeu de données ZFS de zone de l'environnement d'initialisation. Le même bogue empêche également le montage de l'environnement d'initialisation s'il dispose d'un jeu de données /var distinct.

Si le jeu de données d'une zone a un point de montage non valide, le point de montage peut être corrigé en procédant comme suit.

ProcedureRésolution des problèmes de point de montage ZFS

  1. Initialisez le système à partir d'une archive de secours.

  2. Importez le pool.

    Exemple :


    # zpool import rpool
    
  3. Vérifiez qu'elle ne contient aucun point de montage temporaire erroné.

    Exemple :


    # zfs list -r -o name,mountpoint rpool/ROOT/s10u6
        
        NAME                               MOUNTPOINT
        rpool/ROOT/s10u6                   /.alt.tmp.b-VP.mnt/
        rpool/ROOT/s10u6/zones             /.alt.tmp.b-VP.mnt//zones
        rpool/ROOT/s10u6/zones/zonerootA   /.alt.tmp.b-VP.mnt/zones/zonerootA

    Le point de montage pour l'environnement d'initialisation racine (rpool/ROOT/s10u6) doit être /.

    Si l'initialisation échoue à cause de problèmes de montage /var, recherchez un point de montage temporaire erroné similaire pour le jeu de données /var.

  4. Réinitialisez les points de montage pour l'environnement d'initialisation ZFS et ses jeux de données.

    Exemple :


    # zfs inherit -r mountpoint rpool/ROOT/s10u6
    # zfs set mountpoint=/ rpool/ROOT/s10u6
    
  5. Redémarrez le système.

    Lorsque vous pouvez initialiser un environnement d'initialisation spécifique, soit par le biais du menu GRUB, soit à l'invite OpenBoot PROM, sélectionnez l'environnement d'initialisation dont les points de montage viennent d'être corrigés.

Initialisation en vue d'une récupération d'un environnement racine ZFS

Suivez la procédure suivante si vous devez initialiser le système pour pouvoir récupérer un mot de passe racine perdu ou tout problème similaire.

Vous devez démarrer en mode de secours ou en mode d'initialisation à partir d'autres média en fonction de la gravité de l'erreur. En règle générale, vous pouvez effectuer une initialisation en mode de secours pour récupérer un mot de passe racine perdu ou inconnu.

Si vous devez récupérer un pool racine ou un instantané de pool racine, reportez-vous à la section Restauration du pool racine ZFS ou des instantanés du pool racine.

ProcedureInitialisation d'un système de fichiers ZFS en mode de secours

  1. Effectuez une initialisation en mode de secours.

    Sur un système SPARC :


    ok boot -F failsafe
    

    Pour les systèmes x86, sélectionnez le mode de secours à partir de l'invite GRUB.

  2. Lorsque vous y êtes invité, montez l'environnement d'exécution ZFS sur le répertoire /a :


    .
    .
    .
    ROOT/zfsBE was found on rpool.
    Do you wish to have it mounted read-write on /a? [y,n,?] y
    mounting rpool on /a
    Starting shell.
  3. Accédez au répertoire /a/etc.


    # cd /a/etc
    
  4. Définissez le type TERM, le cas échéant.


    # TERM=vt100
    # export TERM
  5. Corrigez le fichier passwd ou shadow.


    # vi shadow
    
  6. Redémarrez le système.


    # init 6
    

ProcedureInitialisation d'un système de fichiers ZFS à partir d'un autre média

Si un problème empêche le système de s'initialiser correctement ou si tout autre problème grave se produit, vous devez effectuer une initialisation à partir d'un serveur d'installation sur le réseau ou à partir d'un CD-ROM d'installation Solaris, importer le pool racine, monter l'environnement d'initialisation ZFS et tenter de résoudre le problème.

  1. Initialisez le système à partir d'un CD d'installation ou à partir du réseau.

    • SPARC :


      ok boot cdrom -s 
      ok boot net -s
      

      Si vous n'utilisez pas l'option -s, vous devrez quitter le programme d'installation.

    • x86 : initialisez le système à partir d'un réseau ou d'un CD en local.

  2. Importez le pool racine et spécifiez un autre point de montage. Exemple :


    # zpool import -R /a rpool
    
  3. Montez l'environnement d'initialisation ZFS. Exemple :


    # zfs mount rpool/ROOT/zfsBE
    
  4. Accédez à l'environnement d'initialisation ZFS à partir du répertoire /a.


    # cd /a
    
  5. Redémarrez le système.


    # init 6