Combien et quelles partitions dois-je créer pour un serveur Linux?

15

Les partitions sont très importantes sur le serveur Linux car elles vous offrent beaucoup de flexibilité, par exemple lors de la mise à niveau vers un disque dur plus gros.

Mais, combien de partitions dois-je créer lors de la construction d'une boîte Linux? Quelle taille dois-je définir pour chaque partition?

Enfin, mais non des moindres, quelles partitions dois-je avoir sur un disque séparé (je pense à / home, / var sur peut-être un lecteur plus rapide, etc.) et quelles partitions puis-je partager sur le même lecteur?

paulgreg
la source
1
Combien de disques avez-vous? prévoyez-vous que ce nombre évoluera avec le temps? S'agit-il d'une boîte à usage unique ou à usage général? Utilisateur unique ou multi? Toutes ces choses comptent.
pjz
La question est plutôt d'ordre général mais toujours pour les serveurs.
paulgreg

Réponses:

17

La planification d'une bonne structure de partitionnement dépend fortement de savoir réellement comment vous allez utiliser le «serveur». Tout conseil aléatoire qui ne prend pas les services réels qui seront fournis ne sera pas particulièrement utile.

Par exemple, s'il s'agit d'une boîte basée sur Debian qui sera utilisée pour mysql, vous voudrez peut-être des partitions séparées pour /, / var et / var / lib / mysql.

Est-ce que ce sera un serveur de fichiers avec beaucoup de stockage partagé? Vous souhaiterez peut-être des partitions /, / home et / srv.

Pour une boîte exécutant uniquement Squid, vous pouvez souhaiter une partition pour / et une partition sur un disque rapide pour la bobine Squid.

Lorsque vous planifiez vos partitions, il est très utile d'avoir une bonne compréhension de la norme de hiérarchie du système de fichiers et si / comment la distribution que vous avez choisie s'écarte de la norme.

L'utilisation de LVM peut vous permettre de changer d'avis plus facilement à l'avenir et d'ajuster vos partitions sans avoir à redémarrer, et sa capacité à créer des instantanés peut être très simple pour créer de bonnes sauvegardes.

Zoredache
la source
1
La meilleure réponse jusqu'à présent.
pause jusqu'à nouvel ordre.
Excellente réponse .. à la fois la recommandation selon laquelle la structure dépend de l'utilisation prévue et que LVM est une bonne voie à suivre.
RickMeasham
Voir plus d'informations sur la valeur du partitionnement ici. serverfault.com/questions/61284/sell-partitioning-to-me
Zoredache
Je ne savais même pas qu'il y avait une Filesystem Hierarchy Standard. Merci de l'avoir mentionné.
Joe Internet
8

Je crée toujours ces partitions, et depuis l'année dernière, toujours sur LVM:

/       - a few Gig
/usr    - 24 Gig and mostly empty
/var    - 4 Gig works for me, YMMV
/home   - depends on how many users you will have

L'un des plus importants est /var- s'il s'agit d'une partition distincte, alors quand elle se remplit, vous ne planterez pas votre partition racine. Bien que je n'ai jamais fait cela, certains en font un séparé /usrafin de pouvoir le monter en lecture seule.

et je crée parfois ces partitions:

/boot   - even 1 Gig is way more than enough

Le raisonnement est qu'il n'est pas toujours possible de démarrer à partir d'une partition RAID ou LVM. Ainsi, /bootpeut être une simple partition ext3, permettant /d'être plus avancée.

Si j'ai un grand nombre de fichiers volumineux, je vais parfois créer une partition spécifique pour ces gros fichiers afin que le système de fichiers puisse être modifié pour être efficace pour stocker des fichiers volumineux. Certaines personnes, si elles serviront NFS à partir d'un serveur, créeront une partition distincte pour leurs partages NFS ou même une partition distincte pour chaque partage NFS. Cela dépend de vos besoins.

Pourquoi LVM? Comme je l'ai mentionné dans des réponses ailleurs, mais j'ai oublié de le mentionner ici, il est beaucoup plus facile de changer d'avis plus tard et d'étendre une partition. Cela a déjà sauvé mes fesses.

Ce sont des directives générales. Bien sûr, je m'attends à ce que si votre serveur a des besoins spéciaux, vous en tiendrez compte et ferez une partition reflétant ces besoins.

