Aligner les partitions d’un disque

Un disque dur ouvert avec vue sur les plateaux

Un disque dur ouvert avec vue sur les plateaux

Une fois n’est pas coutume, voici une histoire qui m’est réellement arrivée !

J’ai entrepris de migrer d’une offre de serveur dédié à une autre, dont la seule différence était la présence d’un disque de plus grande capacité. Le reste du matériel étant identique, la solution la plus simple pour moi était de faire une copie bit à bit du disque par le réseau, d’un serveur à l’autre.

L’opération s’est déroulée sans encombre. Le matériel étant identique, les services également, il n’y avait aucune raison évidente de rencontrer des performances différentes. Et pourtant, les performances étaient moindres : la charge était plus élevée sur un disque de plus grande capacité. C’est assez inhabituel !

Après quelques jours de monitoring, la raison paraissait évidente : les accès disques étaient plus longs ! Mais bizarrement, des tests classiques de lectures ne montraient pourtant pas de problème particulier : les débits étaient corrects. Après quelques semaines de recherche sur la cause de ses lenteurs, j’ai réussi à trouver la cause : les partitions étaient désalignées.

Il est possible de vérifier l’alignement de partition en utilisant la fonction align-check de l’utilitaire de partitionnement parted.

Un disque dur est composé de secteurs de 512 octets, ou pour les disques plus récents de secteurs de 4 Ko, le secteur étant la plus petite unité qu’un disque sache lire.

Lors de la création de partition, il est fortement conseillé de démarrer toutes les partitions sur des secteurs physiques entiers. En effet, le système d’exploitation donnera des ordres de lecture d’au moins la taille d’un secteur (inutile de demander une taille moins importante, le disque devra de toute façon lire un secteur complet pour vérifier l’intégrité des données).

Si la partition ne commence pas sur un secteur entier, le système d’exploitation va donner ordre de lire un secteur logique, mais celui-ci se trouvera réparti sur deux secteurs physiques. De ce fait, les performances seront réduites, car chaque lecture ou écriture, même de blocs contigus, devra lire ou écrire deux secteurs en début et en fin de bloc (sauf si le bloc est d’une taille inférieure à deux secteurs).

Lecture d'une partition désalignée

Lecture d’une partition désalignée

La seule solution pour améliorer les performances est de réaligner les partitions sur des secteurs entiers, afin qu’un secteur logique corresponde à un secteur physique.

Comment réaligner des partitions ?

J’ai envisagé plusieurs solutions pour réaligner les partitions de mon serveur : la première, c’est de réinstaller le serveur et la deuxième était de réaligner les partitions sur le système existant.

Mon choix s’est porté sur la deuxième solution. Il restait à pouvoir trouver une manière de la mettre en œuvre. Un des logiciels sous Linux capable de déplacer des partitions et leur contenu est GParted. Malheureusement, il n’existe qu’une version graphique et nécessite un serveur X pour fonctionner : pas facile à mettre en œuvre sur un serveur … La deuxième contrainte pour cette opération est de devoir effectuer cette opération sur un système de secours car il est impossible de modifier les partitions d’un système en cours d’utilisation !

Solution n°1 : le serveur X sur le PC en local

La première solution que j’ai envisagée, était d’afficher l’interface de GParted sur mon PC en local, via l’accès SSH et l’export d’affichage X. Comme l’opération dure plusieurs heures, j’ai envisagé la possibilité que l’accès SSH puisse se couper et j’ai fait le test. Si l’accès SSH se coupe, ou si le serveur X se coupe, GParted est également stoppé net et toutes les opérations en cours également. Cette solution était très hasardeuse, je l’ai donc écartée !

Solution n°2 : Utiliser tightvncserver sur le serveur

La deuxième solution qui m’est venue à l’esprit, fût d’installer un serveur VNC sur le système de secours et d’exécuter GParted par l’intermédiaire de celui ci. Cette solution était viable : la perte de l’accès VNC au serveur n’arrête pas GParted et les opérations continuent tant que le serveur VNC reste démarré.

La mise en œuvre de la solution

La première étape, avant de toucher des partitions à bien sur été de sauvegarder l’ensemble des données.

Ensuite, le travail d’alignement à réellement commencé. GParted dispose d’un paramètre pour aligner automatiquement les partitions lors de leurs modifications, il suffit de sélectionner « MiB Alignement », puis de réduire chaque partition du minimum possible, pour que celle-ci soit automatiquement alignée.

Une fois les opérations crées, il reste à appliquer réellement les modifications sur le disque. Il faut prévoir quelques heures durant lesquelles il va falloir prendre son mal en patience et croiser les doigts !

Et voilà comment une machine passe d’un load average sur 15 minutes de 1.1 à 0.4 !

