Stratégie optimale de partitionnement et de configuration du système de fichiers UNIX

16

Lorsque vous partitionnez un ou plusieurs nouveaux disques système pour UNIX, quelle est votre stratégie préférée pour le bureau et / ou les serveurs?

Veuillez inclure la disposition des partitions de disque, les formats et options du système de fichiers, les points de montage, les niveaux RAID, les groupes et volumes LVM, le chiffrement et tout autre paramètre pertinent.

cmcginty
la source
La question ressemble presque à un double de cela ( serverfault.com/questions/1145/… ).
Zoredache
est-ce pour un poste de travail, un serveur de test ou pour un serveur en ligne totalement mature?
djangofan

Réponses:

9

Je suis fan de LVM pour ce genre de problèmes. Vous avez juste besoin d'espace pour / boot (j'utilise environ 100 Mo). Combiné avec des systèmes de fichiers qui peuvent croître et rétrécir dynamiquement (ou au moins croître), vous n'avez plus jamais à penser à de petites partitions.

Sur mon bureau, j'utilise un LVM avec XFS comme système de fichiers pour toutes les partitions. Je crée le plus petit possible et je les laisse grandir car j'ai besoin de plus d'espace.

Martin
la source
7

Si c'est Linux, ayez un / boot séparé.

Pour les autres variantes Unix, en général, j'ai recommandé des partitions pour / et / var, les données sont généralement montées sur / u001, / u002 etc.

Auparavant, il était nécessaire de partitionner fortement, car l'espace disque était limité et vous ne vouliez pas qu'une seule partition remplie fasse tomber l'ensemble du système. Avec le stockage considérablement accru disponible aujourd'hui ainsi que les nombreuses options de redimensionnement et de virtualisation disponibles, le besoin de nombreuses partitions IMO a diminué. Cela, couplé au fait qu'il est difficile de déplacer les choses lorsque vous avez plusieurs partitions, signifie que si vous pouvez vous en sortir avec moins, faites-le.

Avoir le swap comme 2xRAM n'a pas de sens quand vous avez dit 32 Go de mémoire. N'oubliez donc pas que les «règles» sont vraiment des lignes directrices et que certaines n'ont tout simplement pas de sens à la lumière du nouveau matériel disponible actuellement.

Jauder Ho
la source
2
+1 sur la mention du besoin de partitionnement en baisse récemment, d'ailleurs si vous avez besoin de plus d'espace dans / home, vous pouvez toujours monter un nouveau disque dur.
Spoike
1
+1 - Je suis d'accord avec minimiser la nécessité de jeux de partitionnement fous sur la plupart des systèmes. Si vous savez que vous avez besoin de / var pour être sur un disque rapide à cause d'une application, qu'il en soit ainsi. Plus souvent qu'autrement, quand j'ai rencontré des jeux de partitionnement fous dans les systèmes de production, cela a été un volume matériel RAID-1 unique découpé en un tas de petites partitions, toutes en attente de remplissage et doivent être redimensionnées (pour fonctionner pour l’administrateur, apparemment). Si vous savez que vous avez une application pour une sorte de schéma de partition complexe, allez-y. Sinon, non.
Evan Anderson
5

La planification d'une bonne structure de partitionnement dépend fortement de savoir réellement comment vous allez utiliser le système. Tout conseil aléatoire qui ne tient pas compte de ce que fait le système ne sera pas particulièrement utile.

