Mémento de commandes d’administration pour AIX (≤ 5.x)




Découverte du Système

Commandes Description
# oslevel –r version d’Aix et Maintenance Level (ml) ou TL
# lslpp –l bos.mp Basic Operating System – Multi Processor
# uname –a nom machine + version OS
# uname -M modèle de la machine
# uptime durée de démarrage & index de charge (2 peu chargée – 5/6 assez chargée – >10 pb)
# lsps -a affiche le swap
# bootinfo -r taille de la mémoire réelle en Kb
# bootinfo –s hdisk# taille du disque #
# bootinfo -b disque utilisé lors du dernier boot
# bindprocessor -q nombre de processeur(s)
# prtconf displays system configuration information
# lsitab –a voir le fichier /etc/inittab
# ifconfig –a liste des interfaces réseau & ip
# w ou who ou users utilisateurs connectés
# w nomduser aperçu de l’activité de la machine
-h supprime l’entête
-s affichage restreint nom d’utilisateur
# whereis nomdelacommande affiche le chemin complet d’accès à tous les répertoires contenant la commande
# which nomdelacommande affiche le chemin complet d’accès à une commande
# /etc/motd : Message Of The Day c’est à cet endroit que se trouve le message lors de la connexion d’un user
# echo $TZ affiche la Time Zone du serveur
# lslicense information sur la licence
# echo $ODMDIR chemin de la base de données ODM
# bootlist –om normal information sur la bootlist mode normal
# bootlist –m normal hdisk# modifie la boolist ; l’os démarrera sur le hdisk#
# instfix –i | grep ML liste des Maintenance Levels
# lslpp –l liste des produits installés
# lssrc -a liste des sous-systèmes active/inoperative
# lsdev -CH périphériques disponibles CuDv (ODM)
# lsdev –Cc disk périphériques par classe (disk)
# lsdev -PH périphériques prédéfinis PdDv (ODM)
# lsdev –Pr class liste des classes de périphériques
# lsdev –Cs scsi –H –F “name status location connwhere description” s=sous-classe, H=entête, F=champs
# lscfg -v infos détaillées sur la configuration du système
# lscfg –vl hdisk0 infos détaillées sur hdisk0
# lsps -a configuration de l’espace de pagination
# sysdumpdev configuration du dump
# lsattr –El en0/en1 caractéristiques des objets
# lsattr –El sys0 une partie des paramètres noyau
# lsattr -EH -l mem0 infos sur la mémoire physique
# no -a liste des paramètres configurables du réseau.
(modifiable à chaud ou via /etc/rc.net)
# lsparent –C –k ent liste des cartes réseau
# rcpinfo –p liste des programmes RPC enregistrés auprès du portmapper
# getconf -a | grep KERN affiche le bitmode (32, 64, …) ≥ AIX 5.i
# lslpp –l liste des logiciels installés
# lslpp –L all liste des logiciels installés
# instfix icqk 4330-08_AIX_ML | grep “:=:” affiche tous les composants qui sont en version 4.3.3 et en ml 08

Processus

Commandes Description
# ps –eaf information sur les processus
# kill –l affiche les signaux possible à envoyer à un processus
# fuser FS affiche les processus accrochés à un FS (remplacé par LSOF dans les versions AIX plus récentes)
# ps auxw | more (ou ps gaux |more) affiche l’utilisation des processeurs & mémoire    par processus
# echo $? affiche le code erreur de la dernière commande passée

Fichers et Répertoires

Commandes Description
# file <fichier> affiche la nature d’un fichier
# istat examine les inodes. Donne, entre autre, la date du dernier accès d’un fichier
# pwd affichage du répertoire courant
# tar cvf nomdarchive nomdefichier création de l’archive
# tar tvf nomdarchive visualisation de l’archive
# tar rvf nomdarchive nomdefichier rajout dans l’archive
# tar xvf nomdarchive nomdefichier restauration de l’archive
# du –akx | sort –rn | more affiche la taille (en blocs de 1024 bits) des fichiers utilisés uniquement sur le FS
# ls –s F L crée un lien symbolique sur F nommé L
# wc –c file1 compte les caractères de file1
find /tmp -type f -mtime +600 -exec rm {} \; purger dans /tmp les fichiers de + de 600 jours

