HP-UX

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Administration système HP-UX
Versions 10.20 / 11.0 / 11i
Gestion de volumes LVM (pvcreate, vgcreate, lvcreate)
Gestion des patchs SD-UX (swinstall, swcopy, swlist)
Voir aussi AIX (autre Unix propriétaire, LVM comparable)

HP-UX est le système d'exploitation Unix propriétaire de Hewlett-Packard (aujourd'hui HPE), pour architectures PA-RISC puis Itanium. Comme AIX, il repose sur son propre LVM (Logical Volume Manager) plutôt que sur les outils Linux, et sur un gestionnaire de paquets dédié (SD-UX) plutôt que sur RPM/APT.

Démarrage

Le démarrage passe par un chargeur en deux étapes avant le noyau : le PDC (Processor Dependent Code, en ROM) recherche un périphérique de boot, puis transfère la main à l'ISL (Initial System Loader) qui charge le noyau :

ISL> hpux                    # charge /stand/vmunix (noyau par défaut)
ISL> hpux /stand/vmunix.prev # charge le noyau de sauvegarde (après un noyau reconstruit défectueux)
ISL> hpux ll /stand          # liste les noyaux disponibles
ISL> hpux -lm                # mode maintenance LVM

Une fois le noyau chargé, /sbin/pre_init_rc lance un fsck sur le disque système puis le premier processus, init. init lit /etc/inittab, qui définit l'état de marche (run level) par défaut — généralement 4 (mode normal avec CDE). Le changement d'état de marche (ex. init 3) déclenche /sbin/rc, qui exécute les scripts sous /sbin/rcN.d :

  • les variables d'activation par service sont dans /etc/rc.config.d/ (ex. CRON=1) ;
  • les scripts de démarrage/arrêt réels sont dans /sbin/init.d/ (ex. /sbin/init.d/cron start, utilisable aussi directement à la main après une modification de config) ;
  • /sbin/rcN.d/ ne contient que des liens symboliques vers /sbin/init.d/, nommés Snnnservice (Start, exécutés en entrant dans l'état) ou Knnnservice (Kill, exécutés en le quittant) — le numéro fixe l'ordre d'exécution.

Fichiers spéciaux (/dev)

HP-UX accède aux périphériques via des fichiers spéciaux (device files), en mode bloc (bufférisé — disques, CD-ROM) ou caractère (flux — bandes DAT, terminaux ; aussi appelé raw device). Convention de nommage :

c<instance carte>t<adresse SCSI>d<n° périphérique>[section]   # disques : /dev/(r)dsk/cCtTdD
/dev/vg<n° volume group>/(r)lvol<n° logical volume>            # volumes logiques LVM
/dev/rmt/c<instance>t<adresse>d<densité>[options]               # lecteurs DAT (BEST, NOMOD, n=no rewind...)

Commandes de diagnostic et de création :

ioscan -f                    # liste le matériel détecté et son numéro d'instance
lssf /dev/rdsk/c0t6d0        # décrit un fichier spécial (carte, cible, LUN)
lsdev                        # liste les drivers chargés et leur major number
insf -e -C tape               # (re)crée les fichiers spéciaux d'une classe de périphériques
mksf -d tape2 -I 0 -b DDS1     # crée un fichier spécial précis
mknod b 26 0x002000 /dev/dsk/c0t2d0   # création bas niveau (major/minor number)

Depuis HP-UX 10.20, le plug-and-play crée automatiquement les fichiers spéciaux des nouveaux périphériques au boot (mais ne supprime pas ceux d'un périphérique retiré) — la création manuelle via mksf/mknod reste utile en dépannage.

Systèmes de fichiers

Types disponibles : HFS (High Performance File System, historique, accès par bloc), VxFS (Veritas/JFS, journalisé, accès par extent — plus rapide à restaurer, plus gourmand en mémoire), NFS (montages distants) et CDFS (CD-ROM, lecture seule).

bdf                               # espace utilisé/disponible par filesystem monté (équivalent df)
fuser -u /dev/dsk/c0t5d0          # process utilisant un périphérique
fuser -ku /dev/dsk/c0t5d0         # + les tue (utile pour démonter un disque "busy")
mount                             # liste les filesystems montés
umount /disc2                     # démonte (échoue si busy, cf. fuser)
newfs /dev/rdsk/c0t2d0            # crée un filesystem (type par défaut : /etc/default/fs, HFS)
newfs -F vxfs /dev/vg01/rlvol5    # crée un filesystem VxFS sur un logical volume
fsck -p -n                        # vérifie sans corriger (à faire avant -y)
fsck -p -y                        # vérifie et corrige automatiquement (fichiers récupérés dans lost+found)

Montage persistant via /etc/fstab :

/dev/dsk/c0t2d0     /disc2      hfs   rw,suid   0 2
/dev/vg00/lvol9     /usr/local  vxfs  defaults  0 2
hostdistant:/disc   /disc2      nfs   rw,suid   0 0

Gestion de volumes (LVM)

Comme sous AIX, un disque devient un physical volume (pvcreate), regroupé dans un volume group (vgcreate), lui-même découpé en logical volumes (lvcreate) sur lesquels on crée les filesystems :

pvcreate -B /dev/rdsk/c0t4d0                       # -B = rend le disque bootable
mkdir /dev/vg01 && mknod /dev/vg01/group c 64 0x010000
vgcreate /dev/vg01 /dev/dsk/c0t4d0 /dev/dsk/c0t5d0
vgextend /dev/vg01 /dev/dsk/c0t2d0                 # ajoute un physical volume après coup
lvcreate -L 100 /dev/vg01                          # logical volume de 100 Mo

pvdisplay /dev/dsk/c0t4d0
vgdisplay -v /dev/vg01
lvdisplay /dev/vg01/lvol1

Le mirroring logiciel nécessite le produit optionnel payant MirrorDisk/UX. Une fois installé, le disque miroir est préparé et les logical volumes du groupe root étendus dessus :

pvcreate -B /dev/rdsk/c2t2d0
vgextend /dev/vg00 /dev/dsk/c2t2d0
mkboot /dev/rdsk/c2t2d0
mkboot -a "hpux -lq" /dev/rdsk/c2t2d0
mkboot -a "hpux -lq" /dev/rdsk/c1t2d0

lvextend -m 1 /dev/vg00/lvol1 /dev/dsk/c2t2d0
lvextend -m 1 /dev/vg00/lvol2 /dev/dsk/c2t2d0
lvextend -m 1 /dev/vg00/lvol3 /dev/dsk/c2t2d0

lvlnboot -r /dev/vg00/lvol3   # root
lvlnboot -b /dev/vg00/lvol1   # boot
lvlnboot -s /dev/vg00/lvol2   # swap
lvlnboot -d /dev/vg00/lvol2   # dump
lvlnboot -v                   # vérifie que les LVM sont prêts au boot

Gestion des patchs (SD-UX)

HP-UX gère paquets et patchs via SD-UX (Software Distributor). Procédure classique pour appliquer un lot de patchs récupérés d'un serveur de patchs : les dépaqueter puis constituer un dépôt (depot) installable via swinstall :

mkdir /tmp/patches && cd /tmp/patches
# copier les patchs (ftp/rcp/...) dans ce répertoire, puis :
sh PHCO_5400        # dépaquette chaque patch
sh PHCO_6573
sh PHCO_6587

mkdir /tmp/patch_depot
swcopy -v -s /tmp/patches/PHCO_5400.depot PHCO_5400 @ /tmp/patch_depot
swcopy -v -s /tmp/patches/PHCO_6587.depot PHCO_6587 @ /tmp/patch_depot
swcopy -v -s /tmp/patches/PHCO_6573.depot PHCO_6573 @ /tmp/patch_depot

swreg -l depot /tmp/patch_depot            # enregistre le dépôt (optionnel)
# swinstall -s /tmp/patch_depot            # installe depuis ce dépôt

swpackage -s /tmp/patch_depot -x target_type=tape -d /dev/rmt/0m "*"   # exporte le dépôt sur bande

Voir aussi

  • AIX — autre Unix propriétaire (IBM), concepts LVM très proches (physical/volume group/logical volume)
  • Comparatif commandes — équivalences de commandes entre Unix historiques (Solaris, Red Hat, Ubuntu/Debian, HP-UX, AIX)

Sections démarrage/fichiers spéciaux/filesystems/LVM basées sur le « Cours d'administration HP-UX » d'Olivier Hoarau (funix.org, v1.0, 2004), redistribuable librement avec mention de l'origine et de l'auteur (licence non commerciale explicite du document).