Réseau - Web - GNU/Linux

2013 13 juin

Partitionner avec LVM un serveur kimsufi OVH

Rédigé par Marc GUILLAUME | 2 commentaires

Installation de Debian 6.0 Squeeze sur serveur OVH Kimsufi avec LVM

Édition du 23 juillet 2014

Les interfaces de gestion OVH ont changé, et en particulier celles des serveurs kimsufi. De ce fait ce guide est en partie obsolète quant à l'organisation des écrans OVH, mais reste valable pour ce qui est de la logique.

LVM (pour Logical Volume Manager) est un outils permettant, entre autre, de créer des partitions logiques pouvant se répartir sur plusieurs supports physiques, réaliser des snapshots des données, et ce qui nous intéresse ici particulièrement de redimensionner les partitions en fonction des besoins ce qui n'est pas possible avec le partitionnement traditionnel. Pour son utilisation sous l'aspect redimensionnement, vous pouvez consulter mon article sur la gestion de LVM.

Caractéristiques du matériel utilisé

Il existe actuellement une offre de serveurs dédiés à petit prix (à la date actuelle, février 2013, autour de 12 euros TTC par mois en prix d'entrée, serveurs kimsufi chez OVH, dedibox chez Free et sans doute d'autres hébergeurs offrent-ils des services similaires). Ils permettent d'avoir complètement la main sur une machine située dans un data-center connectée à Internet avec un débit et une bande passante corrects. Vous pouvez installer ces machines comme bon vous semble et les paramétrer dans les moindres détails. C'est une bonne façon de se faire la main à l'administration de machine dans des conditions réelles d'exploitation, mais aussi la possibilité pour une PME de bénéficier de la liberté incomparable qu'offre un serveur dédié, tout cela pour un budget raisonnable.

Nous allons dans ce document aborder la réinstallation du système Debian 6.0 avec un partitionnement LVM sur serveur de la gamme kimsufi proposée par l'hébergeur OVH, dont voici les caractéristiques :

  • Processeur : Intel Celeron/Atom à 1.2+ GHz
  • Architecture : 64 bits
  • Connection réseau : FastEthernet
  • Mémoire vive : 2Go
  • Capacité disque : 1 disque de 500 Go
  • Connexion réseau : 100 Mbps
  • IP externe : 1

Il s'agit d'une machine très standard, mais offrant déjà de nombreuses possibilités.

Édition du 24 août 2018

La version stable de Debian n'est plus depuis longtemps la 6.0 Squeeze, mais cela ne change pas la procédure de partitionnement d'un kimsufi. Par contre les offres on nettement évolué et les prix ont beaucoup baissé, ce qui permet de se lancer avec un budget réellement très réduit.

Les choix d'installation

Usages envisagés

L'insallation d'un serveur suppose de nombreux choix qui dépendent pour partie du matériel et pour partie de l'usage envisagé pour ce serveur.

L'installation de cette machine correspond à mes besoins et est aussi très standard, les services installés sont sans doute parmi les plus courants utilisés sur un réseau :

  1. Serveur de Mail hébergeant quelques domaines et quelques dizaines d'adresses par domaine
  2. Serveur Web pour plusieurs domaines, et devant pouvoir utiliser des bases de données
  3. Serveur MySQL local et éventuellement partagé en réseau.
  4. Serveur FTP pour un dépôt d'archives en FTP anonyme et un accès FTP pour les sites web et quelques utilisateurs particuliers
  5. Serveur de sauvegarde de secours pour d'autres serveurs

Suite à cette installation qui a servi de test, ces services ont rapidement été répartis sur deux machines semblables, la première ayant conservé le Web et MySQL et la nouvelle ayant récupéré le FTP anonyme, les répertoires FTP utilisateurs et le mail (mon serveur ftp est peu utilisé). La sauvegarde est restée provisoirement sur la première machine mais devra rapidement migrer vers une troisième machine et à terme le serveur de mail sera certainement seul sur une machine un peu plus puissante (il est souhaitable que le serveur de courrier soit une machine à part entière, surtout si vous filtrez les virus et le spam ce qui est très gourmand en ressources machine).

