Vendez-moi le partitionnement

46

Je me suis souvent demandé pourquoi il y avait une telle passion pour le partitionnement des disques, en particulier sur les systèmes d'exploitation Unixy (/ usr, / var, et autres). Cela ne semble pas être un thème commun avec les installations Windows.

Il semble que la partition augmente considérablement la probabilité de remplir une partition alors que d'autres ont beaucoup d'espace libre. Évidemment, ceci peut être évité par une conception et une planification soigneuses, mais les choses peuvent changer. Je l'ai souvent expérimenté sur des machines, principalement sur celles configurées par d'autres ou sur les paramètres d'installation par défaut du système d'exploitation en question.

Un autre argument que j'ai entendu est que cela simplifie la sauvegarde. Comment simplifie-t-il la sauvegarde? J'ai aussi entendu dire que cela améliore la fiabilité. Encore une fois, comment?

Presque 100% des problèmes rencontrés avec le stockage sur disque sont liés à une défaillance physique du disque. Peut-on prétendre que le partitionnement peut potentiellement accélérer les pannes matérielles, à cause de la suppression d'un disque lors du déplacement ou de la copie de données d'une partition à une autre sur le même disque?

Je n'essaie pas trop de faire tanguer le bateau, je voudrais juste voir la justification d'une pratique administrative séculaire.

Zimmy-DUB-Zongy-Zong-DUBBY
la source
Dans Infrastructure en tant que cloud Service, les partitions sont sans objet, car les lecteurs (généralement appelés volumes) peuvent être connectés de manière flexible.
Skaperen

Réponses:

41
  • Fsck plus rapide. Disons que votre système échoue, pour une raison quelconque et lorsqu'il redémarre, il doit exécuter un fsck. Avec une très grande partition que fsck peut prendre une éternité et rien sur le système ne fonctionnera tant que la totalité du système n’aura pas été terminée. Si vous partitionnez le système de sorte que la partition racine soit assez petite, vous pourrez peut-être le mettre en marche et exécuter certains des services de base en attendant que fsck des volumes plus importants se termine.
    • si votre système comporte de petits lecteurs ou s'il n'y a qu'un seul service sur le système, cela n'a pas vraiment d'importance.
    • Avec les systèmes de fichiers journalisés, cela n’importe peut-être pas la plupart du temps, mais parfois même avec un système de fichiers journalisé, vous devez exécuter un fsck complet.
  • Amélioration de la sécurité car vous pouvez monter un fs en lecture seule.
    • Par exemple, personne ne devrait avoir besoin d'écrire dans / usr lors d'une utilisation normale. Alors pourquoi ne pas monter le système de fichiers pour qu’il soit en lecture seule. Avoir des systèmes de fichiers en lecture seule quand ils n'ont pas besoin d'être écrits empêchera certaines attaques féroces par des scripts, et peut vous empêcher de détruire des choses quand vous ne voulez pas dire trop.
    • Cela peut rendre plus difficile la maintenance du système, car vous devrez le remonter en lecture-écriture lorsque vous devrez appliquer des mises à jour.
  • Performances améliorées, fonctionnalité pour un service / usage spécifique.
    • Certains systèmes de fichiers sont plus appropriés pour des services / applications spécifiques, ou ils vous permettent de configurer le système de fichiers de manière à ce qu'il fonctionne mieux dans certains cas. Peut-être que vous avez un système de fichiers avec beaucoup de petits fichiers et que vous avez besoin de plus d'inodes. Ou peut-être avez-vous besoin de stocker de gros fichiers volumineux, des images de disque virtuel.

Je ne pense pas que la configuration de nombreuses partitions est une chose que vous devriez faire pour chaque système. Personnellement, sur la plupart de mes serveurs Linux, je viens de configurer une grande partition. Étant donné que la plupart de mes systèmes sont dotés de lecteurs de petite taille, ils ne servent qu’à des tâches d’infrastructure (dns, dhcp, pare-feu, routeur, etc.). Sur mes serveurs de fichiers, je configure des partitions pour séparer les données du système.

Peut-on prétendre que le partitionnement peut potentiellement accélérer les pannes matérielles, à cause de la suppression d'un disque lors du déplacement ou de la copie de données d'une partition à une autre sur le même disque?

Je doute fort qu'un système bien partitionné aurait une probabilité d'échec accrue.