Eddie
la source
7

En supposant que vous construisez une machine qui va durer un certain temps, serait difficile à reconstruire et doit être assez flexible, vous pourriez aimer un schéma similaire au suivant:

  1. Installez au moins deux disques physiques, de même taille; pour les besoins de cet exemple, je vais supposer des disques SATA de 500 Go, mais les principes fonctionnent très bien avec d'autres tailles de disques.

  2. Partitionnez chaque lecteur comme suit:

    /dev/sda1   500MB
    /dev/sda2   100GB
    /dev/sda3   the rest
    

    L'objectif est d'avoir une partition dinky de 500 Mo à l'avant, une partition importante au milieu pour le système d'exploitation et les applications, et la majeure partie du disque à l'arrière pour des données supplémentaires.

  3. Créez un ensemble SW RAID 1 /dev/md0, à partir de /dev/sda1et /dev/sdb1; construire des ensembles SW RAID 1 supplémentaires /dev/md1et à /dev/md2partir des paritions correspondantes.

  4. Format /dev/md0ext3; ce sera /boot.

  5. Format /dev/md1et /dev/md2comme volumes physiques LVM.

  6. Créez un groupe de volumes LVM vg_system, qui contient /dev/md1.

  7. Créez des volumes LVM appropriés à l'intérieur vg_systempour vos différentes partitions de système d'exploitation; à tout le moins, vous en aurez besoin swap, /varde quelques Go, et /de 10 Go environ. REMARQUE : n'allouez pas tout vg_system! Lorsque vous décidez plus tard que vous souhaitez augmenter la taille de \var, ou que vous souhaitez ajouter un /optou autre, alors vous voudrez cet espace supplémentaire.

  8. Créez un groupe de volumes LVM vg_data, qui contient /dev/md2.

  9. Créez des volumes LVM à l'intérieur vg_datacomme vous le souhaitez; à tout le moins, vous voudrez un /homevolume important , et vous voudrez peut-être des volumes supplémentaires pour, par exemple, des spools de messagerie, ou des bases de données, ou des racines Web, ou toute autre donnée qui ne fait pas partie du système d'exploitation. Encore une fois, ne pas allouer tout vg_data, pour des raisons similaires à celles énumérées ci-dessus.

Les avantages de cette stratégie sont les suivants:

  • Il tolère les pannes matérielles; l'un ou l'autre disque peut tomber en panne sans provoquer de défaillance du système, et si vous investissez dans un contrôleur remplaçable à chaud, vous pouvez récupérer sans temps d'arrêt.

  • Il est évolutif et évolutif; Lorsque vous achetez des disques de 2 To quelques années plus tard, vous pouvez les insérer dans la machine, les transformer en un autre ensemble RAID SW, le formater en tant que volume physique LVM, l'ajouter au groupe de volumes qui a besoin de plus d'espace (probablement lv_data), puis utiliser pvmovepour migrer vos données des anciens disques vers les nouveaux. De plus, les mises à jour majeures du système d'exploitation peuvent être rendues beaucoup moins douloureuses; si vous devez réinstaller le système d'exploitation pour une mise à niveau majeure (ahem Red Hat :(), vous pouvez le faire tout en préservant les répertoires personnels (et les spools de messagerie et tout ce que vous y mettez vg_data).

Les inconvénients de cette stratégie sont peu nombreux; Je suppose que c'est un peu complexe, et vous prenez un coup sur les performances d'écriture à cause du RAID 1. Cependant, je construis des postes de travail et des serveurs autonomes selon ces principes depuis quelques années maintenant, et d'après mon expérience chaque fois que je ne 'construisez pas une machine dans ce sens, avant longtemps j'aurais aimé.

-steve

PS Je dois ajouter que si vous avez l'infrastructure en place pour provisionner rapidement et sans douleur une nouvelle machine, alors un système comme celui-ci est excessif; plutôt que de bricoler avec des ensembles RAID et LVM, reconstruisez simplement la machine si vous avez besoin de quelque chose de changé.

hakamadare
la source
2

Pendant des années, chaque ordinateur que j'ai utilisé a été un système à double démarrage, et du côté de Linux, je me suis plutôt tenu à ce schéma (je parle ici de postes de travail personnels, pas de serveur, donc votre kilométrage peut varier)

/     - main thing
/boot - not that relevant, since cylinder being < 1024 and 
        exotic filesystems are no longer an issue
/home - handy if you upgrade your laptop with each new distro :-)

