GNU / Linux

Mise en oeuvre d'un cluster Haute Disponibilité sous Linux

Au cours de mes vacations au sein de l'IUT de Metz, j'ai donné comme projet à un groupe d'étudiants de Licence professionnelle "Systèmes Informatiques & Logiciels" le sujet suivant :

Mettre en place un serveur de fichiers « dans les nuages » afin de permettre l’accès et l’édition de fichiers depuis presque n’importe quel type de terminal...Ce serveur devra être de haute disponibilité pour garantir un accès continue aux données. A la fin de l’activité, un simple navigateur Web et un client WebDAV permettront de consulter directement les fichiers présents sur notre serveur


Je présente ici la mise en oeuvre d’un cluster Actif / Passif à basculement automatique composé de deux noeuds sous Debian 6.
La gestion du cluster est assuré par HeartBeat.

Les données sont stockées sur un volume dont les blocs sont synchronisés en temps réels entre les 2 noeuds via DRBD.

En plus des notions de clustering, le sujet traite également de la mise en oeuvre d’un serveur Apache 2, assez poussée, avec notamment le module WebDAV (oui, je sais, les puristes de la sécurité ne vont pas aimer...) mais aussi de sécurisation de base d’un serveur (Fail2Ban etc.)

La suite de l’histoire dans cet article !

Nom des périphériques de stockage sous Linux

Le nom des disques et des partitions sous Linux différent des autres systèmes d'exploitation. Vous devez connaître les noms utilisés lors du partionnement. Voici les conventions de nommage :
  • Le premier lecteur de disquette est nommé « /dev/fd0 ».
  • Le second lecteur de disquette est nommé « /dev/fd1 ».
  • Le premier disque SCSI (selon l'identifiant SCSI) est nommé « /dev/sda ».
  • Le second disque SCSI (selon l'identifiant) est nommé « /dev/sdb », ainsi de suite.
  • Le premier CD-ROM SCSI est nommé « /dev/scd0 », ou encore « /dev/sr0 ».
  • Le disque maître sur le contrôleur IDE primaire est nommé « /dev/hda ».
  • Le disque esclave sur le contrôleur IDE primaire est nommé « /dev/hdb ».
  • Les disques maître et esclave sur le second contrôleur sont nommés respectivement « /dev/hdc » et « /dev/hdd ». Les nouveaux contrôleurs IDE peuvent avoir deux canaux fonctionnant comme deux contrôleurs distincts. Les lettres peuvent différer de ce qui apparaît dans le programme mac pdisk (ce qui apparaît comme /dev/hdc dans pdisk peut apparaître comme /dev/hda avec Debian).
Les partitions sur chaque disque sont représentées en ajoutant un numéro au nom du disque : « sda1 » et « sda2 » représentent la première et la seconde partition du premier disque SCSI du système.

[ Voir l’article complet]

Tester l'état d'un service et d'un port TCP ou UDP

On omettra ici l’utilisation de l’outil Netstat. Deux cas de figure : sur un hôte local ou sur un hôte distant.
Sur un hôte local, le test du port va principalement permettre de vérifier que le service ou processus qui écoute sur ce port fonctionne de façon correcte (en effet, généralement point de problème de pare feu sur une machine unique). Sur un hôte distant, il permettra de vérifier que le service ou processus est en bon état de fonctionnement et que les éventuels pare-feu intermédiaires sont correctement configurés pour laisser passer le trafic lié à aux requêtes.
Le test simple avec l’utilitaire telnet :
Avec telnet, on peut initier une connexion TCP sur un hôte distant sur un port particulier. Si TELNET obtient une réponse, le service fonctionne et les ports ne sont pas bloqués.
Syntaxe : TELNET @IP port TCP
Avec l’utilitaire NC :


Le programme NC, pour NETCAT est un véritable couteau suisse pour la gestion des connexions TCP et UDP : il permet de tester l’état d’un ou plusieurs ports TCP ou UDP, permet de tester une étendue de ports sur une IP (afin de vérifier pour un hôte quels sont l’ensembles des ports ouverts et services en cours d’exécution...) , tester les résolutions DNS etc.
Syntaxe : nc -zv @IP port_UDP-TCP [port_UDP-TCP]

[ Voir l’article complet]