Zoredache
la source
9
+1 La sécurité et la préparation aux catastrophes se font en couches. J'aime penser à des partitions semblables à des cloisons dans un navire. Ils sont là pour que, si quelque chose de catastrophique se produise dans un segment du navire, le navire dans son ensemble ne soit pas nécessairement en danger. Ainsi, lorsque la corruption du système de fichiers se produit, les dommages sont quelque peu contenus. De même, du point de vue de la sécurité, si / homes est monté en tant que noexec, il peut empêcher certains types d'attaques si le compte d'un utilisateur est compromis par un mot de passe faible, par exemple.
3dinfluence
1
Certains exploits connus ne fonctionnent que sur des partitions montées avec noexec ou ro. la sécurité réelle n'est pas visée par le partitionnement, mais le partitionnement peut aider à limiter les dégâts (par exemple, attaque par inondation de journaux, par exemple)
drAlberT le
19

Une des raisons de conserver / home / separe est que vous pouvez réinstaller le système d’exploitation sans vous soucier de la perte de données utilisateur. Au-delà de cela, il y a beaucoup de sécurité à avoir dans le montage de tout, soit en lecture seule, soit en noexec. Si les utilisateurs ne peuvent pas exécuter de code n'importe où pour pouvoir écrire du code, c'est un vecteur d'attaque de moins.

Cela ne me dérangerait que sur une machine publique, car l'inconvénient de manquer d'espace disque dans une partition, mais de la laisser dans une autre est un sérieux désagrément. Il existe des moyens de contourner ce problème, comme le raid logiciel ou ZFS, où vous devriez pouvoir redimensionner dynamiquement les partitions facilement, mais je n’ai aucune expérience en la matière.

semi
la source
la séparation de / home ressemble plus à un ordinateur de bureau. Sur les serveurs, les données se trouvent fréquemment à un autre emplacement, tel que / var / www, / srv. Je dirais que votre idée devrait être davantage de séparer les données utilisateur partout où elles sont stockées, pas seulement si elles sont dans / home.
Zoredache
sur les machines utilisées pour le traitement scientifique, il est commun pour un nombre important de personnes d'avoir des comptes fictifs. Dans ce cas, une partition / home séparée peut être très utile.
jay_dubya
Si vous avez un nombre important de machines, il est fréquent que / home soit un montage NFS à partir d'un serveur de fichiers, qui a logiquement / home sur sa propre partition, à cause des problèmes susmentionnés.
Matt Simmons
Les utilisateurs utilisent souvent tout l'espace disponible, ce qui peut avoir des conséquences catastrophiques pour les services fournis par un serveur. Leur permettre uniquement l'accès en écriture sur une partition distincte empêche le serveur d'échouer en raison d'une partition racine complète. Mettre vos fichiers journaux sur une partition séparée fait la même chose.
Chris Nava
Je pense que les quotas de disque et les rotations de journaux sont une meilleure solution au problème d'espace, mais des partitions séparées constituent un mécanisme de sécurité agréable en dernier recours
demi le
13
  • Simplifier la sauvegarde

Vous pouvez faire des sauvegardes (via dumpfs ou similaire) de ce que vous voulez, pas de ce que vous ne voulez pas. dump (1) est un meilleur système de sauvegarde que tar (1).

  • Remplir des partitions

C'est un argument pour le partitionnement aussi. Les utilisateurs qui remplissent leurs répertoires personnels ne détruisent pas le serveur, ne désaffectent pas le serveur Web, ne gardent pas les journaux, ne empêchent la racine de se connecter, etc.

Cela vous permet également de déplacer de manière plus transparente une section de vos données (par exemple, / home) sur un autre disque: copiez-la, montez-la. Si vous utilisez quelque chose qui autorise les clichés instantanés / instantanés / peu importe, vous pouvez même le faire en direct.

Bill Weiss
la source
9

On m'a toujours appris à conserver / var sur une partition distincte. Ainsi, si vous obtenez un fichier journal hors contrôle, vous encrasserez une seule partition et non le lecteur entier. S'il se trouve sur le même espace que le reste du système et que vous remplissez à 100% l'intégralité de votre disque, celui-ci risque de tomber en panne et de provoquer une mauvaise restauration.

