Archives pour l'étiquette mount

Debian Linux : Partitionnement et système de fichier en Web Hosting

Trop bizarre

Par l’interjection trop bizarre Damien attire mon attention sur un aspect souvent oublier de la performance d’une architecture d’hébergement en web hosting: le file system.

twitt.pobel.png

En effet l’installation d’une distribution Linux propose quelque schemas de partitionnement par défaut qui correspond à de grande typologie d’utilisation. L’outil d’installation propose impose également un système de fichier par défaut, en général celui de dernière génération.

Mais dans les architectures de web hosting tout les serveurs ne remplisse pas la même mission (MySQL, Frontal Web, Backoffice, Revers Proxy, etc.) et cette spécialisation est gage de performance. Alors pourquoi la fondation que représente le disque serait uniforme et non pas spécialisé ?

Partitionnement

Le néologisme partitionnement désigne la logique de découpage et d’organisation d’un disque physique en sous secteur spécialisé et / ou dédier. Quel sont les questions, postula et principe de sécurité à prendre en compte ?

  • N’utilise pas le Partitionnement par défaut, c’est un paliatif uniquement
  • Ne fait jamais une partition unique / pour l’intégralité du serveur
  • Une partition distincte préviens le blocage du serveur en cas de saturation de l’espace disque. C’est une sécurité à prendre systématiquement pour éviter le blocage serveur par saturation de l’espace.
  • Un Debian à minima prend 300Mo. Réserve l’espace aux partition de données comme /var ou /home.
  • Garde toujours un espace disque non formaté afin de pouvoir déplacer des partitions et retailler ton disque à la volé.

Exemple.de.partitionnement.png

Personnellement je prend les dispositions suivante

  • /var/log est toujours une partition distincte pour éviter la saturation du disque par oublie d’un mode debug ou une attaque DDOS
  • /tmp est toujours une partition distincte de petite taille, surtout sur les serveurs MySQL (table temporaire). Pour un monitoring de l’utilisation faite de cet espace.
  • Je ne configure très peu de swap et surtout par en proportion. Je considère que swapper c’est être perdant. Le swap est présent juste pour m’alerté quant un serveur l’utilise.
  • Je mélange pas les data avec le binaire, donc /var d’un coter et /usr /bin, /sbin de l’autre.

Système de fichier

Le système de fichier proposé par défaut est en général ext3 ou au moins un système de fichier journalisé. Mais d’autre système de fichier existe ! Quelques réflexions sur le système de fichier optimum.

  • Avez vous besoin d’un système de fichier journalisé qui puisse résisté un crach ou un hard reboot pour la partion ?
  • Avez vous besoin d’un système de fichier avec snapshot pour plus facilement manipulé vos données ?
  • Faite votre propre Benchmark en fonction de l’utilisation spécifique faite du disque par votre serveur, consulté les études de debian-administration.org ou de linuxgazette.net pour vous faire un idée.

ext2.exemple.fstab.png

Personnellement je prend les dispositions suivante

  • J’utilise ext2 dès que possible pour limité les I/O. Dans cette copie écran j’ai directement configuré /etc/fstab pour utilisé ext2 au montage sur une partiton déjà existante en ext3 ceci sans reformaté (parfaitement possible)
  • kathryl abuse d’XFS c’est aussi une solution performante, surtout sur les gros fichiers selon mon expérience.

Montage

L’optimisation du montage des partitions par la commande mount et le fichier de configuration /etc/fstab est source de performance. La encore quelque règle de base.

  • Lire et relire man fstab
  • Lire et relire man mount
  • Choisir les options de montage adéquates pour l’utilisation faite de la partition.

noatime.exemple.png

Personnellement je prend les dispositions suivante

  • Je remplace l’option de montage default par rw,suid,dev,exec,auto,nouser,async
  • J’ajoute noatime et nodiratime pour ne pas enregistrer le time stamp d’accès sur chaque inode. Je gagne un peu en I/O comme cela.
  • Rendre /tmp non exécutable est aussi une bonne idée. Question sécurité c’est tip top je pense.

Performance

Le disque est le sous système de l’ordinateur le plus lent. Chaque fois que vous utilisez le disque dur vous perdez des points dans la course à la rapidité. Apprenez à maitriser les performances matériel.

  • Sas, S-ATA, SSD c’est pas la même chose, connaissez votre matériel
  • Grappe de disque RAID ? RAID 0 et RAID 5 offre le meilleur performance et répartissant les opérations sur plusieurs mécanique en parallèle .

Personnellement je prend les dispositions suivante

  • Je place si possible le système et les données sur des disques distinct. Souvent c’est le système en local et les données sur le SAN / NAS
  • Si je me paye un SSD j’éviterais d’être abruti au point de négliger le choix du file system et des options de montage
  • Avec deux disques pour les données c’est Raid0 pour les performance. Mais pas question d’être négligeant sur les sauvegardes.
  • Avec plus de deux disques c’est Raid5 sans réfléchir.