Cette séparation évite de surcharger les machines, et évite aussi qu'un service en panne n'impacte toute la machine et donc les autres services. Le faible prix de location de ces machines permet à une petite entreprise de disposer de plusieurs serveurs à des tarifs dérisoires par rapport aux offres classiques du marché. Et ma grand-mère m'a appris qu'il ne fallait jamais mettre tous ses oeufs dans le même panier !

Logiciels sélectionnés

Voici pour les usages envisagés, les logiciels sélectionnés, qui pourront influer sur la préparation de la machine :

Le système d'exploitation
N'utilisant pas les systèmes de marque Microsoft il me fallait un Unix-like libre (GNU/Linux, FreeBSD, OpenBSD). Dans cette catégorie OVH propose toute une série de distributions GNU/Linux et FreeBSD (pas d'Open BSD). Mon serveur étant destiné à passer rapidement en production, il me fallait un OS que je maîtrise à peu-près bien. Étant un utilisateur de Debian GNU/Linux depuis quelques années déjà j'ai installé l'actuelle version stable de Debian qui est pour encore quelques mois Debian 6.0 Squeeze.
Logiciels SMTP POP IMAP pour le courrier électronique
  • Postfix : un mta de bonne qualité que je connais un peu.
  • Dovecot : Un client IMAP qui collabore bien avec Postfix.
  • MySQL : une base de données relationnelle libre qui peut-être couplée avec Postfix et Dovecot et qui est également utilisée par de nombreux logiciels de gestion de contenu internet et est assez inévitable.
Serveur WEB, langage de script
  • Apache : serveur web très classique.
  • Php : langage de script pour créer des pages web dynamiques.
  • MySQL : base de données déjà utilisée avec Postfix.
Serveur FTP
  • VSFTPD : Un serveur FTP léger et sécurisé qui permet d'offrir un accès FTP anonyme et des accès chrootés pour des utilisateurs virtuels.
Sécurisation
La sécurisation d'un serveur en ligne est une discipline en soi, et un travail à plein temps. Mais tout administrateur doit a minima prendre des précautions élémentaires pour rendre la vie des aspirants pirates la plus difficile possible. Quelques logiciels permettent d'améliorer la sécurité de votre machine.
  • Fail2ban : un daemon qui permet de bloquer les IP d'attaquants pour une durée paramètrable, évitant la saturation par des robots essayant d'entrer dans votre machine.
  • Chckrootkit : un petit script permettant de trouver des logiciels malveillants installés sur votre machine.
  • Script Iptables : permettant la configuration d'un firewall.
  • logcheck : un outil d'analyse de logs qui envoie un mail pour signaler ce qu'il considère comme des anomalies dans les fichiers de log.

Marche à suivre

Installation manuelle du système pour repartitionnement et utilisation de LVM

Lors de la commande d'un serveur kimsufi OVH réalise une installation par défaut d'un système d'exploitation (à choisir dans une liste fournie). Cette installation par défaut n'est pas adaptée à un usage de serveur de production. Elle ne comporte qu'un répertoire racine /, un swap et un répertoire /home qui occupe tout le reste du disque. C'est davantage un partitionnement de poste de travail que de serveur. Il faut donc repartitionner (et donc réinstaller le système) pour l'adapter à nos besoins.

Nous voulons utiliser notre serveur en tant que serveur de courrier et serveur web. Il faut donc au minimum, pour pouvoir effectuer des mises à jour et des sauvegardes sans problèmes, mettre les partitions /var/vmail, /var/lib/mysql et /var/www sur des partitions indépendantes. Pour cela il faut repartitionner le disque et cela demande une réinstallation du système.

L'installation du nouveau système se fait par le « manager », l'interface web proposée par OVH. Une fois connecté à l'espace administration cliquer sur serveurs dédiés > Services. Là choisir réinstaller / changer d'OS.

reinstall-kimsufi-1.png

La (ré)installation se fait en trois étapes :

  1. Choix de l'OS, de la distribution, de sa version et de la langue d'installation.
  2. Partitionnement du disque.
  3. Lancement de l'installation
Choix de l'OS, de la distribution, de la version et de la langue

