Solaris Volume Manager (SVM)
Présentation
"Solaris Volume Manager" (SVM) est le gestionnaire de volumes natif de Solaris. Avant Solaris 10, il s’appelait "Solstice Disk Suite". Il sait gérer à la fois les niveaux de raid et les volumes disques ; c'est donc l'équivalent sous linux des mdtools et de lvm réunis. Ça permet d'avoir tout dans un seul outil. SVM gère toutes ses fonctionnalités au niveau des slices (partitions) et pas au niveau du disque. Il est capable de faire du stripping (raid 0), du mirroring (raid 1), les deux combinés (0+1 et 1+0), du raid 5, de la concaténation (additionner les disques physiques pour n'en faire qu'un logique), gestion de hotspare, de pools de hotspares, les DiskSet (groupes de disques qu'on pourra débrancher d'un serveur pour les rebrancher sur un autre, en conservant ses caractéristiques). Le raid est également possible sur le disque système. SVM est également capable d'agrandir les volumes à chaud, mais la structure même d'UFS ne permet pas la réduction, même à froid. Le problème est exactement le même avec ZFS.
SVM se comporte comme une surcouche aux systèmes de fichiers UFS. A l'installation de l'OS, on ne peut donc pas mettre en place SVM, mais après on va "encapsuler" les données dans SVM et les gérer avec SVM.
Dans Solaris 9 et 10, SVM (ou Disk Suite) est installé par défaut avec le système. Dans Solaris 8 et précédents, il faut installer les packages SUNWmdr, SUNWmdu et SUNWmdx.
Les Replica Databases
SVM conserve sa structure dans des bases de données, qu'on appelle "Replica Databases". Ces databases font 4Mo chacune et doivent être créées dans un slice dédié sur chaque disque ; on lui attribue traditionnellement le slice 7, qui sera de petite taille (une trentaine de Mo suffit). L'ensemble des disques partagés s'appelle un "diskset". On a un maximum de 50 replica databases par diskset. Le principe est d'avoir un certain nombre de databases réparties sur chaque disque physique. Tant que le système peut accéder à au moins 50% des databases plus une, alors ça fonctionne. Sinon, il part en panic. Pendant le démarrage, les databases corrompues ou perdues peuvent être restaurées.
Attention : les replica databases doivent obligatoirement se trouver sur des disques locaux et surtout pas sur un volume SAN. C'est dû au fait qu'elles sont vues très tôt dans le mécanisme de démarrage.
Il est conseillé d'avoir au minimum 3 databases par disque lorsqu'on a 1 ou 2 disques, 2 databases si on a 3 ou 4 disques, et 1 database par disque pour 5 disques ou plus.
Pour un maximum de sécurité au niveau redondance, il est conseillé d'avoir les databases sur des contrôleurs disques différents.
En pratique :
Nous allons prendre pour exemple trois disques c0t0d0, c1t1d1 et c2t2d2. Les replica databases seront créées sur le slice 7. On suppose également que le système est actuellement installé sur c0t0d0 et qu'un petit slice 7 a été créé pour accueillir les databases.
On va utiliser la commande "prtvtoc" pour récupérer la table des partitions du disque système, et l'appliquer sur les deux autres disques avec "fmthard". Ainsi, on s'assure que les disques sont partitionnés à l'identique.
# prtvtoc /dev/rdsk/c0t0d0s2 | fmthard –s - /dev/rdsk/c1t1d1s2 # prtvtoc /dev/rdsk/c0t0d0s2 | fmthard –s - /dev/rdsk/c2t2d2s2
Maintenant on va créer les databases (3 par disque) :
# metadb –f –c 3 –a c0t0d0s7 c1t1d1s7 c2t2d2s7
Les options :
- -f : pour forcer la création initiale des databases
- -c 3 : nombe de databases par partition
- -a : pour ajouter
On peut visualiser les databases créées :
# metadb -i flags first blk block count a m p luo 16 8192 /dev/dsk/c0t0d0s7 a p luo 8208 8192 /dev/dsk/c0t0d0s7 a p luo 16400 8192 /dev/dsk/c0t0d0s7 a p luo 16 8192 /dev/dsk/c1t1d1s7 a p luo 8208 8192 /dev/dsk/c1t1d1s7 a p luo 16400 8192 /dev/dsk/c1t1d1s7 a p luo 16 8192 /dev/dsk/c2t2d2s7 a p luo 8208 8192 /dev/dsk/c2t2d2s7 a p luo 16400 8192 /dev/dsk/c2t2d2s7 r - la réplique ne contient pas d'informations de transfert de périphérique o - réplique active avant la dernière modification de la configuration de la base de données du métapériphérique mddb u - la réplique est mise à jour l - le localisateur pour cette réplique a été lu avec succès c - la réplique se trouvait dans /etc/lvm/mddb.cf p - un patch a été appliqué à la réplique dans le noyau m - la réplique est maître : elle est sélectionnée comme réplique d'entrée W - la réplique contient des erreurs d'écriture de périphérique a - la réplique est active, des validations ont lieu dans cette réplique M - la réplique a rencontré des problèmes avec les blocs maîtres D - la réplique a rencontré des problèmes avec les blocs de données F - la réplique a rencontré des problèmes liés au format S - la réplique est trop petite pour contenir la base de données actuelle R - la réplique contenait des erreurs de lecture de périphérique
La création ou l'ajout de databases va mettre à jour les fichiers de configuration. Ils diffèrent selon les versions de Solaris :
- Solaris 10 : /kernel/drv/md.conf
- Solaris 9 : /etc/lvm/mddb.conf
- Solaris 8 : /etc/system + /etc/lvm/mddb.conf
Pour supprimer une database :
# metadb –d c2t2d2s7
Création d'un volume (ou meta-device)
Sous SVM, les volumes logiques s'appellent également des meta-devices. Ils peuvent être de type RAID 0, RAID 1 ou RAID 5. SVM gère également des Hot Spare Pools et des Soft Partitions. Nous allons voir tout ça en détail.
Syntaxe générale
Pour créer un volume, on utilise la commande metainit suivie de plusieurs paramètres :
# metainit <nom_volume> <nb_bandes> <nb_partition_dans_la_bande> <partition> [<nb_partition_dans_la_bande_suivante> <partition>]
Cette syntaxe n'est pas très parlante, mais va devenir plus clair avec les exemples qui vont suivre. Il faut noter que le nom des volumes n'est pas tout à fait libre : on doit choisir un nom compris entre "d0" et "d8192".
Volume contaténé/strippé (RAID 0)
Volume simple
Exemple :
# metainit d39 1 1 c1t1d1s5
On créé un volume qui s'appelle d39, composé d'une bande (strippe), elle-même composée d'une partition (c1t1d1s5).
Volume concaténé
Exemple :
# metainit d30 2 1 c1t1d1s6 1 c2t2d2s5
On créé un volume qui s'appelle d30, composé de deux bandes (strippes). La première bande est composée d'une partition (c1t1d1s6) et la deuxième d'une partition (c2t2d2s5).
Volume strippé
Exemple :
# metainit d31 1 2 c1t1d1s0 c2t2d2s0 –i 64k
On créé un volume qui s'appelle d31, composé d'une seule bande. Cette bande est composée de deux partitions (c1t1d1s0 et c2t2d2s0).
On ajoute également une nouvelle notion (facultative) via l'option "-i 64k". Cette option sert à préciser qu'on va utiliser un facteur d'entrelacement de 64ko.
Volume contcaténé / strippé
C'est simplement un volume à la fois concaténé et strippé, donc composé de plusieurs bandes, composées chacunes de plusieurs partitions.
Ajout d'un slice à un volume
Attention : on ne pourra pas le retirer, sauf avec perte des données, puisqu'on ne peut pas réduire UFS.
Exemple :
metattach d15 c2d0s5
la partition est donc agrandie de la taille de la nouvelle, mais pas le FileSystem.
Pour agrandir le FS :
growfs [-M /point_de_montage ] /dev/md/rdsk/d15
L'option "-M /point_de_montage" sert uniquement si on agrandit à chaud une partition montée.
Utilisation de /etc/lvm/md.tab
Plutôt que de taper les commandes à la main, on peut également remplir le fichier /etc/lvm/md.tab avec des lignes du type "d15 1 1 c1d0s5" (sans les guillemets), et taper "metainit d15" dans le shell.
Ce fichier ne sert que quand on lance metainit, mais il n'est pas lu au boot (ce sont les databases qui sont lues).
Il est quand même intéressant de le remplir car il peut serveur d'aide mémoire.
L'utilisation de ce fichier n'est pas limitée au raid 0, on peut s'en servir pour tous les niveau de raid.
Création du système de fichier
Jusque là, on a juste créé les volumes logiques, pas les filesystems. Voici comment faire.
Création du filesystem sur le meta-device :
newfs /dev/md/rdsk/d15
Dans /etc/vfstab on mettra :
#device to mount #device to check #montage #FS #ordre fsck #mount at boot #options /dev/md/dsk/d15 /dev/md/rdsk/d15 /montage ufs 3 yes logging
Limitations
ATTENTION : il est interdit d'utiliser les volumes RAID 0 pour tout filesystem utilisé lors d'une installation ou upgrade, c'est-à-dire /, /usr, /var, /opt et les swap.
Volume mirroré (RAID 1)
On créé d'abord les éléments du miroir :
metainit d21 1 1 c3d0s0 metainit d22 1 1 c4d0s0
Puis on créé le miroir, d'abord avec un seul élément, comme ça on va conserver les données de cet élément (les données des éléments suivants seront perdues) :
metainit d20 -m d21
Et enfin on rajoute l'autre patte :
metattach d20 d22
Si on passe par /etc/lvm/md.tab, on met dans le fichier :
d21 1 1 c3d0s0 d22 1 1 c4d0s0 d20 -m d21
On initialise avec :
metainit d21 d22 d20
Puis on attache la deuxième patte pareil :
metattach d20 d22
Quand on va créér le système de fichiers, on le fera sur d20.
On peut également retirer une patte du miroir (par exemple pour faire une sauvegarde sans que les données bougent) :
metadetach d20 d21
Puis on la remet :
metattach d20 d21
Cette méthode a l'inconvénient de resynchroniser tout le disque quand on rattache, ce qui peut être long. Une autre possibilité est de mettre la patte "offline", puis la remettre "online". La synchro est alors optimisée et se fait seulement sur ce qui a bougé.
Mettre la patte "offline" :
metaoffline d20 d21
La remettre "online" :
metaonline d20 d21
Panne dans un miroir : on ne peut le savoir que en consultant /var/adm/messages ou en tapant metastat (ou dans Solaris Management Console).
Il faut alors :
- remplacer physiquement le disque deffectueux
- vérifier qu'il est bien vu avec format
- mettre à jour la référence du disque : "metadevadm -u c3d0"
- refaire le paritionnement (format ou prtvtoc+fmthard)
- identifier les databases à remplacer : "metadb -i"
- les recréer : "metadb -d c3d0s7", puis "metadb -a c3d0s7"
- si les partitions déffectueuses faisaient parti d'un raid : "metareplace -e d20 c3d0s0"
- si les partitions étaient dans des Soft Partition, plutôt utiliser : "metarecover c3d0s0 -d -p"
Volume RAID 5
metainit d50 -r c5d0s1 c6d0s1 c7d0s1 -i 128k newfs /dev/md/rdsk/d50 mount -o logging /dev/md/dsk/d50 /point_de_montage
Dans /etc/vfstab :
/dev/md/dsk/d50 /dev/md/rdsk/d50 /point_de_montage ufs 3 yes logging
Création d'un hot spare pool
Un hotspare pool est un groupe de partitions de réserve, au cas ou des partitions utilisées seraient cassées. Le nom qu'on lui donne est obligatoirement de la forme hspxxx, xxx étant des chiffres :
Création :
metainit hsp000 c8d0s0
Association à un meta-device pendant sa création :
metainit d50 -h hsp000 ...
Association après coup :
metaparam -h hsp000 d50
Retirer le hot spare pool :
metaparam -h none d50
Informations sur les meta-devices
metastat [d15]
- sans options : version longue
- -c : plus lisible
- -p : plus compact (format utilisable dans /etc/lvm/md.tab)
Exemple :
# metastat d0 d0: Miroir Sous-miroir 0: d10 Etat : Ok Sous-miroir 1: d20 Etat : Ok Accès : 1 Option de lecture : roundrobin (par défaut) Option d'écriture : parallel (par défaut) Taille : 41950000 blocs (20 GB) d10: Sous-miroir de d0 Etat : Ok Taille : 41950000 blocs (20 GB) Bande 0 : Périphérique Bloc de débu Base Etat Redis Tranche dynamique c0t0d0s0 0 Non Ok Oui d20: Sous-miroir de d0 Etat : Ok Taille : 41950000 blocs (20 GB) Bande 0 : Périphérique Bloc de débu Base Etat Redis Tranche dynamique c0t1d0s0 0 Non Ok Oui Device Relocation Information: Device Reloc Device ID c0t0d0 Oui id1,sd@n5000c5001d64d883 c0t1d0 Oui id1,sd@n5000c5001d5f8b8f # # # metastat -c d0 d0 m 20GB d10 d20 d10 s 20GB c0t0d0s0 d20 s 20GB c0t1d0s0
Supprimer un meta-device
Pour supprimer un metadevice simple :
metaclear d15
Pour supprimer un metadevice et sa sous-arborescence :
metaclear -r d0
Les soft partitions
Les soft partitions sont des partitions "virtuelles" crées à l'intérieur d'une partition physique ou d'un metadevice. Ça permet d'avoir autant de partitions (et donc de filesystems) qu'on veut à l'interieur d'un seul disque ou d'une seule partition physique.
Une soft partition étant une partition à part entière (même si elle est virtuelle), il faut préciser sa taille à la création. Il faut également préciser la partition sur laquelle on va créer la soft partition, pour cela on utilise l'option –p.
Exemples :
metainit d51 -p d50 1g metainit d52 –p c1t2d3s4 –b 204800
Dans le premier exemple, on créé une soft partition "d51" à l'intérieur d'un volume d50, d'une taille de 1Go.
Dans le deuxième exemple, on créé une soft partition "d52" à l'intieur de la partition c1t2d3s4 d'une taille de 204800 blocs, soit 100Mo pour une taille de bloc de 512 octets.
Mirrorer le disque système
Cette page décrit la mise en place de l'encapsulation sous SVM du disque système du serveur UIRGS48, et de sa mise en miroir.
Solaris a été installé sur le disque c0t0d0 et le disque qui est destiné à être son miroir est c0t1d0.
Le principe est de :
- créer un slice pour accueillir les databases de SVM
- dupliquer la table des partitions sur le disque miroir
- créer les databases et les metadevices
- raccorder le premier disque au miroir et modifier les fichiers de conf pour préparer au reboot (/etc/vfstab)
- rebooter et vérifier que le miroir est actif
- raccorder le deuxième disque au miroir
- modifier l'OBP pour pouvoir booter sur n'importe lequel des deux disques
- tester que le boot fonctionne sur les deux
État avant l'encapsulation
Voici un extrait des infos obtenues avec "format" :
AVAILABLE DISK SELECTIONS: 0. c0t0d0 <SUN146G cyl 14087 alt 2 hd 24 sec 848> /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/sd@0,0 1. c0t1d0 <SUN146G cyl 14087 alt 2 hd 24 sec 848> Solaris /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/sd@1,0 Disk 0 : Current partition table (original): Total disk cylinders available: 14087 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 2060 20.00GB (2061/0/0) 41945472 1 swap wu 2061 - 5358 32.01GB (3298/0/0) 67120896 2 backup wm 0 - 14086 136.71GB (14087/0/0) 286698624 3 var wm 5359 - 8656 32.01GB (3298/0/0) 67120896 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 unassigned wm 0 0 (0/0/0) 0 7 unassigned wu 0 0 (0/0/0) 0 Disk 1 : Volume: Solaris Current partition table (original): Total disk cylinders available: 14087 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 12 129.19MB (13/0/0) 264576 1 swap wu 13 - 25 129.19MB (13/0/0) 264576 2 backup wu 0 - 14086 136.71GB (14087/0/0) 286698624 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 usr wm 26 - 14086 136.46GB (14061/0/0) 286169472 7 unassigned wm 0 0 (0/0/0) 0
Les partitions montées apparaissent encore en tant que "/dev/dsk/c0t0d0s0" :
# df -h|grep -v dg Filesystem size used avail capacity Mounted on /dev/dsk/c0t0d0s0 20G 5.0G 15G 26% / /devices 0K 0K 0K 0% /devices ctfs 0K 0K 0K 0% /system/contract proc 0K 0K 0K 0% /proc mnttab 0K 0K 0K 0% /etc/mnttab swap 46G 1.7M 46G 1% /etc/svc/volatile objfs 0K 0K 0K 0% /system/object sharefs 0K 0K 0K 0% /etc/dfs/sharetab fd 0K 0K 0K 0% /dev/fd /dev/dsk/c0t0d0s3 32G 7.9G 23G 26% /var swap 46G 213M 46G 1% /tmp swap 46G 248K 46G 1% /var/run swap 46G 0K 46G 0% /dev/vx/dmp swap 46G 0K 46G 0% /dev/vx/rdmp /dev/odm 0K 0K 0K 0% /dev/odm /platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap2.so.1 20G 5.0G 15G 26% /platform/sun4u-us3/lib /libc_psr.so.1 /platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap2.so.1 20G 5.0G 15G 26% /platform/sun4u-us3/lib/sparcv9 /libc_psr.so.1
Encapsulation du disque système et mise en place du miroir
Il faut créer un slice n°7 de 20 Mo pour accueillir les metadb (4Mo par database, et 3 databases en tout par disque), à l'aide de format. Une fois que c'est fait, voici à quoi ressemble le partitionnement :
Format disk 0 : Current partition table (original): Total disk cylinders available: 14087 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 2060 20.00GB (2061/0/0) 41945472 1 swap wu 2061 - 5358 32.01GB (3298/0/0) 67120896 2 backup wm 0 - 14086 136.71GB (14087/0/0) 286698624 3 var wm 5359 - 8656 32.01GB (3298/0/0) 67120896 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 unassigned wm 0 0 (0/0/0) 0 7 unassigned wm 8657 - 8659 29.81MB (3/0/0) 61056
On copie la table des partitions sur le futur miroir :
# prtvtoc /dev/rdsk/c0t0d0s2 | fmthard -s - /dev/rdsk/c0t1d0s2
On vérifie avec un format du disk 1 que c'est ok :
Volume: Solaris Current partition table (original): Total disk cylinders available: 14087 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 2060 20.00GB (2061/0/0) 41945472 1 swap wu 2061 - 5358 32.01GB (3298/0/0) 67120896 2 backup wm 0 - 14086 136.71GB (14087/0/0) 286698624 3 var wm 5359 - 8656 32.01GB (3298/0/0) 67120896 4 unassigned wu 0 0 (0/0/0) 0 5 unassigned wu 0 0 (0/0/0) 0 6 unassigned wu 0 0 (0/0/0) 0 7 unassigned wm 8657 - 8659 29.81MB (3/0/0) 61056
On sauvegarde les fichiers /etc/vfstab et /etc/system, car ils vont être altérés par la suite.
# cp /etc/vfstab /etc/vfstab.20100414 # cp /etc/system /etc/system.20100414
On défini à l'avance la structure du futur miroir en ajoutant les lignes suivantes dans /etc/lvm/md.tab
# Partition / d10 1 1 c0t0d0s0 d20 1 1 c0t1d0s0 d0 -m d10 # Partition de swap d11 1 1 c0t0d0s1 d21 1 1 c0t1d0s1 d1 -m d11 # Partition /var d13 1 1 c0t0d0s3 d23 1 1 c0t1d0s3 d3 -m d13
Les databases ne sont pas encore créés. On le vérifie ainsi :
# metadb -i metadb: uirgs48: there are no existing databases
Création des databases
# metadb -f -c 3 -a c0t0d0s7 c0t1d0s7
Vérification :
# metadb -i flags first blk block count a u 16 8192 /dev/dsk/c0t0d0s7 a u 8208 8192 /dev/dsk/c0t0d0s7 a u 16400 8192 /dev/dsk/c0t0d0s7 a u 16 8192 /dev/dsk/c0t1d0s7 a u 8208 8192 /dev/dsk/c0t1d0s7 a u 16400 8192 /dev/dsk/c0t1d0s7 r - replica does not have device relocation information o - replica active prior to last mddb configuration change u - replica is up to date l - locator for this replica was read successfully c - replica's location was in /etc/lvm/mddb.cf p - replica's location was patched in kernel m - replica is master, this is replica selected as input W - replica has device write errors a - replica is active, commits are occurring to this replica M - replica had problem with master blocks D - replica had problem with data blocks F - replica had format problems S - replica is too small to hold current data base R - replica had device read errors
Création des metadevices
# metainit -a -f d10: Concat/Stripe is setup d20: Concat/Stripe is setup d0: Mirror is setup d11: Concat/Stripe is setup d21: Concat/Stripe is setup d1: Mirror is setup d13: Concat/Stripe is setup d23: Concat/Stripe is setup d3: Mirror is setup
Modifier le vfstab (avec metaroot pour /, et manuellement pour swap et /var):
# metaroot d0
==> modifie /etc/vfstab mais uniquement pour "/".
Pour le reste, il faut éditer manuellement /etc/vfstab pour obtenir le résultat suivant :
# vi /etc/vfstab [...] /dev/md/dsk/d0 /dev/md/rdsk/d0 / ufs 1 no - /dev/md/dsk/d1 - - swap - no - /dev/md/dsk/d3 /dev/md/rdsk/d3 /var ufs 1 no - [...]
Rebooter en lockant les filesystems :
# lockfs -fa # init 6
On vérifie qu'on a bien booté sur le raid :
# df -h |grep -v dg Filesystem size used avail capacity Mounted on /dev/md/dsk/d0 20G 5.0G 15G 26% / /dev/md/dsk/d3 32G 7.9G 23G 26% /var [...] # swap -l swapfile dev swaplo blocks free /dev/md/dsk/d1 85,1 16 67120880 67120880
Modifier le périphérique de dump.
- avant :
# dumpadm Dump content: kernel pages Dump device: /dev/dsk/c0t0d0s1 (dedicated) Savecore directory: /var/crash/uirgs48 Savecore enabled: yes
- on modifie :
# dumpadm -d swap Dump content: kernel pages Dump device: /dev/md/dsk/d1 (swap) Savecore directory: /var/crash/uirgs48 Savecore enabled: yes
- après :
# dumpadm Dump content: kernel pages Dump device: /dev/md/dsk/d1 (swap) Savecore directory: /var/crash/uirgs48 Savecore enabled: yes
On attache les partitions du deuxième disque au mirroirs :
# metattach d0 d20 # metattach d1 d21 # metattach d3 d23
On peut vérifier qu'ils sont bien attachés correctement :
# metastat |grep -i mirror d3: Mirror Submirror 0: d13 Submirror 1: d23 d13: Submirror of d3 d23: Submirror of d3 d1: Mirror Submirror 0: d11 Submirror 1: d21 d11: Submirror of d1 d21: Submirror of d1 d0: Mirror Submirror 0: d10 Submirror 1: d20 d10: Submirror of d0 d20: Submirror of d0
L'attachement est immediat, mais la copie des fichiers sur le mirroir prend du temps. On peut contrôler ou on en est avec :
# metastat |grep -i sync State: Resyncing Resync in progress: 2 % done State: Resyncing State: Resyncing Resync in progress: 2 % done State: Resyncing State: Resyncing Resync in progress: 5 % done State: Resyncing
Ajouter une ligne dans /etc/system pour pouvoir booter en cas de panne disque :
# echo "set md:mirrored_root_flag=1" >> /etc/system
Configuration de l'OBP pour pouvoir booter sur n'importe lequel des deux disques (nommés "dsk10" pour le disque principal et "mir10" pour le mirroir). On peut le faire depuis Solaris, s'il est démarré, ou depuis l'OBP.
- depuis Solaris
# eeprom "nvramrc=devalias dsk10 /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/disk@0,0:a mir10 /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/disk@1,0:a" # eeprom boot-device="dsk10 mir10" # eeprom "use-nvramrc?=true"
- ou depuis l'OBP
ok> nvalias dsk10 /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/disk@0,0:a ok> mir10 /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/disk@1,0:a ok> setenv boot-device dsk10 mir10
Ensuite il faut vérifier qu'on peut booter avec les deux disques. Rebooter avec "init 0". Se connecter sur la console du domaine. Booter avec "boot mir10", puis recommencer avec "boot dsk10".