Utilisation du LVM

Commandes Description
Physical Volume : chaque disque est désigné par un Physical Volume Identifier. Le PVID est stocké sur le disque physique lui-même et dans la base ODM.
Volume Group : chaque volume group est désigné par un Volume Group Descriptor Area. Une copy de la VGDA est stockée sur chaque disque du Volume Group.
Logical Volume : chaque logical volume contient un Logical Volume Control Block qui est stocké dans les 512 premiers octets du logical volume. La LVCB contient des informations sur la date de création, les mirroring, les points de montage, etc.
ODM : la base Object Data Manager est utilisée par le LVM pour stocker des informations. Il existe un objet ODM appelé vg-lock. Lorsqu’une commande LVM est passée sur un VG, un lock est positionné sur le VG jusqu’à la fin de cette commande. Si pour une raison quelconque le lock persiste après la fin de la commande, le VG peut être déverrouillé grâce à varyonvg –b qui doit être passé sur un VG déjà activé.
mkvg [-d MaximumPhysicalVolumes][-B][-G][-f] [-i][-c][-x] [-m MaxPvSize][-n][-s Size][-t factor] [-V MajorNumber][-y VolumeGroup] PhysicalVolume creation d’un VG (un seul fichier special en mode caractère)
# mkvg –y “vgname” hdisk2 hdisk3 création d’un VG vgname qui comporte les disques hdisk2 et hdisk3
mklv [-a Position][-b BadBlocks][-c Copies][-d Schedule] [-e Range][-i][-L Labek][-m MapFile][-r Relocate] [-s Strict][-t Type][-u UpperBound][-v Verify] [-y NewLogicalVolume | -Y Prefix][-S StripeSize][-U Userid] [-G Groupid][-P Modes] VolumeGroup Number [PhysicalVolume …] création d’un LV
# mklv –y lv_name –c rootvg 2 hdisk0 hdisk2 création lv_name mirroré avec 2 LPs
crfs –v VfsType {-g VolumeGroup|-d Device} [-l LogPartitions] –m MountPoint [-n NodeName] [-u MountGroup] [-A {yes|no}] [-p {ro|rw}] [-a Attribute=Value…] [-t{yes|no}] création d’un FS
# crfs –v jfs –d lvname –m /mnt –A yes –p rw
lsvg [-L][-o]|[-n DescriptorPhysicalVolume]|[-i][-I-M|-p] liste des VG
# lsvg –l vgname détails du VG
# lsvg –o | lsvg –i -l liste des vg, lv & fs associés
lslv [-L][-l|-m][-nPhysicalVolume] LogicalVolume liste des LV
# lslv –l lvname liste les PV du LV
# lslv –m lvname détails des PV du LV
lsfs [-q][-c|-l][-a|-v VfsType|-u MountGroup|FS…]] liste des FS
# lsfs –a liste des FS
# lsfs –q /fs_name détails du FS
lspv [-L][-l|-p|-M][-n DescriptorPhysicalVolume] [-v VolumeGroupID] Physical Volume liste des PV
# lspv –p hdisk0 répartition des PPs
extendvg [-f] VolumeGroup PhysicalVolume… extension d’un VG
# extendvg vgname hdisk2 ajout du hdisk2 au VG
extendlv [-a Position][-e Range][-u Upperbound][-s Strict] LogicalVolume Partitions [PhysicalVolume…] extension d’un LV
# extendlv lvname 8 hdisk2 ajout du hdisk2 au LV
mklvcopy [-a Position][-e Range][-k][-m MapFile] [-s Strick][-u UpperBound] LogicalVolume Copies [PhysicalVolume…] création d’une copie de LV
# mklvcopy –s n lvname 2 hdisk1
rmlvcopy LogicalVolume Copies [PhysicalVolume…] suppression d’une copie de LV
# rmlvcopy lvname
cplv [-v VolumeGroupe][-y NewLogicalVolume|-Y Prefix] SourceLogicalVolume [-L VolumeGroupe][-n][-F][-R] PhysicalVolume copie du contenu d’un LV
# cplv –v vgname –y lvcible lvsource
importvg [-V MajorNumber][-y VolumeGroupe][-f][-c] [-x]| [-L VolumeGroupe][-n][-F][-R] PhysicalVolume importation d’un groupe de volume dans la base ODM
# importvg –y vgname hdisk2
exportvg VolumeGroup exportation d’un groupe de volume, le vg doit être inactif
# exportvg vgname
ATTENTION: le VG est supprimé de la base ODM
mirrorvg [-S|-s][-Q][-c Copies][-m] VolumeGroup[PhysicalVolume…] mise en miroir d’un VG
# mirrorvg –c2 vgname hdisk2
ATTENTION: mirrorvg = désactivation quorum + ajout d’une copie + synchronisation du vg
unmirrorvg [-c Copies] VolumeGroup [PhysicalVolume…] suppression d’une copie d’un mirroir
# unmirrorvg vgname hdisk2 suppression de la copie sur hdisk2
ATTENTION: unmirrorvg = suppression d’une copie + activation quorum
syncvg [-f][-i][-H][-P NumParallelLps]{-l|-p|-v} Name… synchronisation d’un VG / LV / PV
# syncvg –v vgname
# syncvg –l lvname
# syncvg –p pvname
reducevg [-d][-f] VolumeGroup PhysicalVolume… suppression d’un disque du VG
# reducevg vgname hdisk#
rmlv [-B][-f][-p Physical Volume] LogicalVolume suppression d’un LV
# rmlv lvname
rmfs [-r] FileSystem suppression d’un FS
# rmfs –r fsname suppression du FS + point de montage
ATTENTION: si le FS est en JFS → suppression du LV associé
chvg [-a AutoOn{n|y}][-c|-l] [-Q{n|y}][-u][-x{n|y}] [-t[factor]][-B] VolumeGroup modification des caractéristiques d’un VG
# chvg –Qn vgname désactivation du quorum
chlv [-a Position][-b BadBlocks][-d Schedule][-e Range]    [-L label][-p Permission][-r Relocate][-s Strict][-t Type] [-u Upperbound][-v Verify][-w MirrorWriteConsistency] [-x Maximum][-U Userid][-G Groupid][-P Modes] LV modification des caractéristiques d’un LV
# chlv –n lvname1 lvname2 changement de nom
# chlv –x 600 lv_name augmentation max LP
chfs [-n NodeName][-m NewMountPoint][-u MountGroup] [-A{yes|no}][-p{ro|rw}][-t{yes|no}][-a Attribute=Value] [-d Attribute]FileSystem modification des caractéristiques d’un FS
# chfs –a size=+32768 /mnt4
# chfs –m /mnt1 /mnt2 (nouveau ancien)
# chfs –u groupname /fsname (mount –t groupname)
chpv [-a Allocation][-v Availability][-c] PhysicalVolume modification d’un PV
# chpv –c hdisk0 suppression enregistrement de boot
migratepv [-i] [-l LogicalVolume] SourcePhysicalVolume DestinationPhysicalVolume migration d’un PV vers un autre
# migratepv –l lvname hdisk1 hdisk2
defragfs [-q|-r]{device|FS} défragmentation de FS en ligne
# defragfs –q fsname
redefinevg {-d Device|-i Vgid} VG examine chaque disque et met à jour la base ODM
# redefinevg rootvg
synclvodm [-v] VG [LV] reconstruit la LVCB, la VGDA sur les PVs
# synclvodm –v rootvg
fsck [-n][-p][-y][-dBlockNumber][-f][-I InodeNumber][-o Options][-tFile][-V VfsName][FS1 FS2…] contrôle de l’intégrité d’un FS
# fsck –yp /fsname
varyonvg [-b][-c][-f][-n][-p][-s][-u] VG activation d’un VG
# varyonvg vgname
varyoffvg [-s] VG desactivation d’un VG
# varyoffvg vgname
# varyoffvg –s vgname mode management

