Comment configurer un logiciel RAID pour un serveur de fichiers simple sous Ubuntu
Avez-vous besoin d’un serveur de fichiers peu coûteux, facile à installer et fiable, avec des alertes par e-mail? va vous montrer comment utiliser Ubuntu, les logiciels RAID et SaMBa pour accomplir cela.
Vue d'ensemble
Malgré le récent engouement pour tout déplacer vers le nuage «tout-puissant», il peut arriver que vous ne souhaitiez pas que vos informations soient stockées sur le serveur de quelqu'un d'autre ou qu'il soit impossible de télécharger chaque fois le volume de données dont vous avez besoin sur Internet (par exemple, le déploiement d'images). ). Par conséquent, avant de libérer de la place dans votre budget pour une solution de stockage, envisagez une configuration sans licence avec Linux..
Cela dit, aller à bon marché / gratuitement ne veut pas dire «jeter le cap sur le vent», et pour ce faire, nous noterons les configurations à connaître, les configurations qui devraient être mises en place en plus de l’utilisation du logiciel RAID pour atteindre les objectifs rapport prix / fiabilité maximum.
Image de Filomena Scalise
A propos du logiciel RAID
Comme son nom l’indique, il s’agit d’une configuration RAID (matrice redondante de disques peu coûteux) réalisée entièrement dans le logiciel au lieu d’utiliser une carte matérielle dédiée. Le principal avantage d'un tel système est son coût, car cette carte dédiée constitue un avantage supplémentaire pour la configuration de base du système. Les principaux inconvénients sont essentiellement les performances et une part de fiabilité car une telle carte est généralement dotée de sa propre mémoire vive (RAM) + processeur pour effectuer les calculs nécessaires au calcul de la redondance, de la mise en cache des données pour améliorer les performances et de la batterie de sauvegarde en option qui conserve les opérations non écrites dans le cache jusqu’à le courant a été rétabli en cas de panne de courant.
Avec une configuration logicielle RAID, vous sacrifiez une partie des performances du processeur du système afin de réduire le coût total du système. Cependant, avec le processeur actuel, la surcharge est relativement négligeable (surtout si vous allez principalement dédier ce serveur à un «serveur de fichiers»). En ce qui concerne les performances du disque, il y a une pénalité… Cependant, je n'ai jamais rencontré de goulot d'étranglement du sous-système de disque du serveur pour constater sa profondeur. Le guide de Tom's Hardware intitulé «Tom's goes RAID5» est un article à la fois ancien et exhaustif sur le sujet, que j’utilise personnellement comme référence, mais prenons les points de repère avec un grain de sel, car il parle de l’implémentation Windows du logiciel RAID (comme avec tout le reste, je suis sûr que Linux est bien meilleur: P).
Conditions préalables
- Patience jeune, c'est une longue lecture.
- On suppose que vous savez ce qu'est le RAID et à quoi il sert.
- Ce guide a été écrit en utilisant Ubuntu server9.10 x64, il est donc supposé que vous avez également un système basé sur Debian à utiliser..
- Vous me verrez utiliser VIM comme programme d’édition, c’est parce que j’y suis habitué… vous pouvez utiliser n’importe quel autre éditeur que vous souhaitez..
- Le système Ubuntu que j'ai utilisé pour écrire ce guide a été installé sur un disque sur clé. Cela m'a permis d'utiliser sda1 dans le cadre de la matrice RAID, alors ajustez-vous en fonction de votre configuration.
- Selon le type de RAID que vous souhaitez créer, vous aurez besoin d'au moins deux disques sur votre système. Dans ce guide, nous utilisons 6 lecteurs..
Choix des disques qui composent la matrice
La première étape pour éviter un piège est de connaître son existence (Thufir Hawat de Dune)..
Le choix des disques est une étape cruciale qui ne doit pas être prise à la légère. Il serait sage de tirer parti de l'expérience de votre cœur et de tenir compte de cet avertissement:
Faire NE PAS utilisez des lecteurs “grand public” pour créer votre baie, utilisez des lecteurs “grand public”!!!!!!
Maintenant, je sais ce que vous pensez. N'avons-nous pas dit que nous allions faire des économies? et oui, nous l’avons fait, mais c’est l’un des endroits où il est irresponsable et doit être évité. Malgré leur prix attractif, les disques durs grand public ne sont pas conçus pour être utilisés 24 heures sur 24 et 7 jours sur 7. Croyez-moi, le vôtre a vraiment essayé cela pour vous. Au moins quatre disques grand public sur les 3 serveurs que j'ai configurés de cette manière (en raison de contraintes budgétaires) ont échoué au bout d'environ 1,5 à 1,8 ans à compter du jour du lancement initial du serveur. Bien qu'il n'y ait pas eu de perte de données, le RAID a fait son travail bien et survécu… des moments comme celui-ci raccourcissent la durée de vie de l'administrateur système, sans parler du temps d'immobilisation de l'entreprise pour la maintenance des serveurs (ce qui peut coûter plus cher que les disques de niveau supérieur).
Certains diront qu'il n'y a pas de différence de taux d'échec entre les deux types. C’est peut-être vrai. Cependant, malgré ces affirmations, les disques de niveau serveur ont toujours un niveau plus élevé de restrictions SMART et de contrôle de qualité (derrière, c’est ce qui ressort du fait qu’ils ne sont pas commercialisés dès que les lecteurs grand public le sont), donc je recommande toujours fortement que vous débourser le $$$ supplémentaire pour la mise à niveau.
Choisir le niveau de RAID.
Bien que je ne vais pas entrer dans toutes les options disponibles (cela est très bien décrit dans l’entrée RAID de wikipedia), j’estime qu’il est intéressant de dire que vous devriez toujours opter pour au moins RAID 6 ou même supérieur ( nous utiliserons Linux RAID10). En effet, lorsqu'un disque tombe en panne, le risque de défaillance d'un disque voisin est plus élevé et vous avez alors une défaillance «deux disques». De plus, si vous allez utiliser des disques de grande taille, les disques de grande taille ayant une densité de données supérieure à la surface du plateau, les risques de défaillance sont plus élevés. Les disques IMHO à partir de 2T et au-delà appartiendront toujours à cette catégorie, soyez donc conscient.
Faisons craquer
Partitionner des disques
Tandis que sous Linux / GNU, nous pourrions utiliser l’ensemble du périphérique de bloc pour les besoins de stockage, nous utiliserons des partitions, car il est plus facile d’utiliser des outils de récupération de disque si le système est devenu dingue. Nous utilisons ici le programme «fdisk», mais si vous souhaitez utiliser des disques de taille supérieure à 2T, vous devrez utiliser un programme de partitionnement prenant en charge le partitionnement GPT, comme parted..
sudo fdisk / dev / sdb
Remarque: J'ai observé qu'il est possible de faire le tableau sans changer le type de partition, mais parce que c'est la façon décrite partout sur le net, je vais faire de même (encore une fois, en utilisant tout le périphérique bloc, c'est inutile).
Une fois dans fdisk, les frappes sont les suivantes:
n; pour une nouvelle partition
entrer
p; pour une partition primaire
entrer
1 ; nombre de partition
entrer ; accepter la valeur par défaut
entrer ; accepter la valeur par défaut
t; changer le type
fd; définit le type sur “Détection automatique du raid Linux” (83h)
w; écrire les modifications sur le disque et quitter
Rinçage et répétition pour tous les disques qui feront partie de la matrice.
Création d'une grappe Linux RAID10
L'avantage d'utiliser "Linux raid10 ”, c’est qu’il sait tirer parti d’un nombre non homogène de disques pour améliorer encore davantage les performances et la résilience que le RAID 10 à la vanille. En outre, lorsqu’on l’utilise, le tableau“ 10 ”peut être créé en un seul étape.
Créez le tableau à partir des disques que nous avons préparés à la dernière étape en émettant:
sudo mdadm --create / dev / md0 --chunk = 256 --level = 10 -p f2 --raid-devices = 5 / dev / sda1 / dev / sdb1 / dev / sdc1 / dev / sdd1 / dev / sde1 - -verbeux
Remarque: Ceci n’est qu’une ligne alors que la représentation la divise en deux.
Décomposons les paramètres:
- “-Chunk = 256” - Taille des octets auxquels les bandes de raids sont cassées. Cette taille est recommandée pour les nouveaux / grands disques (les disques 2T utilisés dans ce guide faisaient sans aucun doute partie de cette catégorie).
- “-Level = 10” - Utilise le Linux raid10 (si un raid traditionnel est requis, quelle que soit la raison, vous devrez créer deux tableaux et les rejoindre).
- “-P f2” - Utilise le plan de rotation “far”, voir la note ci-dessous pour plus d'informations, et “2” indique que le tableau conservera deux copies des données..
Remarque: Nous utilisons le plan «far», car la disposition physique des données sur les disques ne sera PAS identique. Cela aide à surmonter la situation où le matériel de l'un des disques tombe en panne à cause d'un défaut de fabrication (et ne pensez pas que cela ne m'arrivera pas comme le vôtre l'a fait). Du fait que les deux disques sont de la même marque et du même modèle, ont été utilisés de la même manière et conservent traditionnellement les données sur le même emplacement physique… Le risque existe que le lecteur qui détient la copie des données ait échoué. trop ou est proche de et ne fournira pas la résilience requise jusqu'à ce qu'un disque de remplacement arrive. Le plan «far» fait en sorte que la distribution des données se trouve dans un emplacement physique complètement différent sur les lecteurs de copie, en plus d'utiliser des disques non proches les uns des autres dans le boîtier de l'ordinateur. Plus d'informations peuvent être trouvées ici et dans les liens ci-dessous.
Une fois le tableau créé, il lancera son processus de synchronisation. Bien que vous souhaitiez peut-être attendre pour les traditions (car cela peut prendre un certain temps), vous pouvez commencer à utiliser le tableau immédiatement.
Les progrès peuvent être observés en utilisant:
regarder -d cat / proc / mdstat
Créez le fichier de configuration mdadm.conf
Bien qu'il ait été prouvé qu'Ubuntu sait tout simplement numériser et activer le tableau automatiquement au démarrage, nous allons créer le fichier par souci de complétude et de courtoisie pour le prochain administrateur système. Votre système ne crée pas automatiquement le fichier et essaie de se souvenir de tous les composants / partitions de votre ensemble RAID, ce qui est une gêne pour l'administrateur du système. Ces informations peuvent et doivent être conservées dans le fichier mdadm.conf. Le formatage peut être délicat, mais heureusement, le résultat de la commande mdadm -detail -scan -verbose vous le fournit..
Remarque: Il a été dit que: “La plupart des distributions attendent le fichier mdadm.conf dans / etc /, pas / etc / mdadm. Je crois que c’est un «ubuntu-isme» de l’avoir sous le nom /etc/mdadm/mdadm.conf ». En raison du fait que nous sont en utilisant Ubuntu ici, nous allons simplement y aller.
sudo mdadm --detail --scan --verbose> /etc/mdadm/mdadm.conf
IMPORTANT! vous devez supprimer un "0" du fichier nouvellement créé car la syntaxe résultant de la commande ci-dessus n'est pas tout à fait correcte (GNU / Linux n'est pas encore un système d'exploitation).
Si vous souhaitez voir le problème provoqué par cette configuration incorrecte, vous pouvez émettre le “balayage" commande à ce stade, avant d’effectuer le réglage:
mdadm --examine --scan
Pour surmonter cela, éditez le fichier /etc/mdadm/mdadm.conf et changer:
métadonnées = 00,90
Lire:
métadonnées = 0,90
Lancer le mdadm -examine -scan commande devrait maintenant retourner sans erreur.
Configuration du système de fichiers sur le tableau
J'ai utilisé ext4 pour cet exemple car, pour moi, il s'appuyait sur la familiarité du système de fichiers ext3 qui le précédait tout en offrant les meilleures performances et fonctionnalités promises..
Je suggère de prendre le temps de rechercher le système de fichiers qui répond le mieux à vos besoins. Notre article «Quel système de fichiers Linux devriez-vous choisir?» Est un bon début.
sudo mkfs.ext4 / dev / md0
Remarque: Dans ce cas, je n'ai pas partitionné le tableau résultant car je n'en avais tout simplement pas besoin à ce moment-là, la partie requérante ayant spécifiquement demandé au moins 3,5 T d'espace continu. Cela dit, si j'avais voulu créer des partitions, j'aurais dû utiliser un utilitaire capable de partitionner GPT tel que «parted»..
Montage
Créez le point de montage:
sudo mkdir / media / raid10
Remarque: Cela peut être n'importe quel endroit, ce qui précède n'est qu'un exemple.
Parce que nous avons affaire à un «appareil assemblé», nous allons ne pas utilisez l'UUID du système de fichiers qui se trouve sur le périphérique pour le montage (comme recommandé pour les autres types de périphériques dans notre guide «Qu'est-ce que le Linux fstab et comment ça marche?»), car le système peut voir une partie du système de fichiers sur un disque individuel et Essayez de incorrectement montez-le directement. Pour résoudre ce problème, nous souhaitons explicitement attendre que le périphérique soit «assemblé» avant d'essayer de le monter. Nous utiliserons alors le nom du tableau assemblé («md»). fstab pour y parvenir.
Editez le fichier fstab:
sudo vim / etc / fstab
Et ajoutez à cela cette ligne:
/ dev / md0 / media / raid10 / ext4 par défaut 1 2
Remarque: Si vous modifiez l'emplacement de montage ou le système de fichiers à partir de l'exemple, vous devrez ajuster ce qui précède en conséquence..
Utilisez mount avec le paramètre automatique (-a) pour simuler un démarrage du système. Ainsi, vous saurez que la configuration fonctionne correctement et que le périphérique RAID sera automatiquement monté lors du redémarrage du système:
sudo mount -a
Vous devriez maintenant pouvoir voir le tableau monté avec la commande "mount" sans paramètre.
Alertes par courrier électronique pour la matrice RAID
Contrairement aux matrices RAID matérielles, avec une matrice logicielle, aucun contrôleur ne commence à émettre un bip pour vous avertir en cas de problème. Par conséquent, les alertes par e-mail seront notre seul moyen de savoir si quelque chose est arrivé à un ou plusieurs disques de la matrice, ce qui en fait le étape la plus importante.
Suivez le guide «Comment configurer les alertes par e-mail sous Linux avec Gmail ou SMTP» et, lorsque vous avez terminé, revenez ici pour effectuer les étapes spécifiques à RAID.
Confirmez que mdadm peut envoyer un courrier électronique
La commande ci-dessous dira à mdadm d’envoyer un seul courriel et de fermer.
sudo mdadm --monitor --scan --test --oneshot
En cas de succès, vous devriez recevoir un courrier électronique détaillant l'état du tableau..
Configurez la configuration de mdadm pour envoyer un courrier électronique au démarrage
Bien qu'il ne s'agisse pas d'un impératif absolu, il est agréable de recevoir de temps en temps une mise à jour de la machine pour nous informer que la capacité de courrier électronique fonctionne toujours et de l'état du tableau. vos courriels ne seront probablement pas submergés par les courriels, car ce paramètre n’affecte que les démarrages (qui ne devraient pas être nombreux sur les serveurs).
Editez le fichier de configuration mdadm:
sudo vim / etc / default / mdadm
Ajouter le -tester paramètre à la DAEMON_OPTIONS section afin que cela ressemble à:
DAEMON_OPTIONS = "- syslog --test"
Vous pouvez redémarrer la machine juste pour vous assurer que votre «dans la boucle», mais ce n'est pas un must.
Configuration Samba
L'installation de SaMBa sur un serveur Linux lui permet de se comporter comme un serveur de fichiers Windows. Donc, pour que les données que nous hébergeons sur le serveur Linux soient disponibles pour les clients Windows, nous allons installer et configurer SaMBa..
Il est amusant de noter que le nom du package SaMBa est un jeu de mots sur le protocole de Microsoft utilisé pour le partage de fichiers, appelé SMB (Service Message Block)..
Dans ce guide, le serveur est utilisé à des fins de test. Nous allons donc permettre l’accès à son partage. sans pour autant nécessitant un mot de passe, vous voudrez peut-être approfondir un peu la procédure de configuration des autorisations une fois la configuration terminée..
De plus, il est recommandé de créer un utilisateur non privilégié pour qu'il soit le propriétaire des fichiers. Dans cet exemple, nous utilisons l'utilisateur «geek» créé pour cette tâche. Des explications sur la manière de créer un utilisateur et de gérer la propriété et les autorisations figurent dans nos guides «Créer un nouvel utilisateur sur Ubuntu Server 9.10» et «Le Guide du débutant pour la gestion des utilisateurs et des groupes sous Linux»..
Installez Samba:
aptitude installe samba
Editez le fichier de configuration de samba:
sudo vim /etc/samba/smb.conf
Ajoutez un partage appelé «général» qui accordera l'accès au point de montage «/ media / raid10 / general» en ajoutant ce qui suit au fichier..
[général]
chemin = / media / raid10 / general
forcer l'utilisateur = geek
groupe de force = geek
lecture seule = Non
créer un masque = 0777
masque de répertoire = 0777
invité seulement = oui
invité ok = oui
Les paramètres ci-dessus rendent le partage adressable sans pour autant un mot de passe à quiconque et fait du propriétaire par défaut des fichiers l'utilisateur «geek».
Pour votre information, ce fichier smb.conf provient d'un serveur en fonctionnement..
Redémarrez le service samba pour que les paramètres prennent effet:
sudo /etc/init.d/samba restart
Une fois cela fait, vous pouvez utiliser le testparm commande pour voir les paramètres appliqués au serveur samba.
ça y est, le serveur devrait maintenant être, accessible depuis n'importe quelle fenêtre de Windows en utilisant:
\ nom_serveurgeneral
Dépannage
Lorsque vous avez besoin de résoudre un problème ou qu'un disque a échoué dans un tableau, je suggère de vous référer à la feuille de triche mdadm (c'est ce que je fais…).
En général, vous devez vous rappeler que lorsqu'un disque tombe en panne, vous devez le «retirer» de la matrice, éteindre la machine, remplacer le lecteur défaillant par un disque de remplacement, puis «ajouter» le nouveau lecteur à la matrice après avoir créé le disque approprié. disposition (partitions) dessus si nécessaire.
Une fois cela fait, vous voudrez peut-être vous assurer que le tableau est en train de se reconstruire et observez les progrès avec:
regarder -d cat / proc / mdstat
Bonne chance! :)
Références:
feuille de triche mdadm
Niveaux RAID en panne
Linux RAID10 expliqué
Page de manuel de commande mdadm
Page de manuel du fichier de configuration mdadm
Explication des limitations de partition
Utiliser un logiciel RAID ne coûtera pas cher… Juste votre voix ;-)