Administration et Architectures des Systèmes LEGOND-AUBRY Fabrice Fabrice.Legond-Aubry@Lip6.fr Module AAS Services Réseaux 1
Section La La maintenance maintenance Module AAS Services Réseaux 2
Section : «La Maintenance» Gestion des paquetages Gestion des paquetages Boot PXE Clonage Surveillance (monitoring) Réservation de ressources Module AAS Services Réseaux 3
Installation de logiciels selon deux méthodes: Compilation, à la main, à partir des sources Gestion des paquetages Dépendances et les MAJ sont à faire à la main Impossible sur un parc de machine Conseillé sur des serveurs sensibles! Installation par utilisation de paquetages Paquetages pré-compilés ou paquetages de sources Gentoo utilisation de sources à compiler avec des options préconfigurée Mandrake, Suse, utilisation de paquetages pré-compiler Les méthodes et les outils varient suivant les OS Il y a toujours des outils de gestion de dépendances Module AAS Services Réseaux 4
Gestion locale des dépendances: rpm Gestion des paquetages Installation du paquetage «logiciel.rpm» : rpm -ivh logiciel.rpm MAJ du paquetage «logiciel.rpm» : rpm -Uvh logiciel.rpm Installation forcée du paquetage «logiciel.rpm» : rpm -i --nodeps --force logiciel.rpm Désinstallation du paquetage «logiciel.rpm» : rpm -e logiciel Désinstallation forcée du paquetage «logiciel.rpm» : rpm -e --nodeps logiciel.rpm Affichage des dépendances d'un paquetage installé : rpm -qi nom_du_paquetage Affichage des dépendances d'un paquetage à installer : rpm -qip nom_du_paquetage Affichage de la liste des logiciels déjà installés : rpm -qa Savoir si motif est installé : rpm -qa grep motif Affichage du nom du paquetage ayant installé fichier.conf : rpm -qf /où_est/fichier.conf Affiches des fichiers installés par logiciel : rpm -ql logiciel Module AAS Services Réseaux 5
MAJ par le réseau : Apt-get Gestion des paquetages Utilitaire debian (avec dpkg) Actualiser la base de données ( à faire avant chaque installation de logiciel): apt-get update Mettre à jour tous les paquetages qui en ont besoin : apt-get upgrade Installer le paquetage "le_package" et ses dépendances) : apt-get install le_package Désinstaller le paquetage "le_package" ainsi que ces dépendances : apt-get remove le_package Télécharger les sources du paquetage "le_package" : apt-get source le_package Module AAS Services Réseaux 6
Utilitaires mandrake MAJ par le réseau : urpmi & smart Smart est très efficaces pour les conflits de dépendance Gestion des paquetages Vous pouvez utiliser l adresse suivante pour configurer les sources urpmi ET smart: http://easyurpmi.zarb.org/ Exemples urpmi: Installation: urpmi nomdupackage Désintallation : urpme nomdupackage Mise à jour la base de données : urpmi.update a Mise à jour la base des packages : urpmi --auto-select Module AAS Services Réseaux 7
MAJ par le réseau: tous les autres Utilitaires fedora core: yum Utilitaires gentoo: emerge Gestion des paquetages Le plus efficace évolution constante Code propre (compilé sur la machine) Long compilation à faire Utilitaire windows et office : site Web et patches www.microsoft.com et laisser Microsoft faire espionner (pardon scanner) votre machine) Télécharger les patch à la main Module AAS Services Réseaux 8
MAJ automatiques pour les clients? La machine cliente est la plus vulnérable! Il faut la mettre à jour! Créer son script de MAJ (updates) Gestion des paquetages Liste de paquetages indispensables Faire en sorte qu ils soient installés sur chaque machine A ajouter au script de MAJ Le déposer dans /etc/cron.daily Problème : le cron.daily est exécuté sur toutes les machines à la même heure Solution : Modifier la crontab pour changer l heure d exécution «cron.daily» Modifier la crontab pour ajouter un heure au hasard dans la nuit pour une MAJ répartie dans le temps (le hasard à toujours été efficace!!!) Envoyer les rapports de MAJ (emails) Module AAS Services Réseaux 9
Section : «La Maintenance» Gestion des paquetages Boot PXE Boot PXE Clonage Surveillance (monitoring) Réservation de ressources Module AAS Services Réseaux 10
L installation est coûteuse! Boot PXE Dans le cadre d un serveur Chaque configuration doit être spécifique!!! Pas de déploiement automatisé!!! Dans le cadre d un parc informatique important Il est coûteux d installer à la main des stations clientes Il est coûteux de configurer ces stations Un déploiement semi-automatique est nécessaire Dans le cadre d un cluster de calculs dont les nœuds sont homogènes Il est coûteux et fastidieux de déployer une même configuration pour différentes machines Un déploiement automatique peut être mis en place Certaines actions doivent être exécutées pareillement sur toutes les machines En générale, les nœuds n ont pas accès à des supports externes (DVD/disquette) pour des raisons de coûts financiers et de sécurité Module AAS Services Réseaux 11
Booter une machine par le réseau Boot PXE PXE = Preboot execution Environment Il existe différentes versions du pxe Peut fonctionner avec des routeurs adaptés Nécessite un Proxy-DHCP ou un serveur DHCP Nécessite un serveur TFTP Fonctionnement: Le serveur DHCP attend les requêtes DHCP La carte réseau cliente PXE émet une requête DHCP Le serveur répond La carte réseau cliente PXE demande le nom du serveur TFTP Le serveur répond La carte réseau cliente PXE charge une image disque et l exécute Module AAS Services Réseaux 12
Configuration du serveur DHCP Modification du fichier «/etc/dhcpd.conf»: Boot PXE ddns-update-style none; subnet 132.227.64.0 netmask 255.255.255.0 { #### inserer ICI les options de dhcpd ####### allow bootp; allow booting; deny unknown-clients; option ip-forwarding false; option mask-supplier false; group { # nom du fichier de boot filename "linux.0"; # le serveur tfp du groupe sera tftpsvc next-server tftpsvc.lip6.fr # autoriser la station 00:04:75:96:9D:F8 # son nom sera pollux host pollux { hardware ethernet 00:04:75:96:9D:F8; fixed-address 132.227.64.49; } # autoriser la station 00:04:75:96:9D:F9 host { hardware ethernet 00:04:75:96:9D:F9; } } } Module AAS Services Réseaux 13
Configuration des serveurs TFTP Installation d un serveur tftp Modification du démon xinet.d Fichier «/etc/xinet.d/tftp» Boot PXE service tftp { # passer disabled à NO pour activer le service disable = no socket_type = dgram protocol = udp wait = yes user = root # executable du service } server = /usr/sbin/in.tftpd # options du service # -s pour le homedir du serveur et v (x3) pour la verbosité server_args = -v -v -v -s /var/lib/tftpboot/tftpboot per_source = 11 cps = 100 2 flags = IPv4 Module AAS Services Réseaux 14
Serveurs TFTP : le répertoire racine TFTP Boot PXE Le bootloader pxe (souvent nommé linux.0, pxelinux.0, pxe.0) Voir le paquetage syslinux (équivalent d un grub ou d un lilo) Un répertoire pxelinux.cfg qui contient la configuration à déployer pour la machine Lors du boot le client cherche, dans l ordre, les fichiers de configuration suivants:./pxelinux.cfg/01-aa-bb-cc-dd-ee-ff où aa-bb-cc-dd-ee-ff est l adresse MAC de la machine cliente./pxelinux.cfg/c000025b où C000025B est l IP offerte, par DHCP, à la machine cliente dans l exemple 192.0.2.91 en hex./pxelinux.cfg/c000025./pxelinux.cfg/c00002./pxelinux.cfg/c0000./pxelinux.cfg/c000./pxelinux.cfg/c00./pxelinux.cfg/c0./pxelinux.cfg/c./pxelinux.cfg/default Module AAS Services Réseaux 15
Configuration des serveurs TFTP Contenu du fichier de configuration : Boot PXE PROMPT 10 DEFAULT loc DISPLAY messages TIMEOUT 50 #boot local par défaut label loc LOCALBOOT 0 #boot sur une image gentoo livecd refabriquée label gen KERNEL gentoo APPEND initrd=gentoo-pxeboot.img.gz root=/dev/ram0 rw ramdisk_size=268800 init=/linuxrc CONSOLE=/dev/tty5 #boot sur une image mandrake 64 bits pour installation par réseau label ins64 KERNEL mdk64_vmlinuz APPEND initrd=mdk64_all.img ramdisk_size=128000 root=/dev/ram3 vga=791 automatic=method:ftp,interface:eth0,server:eos.lip6.fr,director y:/i586,user:install,pass:install,network:dhcp #permet le boot sur une disquette de MAJ bios label ins KERNEL memdisk APPEND initrd=bios_disque.img ramdisk_size=600000 root=/dev/ram3 rw Module AAS Services Réseaux 16
Configuration des serveurs TFTP Boot PXE La création des images pxe est la plus ardue Utilisation d un chargeur d image disquette (MAJ bios) Utilisation d une image PXE créé spécifiquement (à la gentoo) Impossibilité d utiliser une image CD.iso car il faudrait émuler un lecteur CD Modification du script initrc pour vos besoins Pour les noyaux Il suffit d en récupérer des existants Vous pouvez créer vos noyaux Ils doivent être en accord avec l image chargée (ie éviter un noyaux gentoo avec une image mandrake) Redémarrez les services TFTP (xinetd) et DHCP de vos serveurs Allumez la machine client et activez le boot sur le réseau! Difficile à debugger car très bas niveau Demande un bonne connaissance de la structure linux L installation d une gentoo est une base excellente Module AAS Services Réseaux 17
Section : «La Maintenance» Gestion des paquetages Boot PXE Clonage Clonage Surveillance (monitoring) Réservation de ressources Module AAS Services Réseaux 18
Clonage par «golden node» Définition d une machine type qui servira de référence Duplication (clonage) de cette machine vers ses soeurs Attention : La configuration doit être passe-partout Problèmes: Clonage Destruction de certaines informations de log Destruction de certaines informations locales (/tmp) Module AAS Services Réseaux 19
Clonage par «golden node» : client / serveur Solution la plus simple Problèmes: Le serveur est un goulot d étranglement en ressources locales (accès disque) en ressources réseaux (capacité de la carte réseau) Peut reposer sur le broadcast mais problème de sûreté Clonage Golden node Module AAS Services Réseaux 20
Clonage Golden node Clonage par «golden node» : arbre Solution plus complexe Nécessité de créer un arbre de diffusion Peut reposer sur le multicast On peut commencer la diffusion aux nœuds enfants avant la fin du clonage Module AAS Services Réseaux 21
Clonage par «golden node» : chaine Solution intermédiaire Nécessité de créer une chaîne de diffusion (assez facile) Peut reposer sur l unicast Pas de point de saturation réseau ou de ressources (structure du réseau) On peut commencer la diffusion aux nœuds enfants avant la fin du clonage Peut être réalisé en shell!! Exemple : Clonage Golden node : dd if=/dev/hda nc hote_suivante 65123 Middle node : nc l p 65123 tee /dev/hda nc hote_suivante 65123 End node : nc l p 65123 dd of=/dev/hda Golden node Module AAS Services Réseaux 22
Logiciels de clonage Clonage Il existe des logiciels de déploiement payant Symantec Ghost, Drive Image, Paragon Drive Backup Vous pouvez utilisez des logiciels gratuits Partimage (http://www.partimage.org/) G4u (http://www.feyrer.de/g4u) Outils katools : ka-run et ka-deploy Créer vos propres solutions par exemple un boot pxe/cd/disquette avec : Un montage nfs ou un serveur t/ftp L utilisation de rsync par tunnel ssh L utilisation d un tunnel IP sécurisé - ssh ssh sourcepc 'dump -0 -f - /' restore -r -f dd if=/dev/hda bs=10k ssh hote_destination dd of=/dev/hda bs=10k L utilisation d un tunnel IP simple - netcat (nc) Chez le client: nc l p 65123 dd bs=1m of=/dev/hdb Chez la source: dd bs=1m if=/dev/hda nc destination.lip6.fr 65123 Module AAS Services Réseaux 23
Clonage d actions On peut utiliser le même principe pour exécuter des actions en parallèle sur les nœuds Exemple: urpmi nouveau_paquetage Possiblité de urpmi-parallèle avec un fichier de configuration Clonage Fichier «/etc/urpmi/parallele.cfg» Structure : «identifiant_de_groupe:ssh:membre1:membre2:» Exécution de urpmi avec p ou parallel avec l identifiant Problèmes: gestion des accès SSH par clefs nécessaire! Module AAS Services Réseaux 24
Section : «La Maintenance» Gestion des paquetages Surveillance (monitoring) Boot PXE Clonage Surveillance (monitoring) Réservation de ressources Module AAS Services Réseaux 25
Surveillance locale MRTG: Multi Router Traffic Grapher Surveillance (monitoring) http://people.ee.ethz.ch/~oetiker/webtools/mrtg/ RRDTool: Round-Robin Database Tool http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ Il existe aussi snips/helix, spong, bigbrother, netqos Module AAS Services Réseaux 26
MRTG Surveillance (monitoring) MRTG est un outil qui collecte, stocke des données puis créer des graphes MRTG permet de surveiller : la charge de traffic réseau sur un lien Ethernet la charge CPU, la mémoire l espace sur les partitions toute information pouvant être obtenu par un script MRTG génère des pages HTML qui contiennent des graphes qui représentent l évolution en Live des variables analysées MRTG a des problèmes de performances et de flexibilités un graphe à chaque MAJ soit, par défaut, 1graphe/5 min/variables les graphes ont des options limités Module AAS Services Réseaux 27
RRDTools Surveillance (monitoring) RRDtool Est une version amélioré de MRTG Incorpore le stockage et les outils de tracé de graphe (RDDcgi) N offre, par défaut, aucun moyen de récolter les données Stocke les informations de manière très compacte et qui n augmente pas au cours du temps Offre des moyens pour ajouter des informations supplémentaires On doit créer ses propres scriptes pour collecter les informations Module AAS Services Réseaux 28
Graphes MRTG & RRDTools Surveillance (monitoring) Module AAS Services Réseaux 29
Surveillance réseau : SNMP Surveillance (monitoring) SNMP = «Simple Network Management Protocol» Produit par la communauté Internet pour fonctionner sur les réseaux TCP/IP (ports udp 161 et 162) Deux versions successives SNMP V1 et SNMP V2 Une solution simplifiée et efficace pour définir de petits agents de surveillance Il existe dans le protocole SNMP deux types d agent: L agent d administration (manager) Permet l administration de plusieurs agents de gestion L agent de gestion Surveille un équipement (routeur, sonde, micro-onde, distributeur) Est embarqué avec l équipement Peut être un service sur un système qui lit une sonde φ (t, voltage, ) Module AAS Services Réseaux 30
Surveillance réseau : SNMP Surveillance (monitoring) 2 types d échanges : Interrogation cyclique (polling) : Interrogation (getrequest) et envoi d ordre (setrequest) par le manager aux sondes Gestion événementielle : Envoie d évènements d alerte (trap) par les sondes au manager Il s agit quasiment tout le temps d échange de valeurs numériques SNMP manager getrequest setrequest trap SNMP agent SNMP agent SNMP agent Module AAS Services Réseaux 31
Surveillance réseau : SNMP, MIB et SMI SNMP v1, 1990, RFC 1157 SNMP v2, 1993, RFC 1901 à 1908 (avec de nouvelles MIB) SNMP v3, 2001, RFC 3410 à 3415 et 3584 MIB? Surveillance (monitoring) MIB «Men In Black» MIB = «Management Information Base» C est une table d objets ayant chacun un identifiant (OID comme avec LDAP) Correspond aux données que l on peut lire/écrire SMI = «Structure of Management Information» Définit la structure (l arbre) d un MIB les règles d encodage des objets (ASN1/BER) Somment de l arbre informations générales Feuilles de l arbre variables spécifiques La RFC 1213, 2011 à 2013 MIBII de 1993 (pré-)définit 171 tables Module AAS Services Réseaux 32
SNMP: MIB Surveillance (monitoring) Toutes les tables MIB sont préfixées par 1.3.6.1.2.1 { iso(1) org(3) dod(6) internet(1) mgmt(2) 1(MIB-2) } Obtenir le champ MIB-2.ip.ipDefaultTTL Sur un système de gestion utilisant la table ip routeur, machine MIB-2.ip.ipDefaultTTL = 1.3.6.1.2.1.4.2 Requête: getrequest (1.3.6.1.2.1.4.2) Réponse: getresponse (1.3.6.1.2.1.4.2=30) Si l'on souhaite changer la valeur de ipdefaultttl Requête: setrequest (1.3.6.1.2.1.4.2=32) Réponse: getresponse (1.3.6.1.2.1.4.2=32) Module AAS Services Réseaux 33
SNMP nouvelle génération Surveillance (monitoring) SNMP v2 Communication entre gestionnaires selon un arbre à plusieurs niveaux Support d'un ensemble de variables et de MIB plus importantes Nouvelles primitives de communication GetBulkRequest Lecture n valeurs d'un objet en une seule fois Amélioration des mécanismes de sécurité Variables de type Compteur ou Niveau SNMP v3 Configuration à distance Sécurité renforcée (gestion utilisateurs et groupes) Module AAS Services Réseaux 34
Surveillance distribuée : nagios / ganglia Surveillance (monitoring) Ganglia et Nagios permettent une surveillance d un ensemble de machine Mise en place longue et lourde!!! Ils permettent : d interroger des agents SNMP de vérifier le statut des services d une machines d envoyer des notification par email/sms/pager de publier les informations sur le web cartographie, statistiques, délais de reprise sur panne de filtrer les messages d erreur Gestion des hiérarchies (si le dns tombe, tout tombe) Panne électrique sur un serveur tous ses services sont down Nous allons étudier nagios! Module AAS Services Réseaux 35
Nagios: définition d une machine Surveillance (monitoring) Définir les détails d une machine (fichier /etc/nagios/hosts.cfg ): define host{ host_name eos.lip6.fr alias Machine LEGOND address 132.227.64.45 parents castor.lip6.fr notifications_enabled 1 process_perf_data 1 check_command check-host-alive notification_interval 120 notification_period 24x7 notification_options d,u,r } Il est possible de définir des type de machines (templates) de définir des groupes de machine ( /etc/nagios/hostgroups.cfg ): Module AAS Services Réseaux 36
Nagios: définition d un type de service Définir les détails d un type de service (fichier /etc/nagios/services.cfg ) : Surveillance (monitoring) define service{ name ping check_command check_ping!100.0,20%!500.0,60% contact_groups linux-admins check_period 24x7 max_check_attempts 3 normal_check_interval 5 notification_interval 120 notification_period 24x7 notification_options c,r } Module AAS Services Réseaux 37
Nagios : une surveillance centralisée? Nagios fonctionne sur le principe du pull Il interroge régulièrement les machines cibles On doit définir les intervalles d interrogation Apparemment, il n est possible que de surveiller des services à distances : ping, telnet Faux. Nagios utilise des démons qui tournent sur la machine et collectent des informations. Il existe deux types de démons: Un basé sur le principes du polling: nrpe Module AAS Services Réseaux 38
Nagios: nrpe et nsca Module AAS Services Réseaux 39
Nagios: «services» surveillés sur le cluster Grid5000 Surveillance (monitoring) Module AAS Services Réseaux 40
Nagios: «overview» Cluster Grid5000 Surveillance (monitoring) Module AAS Services Réseaux 41
Nagios : Alerte email Surveillance (monitoring) Module AAS Services Réseaux 42
Surveillance & administration matérielle Surveillance (monitoring) Il existe des protocoles d administration à distance Alimentation/Senseurs (t )/FAN/CPU/[Disquette virtuelle] Ipmi - Intelligent Platform Management Interface (Intel) ilo - Integrated Lights-Out Standard (Compaq) ALOM - Advanced Lights Out Manager Online Help (Sun) Il existe aussi des cartes de prises de contrôle à distance prise de contrôle de la machine par IP exportation KVM (clavier/écran/souris) DRAC=«dell remote access control» ARMC/EMSPRO chez nec Il existe des switch KVM Une console pour plusieurs dizaines de machines Possibilité de transport du KVM par IP Module AAS Services Réseaux 43
Section : «La Maintenance» Gestion des paquetages Réservation de ressources Boot PXE Clonage Surveillance (monitoring) Réservation de ressources Module AAS Services Réseaux 44
Réservation de ressources Réservation de ressources Les outils de réservations sont : OAR, OpenPBS, PBS, Torque Structure OAR : le serveur OAR (Almighty) les nœuds de login soumettre des jobs OAR Installation des commandes oarsub, oarstat,... les nœuds de calcul ceux qui sont enregistrés dans le pool de machines ceux qui exécutent effectivement les jobs Souvent, nœuds de calcul et login sont identiques Ensuite, on ajoute les nœuds avec les outils OAR Module AAS Services Réseaux 45
Réservation de ressources Etat des nœuds Commandes «utilisateur» OAR Liste l'état des différents noeuds oarnodes Etat des tâches Liste les tâches en cours d'exécution et celles en attentes oarstat Soumission d'une tâche La commande de soumission est oarsub, elle renvoie un numéro de tâche (jobid). La variable d'environnement OAR_FILE_NODES correspond au nom du fichier contenant la liste des machines attribuées # réserve 12 noeuds pendant 5 heures à partir du 27.04.04 à 11h oarsub -r "2004-04-27 11:00:00" -l walltime=5,nodes=12 oarsub I Arrêt d'une tâche Arrêt de la tâche numéro jobid oardel jobid Module AAS Services Réseaux 46