Skaughty
la source
1
Je peux compter sur une main au cours de ma carrière de 15 ans (quoi? Dites-vous que ce n’est pas le cas!) Le nombre de fois où j'ai perdu un système à cause d’un fichier journal fugitif (ou autre) qui a détruit une machine. D'autre part, je peux compter sur le nombre de fois où cette année j'ai été bloqué parce que quelqu'un a décidé que / var n'aurait jamais besoin d'être plus grand que 1 Go et s'est trompé, ce qui m'a laissé regarder les années 2000 gratuitement. GB in / opt, qui aurait tout aussi bien pu être sur la lune pour tout le bien que cela me fait. (Je suis opposé au partitionnement.)
David Mackintosh
Je suis d'accord avec David, ayant eu exactement les mêmes expériences avec les machines Linux et Windows. À moins d'une raison écrasante de le faire, chaque disque (ou matrice RAID) obtient une partition.
John Gardeniers
Eh bien, cette semaine, cela s’est finalement passé sur un système Windows. McAfee a sorti une grosse mise à jour. Nous avions environ 5-10 systèmes qui ne l'aimaient pas. L'antivirus essaierait de s'installer, créerait un fichier journal de 35 Mo et réessayerait. 1 500 fois plus tard, j'avais 0Ko disponible et un système auquel il était impossible de se connecter.
Skaughty
8

Tous les arguments que Zoredache met en avant sont valides; on pourrait bricoler un peu avec les détails (avoir une machine en place plus rapidement pour pouvoir faire autre chose alors que fsck'ing avec d'autres systèmes de fichiers ne vous fait pas beaucoup de bien si la raison du système pour exister à la base est sur ces autres systèmes de fichiers) ; Cependant, ils sont tous un peu de justification après le fait.

À l'époque vraiment ancienne, il n'y avait pas de système de fichiers sur des partitions séparées, mais sur des disques séparés, car les disques étaient vraiment petits. Pensez 10 Mo. (1) Vous disposiez donc d’une minuscule partition / partition, d’un disque / var, d’un disque / usr, d’un disque / tmp et d’un disque / home. Si vous aviez besoin de plus d'espace, vous avez acheté un autre disque.

Ensuite, les "gros" disques de 50 Mo ont commencé à coûter moins cher que le programme Moon, et il est devenu soudainement possible de placer un système entier sur un disque avec une quantité utilisable d'espace utilisateur.

Néanmoins, la taille des disques étant relativement petite par rapport à ce qu’il était possible de générer par ordinateur, isoler / var et / opt et / home afin que le remplissage de celui-ci ne mette pas l’ordinateur en panne restait une bonne idée.

Aujourd'hui, dans une situation d'entreprise, je ne partitionne pas les systèmes d'exploitation. Les données sont partitionnées, en particulier si elles sont générées par l'utilisateur. mais souvent c'est parce que cela se trouve sur des matrices de disques à haute vitesse et / ou redondantes. Cependant, / var et / usr résident tous dans la même partition que /.

Dans un environnement domestique, la même chose - / home devrait probablement se trouver sur un disque / une baie distincte, de sorte que l’on puisse installer / mettre à niveau / interrompre / réparer les systèmes d’exploitation souhaités.

La raison en est que peu importe la taille de votre / var, de votre fichier / usr ou de l’arbre qu’il obtienne, vous aurez soit hilarement tort, soit une ridicule dérision. Un de mes anciens collègues d'école jure en partitionnant, et je suis toujours chagriné par lui quand il finit par s'asseoir dans un fsck de 180 jours sur un système que j'ai créé. Mais je peux compter sur une main tout au long de ma carrière le nombre de fois où quelque chose a été rempli / effacé le système, alors que je peux compter une main le nombre de fois que cette année j'ai regardé un système où décidé / var n'aurait jamais besoin d'être supérieur à (disons) 1 Go et s'était trompé, me laissant regarder un plein / var et '00s de Go gratuits ailleurs sur le système, qui auraient tout aussi bien pu être sur la lune pour tous le bien qu'ils me font.

Dans le monde actuel des gros disques, je ne vois pas de raison réelle de partitionner l'arborescence du système d'exploitation. Données utilisateur, oui. Mais des partitions séparées pour / var et / usr et / var / spool etc etc etc? Non.


(1) = et je sais juste en choisissant cette taille que je vais trouver quelqu'un dans les commentaires qui dit 10MB? Luxe. Pourquoi nos disques étaient simplement ...

David Mackintosh
la source
En fait , 10 Mo est la taille du disque la première fois que j'entendu quelqu'un « XXX FooBytes: plus de mémoire que je vais jamais ! Besoin ». Bien que je sois un jeune, cela remonte à 1982. Les autres valeurs étaient 40 Mo, 320 Mo, 2,5 Go, 40 Go, ... les données se développent pour remplir la mémoire disponible.
dmckee
5