Tous les systèmes de fichiers sophistiqués peuvent être utiles à l'occasion, mais si vous voulez un système stable, il peut être préférable de s'en tenir au système de fichiers «standard» (c'est-à-dire ext3), sauf si vous avez une très bonne raison d'utiliser autre chose.

Le RAID est bon, je lance toujours RAID1 sur tous mes ordinateurs personnels car j'ai eu trop de disques durs en panne.

Le cryptage avec quelque chose comme dm-crypt est bon si votre système est un appareil portable, a des données de grande valeur, ou votre juste paranoïaque.

Lorsque vous planifiez vos partitions, il est très utile d'avoir une bonne compréhension de choses comme la norme de hiérarchie du système de fichiers et si / comment votre Unix choisi 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 facile à créer de bonnes sauvegardes. Utilisez LVM et n'allouez pas immédiatement tout votre espace.

Zoredache
la source
5

Il y a deux très bonnes raisons de partitionner en plus du type FS:

  1. Empêcher le débordement d'une application affectant la fonctionnalité du système. Si votre application se remplit /usr, il est utile de disposer d'un espace /varpour permettre au système de continuer et aux journaux à enregistrer.

    Jauder a dit ci-dessus que cela est annulé par la taille des disques durs aujourd'hui - je ne pense pas que ce soit strictement vrai. Nos lecteurs sont peut-être plus gros, mais les données que nous fournissons sont en constante augmentation. Il n'est pas nécessaire de faire preuve de complaisance.

  2. Options de montage. Vous pouvez définir plus précisément les autorisations que chaque partition doit adopter. Par exemple, il est recommandé de ne pas autoriser l'exécution de fichiers, en particulier ceux de suid, /tmpcar c'est un vecteur d'attaque courant pour les machines servant des applications Web. Sauf si vous exécutez des prisons, vous ne devriez pas vous attendre à voir des nœuds de périphérique ailleurs /dev. Etc.

par exemple.

/ noatime  
/tmp noatime,nodev,nosuid,noexec  
/var noatime,nodev,nosuid  
/usr noatime,nodev  
/home noatime,nodev,nosuid  
Dan Carley
la source
4

Disque physique Partitionnement
Commencez avec 2 disques minimum:

# 1 100 Mo, ID = 83 (Linux), indicateur de démarrage activé
# 2 Restant, ID = FD (Linux Raid Auto)

La partition de 100 Mo est destinée au volume / boot. Je laisse cela sur tous mes disques (même sans démarrage) pour permettre la flexibilité afin que n'importe quel lecteur puisse être activé plus tard pour démarrer. SI la taille des disques ne correspond pas, ou si vous avez un nombre impair (500 Go, 250 Go x 2), divisez les partitions du lecteur 500 Go pour correspondre aux disques plus petits.

RAID
Utilisation des partitions de 100 Mo sdaet sdbcréation d'un volume RAID1 (miroir) pour /boot. Cela devient md0.

md0 / boot 100 Mo Ext2

Ne vous embêtez pas à utiliser un FS exotique sur / boot, cela n'en vaut pas la peine.

L'espace restant peut être configuré de différentes manières. J'opte pour un RAID10 (miroir / bande) utilisant des morceaux 64K et "2 copies lointaines" pour la vitesse. Cela vous donne beaucoup de flexibilité pour mettre à niveau progressivement les disques sur toute la ligne. Les autres options sont de faire un RAID5 / 6. Cependant, l'espace utilisable sera limité à la plus petite partition et N'UTILISEZ PAS de partitions provenant des mêmes appareils. Nommez les nouvelles matrices RAID md1, md2et ainsi de suite.

LVM
Prenez toutes les matrices RAID sauf md0, et placez-les dans un seul groupe de volumes LVM nommé lvm_vg0. Si vous avez des volumes RAID5 et RAID10, il est probablement préférable de ne pas les combiner, mais je suppose que cela ne ferait pas de mal.

Partitionnez VG0 pour les autres supports du système. N'oubliez pas qu'il est relativement facile d'ajouter plus d'espace si nécessaire, de sorte que ces chiffres peuvent être quelque peu conservateurs.

lvm_vg0-root / 8GB Ext3 / ReiserFS (fichiers de distribution principaux)
lvm_vg0-home / home 20 + Go Ext3 / ReiserFS (données utilisateur, documents)
lvm_vg0-data / data 60 + GB XFS (média, gros fichiers, vm's)

Les systèmes de fichiers XFS ne peuvent pas être réduits, alors gardez cela à l'esprit. De plus, la réduction d'un volume racine en ligne n'est probablement pas prise en charge.

Mise à niveau Si vous souhaitez échanger des disques pour des tailles plus importantes, vous avez plusieurs options. Le plus simple consiste à ajouter des disques par paires ou plus, et à ajouter les nouvelles matrices RAID au LVM VG actuel.

Une autre option consiste à ajouter un seul lecteur qui est> = à la somme de l'espace actuel. Par exemple, si vous avez deux périphériques de 100 Go en RAID10, vous pouvez ajouter un nouveau périphérique de 200 Go et le mettre en miroir à l'aide des deux anciens périphériques. C'est plus sujet aux erreurs, mais cela fonctionnera.

Si nécessaire, les md#périphériques peuvent être retirés du LVM VG sans perdre de données. Cela peut être fait s'il y a suffisamment d'espace LVM libre pour déplacer tous les blocs LVM utilisés de l' md#appareil vers d'autres. LVM ne peut utiliser que l'espace qui n'a pas été attribué à un LV, donc un système de fichiers vide ne compte pas comme espace "libre".

cmcginty
la source
1
Je ne suis pas convaincu par la peur des systèmes de fichiers exotiques sur / boot. ext3 et XFS ne sont plus exotiques en 2009. C'était une préoccupation lorsque les liveCD n'étaient pas fournis avec des pilotes pour eux, mais presque tous le sont de nos jours.
Dan Carley
@Casey, vous pouvez réduire un volume Ext3 "en direct", à condition que vous ayez suffisamment d'espace libre pour que les choses s'y déplacent. Oui, c'est une expérience acharnée, mais je l'ai fait, et cela fonctionne comme annoncé. Soyez très prudent avec les paramètres.
Avery Payne, le
2

Je viens de lancer des stations de travail Linux. J'utilise le système de fichiers ext3 et les tailles dépendent quelque peu de la taille des disques, étant plus généreuses avec les partitions sur les disques plus gros. Ceux-ci sont à peu près dans l'ordre dans lequel ils apparaissent dans la table de partition:

  • / boot - 100 Mo
  • espace d'échange - 2xRAM
  • / usr - 10-20 Go
  • / - 5-10 Go
  • / var - 1-2 Go
  • / tmp - 1-2 Go
  • / usr / local - 10-20 Go
  • / home - tout le reste.

Sur les postes de travail de ma femme à l'université, qui ont deux disques de 750 Go, nous avons créé, en plus de ce qui précède, une douzaine de partitions de ~ 100 Go sur les différents disques tous montés dans / data / N où N était un nombre de 1 à 12 Elle les utilise pour conserver les données de ses différents projets de recherche.

dagorym
la source
Personnellement, je ne vois pas l'avantage d'avoir / var, / usr séparé sur une partition différente. Alors que / usr / local peut être une bonne idée si vous avez un logiciel installé sur mesure (= non installé via la gestion des paquets), les deux mentionnés sont à mon humble avis assez inutiles. Aussi 2xRAM comme swap est inutile à mon avis. Si votre système commence à échanger, tout devient très lent, vous devez donc éviter cela au début. Personnellement, je n'ai qu'une partition de swap avec Ramsize + X car j'utilise parfois la suspension sur disque.
Martin
2
@Martin, Sur Linux Box agissant comme un cache Squid, vous voulez que votre répertoire de spoule et votre répertoire de journalisation se trouvent sur un disque rapide, et vous n'avez généralement pas besoin de ce disque pour être fiable. On pourrait mettre (/ var) votre bobine sur un RAID0 (stripe), et laisser tout le reste dans un lecteur plus lent.
Zoredache
@Martin - Vous avez raison, il n'est probablement pas nécessaire de séparer / usr et je ne le fais plus toujours non plus. Le swap = 2xRAM est une vieille habitude des jours où je configurais des systèmes avec seulement 256 Mo de RAM ou moins.
dagorym
1
en fait, le fractionnement de / usr et / var vous permet d'activer la journalisation sur l'un et non sur l'autre.
Scott
1
Et mettre / var sur une partition séparée garantit que seul / var peut se remplir de fichiers journaux, ce qui aurait pu autrement mettre votre système à genoux.
wzzrd
1

utiliser noatime sur tous les disques (sauf si vous avez une raison de ne pas le faire) Je monte / tmp dans tmpfs bien que cela ne soit pas si bon sur un serveur, je m'assurerais que c'est une partition séparée et je la monterai nodev, nosuid, noexec, noatime . J'utilise toujours ext2 pour / boot, donc je n'ai pas à m'inquiéter de changer les trucs fs en vissant ma capacité à démarrer avec grub. ext4 sur tout le reste, j'utilise journal = data sur / home ce qui ralentit probablement un peu les choses (car il n'a pas de dealloc) mais je n'ai jamais perdu de données avec journal = data non plus, et étant un peu le plus récent / le plus grand putain, parfois mon système se bloque et je dois le réinitialiser (car j'ai essayé quelque chose comme kms et j'ai trouvé un bug).

xénoterracide
la source
1
N'oubliez pas d'utiliser également 'nodiratime', sinon vous pousserez votre vfs_cache_pressure avec des tonnes d'inodes (plus les écritures réelles sur le disque!).
Gazzonyx
0

Wow, belle question. Je surfe pour la réponse parfaite à cela pour les yonks.

Personnellement, j'ai 50 Mo / boot ~ 8 Go / et le reste va vers / home C'est loin d'être parfait. J'ai besoin d'étudier des systèmes de fichiers alternatifs, j'utilise actuellement ext3 mais j'ai entendu beaucoup de choses sur d'autres systèmes de fichiers, par exemple XFS.

En général, je crée également un conteneur de fichiers pour / tmp uniquement afin de pouvoir être plus flexible avec lui à l'avenir.

Adam Gibbins
la source