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 vous libérer d'une 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 la prudence», et à cette fin, 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 + processeur pour effectuer les calculs nécessaires à la redondance, à la mise en cache des données pour améliorer les performances et à 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 Pour tout le reste, je suis sûr que Linux est bien meilleur: P).
Conditions préalables
- Patience jeune, c'est une longue lecture.
- Il est supposé 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 uniquement 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, donc 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 votre expérience et de tenir compte de cet avertissement:
Faire NE PAS utilisez des lecteurs «grand public» pour créer votre baie, utilisez des lecteurs «serveurs» !!!!!!
Maintenant, je sais ce que vous pensez, n’avons-nous pas dit que nous allions passer pour le moins cher? 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 la sorte (en raison de contraintes budgétaires) ont échoué environ 1,5 à 1,8 ans après le 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, mais malgré ces affirmations, les lecteurs de niveau serveur ont toujours un niveau plus élevé de restrictions SMART et de contrôle de la qualité derrière eux (comme le montre le fait qu’ils ne sont pas commercialisés dès que les lecteurs grand public le sont), Je vous recommande donc vivement de 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 (c'est très bien décrit dans l'entrée de Wikipédia sur RAID), 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, car les disques de grande taille ont 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.
Que l’on craque
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 créer un tableau sans changer le type de partition, mais comme c’est ce qui est décrit sur l’ensemble du réseau, je vais suivre (encore une fois, cela n’est pas nécessaire).
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
Rincez et répétez pour tous les disques qui feront partie de la matrice.
Création d'une grappe RAID10 Linux
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 van10 RAID, en plus du fait qu’en l’utilisant, le tableau“10”peut être créé é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 --verbose
Remarque: Ceci est juste une ligne malgré le fait que la représentation le 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 lecteurs 2T utilisés pour réaliser ce guide appartenaient sans aucun doute à 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 dans laquelle 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). En raison 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 conservaient 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 «Loin» transforme la distribution des données en 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 l’intérêt des 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:
watch -d cat /proc/mdstat
Créer le fichier de configuration mdadm.conf
Bien qu'il soit 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 représente une gêne pour la santé de l’administrateur système. Ces informations peuvent et doivent être conservées dans le fichier mdadm.conf. La mise en forme peut être délicate, mais heureusement, la sortie 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 voulez voir le problème que cette mauvaise configuration provoque, 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:
metadata=00.90
Lire:
metadata=0.90
Lancer le mdadm –examine –scan La commande maintenant devrait 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. L'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 en réalité 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 de la matrice assemblée ("md"). fstab pour y parvenir. Editez le fichier fstab:
sudo vim /etc/fstab
Et ajoutez à cela cette ligne:
/dev/md0 /media/raid10/ ext4 defaults 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 de lancer un seul courrier électronique et de le fermer.
sudo mdadm --monitor --scan --test --oneshot
En cas de succès, vous devriez recevoir un courrier électronique détaillant l’état de la matrice.
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 d’obtenir de temps en temps une mise à jour de la machine pour nous informer que la capacité de messagerie électronique fonctionne toujours et de la condition de la matrice. vos e-mails ne seront probablement pas submergés, 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 pour vous assurer que vous êtes «au courant», mais ce n’est pas une obligation.
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 plus 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 les droits de 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 install 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.
[general] path = /media/raid10/general force user = geek force group = geek read only = No create mask = 0777 directory mask = 0777 guest only = Yes guest ok = Yes
Les paramètres ci-dessus rendent le partage adressable sans pour autant 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. le serveur devrait maintenant être accessible depuis n’importe quelle fenêtre Windows en utilisant:
server-namegeneral
Dépannage
Lorsque vous avez besoin de résoudre un problème ou qu'un disque a échoué dans une matrice, 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:
watch -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
L’utilisation du logiciel RAID ne vous coûtera pas beaucoup… Juste votre voix;-)