En réponse à :

Il semble que la partition augmente considérablement la probabilité de remplir une partition alors que d'autres ont beaucoup d'espace libre.

Sur une machine Linux, LVM (gestion des volumes logiques) est utilisé pour empêcher cela. La plupart des systèmes de fichiers autorisent le redimensionnement (même en ligne). Je crée différentes partitions pour différents usages et les formate en différents systèmes de fichiers (par exemple: xfs pour les gros fichiers à télécharger que je peux supprimer rapidement). Besoin de plus d'espace? Montez un nouveau lecteur, déplacez les données dessus, puis montez-le là où elles se trouvaient. C'est complètement transparent pour les utilisateurs et les applications.

Avec LVM, vous pouvez ajouter des disques ou des partitions au groupe de volumes, puis créer des volumes logiques dans ce groupe. Si vous laissez de l'espace libre dans le groupe de volumes, vous pouvez ensuite agrandir les partitions en cours de remplissage. Si le système de fichiers le supporte (ext3, ext4, reiserfs), vous pouvez réduire une partition que vous avez trop allouée.

Par exemple: créer une partition de démarrage sur / dev / sda1 créer une seconde partition (non formatée) / dev / sda2

pvcreate /dev/sda2 # add the partition to LVM
vgcreate vg /dev/sda2 # create a volume group with sda2 in it
lvcreate -n root -L5G vg
lvcreate -n home -L10G vg
lvcreate -n downloads -L100G vg

mkfs.ext3 /dev/vg/root
mkfs.ext4 /dev/vg/home
mkfs.xfs /dev/vg/downloads

mount /dev/vg/root /
mount /dev/vg/home /home
mount /dev/vg/downloads /downloads

Lorsque vous avez besoin de plus d’espace sur / téléchargements (alors que le système de fichiers est monté):

lvresize -L+50G /dev/vg/downloads
xfs_growfs /dev/vg/downloads

Et vous avez maintenant une partition de téléchargement de 150 Go. Similaire pour la maison. En fait, je viens de redimensionner une "partition" ext4 aujourd'hui. D’autre part, les volumes logiques ne sont pas vraiment des partitions et ce que vous dites de partitions de taille incorrecte ne correspond pas à mon expérience personnelle (plus de problèmes qu’elles ne valent).

Swoogan
la source
4

Le schéma de partitionnement Unix traditionnel est définitivement une pratique de la vieille école qui n’est plus aussi utile qu’il était. À l'époque où le temps de disponibilité du système Unix était mesuré depuis des années et où des dizaines de centaines d'utilisateurs passaient à côté de shells, monter / usr en lecture seule était un moyen utile de protéger le système. Maintenant, remonter les systèmes de fichiers sur les correctifs semble être plus fastidieux et moins utile.

Dans mon université à l'époque ancienne, les clusters Unix avaient des systèmes de fichiers en lecture seule avec les outils Unix standard, et les applications complémentaires étaient dans / usr / local, qui était un système de fichiers NFS et plus tard AFS. C’était en partie la commodité ... qui souhaitait recompiler un logiciel sur une douzaine de boîtiers du cluster quand on pouvait exécuter des applications sur un réseau haute vitesse, 4 Mo ou 10 Mo? Aujourd'hui, avec des gestionnaires de paquets décents et beaucoup de disques à bas prix, ce n'est pas un gros problème.

Je pense que les processus ont commencé à changer pour moi sur les Sun Box avec Veritas Volume Manager vers 1999, ce qui a permis de réduire considérablement le seuil de douleur associé au déplacement des disques.

Aujourd'hui, lorsque je pense au partitionnement, je pense à la protection et à la performance des données. Exemple illustratif:

  • Le SAN de niveau 1 est très rapide, très disponible (5 9), répliqué et très coûteux. Des bases de données critiques ou des journaux de transactions y résident.
  • Le SAN de niveau 2 est rapide, disponible (4 9), coûteux. Les applications ou les données moins prioritaires vivent ici.
  • Le SAN de niveau 3 est disponible (4 9), pas cher. Des choses qui ne sont pas sensibles à la performance y vivent.

Ces considérations s'appliquent également à Windows. Nous avons un serveur SCCM qui gère environ 40 000 clients. La base de données et les journaux se trouvent sur un disque IBM DS8000 très puissant. Les packages logiciels se trouvent sur un EMC Celerra avec des disques SATA volumineux et lents qui coûtent 60% de moins par Go.