Configuration des Unités

Commandes Description
lsdev –C [-c Class][-s Subclass][-t Type][-f File] [-F Format|-r ColumnName][-h][-H][-l Name][-S State] infos sur le nom de la ressource, l’état, l’adresse
# lsdev –Cc disk
lscfg [-rv]|[[-r]|[-v][-l Name]] infos sur la configuration
# lscfg –vl | more
lsattr {-D[-O]|-E[-O]|-F Format} –l Name [-a Attribute]… [-f File][-h][-H] infos détaillées sur les attributes d’une unité
# lsattr –El sys0 –a realmem –F value
mkdev {-c Class –s Subclass –t Type}[-l Name] [-a Attribute=Value]…[-d|-S|-R][-f File][-h] [-p ParentName][-q][-w ConnectionLocation] configuration d’une unité
# mkdev –c disk –s scci –t scsd –l hdisk# -p scsi –w 1,0
cfgmgr [-f|-s|-p Phase][-I Device][-l Name][-v] configuration des unités auto-configurables
# cfgmgr –l scsi1
chdev –l Name [-a Attribute=Value…][-f File][-h] [-p ParentName][P|-T][-q][-w ConnectionLocation] modification de la configuration d’une unité
# chdev –l sys0 –a autostart=true
# chdev –l rmt0 block_size=512
# chdev –l ent0 –a media_speed=’100_Full_Duplex’
rmdev –l Name [-d|-S][-f File][-h][-q][-R] suppression d’une unité
# rmdev –dl hdisk#
Permettre le Dynamic Processor Deallocation
# lsattr –El proc0 vérifie l’état du processeur
# lsattr –El sys0 vérifie le paramètre cpuguard
# chdev –l sys0 –a cpuguard=enable