Il faut attendre la fin de la propagation DNS …

Représentation hiérarchique de DNS

Représentation hiérarchique de DNS

 

– Bonjour, j’ai modifié l’adresse IP de mon domaine et ça ne marche pas chez moi. Pourquoi ?
– Votre modification DNS date de moins de 24H, c’est normal, il faut attendre que la modification se propage.

Cette phrase est un classique du support client pour expliquer que DNS n’est pas forcément « instantané », mais cette expression colporte une idée totalement erronée du fonctionnement DNS. Tout d’abord, rappelons rapidement comment fonctionne DNS.

Il existe deux types de serveurs de noms utilisés sur Internet : celui qui permet à n’importe quel navigateur de transformer « fr.wikipedia.org » en l’adresse IP « 91.198.174.192 », qui sera appelé un DNS récursif et celui qui permet au propriétaire de « fr.wikipedia.org » de définir que l’adresse IP correspondante est « 91.198.174.192 », qui sera quant à lui appelé un serveur DNS autoritaire.

Les DNS autoritaires

Pour chaque domaine, le titulaire défini des serveurs de noms appelés autoritaires, qui délivrent les informations DNS de son choix. Ces serveurs de noms sont référencés dans une structure hiérarchique : il faut lire le nom de domaine de droite à gauche, en le découpant par les « points », et dont la première composante est la « Racine » pour retrouver cette hiérarchie :
fr.wikipedia.org devient donc Racine → org → wikipedia → fr

En théorie, personne ne devrait écrire fr.wikipedia.org, mais fr.wikipedia.org. (avec le point final). Le point final représente la Racine de DNS.

De manière simplifiée, la structure hiérarchique de DNS permet pour chaque composante du domaine de déléguer la gestion DNS ou non à d’autres serveurs DNS autoritaire (comme dans l’image de l’article), tout en sachant qu’il y a une racine commune « . ». Les serveurs DNS autoritaires du propriétaire d’un domaine font partie de cette hiérarchie. Ils seront donc interrogés pour toute demande concernant son domaine et fourniront la réponse demandée.

Lorsque le titulaire du domaine modifie par exemple l’adresse IP de son domaine, cette information est directement disponible en interrogeant le serveur DNS autoritaire : il n’y a aucun délai entre la modification de l’information et la disponibilité de celle-ci sur les DNS autoritaires.

C’est également les serveurs DNS autoritaires qui définissent la durée de mise en cache (TTL) des informations DNS.

Les serveurs DNS récursifs (ou encore cache DNS)

Tout équipement (ou presque) relié à Internet dispose dans sa configuration réseau d’adresse IP de serveurs DNS récursifs : ce sont ces serveurs DNS qui vont permettre à un navigateur de savoir que pour accéder au site web « fr.wikipedia.org », il faudra se connecter au serveur web de l’adresse IP « 91.198.174.192 ».

Le principe de fonctionnement d’un DNS récursif, c’est de parcourir la hiérarchie DNS, depuis la racine, pour trouver l’information qu’il cherche. Voici un exemple qui montre le fonctionnement d’un DNS récursif pour retrouver l’adresse IP correspondant à « fr.wikipedia.org » :

Question A qui ? Réponse
Quelle est l’adresse IP de fr.wikipedia.org Serveur DNS Racine Pour .org, il faut interroger un des DNS autoritaires suivant :
d0.org.afilias-nst.org.
a0.org.afilias-nst.info.
b0.org.afilias-nst.org.
a2.org.afilias-nst.info.
b2.org.afilias-nst.org.
c0.org.afilias-nst.info.
Quelle est l’adresse IP de fr.wikipedia.org ? Un des serveurs DNS autoritaires pour .org Pour wikipedia.org, il faut interroger un des DNS autoritaires suivants :
ns2.wikimedia.org.
ns1.wikimedia.org.
ns0.wikimedia.org.
Quelle est l’adresse IP de fr.wikipedia.org ? Un des serveurs DNS autoritaires pour wikipedia.org 91.198.174.192

(Note pour les puristes : j’ai omis la présence du CNAME, cela n’apporte rien au propos de cet article)

La deuxième fonctionnalité des DNS récursifs est de garder les informations en cache pendant la durée définie par le propriétaire du domaine, qui est souvent de 24H. Cette fonctionnalité permet de réduire la charge sur les serveurs DNS autoritaires et d’améliorer les temps de réponses des DNS récursifs pour la même demande.

Conclusion