duffbeer703
la source
2

Je comprends que cette question n'est pas spécifique à l'OS, n'est-ce pas?

Sous Windows, j'ai tendance à donner à toutes mes machines le moins de partitions possible, mais pas moins de deux - SYSTEM et DATA. Si la machine dispose de deux disques physiques, l’un (le plus petit) sera SYSTEM, l’autre DATA. S'il n'y a qu'un seul disque, je le divise en deux partitions.

La raison en est une: lorsque je dois réinstaller la machine (et il y aura un tel moment), je n'ai pas à m'inquiéter du contenu de la partition SYSTEM, je fais simplement un format complet dessus et une installation propre. Cela signifie bien sûr que mes documents (et de préférence aussi sur Desktop) doivent être mappés vers un dossier sur DATA, mais cela est facile à faire, en particulier sur Vista et les versions ultérieures.

J'ai également essayé de créer plus de partitions (comme JEUX, MUSIQUE, FILMS, etc.), mais certaines d'entre elles ont débordé dans d'autres, créant plus de désordre que d'ordre.

Vilx-
la source
Cela est encore plus applicable lorsque vous le faites sur des serveurs.
SpaceManSpiff
2

(En supposant qu'un seul disque volumineux soit disponible), je mets en place homeet varsur des partitions séparées pour contrôler le problème "out of control [user | log file]", et pour permettre des mises à niveau faciles du système d'exploitation sans toucher à la maison, mais laissez le se reposer ensemble.

Sur du matériel plus ancien, il était parfois nécessaire de disposer d’une bootpartition distincte pour s’assurer que l’image du noyau était accessible au chargeur de démarrage.

dmckee
la source
2

Vous mentionnez un disque en train de se remplir alors que l'autre dispose d'un espace disponible - c'est l'une des raisons pour lesquelles je partitionne - car je peux m'assurer que certaines partitions ne se remplissent pas. Bien que, de la manière dont les quotas étaient gérés, vous deviez attribuer à tous les utilisateurs un quota de 0 sur les autres partitions, juste pour s’assurer qu’ils ne commencaient pas à cacher des fichiers s’ils parvenaient à trouver un répertoire. pourrait écrire à.

Pour ce qui est de la simplification de la sauvegarde, si je sais quelle sera la taille maximale de chaque partition, je peux être sûr que sa taille s’adapte parfaitement à une seule bande et qu’elle peut être complétée en un temps fixe.

En ce qui concerne la fiabilité, la seule chose à laquelle je puisse penser est la surveillance - je peux plus facilement voir quand une partition donnée grandit plus qu’elle ne le devrait, et me donner une raison de l’étudier.

... tout cela étant dit, nous sommes loin du temps où chaque utilisateur recevait son petit quota de 20 Mo sur une machine partagée. Certaines des vieilles habitudes n'ont pas de sens - mais quand vous avez un processus en train de devenir fou et de remplir / var, qui à son tour se remplit /, et que les choses s'arrêtent, ce n'est pas si mal de protection à avoir sur les machines de production .

Pour la maison, j’ai des partitions, mais c’est juste pour faciliter la gestion des systèmes d’exploitation installés.

Joe H.
la source
1

Personnellement, je n'utilise que le partitionnement sur les ordinateurs de mes enfants. Je crée une grande partition pour le système d’exploitation et une petite partition pour une image de la partition du système d’exploitation, afin de pouvoir la restaurer rapidement à partir de l’image.

Dans un environnement d'entreprise, je n'ai jamais entendu d'argument convaincant en faveur du partitionnement.

joeqwerty
la source
1

Tout dans la modération est une bonne chose - cela peut être un bon outil pour isoler les problèmes en cas de panne - comme le remplissage du disque ou la corruption du système de fichiers.

Ne confondez pas cela avec une panne matérielle - celles-ci devraient être gérées par la redondance matérielle (RAID)

Cela dit, les systèmes de fichiers échouent moins souvent ces jours-ci - certains font même des vérifications d'intégrité en ligne (comme ZFS). Donc, espérons que fsck hors ligne disparaîtra à un moment donné ...

De surcroît, faire trop que cela signifie seulement plus de travail (pour vous et votre équipe) à la fin - faites-le simplement avec modération et quand cela aura du sens ...

Lester Cheung
la source