Pool de stockage de serveur de fichiers Linux

8

Est-il possible d'obtenir un serveur Linux pour partager plusieurs disques durs en tant qu'un pool de stockage via Samba? Pour que lorsque j'utilise le partage, je n'ai pas à me soucier de l'enregistrement sur un certain lecteur qui a de l'espace libre, mais j'économise plutôt dans le pool qui s'occupe de tout cela.

Je suppose que je pourrais le faire à travers une sorte de raid (logiciel), mais beaucoup de mes fichiers n'ont pas vraiment besoin d'être pillés. Mon objectif est d'avoir une configuration où j'ai environ 500 Go raidés et quelques To d'espace non tressé.

J'ai actuellement un serveur W2008 léger et je voudrais passer à Linux et ce serait vraiment une fonctionnalité intéressante.

Illotus
la source

Réponses:

19

Sous Linux, vous pouvez utiliser LVM pour rassembler plusieurs disques durs (PV) en un seul groupe de volumes (VG) et le partitionner avec les volumes logiques (LV) que vous souhaitez partager via samba.

Voir ce lien pour plus d'informations.

Schéma LVM

ℝaphink
la source
1
Grand choix de photo pour illustrer le concept.
andol
7

J'appuierais la suggestion de Raphink de LVM (et je voterais en fait) - c'est à peu près exactement la raison pour laquelle LVM est conçu et cela fonctionne bien d'après mon expérience.

Une chose à noter est que l'utilisation de LVM sur un tas de disques n'est que légèrement plus sûre que RAID0 - si un disque tombe en panne, vous risquez de perdre plus d'un disque de systèmes de fichiers en raison de volumes logiques chevauchant les limites des disques. Donc, "beaucoup de mes fichiers n'ont pas vraiment besoin d'être pillés", assurez-vous d'avoir un bon plan de sauvegarde pour les fichiers qui ne sont pas si faciles à remplacer.

Si vous le serveur de stockage est susceptible de voir beaucoup d'activité, vous pouvez envisager d'utiliser RAID0 ainsi que LVM. Cela vous donnera une amélioration significative des performances pour de nombreux modèles d'E / S et ne réduira pas l'espace de stockage total disponible (comme RAID0 n'offre aucune redondance, donc n'utilise aucun espace pour les données en miroir ou les blocs de parité). Une fois que vous avez lié certains disques dans une matrice RAID0, vous pouvez faire de la matrice un PV LVM comme n'importe quel autre lecteur / partition et utiliser des volumes logiques pour partitionner l'espace selon vos besoins.