Fichiers Remarquables

Location Description
/etc/security/passwd fichier des mots de passe cryptés
/etc/security/user caractéristiques utilisateur
/etc/security/group caractéristiques groupe
/etc/security/limits limites d’utilisation des ressouces par utilisateur
/etc/security/environ variables d’environnement des utilisateurs
/etc/security/login.cfg paramètres de connexion (limitation)
/sbin/rc.boot scripts de démarrage
/etc/rc.tcpip
/etc/resolv.conf @IP des serveurs DNS
/etc/inetd.conf fichier de configuration de inetd
/etc/netsvc.conf ordre de résolution de nom (var NSORDER)
/etc/filesystems fichiers des systèmes de fichier (imfs vgname)

Mécanismes de contrôle des ressources

gestion des ressources du système
Gestion de la CPU
On peut contrôler l’action de la mémoire en agissant sur 4 paramètres.
- les identificateurs « nice »
- les priorités des processus
- les files d’attentes de traitement
- les paramètres d’ordonnancement (schedtune)
Gestion de la mémoire
La mémoire réelle est une ressource finie. Lorsque les processus réclament plus de mémoire que ce qu’il y a de disponible, la pagination se déclenche pour déplacer des parties de processus sur disque et libérer ainsi des pages de mémoires pour exécuter de nouveaux processus. Si le système continue à manquer dé mémoire, il va se mettre à swaper, donc à déplacer des processus entier vers le disque pour libérer plus de mémoire.
On peut contrôler l’action de la mémoire en agissant sur 3 paramètres.
- l’espace de pagination
- limiter les ressources des processus
- jouer avec les paramètres de gestion mémoire (vmtune)
Gestion des I/Os
Le transfert des données vers et depuis la machine repose sur la banse passante de chaque périphèrique (disque, adaptateur, réseau, etc.). Chaque périphérique possède ses propres règles d’optimisation ainsi que ses propres problèmes.
On peut contrôler l’action des I/Os disques en agissant sur 3 paramètres.
- organisation des FS sur les disques et les contrôleurs
- placement des fichiers sur les disques
- paramètres des I/Os

Commande TCP/IP d’accès aux systèmes distants