Pour ma dernière mise à niveau, j'ai fait une installation à partir de zéro, en effaçant ma /partition. Cela m'a fait penser qu'une partition /optou une /usr/localpartition séparée aurait été bien, m'épargnant les tracas de réinstaller tous les trucs que j'y ai mis (java, eclipse ... Je ne me soucie généralement pas de ceux distribués).

agnul
la source
2

En plus des partitions mentionnées par Eddie, je crée généralement deux autres partitions distinctes

/ tmp - pour les mêmes raisons que vous avez créé une partition / var distincte (j'ai déjà eu l'espace temporaire rempli). Je vais généralement avec 1-2 Go

/ usr / local - Cela vous permet de mettre à niveau et de nettoyer / usr au besoin sans faire exploser tous vos logiciels installés séparément. La taille ici dépend de la quantité de logiciels externes que vous installez. Je vais généralement avec environ 10 Go, mais je trouve que c'est un peu petit ces jours-ci.

Je fais toujours / home dernier et je remplis le reste du disque avec.

Sur la partition / boot, je n'ai jamais dépassé 100 Mo et je n'ai jamais rencontré de problèmes d'espace (je nettoie éventuellement les anciens noyaux). Cela peut vraiment être très petit.

N'oubliez pas non plus une partition de swap.

dagorym
la source
1

Pour la plupart des machines, je fais

100MB /boot
1GB * NUMBER_OF_USERS /home
10GB /var/log
10GB /var
REST /

Dans certains cas, cela devra être changé, mais je suis assez catégorique sur le fait que les utilisateurs n'obtiennent pas plus de 1 Go d'espace sur un serveur. S'ils en ont besoin de plus, ils peuvent utiliser / tmp, étant entendu qu'il sera supprimé via cron tous les soirs.

Glen Solsberry
la source
1

En supposant que vous n'utilisez pas de RAID matériel là-bas - sous Linux, j'utiliserais toujours LVM en plus de RAID. Même pour une configuration à disque unique. La raison étant que vous avez la possibilité d'ajouter plus d'espace de stockage (en étendant le groupe LVM) ou de modifier les options de redondance (par exemple, transformer une configuration "bizarre" de disque unique raid1 en configuration miroir ou même en RAID10 avec un peu de travail).

Pour répondre à votre question, j'ai généralement quelque chose de similaire à ceci pour un serveur générique. À partir de 2 disques (disons un Dell 1RU), tous deux partitionnés comme:

  • ~ 100 Mo de RAID1 pour / boot
  • LVM au-dessus de RAID1 pour le reste du disque

Ensuite, nous créons tout le volume en tant que volumes LVM: * / * / var * / tmp * / home * / opt

J'éviterais de créer trop de systèmes de fichiers car c'est difficile à gérer. Si vous manquez de disque, vous finirez par avoir de l'espace libre sur de nombreux systèmes de fichiers mais pas assez pour travailler.

/ home et / tmp sur un système de fichiers séparé est toujours une bonne idée; en général, je ne sépare / opt que si je prévois d'y mettre beaucoup de choses. (NFS pourrait être une meilleure option pour / opt si vous avez beaucoup de serveurs qui nécessitent la même pile logicielle)

En bref, utilisez LVM pour tout sauf si vous avez une raison de ne pas le faire - de cette façon, vous avez la possibilité de changer.

Utilisez également un serveur de journaux pour que les journaux ne remplissent pas votre / var!

Lester Cheung
la source
0
  • / boot - 128 Mo

Groupe de volumes - rootvg

  • / var - 5 Go (dépend s'il est utilisé comme serveur de messagerie. Vous pouvez également redimensionner pour attraper les fichiers principaux)
  • / tmp - 2 Go
  • / opt - 10 Go (utilisé pour les logiciels non fournis avec la distribution)
  • / - 6 Go - minumum

Groupe de volumes - datavg

  • / home - le reste

Vous pouvez créer un / usr séparé pour votre logiciel, mais dans mon cas, la boîte est réinstallée, donc pas besoin d'obtenir sa propre partition.

setatakahashi
la source