Bien sûr, avec RAID0, vous perdez à peu près tout si un lecteur meurt, mais si vous avez un plan de sauvegarde qui est suffisant pour JBOD (c'est ce que vous faites avec LVM, c'est équivalent à ce que certaines références RAID appellent "mode linéaire" ") vous en avez un qui est suffisant pour les données sur RAID0 (et tous ceux qui disent non ne sont pas assez paranoïaques sur les données qu'ils ont sur plusieurs disques en utilisant LVM!).

Vous pouvez mélanger et faire correspondre les niveaux RAID sur les mêmes disques. Sur l'une des machines sous mon contrôle qui fonctionne en tant qu'hôte de machine virtuelle pour le développement et les tests, les disques de sa matrice ont certaines parties en RAID0 (pour les machines virtuelles elles-mêmes) et certaines en RAID1 (pour les sauvegardes des machines virtuelles). Chacun des disques est divisé en partitions de ~ 100 Go et chaque ensemble ou partitions peut être une matrice RAID. Les deux premiers sur chaque disque sont actuellement RAID0 (lié comme un seul volume logique par LVM), les trois derniers RAID1 (à nouveau liés comme un LV), et ceux qui restent au milieu peuvent être libres lorsque plus d'espace est nécessaire. Si vous faites cela, vous devez bien sûr vous méfier des conflits d'E / S (ce n'est pas un problème dans mon cas car les deux matrices RAID voient rarement une activité notable en même temps car l'ensemble RAID1 n'est accessible que lors d'une nouvelle sauvegarde ou de la restauration d'une ancienne) et les mouvements de tête excessifs lorsque les deux matrices sont en utilisation active (comme ils se trouvent aux extrémités opposées des disques), mais vous devez être conscient de ceux-là pour utiliser LVM sans RAID de toute façon. Cet arrangement signifiait que je n'avais pas à deviner avec précision, au moment de l'installation, quel équilibre d'espace à grande vitesse (R0) et d'espace à haute sécurité (R1) la machine aurait besoinX mois plus tard, sans compromis et en optant pour une seule matrice RAID10.

David Spillett
la source
"Si un lecteur tombe en panne, vous risquez de perdre plus d'un lecteur de systèmes de fichiers en raison de volumes logiques chevauchant les limites des lecteurs." Merci pour cette pépite, il semble que je devrai réviser quelque peu mon plan.
Illotus
Notez que c'est le même problème que vous aurez avec un système RAID0: si un disque tombe en panne, vous perdez des données. Comme suggéré dans la réponse de David, vous pouvez combiner RAID et LVM. La combinaison d'un système RAID0 avec LVM est redondante et inutile, mais la combinaison d'un RAID1, 10, 4, 5 ou 6 avec LVM garantit que vos données ne seront pas perdues si vous perdez un ou plusieurs disques durs. Cela vous coûtera également plus cher en matériel, car vous avez besoin de plus d'espace disque que l'espace de données utilisable réel. Le type de RAID dépend principalement du type d'utilisation que vous en faites. Si vous n'avez pas de RAID matériel, vous pouvez utiliser LVM en plus de mdadm.
ℝaphink
3
La combinaison de RAID0 avec LVM n'est pas inutile - en fonction de votre charge d'E / S (par exemple, de nombreuses opérations de fichiers simultanées sur le réseau Gbit), vous pouvez constater une amélioration des performances grâce à l'entrelacement effectué par RAID0. Même sur une liaison 100Mbit, vous pouvez voir une différence pour plusieurs accès simultanés et / ou très non séquentiels. Pour une charge d'E / S moins ardue, la différence peut cependant être insignifiante.
David Spillett
La combinaison de RAID-0 avec LVM n'est pas inutile. LVM par défaut alloue l'espace séquentiellement depuis le début. Cela peut avoir un impact sur les performances si une partie de l'ensemble LVM obtient toute l'attention des E / S, concentrant cette activité sur un seul disque. RAID-0 répartit explicitement les données sur tous les disques de la matrice RAID-0. Cela peut accélérer l'activité de lecture et d'écriture. La différence est que si l'un des disques d'un ensemble LVM tombe en panne, vous perdrez probablement au moins certaines données. Si un disque d'un ensemble RAID-0 tombe en panne, vous PERDREZ TOUTES les données. L'idée RAID-5 posée par Raphink vous donne au moins l'illusion d'une certaine protection contre les pannes de disque
David Mackintosh
Merci pour ces clarifications David & David, c'est très intéressant à considérer. Considérez-vous que LVM en plus de RAID0 en vaut la peine même si vous utilisez un système RAID logiciel tel que mdadm, ou uniquement avec un système RAID matériel?
ℝaphink
2

Je recommanderais également de jeter un œil à ZFS, qui contient également le regroupement de lecteurs et la mise en miroir RAID intégrés.

Il y a quelques problèmes avec les licences, ce qui le rend un peu difficile à mettre en œuvre, mais je l'ai exécuté sur mon système domestique avec des disques 3 x 1 To sans aucun problème.

Dave Drager
la source
2
Je suis un grand fan de ZFS mais je ne recommanderais pas de l'exécuter sous Linux en tant que système de fichiers FUSE dans un environnement de production. Pour Linux, il vaut mieux attendre que BTRFS arrive à maturité. BTRFS a un meilleur design que ZFS mais je pense qu'il est encore au moins un an, peut-être deux, d'être prêt pour la production.
3dinfluence