Location Description
rcp permet de copier des fichiers entre sites UNIX
rlogin permet aux utilisateurs de se connecter sur des système    unix distants à partir de leur propre terminal
rsh permet l’exécution d’une seule commande sur site distant
ftp permet de copier des fichiers entre système local et tout système accessible. C’est une version générale de rcp
telnet permet à un utilisateur de se connecter à un site distant sur lequel il possède un compte, que cela soit un système UNIX ou non (c’est en général dans ce dernier cas que telnet est utilisé). C’est une version plus générale de rlogin
finger permet d’obtenir de l’information sur les utilisateurs d’un site distant (ainsi que sur le système local)
tcpdump permet d’examiner les entêtes des paquets transmis par TCP/IP. Le résultat affiche le nom du protocole et la taille du paquet, suivi des sites et des ports source et destination, d’option TCP, du numéro de séquence de l’accusé de réception et du contenu du champs TCP, th_win
iptrace enregistre les données des paquets dans un fichier binaire
ipreport affiche les informations tirées du fichier généré par iptrace

Définitions

gestion des ressources du système
mémoire virtuelle & VMM : sous AIX, la mémoire est gérée par le Virtual Memory Manager (VMM). La mémoire virtuelle est composée par la mémoire réelle plus des portions de disques physiques et c’est grâce à ce VMM que la mémoire réelle donc dispose le système apparaît plus grande qu’elle ne l’est en vérité.
appel système : un appel système provoque le passage du processus du mode d’exécution utilisateur au mode d’exécution système, le processus utilise alors du code système pour son propre compte (ex : fork, gethostname, getpid, etc.).
freelist : VMM maintient un ensemble de pages mémoires libres réservé pour les nouvelles pages demandées par les processus.
minfree : taille minimale de la liste des pages disponibles. Lorsque la taille de cette liste tombe en dessous de minfree, le VMM doit subtiliser des pages aux processus en cours d’exécution pour renflouer ce cheptel.
maxfree : la subtilisation des pages cesse lorsque la liste des pages disponibles atteint ou excéde ce seuil.
minperm : minimum number of permanent buffer pages for file I/O.
maxperm : maximum number of permanent buffer pages for file I/O.
page fault : un défaut de page se produit lorsqu’un processus demande une page mémoire qui ne réside pas en mémoire et qui doit être rechargée à partir du disque. Cf. trashing
paging (pagination) : mécanisme de répartition de la mémoire. Le « paging » transfert des morceaux de la mémoire du processus – l’unité de transfert est la page de 4ko – sur le disque pour libérer suffisamment de mémoire pour l’exécution d’un autre processus.
swaping (transfert) : mécanisme de répartition de la mémoire. Le « swapping » est le transfert d’un processus entier sur le disque entraînant la libération de la mémoire qu’il utilise.
trashing : lorsqu’un processus demande la lecture d’une nouvelle page et qu’il n’en existe pas de disponible, ni de réutilisable, une des pages de la mémoire, utilisée par un autre processus, est alors déplacée sur le disque (page out). Lorsque cette page est à nouveau demandée, elle doit être relue ce qui forcera certainement le transfert sur disque d’une autre page. Lorsque le système passe son temps à gérer la mémoire virtuelle, on appelle cela une situation de « trashing ».

Mesure de la performance

la commande vmstat

kthr memory page faults cpu
—– ———– ———————— ———— ———–
r b avm fre re pi po fr sr cy in sy cs us sy id wa


kthr : Kernel THRead
r : process prêts en attente d’exécution dans la run queue
b : process bloqués en attente de ressources (E/S, demande de pages) dans la wait queue.
vmstat5.r <5, vmstat5.b doit être proche de 0

memory : représente l’utilisation de la mémoire
avm : nombre moyen de pages actives (4ko) de la mémoire virtuelle (une page est considérée comme active si elle appartient à des processus exécutables ou qui se sont exécutés depuis moins de 20 secondes)
fre : nombre moyen de pages (4ko) de mémoire réelle dans la liste des pages disponibles (freelist). Cette colonne représente la mémoire disponible.
L’activité de pagination est reflétée par une diminution significative de la mémoire disponible vmstat5.fre