L'installation va se faire sous GNU/Linux.

reinstall-kimsufi-2.png

Les machines utilisées en kimsufi sont des machines en 64 bits. Les applications serveur 64 bits fonctionnent parfaitement donc nous allons choisir une distribution Debian GNU/Linux dans l'actuelle version stable qui est la 6.0 nom de code Squeeze.

reinstall-kimsufi-3.png

Pour la langue nous allons laisser l'option par défaut qui est anglais. Ce choix n'est pas guidé par le snobisme mais par une raison très pratique. Une distribution installée en anglais générera des informations de log en anglais et en cas de problème en recherchant sur un moteur de recherche un message d'erreur anglais on obtient infiniment plus de réponses qu'avec un message dans une autre langue. Donc même si votre niveau d'anglais est moyen, installez la distribution en anglais.

reinstall-kimsufi-4.png

Nous arrivons à l'étape suivante qui est réellement l'étape clé de notre installation : le choix du partitionnement.

Le partitionnement

reinstall-kimsufi-5.png

Il faut choisir le « partitionnement personnalisé », car si vous utilisez une des deux autres options vous retomberez sur le partitionnement par défaut fait lors de l'installation, l'opération n'aurait aucun intérêt.

Vous arrivez ensuite à l'écran de choix des partitons. Par rapport à un outil classique de partitionnement comme fdisck les options sont très simplifiées et OVH impose quelques limitations.

reinstall-kimsufi-6.png

Pour des raisons historiques on ne peut créer sur un disque dur que quatre partitions primaires au plus. Si l'on veut davantage de partitions il faut utiliser une des partitions primaires pour la diviser en partitions logiques. C'est donc la méthode tout à fait classique qui est proposée par l'interface d'installation. Mais, beaucoup plus intéressante, il existe une option LVM. Nous allons utiliser LVM pour installer les répertoires dont le contenu, sur un serveur, peut être amené à grossir considérablement. Ces répertoires clés sont les suivants :

  • /var/vmail : le répertoire où seront placés les mails reçus par les utilisateurs du serveur.
  • /var/lib/mysql : le répertoire contenant la ou les bases MySQL.
  • /var/log : le répertoire de log qui peut en cas de problème arriver à saturer un disque dur (bien que ceci soit moins vrai à notre époque où les disques font plusieurs centaines de Go).
  • /var/www : le répertoire destiné à recevoir les fichiers des sites web.
  • Éventuellement /tmp qui est le répertoire dans lequel sont analysés les mails par les anti-spam et anti-virus. Si le serveur de courrier est chargé il peut être bon de pouvoir lui donner de la place.
  • Même si son utilité est réduite sur un serveur on peut mettre /home sur un volume LVM, cela pourra permettre de réduire sa taille si il est trop grand.

Parmi les contraintes OVH on ne peut monter « / » sur un volume LVM. Il faudra donc créer quelques partitions classiques avant de pouvoir créer un volume « LVM ». Mais le disque étant grand cela ne pose pas de gros problèmes. De même il faut créer une partition « /boot » et « / » avant de pouvoir utiliser « LVM » et avoir créé une partition « swap » pour pouvoir lancer le partitionnement (ce qui est tout à fait logique).

Comme nous avons droit à quatre partitions primaires et que nous n'allons pas utiliser de partition logique, mais LVM, Le plan de partitionnement retenu est le suivant :

  1. /boot est créé sur une partition primaire avec une taille de 500 Mo, système de fichier ext3
  2. / est créé sur une partition primaire avec une taille de 4 à 6 Go, système de fichier ext3
  3. SWAP est créé sur une partition primaire avec une taille de 2 Go
  4. /var/vmail créée sur un volume logique LVM lvmail avec une taille de 3 Go, système de fichier ext4
  5. /var/lib/mysql créée sur un volume logique LVM lvmysql avec une taille de 3 Go, système de fichier ext4
  6. /var/www créée sur un volume logique LVM lvweb avec une taille de 2 Go, système de fichier ext4
  7. /var/log créée sur un volume logique LVM lvlog avec une taille de 3 Go, système de fichier ext3
  8. /home créée sur un volume logique LVM lvhome avec une taille de 2 Go, système de fichier ext3
  9. /opt créée sur un volume logique LVM lvopt avec une taille de 3Go, système de fichier ext3
  10. /srv/ftp créée sur un volume logique LVM lvftp avec une taille de 3 Go, système de fichier ext3
  11. /tmp créée sur un volume logique LVM lvtmp avec une taille de 2Go, système ext3