Le verbe « propager », ou le nom « propagation » laisse penser que l’information est activement transmise des DNS autoritaires vers les serveurs DNS récursifs : le fonctionnement d’un DNS récursif est totalement inverse. C’est le DNS récursif qui va chercher l’information et non pas l’information qui arrive à lui : le terme « propagation » est totalement erroné. Je lui préfère l’expression suivante : « Suite à votre modification DNS, il faut patienter que l’information expire dans les DNS cache des différents FAI pour que tout le monde ait accès à cette modification ».

Lorsqu’un propriétaire de domaine modifie l’adresse IP de son domaine, sa seule certitude concernant le fait que tout Internet utilise cette nouvelle adresse IP est que ce moment arrivera au plus tard à T + durée de mise en cache, ou T est la date où a été effectuée la modification. Même si la durée de 24H est souvent la valeur par défaut, rien n’empêche de modifier cette valeur.

SSL : qu’est-ce que c’est réellement ?

La représentation la plus commune de SSL : un cadenas

La représentation la plus commune de SSL : un cadenas

Il est communément admis que SSL (qu’on devrait plutôt appeler aujourd’hui TLS) permet d’assurer la confidentialité des échanges, en chiffrant les échanges. Mais est-ce sa seule fonction ?

TLS ne se limite pas à assurer la confidentialité des échanges, c’est simplement la fonction la plus mise en avant par les sites de commerce en ligne, et à présent par l’ensemble des sites web depuis les révélations faites par Edward Snowden concernant les écoutes effectuées par la NSA et les services secrets britanniques.

TLS répond par l’intermédiaire de ses fonctions principales à 3 besoins différents. D’autres fonctions existent, mais leur utilisation reste plutôt confidentielle.

Confidentialité

Le premier besoin est la confidentialité des échanges : le chiffrement des échanges permet de s’assurer qu’un tiers ne pourra pas consulter (facilement) le contenu des données échangées.

Authentification

Le second besoin est celui d’authentifier le serveur, c’est-à-dire de s’assurer qu’on communique bien avec le bon serveur. La mise en place des autorités de certifications qui doivent respecter un cahier des charges pour délivrer un certificat uniquement au propriétaire d’un domaine. Les certificats SSL dit « auto-signés » font l’impasse sur cette fonctionnalité de TLS, car ils ne sont pas émis par une autorité de certification et ne seront pas reconnus.

Intégrité

Le troisième besoin est celui d’être certain que le message n’a pas été modifié pendant la transmission. C’est une partie de la méthode de chiffrement qui prend en charge cette fonction. Cette fonction permet de s’assurer qu’un tiers n’a pas modifié le message échangé entre le client et le serveur.

Impossible d’accéder à l’Accès Bureau à Distance : Licence CAL RDP expirée

License expirée Remote Desktop

License expirée Remote Desktop

Sous Windows Serveur, lors de l’activation du rôle « Terminal Services », une licence CAL temporaire est créée. Cette licence est valable 90 jours. Les administrateurs systèmes oublient souvent donc d’ajouter les licences CAL sur le serveur, puisque l’accès est fonctionnel. Seulement au bout de 90 jours, impossible d’accéder au serveur en Accès Bureau à Distance, et ce même avec l’utilisateur « Administrator », aucune licence valide n’étant active sur le serveur.

Pour accéder tout de même au serveur, et corriger le souci avec les licences CAL ou le serveur de licence, il suffit de lancer le client d’Accès Bureau à Distance en utilisant la commande suivante :

mstsc.exe /admin

Vous pourrez alors vous connecter normalement, et corriger le problème.

Un certificat SSL par adresse IP

Erreur affichées lors d'un problème de nom de certificat

Erreur affichées lors d’un problème de nom de certificat

Dans la majorité des esprits, il est communément admis qu’il est nécessaire d’avoir une adresse IP par certificat SSL. C’est-à-dire qu’il n’est possible d’héberger qu’un seul site web en SSL par adresse IP.

Cette pensée provient d’une limitation du protocole TLS, qui ne permettait pas de différencier le DNS demandé avant d’avoir renvoyé le certificat SSL. Il existait donc un risque de renvoyer un certificat SSL qui ne corresponds pas au DNS demandé (et donc afficher un avertissement concernant l’incohérence entre le nom demandé et le certificat renvoyé).

Cette pensée commune reste ancrée dans l’esprit des administrateurs système du monde entier, alors qu’il existe des solutions à l’état de norme depuis 2006, et des solutions concrètes depuis 2007-2008 (coté serveur et coté client).

Cette solution est une extension du protocole TLS appelée « Server Name Indication » (SNI) présentée dans la RFC 4366. Le SNI permet d’envoyer le nom DNS du serveur demandé pendant l’initialisation de l’échange TLS. De ce fait, le serveur pourra renvoyer le certificat correspondant à celui qui a été demandé.