page : représente l’activité de pagination sur la machine
re : nombre de pages réclamées c’est-à-dire le nombre de pages placées dans la liste des pages disponibles (freelist) mais réclamées par leur propriétaire avant qu’elle ne soient réutilisées.
pi : pagination in (de l’espace de pagination vers la mémoire réelle)
po : pagination out (de la mémoire réelle vers l’espace de pagination)
fr : nombre de pages mémoire libérées par l’algorithme de remplacement de page durant l’intervalle de mesure.
vmstat5.po doit être proche de0 et la colonne de vmstat.pi n’est pas très significative car le lancement d’un processus provoque la pagination de son imageexécutable et de ses données. Lorsqu’un processus est lancé, le chiffre de cette colonne augmentera por retomber rapidement à un niveau normal.
vmstat5.po / vmstat5.fr > 1 / 6(vol de pages)

faults :
in : nombre d’intérruption par secondes hors-horloge
sy : appels système par seconde. Un appel système provoque l’utilisation par le processus du code système pour son propre compte. (exemple lecture/écriture sur un fichier).
cs : changement de contexte par seconde
cpu :
us : % temps CPU user (process de priorités comprises entre 127 et 50). Lorsqu’un process s’exécute en mode utilisateur, il utilise son propre code et ne fait pas appel aux ressources du noyau.
sy : % temps CPU noyau (process compris entre 49 et 0) qui résulte à la fois du surcoût induit par l’éxécution des process utlisateurs qui ont besoin de ressources noyau (exemple lecture/écriture sur un fichier) et du temps passé à offrir des services système.
id : % de temps CPU non utilisé
vmstat5.id > 5%, vmstat5.us > 2 x vmstat5.sy, vmstat5.wa < 25%
la commande sar
# sar –u : activité des processeurs
%usr : % de temps passé en mode utilisateur
%sys : % de temps passé en mode système
%wio : % de temps durant lequel le processeur est en attente d’une réponse d’une I/O
%idle : % de temps durant lequel le processeur n’est pas utilisé
sar-u5.idle > 5%, sar-u5.wio doit être faible (entre 5% et 10%)
sar-u5.usr > 2 x sar-u5.sys
# sar –d : activité des disques
device : nom du périphérique
%busy : pourcentage de temps durant lequel le disque sert la requête
avque : nombre moyen de requête dans la file d’attente
r+w/s : lecture/écriture effectuée par seconde
blks/s : blocs de 512 octets transférés par seconde.
avwait : temps moyen d’attente dans la file d’attente
avserv : temps moyen de service pour une requête
sar-d5.busy < 20%, sar-d5.avwait < sar-d5.avserv, sar-d5.avserv < 50ms
# sar –q : file d’attente en exécution
runq-sz : file d’attente des processus en attente d’exécution
%runocc : % de temps durant lequel la file d’attente contient des processus
swpq-sz : file d’attente des processus swappés en attente d’exécution
%swpocc : % de temps durant lequel la file d’attente de swap est occupée par des processus
sar-q5.runq.sz < 5
# sar –b : activité des buffers et cache
bread/s : nombre de lecture/s du disque vers le cache
lread/s : nombre de lecture /s dans le cache
%rcache : taux de réussite d’accès en lecture dan le cache
bwrit/s : nombre d’écriture/s du cache vers le disque
lwrit/s : nombre d’écriture/s dans le cache
%wcache : taux de réussite d’accès en écriture dans le cache
pread/s : nombre de lecture/s à l’aide de l’appel système physio()
pwrit/s : nombre d’écriture/s à l’aide de l’appel système physio()
sar-b5.rcache > 95% et sar-b5.wcache > 65%
# sar –v : activité des tables du noyau
proc-sz : processus actuellement exécutés / processus max (nproc)
inod-sz : inodes actuellement en mémoire / inodes max
file-sz : taille de la table des fichiers / valeur maximale
thrd-sz :