Ignorer les liens de navigation | |
Quitter l'aperu | |
Administration d'Oracle Solaris : Périphériques et systèmes de fichiers Oracle Solaris 11 Information Library (Français) |
1. Gestion des médias amovibles (présentation)
2. Gestion des médias amovibles (tâches)
3. Accès aux médias amovibles (tâches)
4. Gravure de CD et DVD (tâches)
5. Gestion des périphériques (présentation/tâches)
6. Configuration dynamique des périphériques (tâches)
Reconfiguration dynamique et enfichage à chaud
Détachement des cartes d'adaptateur PCI ou PCIe
Fixation des cartes d'adaptateur PCI ou PCIe
Enfichage à chaud PCIe avec la commande (hotplug)
Dépannage des opérations d'enfichage à chaud PCI (hotplug )
Enfichage à chaud SCSI avec la commande cfgadm (liste des tâches)
Enfichage à chaud SCSI avec la commande cfgadm
Affichage des informations sur les périphériques SCSI
Annulation de la configuration d'un contrôleur SCSI
Configuration d'un contrôleur SCSI
Configuration d'un périphérique SCSI
Déconnexion d'un contrôleur SCSI
SPARC : Connexion d'un contrôleur SCSI
SPARC : Ajout d'un périphérique SCSI à un bus SCSI
SPARC : Remplacement d'un même périphérique sur un contrôleur SCSI
SPARC : Suppression d'un périphérique SCSI
Dépannage des problèmes de configuration SCSI
Résolution de l'échec de l'opération d'annulation de la configuration SCSI
Enfichage à chaud PCI ou PCIe avec la commande cfgadm (liste des tâches)
Enfichage à chaud PCI ou PCIe avec la commande cfgadm
Comportement de l'indicateur DEL PCIe
Affichage des informations de configuration de l'emplacement PCI
Suppression d'une carte d'adaptateur PCI
Ajout d'une carte d'adaptateur PCI
Dépannage des problèmes de configuration PCI
Enfichage à chaud SATA avec la commande cfgadm
Annulation de la configuration d'un périphérique SATA
Configuration d'un périphérique SATA
Présentation du script RCM (Reconfiguration Coordination Manager)
Fonctionnement d'un script RCM
Environnement de traitement du script RCM
Script RCM pour les développeurs d'applications (liste des tâches)
Script RCM pour les administrateurs système (liste des tâches)
Attribution d'un nom à un script RCM
Installation ou suppression d'un script RCM
Exemple de script RCM de sauvegarde sur bande
Actions du script RCM de sauvegarde sur bande
Résultats des scénarios de reconfiguration de la sauvegarde sur bande
7. Utilisation de périphériques USB (présentation)
8. Utilisation de périphériques USB (tâches)
9. Utilisation de périphériques InfiniBand (présentation/tâches)
10. Gestion des disques (présentation)
11. Administration des disques (tâches)
12. Système SPARC : Configuration des disques (tâches)
13. Système x86 : Configuration des disques (tâches)
14. Configuration des périphériques de stockage avec COMSTAR
15. Configuration et gestion du service Oracle Solaris iSNS (Internet Storage Name Service)
16. L'utilitaire format (référence)
17. Gestion des systèmes de fichiers (présentation)
18. Création et montage de systèmes de fichiers (tâches)
19. Extension de l'espace de swap (tâches)
20. Copie de fichiers et de systèmes de fichiers (tâches)
Les sections suivantes décrivent les tâches du script RCM pour les développeurs d'application et les administrateurs système.
La liste des tâches ci-dessous décrit les tâches pour un développeur d'applications qui crée un script RCM.
|
La liste des tâches ci-dessous décrit les tâches d'un administrateur système qui crée un script RCM pour personnaliser un site.
|
Un script doit être nommé vendor ou service dans les cas suivants :
Symbole de stock du fournisseur du script, ou n'importe quel nom distinct qui permet d'identifier le fournisseur.
Nom du service que le script représente.
Vous devez être administrateur pour installer ou supprimer un script RCM. Utilisez ce tableau pour déterminer où installer votre script RCM.
Tableau 6-1 Répertoires de scripts RCM
|
Voir Tableau 6-1.
Par exemple :
# cp ABC,sample.pl /usr/lib/rcm/scripts
# chown user:group /usr/lib/rcm/scripts/ABC,sample.pl
# pkill -HUP -x -u root rcm_daemon
Par exemple :
# rm /usr/lib/rcm/scripts/ABC,sample.pl
# pkill -HUP -x -u root rcm_daemon
Par exemple, dans un shell Korn, utilisez la commande suivante :
$ export RCM_ENV_FORCE=TRUE
Par exemple :
$ script-name scriptinfo $ script-name register $ script-name preremove resource-name $ script-name postremove resource-name
Pour plus d'informations, reportez-vous à la rubrique Installation d'un script RCM.
Par exemple, supposons que votre script enregistre le périphérique /dev/dsk/c1t0d0s0. Essayez ces commandes.
$ cfgadm -c unconfigure c1::dsk/c1t0d0 $ cfgadm -f -c unconfigure c1::dsk/c1t0d0 $ cfgadm -c configure c1::dsk/c1t0d0
Attention - Assurez-vous de bien maîtriser ces commandes, car elles peuvent modifier l'état du système et entraîner des défaillances de celui-ci. |
Cet exemple illustre comment utiliser un script RCM pour effectuer des sauvegardes sur bande.
Le script RCM de sauvegarde sur bande effectue les opérations suivantes :
Définition d'une table des sauts pour les commandes RCM.
Appel de la routine de saut correspondant aux commandes RCM spécifiées et arrêt avec l'état 2 pour les commandes RCM non implémentées.
Configuration de la section scriptinfo.
rcm_script_func_info=Tape backup appl script for DR
Enregistrement de tous les lecteurs de bande dans le système en affichant tous les noms de périphériques de lecteurs de bande sur stdout.
rcm_resource_name=/dev/rmt/$f
Si une erreur se produit, le script affiche les informations relatives à l'erreur sur stdout .
rcm_failure_reason=$errmsg
Configuration des informations sur les ressources pour le périphérique à bande.
rcm_resource_usage_info=Backup Tape Unit Number $unit
Configuration des informations de preremove en vérifiant si l'application de sauvegarde utilise le périphérique. Si l'application de sauvegarde n'utilise pas le périphérique, la reconfiguration dynamique se poursuit. Si l'application de sauvegarde utilise le périphérique, le script vérifie RCM_ENV_FORCE. Si RCM_ENV_FORCE est défini sur FALSE, le script refuse la reconfiguration dynamique et affiche le message suivant :
rcm_failure_reason=tape backup in progress pid=...
Si RCM_ENV_FORCE est défini sur TRUE, l'application de sauvegarde est arrêtée et l'opération de reconfiguration se poursuit.
Voici les différents résultats de l'utilisation de la commande cfgadm pour supprimer un périphérique à bande sans recourir au script RCM.
Si vous utilisez la commande cfgadm et que l'application de sauvegarde n'utilise pas le périphérique à bande, l'opération réussit.
Si vous utilisez la commande cfgadm et que l'application de sauvegarde utilise le périphérique à bande, l'opération échoue.
Voici les différents résultats si vous utilisez la commande cfgadm pour supprimer un périphérique à bande avec le script RCM.
Si vous utilisez la commande cfgadm et que l'application de sauvegarde n'utilise pas le périphérique à bande, l'opération réussit.
Si vous utilisez la commande cfgadm sans l'option - f et que l'application de sauvegarde utilise le périphérique à bande, l'opération échoue et un message d'erreur semblable à celui-ci s'affiche :
tape backup in progress pid=...
Si vous utilisez la commande cfgadm -f et que l'application de sauvegarde utilise le périphérique à bande, le script arrête l'application de sauvegarde et l'opération cfgadm réussit.
#! /usr/bin/perl -w # # A sample site customization RCM script. # # When RCM_ENV_FORCE is FALSE this script indicates to RCM that it cannot # release the tape drive when the tape drive is being used for backup. # # When RCM_ENV_FORCE is TRUE this script allows DR removing a tape drive # when the tape drive is being used for backup by killing the tape # backup application. # use strict; my ($cmd, %dispatch); $cmd = shift(@ARGV); # dispatch table for RCM commands %dispatch = ( "scriptinfo" => \&do_scriptinfo, "register" => \&do_register, "resourceinfo" => \&do_resourceinfo, "queryremove" => \&do_preremove, "preremove" => \&do_preremove ); if (defined($dispatch{$cmd})) { &{$dispatch{$cmd}}; } else { exit (2); } sub do_scriptinfo { print "rcm_script_version=1\n"; print "rcm_script_func_info=Tape backup appl script for DR\n"; exit (0); } sub do_register { my ($dir, $f, $errmsg); $dir = opendir(RMT, "/dev/rmt"); if (!$dir) { $errmsg = "Unable to open /dev/rmt directory: $!"; print "rcm_failure_reason=$errmsg\n"; exit (1); } while ($f = readdir(RMT)) { # ignore hidden files and multiple names for the same device if (($f !~ /^\./) && ($f =~ /^[0-9]+$/)) { print "rcm_resource_name=/dev/rmt/$f\n"; } } closedir(RMT); exit (0); } sub do_resourceinfo { my ($rsrc, $unit); $rsrc = shift(@ARGV); if ($rsrc =~ /^\/dev\/rmt\/([0-9]+)$/) { $unit = $1; print "rcm_resource_usage_info=Backup Tape Unit Number $unit\n"; exit (0); } else { print "rcm_failure_reason=Unknown tape device!\n"; exit (1); } } sub do_preremove { my ($rsrc); $rsrc = shift(@ARGV); # check if backup application is using this resource #if (the backup application is not running on $rsrc) { # allow the DR to continue # exit (0); #} # # If RCM_ENV_FORCE is FALSE deny the operation. # If RCM_ENV_FORCE is TRUE kill the backup application in order # to allow the DR operation to proceed # if ($ENV{RCM_ENV_FORCE} eq 'TRUE') { if ($cmd eq 'preremove') { # kill the tape backup application } exit (0); } else { # # indicate that the tape drive can not be released # since the device is being used for backup by the # tape backup application # print "rcm_failure_reason=tape backup in progress pid=...\n" ; exit (3); } }