Cette pensée reste ancrée, alors que la plupart des navigateurs Web « récents » supporte SNI :

  • Internet Explorer 7 (depuis 2006)
  • Mozilla Firefox 2.0 (depuis 2006)
  • Opera 8.0 (depuis 2005)
  • Google Chrome 6 (depuis 2010)
  • Safari 3.0 (depuis 2007)
  • Konqueror/KDE 4.7 (depuis 2011)

Pire encore, certains pensent qu’il n’est pas possible d’utiliser des certificats différents sur la même adresse IP mais sur des services (ports) différents. Par exemple, un serveur Web et un serveur IMAP n’utilisant pas le même port ni la même configuration utiliseraient forcément le même certificat. Étant donné que la configuration et le port des deux services sont totalement différents, il n’y a aucune raison de ne pas pouvoir choisir deux certificats différents (et ceci sans employer l’extension SNI).

A l’heure actuelle, en utilisant des versions actuelles (supportées) de système d’exploitation, serveurs et clients, il n’est plus nécessaire de multiplier les adresses IP.

Le RAID, c’est la même chose qu’une sauvegarde !

Principe de fonctionnement du RAID1

Principe de fonctionnement du RAID1

Il est une légende qui dure depuis longtemps dans le monde des services informatiques. C’est celle du RAID qui est la même chose qu’une sauvegarde : mais bien sûr, les données sont aux moins sur deux disques, donc, on est tranquille ! Inutile donc de mettre en place une politique de sauvegarde, ce serait gâcher du temps et de l’argent.

Qu’est ce qu’une sauvegarde ?

La sauvegarde est là pour pallier une perte de données, à toutes les pertes de données, aussi bien suite à un problème matériel que suite à une erreur humaine de suppression de fichiers. Les données doivent être sauvegarde sur au moins un support externe, pour pallier une perte totale des données en cas de panne matérielle.

Qu’est ce que le RAID ?

Le RAID quant à lui est une technologie (hors RAID0) qui permet de se prémunir d’une interruption de service lorsqu’un disque dur (ou plusieurs selon le type de RAID) tombe en panne. Le fait d’utiliser plusieurs disques permet de fonctionner sur le ou les disques encore en bonne santé en attendant le remplacement du disque en fin de vie. Lors de chaque modification des données du disque, l’ensemble des disques reflètent ces modifications immédiatement. Il est inutile de chercher à récupérer un dossier supprimé par erreur sur le « deuxième » disque d’un RAID1 : il y sera aussi supprimé.

Est-ce donc la même chose ?

Au vu des éléments précédents, le RAID et la sauvegarde n’ont pas la même utilité : le RAID permet d’éviter de perdre des données et de continuer à fonctionner lors d’une panne matérielle partielle et les sauvegardes permettent de revenir à un état antérieur peu importe la panne. Il est donc toujours nécessaire d’effectuer des sauvegardes, même lorsqu’un serveur dispose de disques en RAID. Et pour éviter toute perte de données en cas de panne matérielle totale, il faut absolument stocker les sauvegardes sur au moins un support externe au stockage.

Comment détruire ses données en deux commandes

Vu d'ensemble du système LVM

Vu d’ensemble du système LVM

– Bonjour ! Mon serveur ne redémarre plus sur le système local !

– Très bien je vais regarder ce qu’il se passe !

* Vérification de ce qu’il se passe sur la Console série : Linux ne veut pas monter /var lors du boot, prétextant une erreur sur le système de fichier, s’ensuit alors le démarrage du serveur en système de secours, et consultation du .bash_history

– Très bien : vous avez réduit la taille d’un volume logique, sans réduire la taille du système de fichier auparavant : conclusion, une partie de vos données se retrouvent sur ce qui est maintenant l’espace libre du groupe de volume, et elles sont perdues !


En théorie, si aucune autre modification sur le groupe de volume (ajout de volume physique, ou modification de la taille des volumes logiques), il est possible de récupérer les données effectuant l’opération inverse : agrandir le volume logique de la même taille dont il a été réduit. Cette opération n’est pas garantie, car elle dépend de comment avait été ajouté l’espace au volume logique et de la contiguïté de l’espace libre.

Il existe également la commande vgcfgrestore qui permet de restaurer la configuration d’un groupe de volume sauvegardé par vgcfgbackup.

Qu’est ce que ce blog dit donc ?

Un sysadmin qui gère un certain nombre de clients voit passer de nombreuses situations cocasses (pour le sysadmin) ou dramatique (pour le client).

Ce blog relatera le quotidien d’un homme de l’ombre, qui tente le tout pour le tout pour rétablir les services de ses clients.

Ce blog tentera de faire la vie dure aux légendes urbaines rencontrées dans le monde de l’administration de serveurs et d’applicatifs !