Remarques sur ces choix de partitionnement

Pour avoir accès à LVM dans le menu déroulant de type de partition il faut déjà que le répertoire racine (/) soit installé. Au début deux points de montage sont proposés : / et boot. J'ai lu que l'on pouvait installer /boot sur un volume LVM, mais je n'ai jamais tenté cette opération donc j'installe /boot sur sa propre partition primaire, ce qui permettra en plus de la monter en lecture seule.

Malgré cette précaution l'interface OVH ne permet pas d'installer la racine sur LVM. Il faut donc créer une partition racine sur une partition primaire, le swap sur une partition primaire également avant de créer les partitions LVM. L'interface ne permet pas de choisir d'offset d'installation, on peut penser que les partitions seront à la suite les unes des autres dans leur ordre de création.

Voici le résumé de la situation, partitions primaires, puis volumes LVM dans la dernière partition primaire :

La partition /boot
Elle doit faire au moins 100Mo, 500Mo est sans doute un peu surdimentionné, mais nous avons de la place.
La partition racine /
Le choix de la taille de la partition racine, qui n'est pas sur LVM et est donc difficilement redimentionnable, doit permettre de stocker toutes les applications dans /usr; les fichiers de configuration dans /etc. Tous les gros consommateurs d'espace disque comme les logs, les mails,la base de données, les sites web ou les espaces utilisateurs devant être « externalisés » sur des partitions LVM, une taille entre 4 et 6 Go me paraît être raisonnable (on pourrait certainement se contenter d'un peu moins).
La partition SWAP
La machine dispose de 2 Go de mémoire. J'ai installé un swap égal à la mémoire, donc de 2 Go. C'est sans doute trop pour une machine moderne, 1 Go suffirait certainement.
Partitions LVM
Elles sont toutes créées avec une taille réduite, puisque grâce à LVM on pourra les agrandir à la demande pour coller aux besoins. Les systèmes de fichier proposés sont :
  • ext3
  • ext4
  • reiserfs
  • btrfs
  • swap
Parmi ces systèmes de fichier j'ai choisi ext3 pour les partitons utilisateur ou plus liées au système et ext4 pour les mails, web et mysql. C'est assez arbitraire car chacun de ces systèmes a ses défauts (et principalement celui de demander au redémarrage une vérification de disque qui peut être très longue sur de gros disques). J'ai écarté reiserfs car son avenir me semble incertain, et btrfs qui est un peu expérimental pour une machine en production.

L'installation sur le disque

La phase d'installation est totalement automatisée et il suffit de regarder le joli tableau affichant la progression de l'installation, une fois que c'est lancé on ne peut plus rien faire d'autre. Ou plutôt si, ça peut être l'occasion de commencer à lire ma page sur la gestion de LVM pendant que ça s'installe ! ;-)

2 commentaires

#1  - samouche a dit :

merci pour ce tuto, je galérais pas mal et il m'a bien aidé!!!

Répondre
#2  - Marc GUILLAUME a dit :

Et bien tant mieux. J'en déduis qu'il est encore d'actualité, ce que je n'avais pas vérifié pour Jessy et Stretch. Merci de votre commentaire.

Répondre

Écrire un commentaire

Quelle est la troisième lettre du mot gjpqo ?

Fil RSS des commentaires de cet article

À propos

Yakati.info - Réseau - Web - GNU/Linux © 2017

Généré par PluXml en 0.019s  - Administration

Mes coordonnées

Marc Guillaume
contact[at]yakati.info
79150 ÉTUSSON

Crédits

Pour la gestion du contenu

Généré par PluXml, le Blog ou Cms sans base de données

Pour le contenu

Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.

Pour le thème

Thème SOLID de blacktie.co adapté pour PluXml