Octopus30.net >> Les discussions >> Informatique, internet et jeux vidéos >> Montage d'un serveur de fichiers raid 5 logiciel
Page 1
 
 

Montage d'un serveur de fichiers raid 5 logiciel

11/06/2009 à 00:24:51
Plop,
Je suis en train de regarder pour faire un serveur de fichiers pour l'instant prévu pour avoir 3 disques en raid 5 logiciel (j'ai pas encore complètement tranché sur le soft, entre debian, freebsd, ou opensolaris)
Et dans la définition de la config, je me pose des questions sur le proc à mettre dedans sachant qu'en plus de faire serveur de fichiers (un partage samba et un partage nfs), il ferra serveur de bases de données (mysql + postgresql) et serveur SVN.

Vu le besoin, j'hésite donc parmi :
* Sempron LE-1250 : 1 coeur K8, 2,2GHz, 45W, 28€
* Athlon 64 X2 4850e : 2 coeurs K8, 2,5GHz, 45W, 55€
* Phenom™ X3 8650 : 3 coeurs K10, 2,3GHz, 95W, 72€
* Athlon™ II X2 250: 2 coeurs K10, 3GHz, 65W, 81€

A priori, le Sempron me semble trop limité pour faire ce que j'ai besoin (le raid 5 sort est quand même pas des plus légers), mais pourquoi pas.

J'ai réduit la liste à des processeurs AMD simplement parce que j'ai cherché d'abord une carte mère qui va bien (6 ports SATA, carte graphique intégrée) en AM2+.

A votre avis alors, c'est quoi le plus adapté ?
"Le pire, c'est quoi ? L'ignorance ou l'indifférence ? - Je sais pas ... et je m'en fous !"
11/06/2009 à 12:33:59
bla bla bla et toc pouf bim, padaboum, truc muche, mais stop plouf, bam, patatra !

bref charabia ^^
Ben mince, revoilà mon avatar... il est un peu gros quand même, non? lool
11/06/2009 à 13:38:46
 :pfff  :cry:
"Le pire, c'est quoi ? L'ignorance ou l'indifférence ? - Je sais pas ... et je m'en fous !"
11/06/2009 à 14:48:40
Franchement, je suis désolé mais j'en ai aucune idée  :cpamafote:

Disons que le côté matos m'intéresse pas des masses en fait. Mon but quand j'achète un truc, c'est d'avoir un bon rapport qualité-prix, et surtout un truc qui convienne à mes besoins.

Si je trouve un quadruple coeur je ne sais quoi à un prix très intéressant, mais qu'en fait un processeur tout con me suffirait, ben je prends le proc tout con (à moins que le 1er soit vraiment pas cher).

En résumé, ça dépend de tes besoins. C'est pour pouvoir héberger ton site ? Ou bien ?
Au creux de nos mères qu'il fait bon mûrir, et puis j'ai vu de la lumière alors je suis sorti... Et j'ai dit : Bonne idée !
11/06/2009 à 19:36:39
Pour détailler un peu le besoin, c'est pour faire à la fois :
- un serveur de fichiers à la maison (d'où le partage Samba)
- une sauvegarde régulière de mon portable
- un partage NFS pour stocker les fichiers de mon site sur un serveur indépendant du serveur web (les fichiers sont donc sur un disque virtuel)
- un partage NFS aussi pour un serveur de mails (no limit sur la quantité de mails sauvegardés  :fuck3: gmail )
- le serveur MySql, pas besoin de commentaires  ;)
- le serveur SVN (versioning de fichiers)

D'où le choix de 3 disques 1To en raid 5, ça permet d'avoir une bonne tolérance de pannes, et un serveur vraiment dédié aux fichiers. Accessoirement, si je me retrouve à manquer de place, l'ajout d'un ou plusieurs disques à la grappe raid est relativement simple et permet d'augmenter directement la capacité de stockage.
Autre intérêt, je m'affranchis des problèmes matériels ; en cas de casse de la carte mère, je remonte les 3 disques sur un autre pc et j'ai à nouveau accès à mes données, ce que permet pas une carte contrôleur si c'est elle qui est en cause.
Evidemment, la nécessité de mettre en place une sauvegarde régulière est à prévoir (un DAT 800Go ?)

Vu les services à tourner, en temps normal, ça ne devrait pas avoir besoin d'une grosse capacité de calcul et le proc ne sera certainement pas si limitant, mais je préfère éviter un goulet d'étranglement. C'est surtout pour ça que je pense mettre un proc au moins double coeurs.

Sempron LE-1250 : même si sur mon ancien intranet, le petit Duron remplissait très bien son rôle, je préfère oublier le mono coeur ; par contre pour faire un serveur web, ça peut être un super choix  :)
Athlon 64 X2 4850e : prix correct, et seulement 45W ! 2 coeurs. Seul défaut l'archi K8 plus toute jeune, mais qui est quand même toujours très bonne.
Phenom™ X3 8650 : le choix le plus logique mais consomme trop ; comme tout le reste du serveur est équipé de composants basse conso (disques 1W en veille) ça serait con de doubler la conso du serveur juste avec le proc.
Athlon™ II X2 250 : trop cher finalement ...
"Le pire, c'est quoi ? L'ignorance ou l'indifférence ? - Je sais pas ... et je m'en fous !"
22/06/2009 à 21:24:54
Voila, la première brique du système est montée.
Finalement, c'est un Athlon 64 X2 4850e, associé à 3 disques 500Go 5400tr/min en raid 5 software (dont 1To utile) et 1 disque 320Go pour le système et tout ce qui n'a pas besoin de sécurité. Le tout pour une conso électrique ridicule.
Le tout tourne sous Debian 5, il me reste des crash-test à faire, un peu de conf des différents services (SVN, ftp, NFS) et je pourrais attaquer la 2e brique du réseau, le serveur web/dns  :)
"Le pire, c'est quoi ? L'ignorance ou l'indifférence ? - Je sais pas ... et je m'en fous !"
07/06/2010 à 22:53:55
Juste pour l'histoire, à propos des perfs du raid5 logiciel qui m'inquiétaient un peu :

Je viens de faire un test de transfert de 28Go d'iso Debian entre mon serveur et mon pc de boulot reliés en 100Mbits), le transfert a été super rapide (environ 1h) :
www.octopus30.net/divers/test_perf_raid5_reseau-if_eth0-day.png
www.octopus30.net/divers/test_perf_raid5_reseau-cpu-day.png

Ca m'a donné envie de voir un peu plus en détail ce que le raid pouvait donner, le serveur ne faisant quasi rien d'autre (quelques graphes via Munin toutes les 5 minutes seulement)

Tout d'abord sur 4Go de données :
Citation :
Lecture :
 :/ home/raid5/Benjamin/test# dd if=/dev/md0 of=/dev/null bs=4096 count=1000000
1000000+0 enregistrements lus
1000000+0 enregistrements écrits
4096000000 bytes (4,1 GB) copied, 28,3616 s, 144 MB/s

Ecriture :
 :/ home/raid5/Benjamin/test# dd if=/dev/zero of=/home/raid5/Benjamin/test/test.txt bs=4096 count=1000000
1000000+0 enregistrements lus
1000000+0 enregistrements écrits
4096000000 bytes (4,1 GB) copied, 51,7397 s, 79,2 MB/s

En somme, en lecture y a de quoi saturer un réseau gigabit  :p

Puis la même avec 40Go histoire d'être bourrin à fond  :p (en plus comme c'est plus long, ça se verra mieux sur les graphes)
Citation :
Lecture :
 :/ home/raid5/Benjamin/test# dd if=/dev/md0 of=/dev/null bs=4096 count=10000000
10000000+0 enregistrements lus
10000000+0 enregistrements écrits
40960000000 bytes (41 GB) copied, 259,797 s, 158 MB/s

Ecriture :
 :/ home/raid5/Benjamin/test# dd if=/dev/zero of=/home/raid5/Benjamin/test/test.txt bs=4096 count=10000000
10000000+0 enregistrements lus
10000000+0 enregistrements écrits
40960000000 bytes (41 GB) copied, 536,439 s, 76,4 MB/s

Puis les graphes d'utilisation CPU, I/O disques et load :
l'occupation du proc est loin d'être négligeable, mais reste assez contenue, l'intérêt du dual-core n'est pas forcément évidente là, mais plus intéressant, il faudrait voir à underclocker un peu le bestiau pour économiser sur la facture d'électricité.
www.octopus30.net/divers/test_perf_raid5_local-cpu-day.png
on voit bien les 2 pics de lecture puis d'écriture. (et aussi le plateau d'1h en lecture pour la copie des iso entre 21h et 22h  :p )
www.octopus30.net/divers/test_perf_raid5_local-iostat-day.png
le load est pas si énorme, ce qui laisse entendre que même en étant au taquet sur l'écriture sur le raid, le serveur reste tout à fait accessible pour d'autres choses.
www.octopus30.net/divers/test_perf_raid5_local-load-day.png

Je crois qu'on peut valider sans problème la solution du raid 5 soft  :) Y a plus qu'à acheter un switch gigabit  :whistle:

Prochaine réjouissance, le serveur mail accroché à ce serveur de fichier (basé sur un atom 1,6GHz : http://www.materiel.net/ctl/ITX/54035-D510MO.html)
"Le pire, c'est quoi ? L'ignorance ou l'indifférence ? - Je sais pas ... et je m'en fous !"
07/06/2010 à 23:00:43
c'est pour quand l'offre d'hébergement  :lol2:
On mesure l'intelligence d'un individu à la quantité d'incertitudes qu'il est capable de supporter. Emmanuel Kant
07/06/2010 à 23:02:32, Édition : 07/06/2010 à 23:03:30 par Poulpe
Le jour où j'aurais une connexion en fibre optique, et symétrique  :p
Autant dire pas avant ... pfiou ... au moins tout ça  :p

Ceci dit, je vais déjà me faire mon propre hébergement de mails (testé en partie ce week-end)  :lol2:
"Le pire, c'est quoi ? L'ignorance ou l'indifférence ? - Je sais pas ... et je m'en fous !"
16/09/2010 à 21:30:14
Poulpe, 07/06/2010 23:02:32
Ceci dit, je vais déjà me faire mon propre hébergement de mails (testé en partie ce week-end)  :lol2:

Ca y est, j'ai le matos pour le serveur mail (un atom 1,6GHz, 1Go de ram et 500Go de dd ... autant dire que je vais pouvoir en stocker des mails  :p ) mais j'ai maintenant 2 gros problèmes ...

Le premier : quelle distrib utiliser ? Je pensais mettre une debian 6 (choix logique par habitude de la debian, mais elle est pas encore dispo) mais je me dit aussi que ça peut être une bonne occasion d'essayer une *BSD (netbsd, freebsd ou openbsd), et qui serait peut-être aussi un peu plus sécurisée du coup.

Le second problème : quel nom donner à ce serveur de mail ? Il aura évidement les alias mail, pop, smtp, imap ... mais son petit nom ça sera quoi ?
J'ai déjà octopus (l'ancien intranet), whale (le serveur de fichiers ... d'ailleurs je viens de lui ajouter 250Go d'un ancien disque pour faire mon mirroir debian qui marche vachement bien), j'ai réservé shark pour mon prochain pc de course (quand j'aurais été augmenté ...) ... mais le serveur de mail, comment je peux bien l'appeler ?  :help:
"Le pire, c'est quoi ? L'ignorance ou l'indifférence ? - Je sais pas ... et je m'en fous !"
17/09/2010 à 20:53:46
Merci pour vos idées  :)
Ca sera donc une debian 6 et son nom sera dolphin.
En attendant la release, je vais en profiter pour jouer un peu avec les bsd  :)
"Le pire, c'est quoi ? L'ignorance ou l'indifférence ? - Je sais pas ... et je m'en fous !"
17/09/2010 à 23:06:40
En même temps, tu nous laisses à peine 3s pour réfléchir alors bon... D'ailleurs t'en es où de tes idées de prénoms pour Cis et Didi ?  :P

Allez, pour la peine, je propose Marlin (voir ici).

Ja  :hello:
Au creux de nos mères qu'il fait bon mûrir, et puis j'ai vu de la lumière alors je suis sorti... Et j'ai dit : Bonne idée !
17/09/2010 à 23:53:17
En fait, j'ai trouvé le nom ce matin sous la douche (je trouve beaucoup de trucs sous la douche d'ailleurs  :lol2: ) ; et avant j'étais parti sur le nom coral. Je garde aussi Marlin, c'est bien sympa  :)
"Le pire, c'est quoi ? L'ignorance ou l'indifférence ? - Je sais pas ... et je m'en fous !"
26/07/2011 à 23:41:01
Hop, tout frais compilé :
Linux whale 2.6.39.3-whale #1 SMP Tue Jul 26 22:18:14 CEST 2011 i686 GNU/Linux

J'ai pu virer 20 process inutiles dans l'affaire par rapport au noyau compilé précédent version .config de Debian capable de tourner sur n'importe quoi  :D
Linux whale 2.6.36.4-whale #1 SMP Sun Jul 24 23:29:05 CEST 2011 i686 GNU/Linux


La 3.0 marche mais pas de réseau pour le moment à cause d'un fichu driver qui se charge pas.
La dernière fois que j'avais compilé un noyau, c'était pour l'intranet quand j'ai migré sur le dernier serveur (en 2004 !).
Pour rigoler, je l'ai rebooté à l'instant (il avait pas été démarré depuis 809 jours  :eek: )
Linux octopus 2.6.2 #2 Sun Feb 15 18:06:40 CET 2004 i686 GNU/Linux
"Le pire, c'est quoi ? L'ignorance ou l'indifférence ? - Je sais pas ... et je m'en fous !"
27/07/2011 à 13:56:12, Édition : 27/07/2011 à 13:56:34 par Doug
je comprend pas tout mais en tout cas c est top!  :yesking:
Doug www.rockn13.fr Francois et Jennifer - Cours de Danses (Rock, Salsa et Valse) sur Marseille et Aix en Provence
17/03/2013 à 10:19:53, Édition : 17/03/2013 à 22:41:53 par Poulpe
Replacement du raid 3*500Go par 3*2To

Depuis quelques mois, je commençais à être un peu juste dans mon raid5 de 1To (3*500Go) occupé à 98%.
df -h
/dev/md0 932G 915G 17G 99% /raid5_500g

Accessoirement, le raid 1To précédent était créé en reiserfs (plus trop maintenu), et afin de simplifier mon système, je voulais depuis un moment le basculer en ext4.
Et en plus, 2 de mes disques actuels commencent à présenter quelques erreurs :

# cat /proc/mdstat
md0 : active raid5 sdb1[0] sdd1[2] sdc1[1]
976767872 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

# smartctl --all /dev/sdb > /dev/null; echo $?
128
# smartctl --all /dev/sdb
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 28298 546597548
# smartctl --all /dev/sdc > /dev/null; echo $?
0
# smartctl --all /dev/sdd > /dev/null; echo $?
160
# smartctl --all /dev/sdb
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 28297 546599624



C'est pas encore critique mais il est grand temps d'upgrader le bestiau.

3 disques de 2To plus tard, c'est là que ça commence à devenir intéressant.
Petit problème, j'ai que 2 ports SATA libre dans l'ordi. Tant pis, je vais créer un raid 5 sur 2 disques dans un premier temps et je rajouterai le 3e disque plus tard, une fois toutes les données copiées.
Première étape, formatage des partitions sur les 2 nouveaux disques :
# fdisk /dev/sdf

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.

Command (m for help): p

Disk /dev/sdf: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes

I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xdbfa8495

Device Boot Start End Blocks Id System
/dev/sdf1 1 243201 1953512001 fd Linux raid autodetect
Partition 1 does not start on physical sector boundary.

Oups, ça va pas trop là ... Bon, on delete la partition créée, on change d'unité pour taper directement en secteurs plutôt qu'en cylindres et on recommence :

Command (m for help): d
Selected partition 1

Command (m for help): u
Changing display/entry units to sectors

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First sector (63-3907029167, default 64):
Using default value 64
Last sector, +sectors or +size{K,M,G} (64-3907029167, default 3907029167):
Using default value 3907029167

Command (m for help): p

Disk /dev/sdf: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xdbfa8495

Device Boot Start End Blocks Id System
/dev/sdf1 64 3907029167 1953514552 83 Linux

Mieux déjà. Voyons voir en cylindres ce qu'il raconte :
Command (m for help): u
Changing display/entry units to cylinders

Command (m for help): p

Disk /dev/sdf: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xdbfa8495

Device Boot Start End Blocks Id System
/dev/sdf1 1 243202 1953514552 83 Linux

Tiens, on a gagné un cylindre au passage  :D

Hop, on change de type de partition histoire d'être sur du raid linux (code hexa fd)
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): L

0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx
5 Extended 42 SFS 86 NTFS volume set da Non-FS data
6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt
9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access
a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT
1e Hidden W95 FAT1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)


On vérifie le tout :
Command (m for help): p

Disk /dev/sdf: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xdbfa8495

Device Boot Start End Blocks Id System
/dev/sdf1 1 243202 1953514552 fd Linux raid autodetect


C'est bon, tout est clean, on peut écrire notre table de partition :

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
#


On fait la même pour le 2e disque :
# fdisk /dev/sdg
Command (m for help): u
Changing display/entry units to sectors

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4):
Value out of range.
Partition number (1-4): 1
First sector (63-3907029167, default 64):
Using default value 64
Last sector, +sectors or +size{K,M,G} (64-3907029167, default 3907029167):
Using default value 3907029167

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help): p

Disk /dev/sdg: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x896088dd

Device Boot Start End Blocks Id System
/dev/sdg1 64 3907029167 1953514552 fd Linux raid autodetect

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
#


On a maintenant 2 partitions /dev/sdf1 et /dev/sdg1 qui font rien et c'est le moment de créer le raid à proprement parler.
Comme dit plus tôt, on va créer le raid sur 3 devices et déclarer que le 3e est pas là. Ca permettra de disposer de suite de 4To utiles et ça évitera la fastidieuse tâche d'extension du filesystem si on avait créé un raid 1 sur 2 disques puis transformé en raid 5, comme expliqué par exemple par Scott Wallace.
# mdadm --create /dev/md1 --level=5 --raid-devices=3 --chunk=128 /dev/sdf1 /dev/sdg1 missing
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

A priori ça a l'air bien :
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md1 : active (auto-read-only) raid5 sdg1[1] sdf1[0]
3907026688 blocks super 1.2 level 5, 128k chunk, algorithm 2 [3/2] [UU_]

md0 : active raid5 sdb1[0] sdd1[2] sdc1[1]
976767872 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

unused devices: <none>

Déjà, on voit bien notre ancien raid (md0) et le nouveau (md1), et c'est clair qu'il manque 1 disque dans md1. D'ailleurs, y a un mail de mdadm qui prévient du problème :
Citation :
DegradedArray event on /dev/md1:whale

This is an automatically generated mail message from mdadm
running on whale

A DegradedArray event had been detected on md device /dev/md1.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

En plus, il est poli  :D

Bon, maintenant on va créer le filesystem ext4 :
# mkfs.ext4 -b 4096 -m 0 -E stride=32,stripe_width=64 /dev/md1
mke2fs 1.41.12 (17-May-2010)
Étiquette de système de fichiers=
Type de système d'exploitation : Linux
Taille de bloc=4096 (log=2)
Taille de fragment=4096 (log=2)
« Stride » = 32 blocs, « Stripe width » = 64 blocs
244195328 i-noeuds, 976756672 blocs
0 blocs (0.00%) réservés pour le super utilisateur
Premier bloc de données=0
Nombre maximum de blocs du système de fichiers=0
29809 groupes de blocs
32768 blocs par groupe, 32768 fragments par groupe
8192 i-noeuds par groupe
Superblocs de secours stockés sur les blocs :
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544

Écriture des tables d'i-noeuds : complété
Création du journal (32768 blocs) : complété
Écriture des superblocs et de l'information de comptabilité du système de
fichiers : complété

Le système de fichiers sera automatiquement vérifié tous les 34 montages ou
après 180 jours, selon la première éventualité. Utiliser tune2fs -c ou -i
pour écraser la valeur.
C'est un peu long (mais pas trop quand même), y a 4To à initialiser.

Et enfin pour être sur de monter notre nouvelle grappe au boot, on met à jour le fichier mdadm.conf et on met l'initramfs à jour pour qu'il prenne en compte notre nouvelle conf raid.
# mv /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.old
# /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
# update-initramfs -u


Histoire de pas s'embêter avec les UUID, on ajoute un label à notre nouveau filesystem, ça sera plus propre que de retrouver un UUID=7e7c71f0-f75feff0-db32a730-40fad249 dans le fstab ensuite :
tune2fs -L raid5_2t /dev/md1


On rajoute la ligne qui va bien dans le /etc/fstab
# echo "LABEL=\"raid5_2t\"       /raid5_2t       ext4    defaults        0       2" >> /etc/fstab


On reboot histoire d'être sur que tout va bien :
# reboot
(ouais bon, celle là j'aurais pu l'éviter  :D )

Et ça y est, l'espace est redevenu illimité !  :D
#df -h /raid5_2t
/dev/md1 3,6T 41G 3,6T 3% /raid5_2t



test de perf :

# dd if=/dev/md1 of=/dev/null bs=4096 count=1000000
1000000+0 enregistrements lus
1000000+0 enregistrements écrits
4096000000 octets (4,1 GB) copiés, 26,0721 s, 157 MB/s
# dd if=/dev/zero of=/raid5_2t/benjamin/test.txt bs=4096 count=1000000
1000000+0 enregistrements lus
1000000+0 enregistrements écrits
4096000000 octets (4,1 GB) copiés, 35,8405 s, 114 MB/s

# dd if=/dev/md1 of=/dev/null bs=4096 count=10000000
10000000+0 enregistrements lus
10000000+0 enregistrements écrits
40960000000 octets (41 GB) copiés, 258,123 s, 159 MB/s
# dd if=/dev/zero of=/raid5_2t/benjamin/test.txt bs=4096 count=10000000
10000000+0 enregistrements lus
10000000+0 enregistrements écrits
40960000000 octets (41 GB) copiés, 381,242 s, 107 MB/s


Sachant que le raid est pour l'instant en status dégradé et tourne que sur 2 disques.  :)

Enfin, il ne reste plus qu'à copier les données, attendre un peu et c'est presque fini.
/dev/md0              932G  915G   17G  99% /raid5_500g
/dev/md1 3,6T 915G 2,7T 25% /raid5_2t


Il faut maintenant enlever 1 disque du vieux raid 5. Histoire d'être sur, on va vérifier le contenu du raid :
# cat /proc/mdstat
md0 : active raid5 sde1[0] sdg1[2] sdf1[1]
976767872 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

# mdadm --examine /dev/sdg1
/dev/sdg1:
Magic : a92b4efc
Version : 0.90.00
UUID : 29312f1c :b4d82926: 93aa9ae4:2531061e
Creation Time : Mon Jun 22 17:00:35 2009
Raid Level : raid5
Used Dev Size : 488383936 (465.76 GiB 500.11 GB)
Array Size : 976767872 (931.52 GiB 1000.21 GB)
Raid Devices : 3
Total Devices : 3
Preferred Minor : 0

Update Time : Sat Mar 16 16:27:55 2013
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Checksum : f8b1a140 - correct
Events : 662

Layout : left-symmetric
Chunk Size : 64K

Number Major Minor RaidDevice State
this 2 8 97 2 active sync /dev/sdg1

0 0 8 65 0 active sync /dev/sde1
1 1 8 81 1 active sync /dev/sdf1
2 2 8 97 2 active sync /dev/sdg1


# mdadm --manage /dev/md0 --set-faulty /dev/sdg1
mdadm: set /dev/sdg1 faulty in /dev/md0
# cat /proc/mdstat
md0 : active raid5 sde1[0] sdg1[3](F) sdf1[1]
976767872 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]

# mdadm --manage /dev/md0 --remove /dev/sdg1
mdadm: hot removed /dev/sdg1 from /dev/md0
# cat /proc/mdstat
md0 : active raid5 sde1[0] sdf1[1]
976767872 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]

Haha, le vieux raid tourne plus que sur 3 pattes :
# cat /proc/mdstat
md0 : active raid5 sde1[0] sdf1[1]
976767872 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]

On peut maintenant remplacer physiquement le disque 500Go par un disque 2To dans le serveur ; on recommence les manips de fdisk (je passe, ça n'apporte rien de plus), et on ajoute enfin notre 3e nouveau disque au raid :
# fdisk /dev/sdg
# mdadm --manage /dev/md1 --add /dev/sdg1

Il n'y a plus qu'a attendre que le raid soit reconstruit.  :)
# cat /proc/mdstat
md1 : active raid5 sdg1[3] sdf1[0] sde1[1]
3907026688 blocks super 1.2 level 5, 128k chunk, algorithm 2 [3/2] [UU_]
[>....................] recovery = 0.6% (12990828/1953513344) finish=398.4min speed=81176K/sec


Une fois le raid reconstruit, on peut détruire l'ancien en supprimant sa ligne du fichier mdadm.conf :
# mdadm --stop /dev/md0
# vim /etc/mdadm/mdadm.conf
# update-initramfs -u


Et voila une opération rondement menée !  :)
"Le pire, c'est quoi ? L'ignorance ou l'indifférence ? - Je sais pas ... et je m'en fous !"
17/03/2013 à 10:39:34
J'ai pas tout compris mais ça a l'air beau  :wahoo:  :jap:
Au creux de nos mères qu'il fait bon mûrir, et puis j'ai vu de la lumière alors je suis sorti... Et j'ai dit : Bonne idée !
17/03/2013 à 11:04:00
La prochaine fois, on parlera de LVM et de déplacement de données d'un petit disque 250Go vers un disque de 500Go sans interruption de service  ;)

D'ailleurs avec le recul, je me dis que j'ai merdé, j'aurais du ajouter une couche LVM sur mon raid de 4To pour moins m'embêter lors de la prochaine upgrade  :cpamafote: Mais bon, c'est normalement pas avant 3-4 ans  :)
"Le pire, c'est quoi ? L'ignorance ou l'indifférence ? - Je sais pas ... et je m'en fous !"
01/04/2020 à 18:52:00, Édition : 01/04/2020 à 18:53:35 par Poulpe
Bien content de retrouver toute cette doc  :D
Dimanche j'ai un disque de 2To de mon raid5 qui a laché ... Bon, il était pas tout jeune :
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.

Error 78 occurred at disk power-on lifetime: 60532 hours (2522 days + 4 hours)


Je profite de l'opportunité pour passer à la taille au dessus (3x4To => 8To utiles), que j'avais envie de faire depuis un moment déjà.
Et c'est donc l'occasion de rajouter une couche de LVM sur mon nouveau raid ... action qui traine depuis mars 2013 ... ouais, 3-4 ans, on y est à peu près

Je refais pas le topo de formatage des partitions et création du raid soft, ça a pas bougé d'un iota.
Juste la partie LVM qui s'ajoute à la fin.
D'abord on créé un VG qu'on va appeler raid5 (original ...  :whistle: ) sur le seul disque qui nous intéresse /dev/md1 créé juste avant.
# vgcreate raid5 /dev/md1

et dessus un LV de 3To qui va aussi s'appeller raid5
# lvcreate -n raid5 -L 3T raid5
Logical volume "raid5" created.

On vérifie tout ça avant de passer à la suite :
# pvs
PV VG Fmt Attr PSize PFree
/dev/md1 raid5 lvm2 a-- <7,28t <4,28t
# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
raid5 raid5 -wi-ao---- 3,00t

et maintenant on peut créer le filesystem sur ce LV :
# mkfs.ext4 -b 4096 -m 0 -E stride=32,stripe_width=64 /dev/raid5/raid5
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 805306368 4k blocks and 201326592 inodes
Filesystem UUID: 72fd2ec0-3eec-47aa-b689-43378790f31f
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

Classique ensuite, modif de fstab et tout, et on a un nouveau point de montage tout neuf, qu'on peut redimensionner facilement
# vi /etc/fstab
# mkdir /raid5
# mount -a
# df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/mapper/raid5-raid5 3,0T 89M 3,0T 1% /raid5


Certains esprits chagrins vont me dire que j'aurais pu passer à btrfs pour le coup ... mais c'est prévu avec les disques de 2To reliquats du vieux raid, là j'ai pas trop le temps de tester des trucs, j'ai des données à sécuriser  :hello:
"Le pire, c'est quoi ? L'ignorance ou l'indifférence ? - Je sais pas ... et je m'en fous !"
03/04/2020 à 19:06:11
Dernière étape du jeu, migrer les données d'un LVM sur simple disque vers un LVM en miroir  :) Comme j'avais créé un dépot miroir debian sur ce serveur, j'avais réutilisé 2 disques de 500Go pour ça, et j'avais eu la bonne idée à cette époque d'utiliser LVM sur ces disques. Aucune donnée critique, mais maintenant que j'ai récupéré un peu de place, autant l'utiliser et éviter en cas de problème de disque de devoir à nouveau re-télécharger les 300Go de paquets (j'ai pas encore la fibre ici  :hum )  :)
C'est donc l'occasion de voir comment déplacer des données d'un disque à un autre grâce à LVM.

D'abord, reconfigurer le raid pour casser le raid5 et faire un raid1 avec les 2 disques de 2To viables :
# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
# mdadm --create /dev/md2 --level=1 --raid-devices=2 --chunk=128 /dev/sdc1 /dev/sdd1
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Mar 16 13:30:01 2013
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sat Mar 16 13:30:01 2013
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.
Forcément, ça lui plait pas trop car les disques étaient déjà dans une grappe avant, mais on y va quand même.

Le temps qu'il synchronise les 2 disques
# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdd1[1] sdc1[0]
1953382400 blocks super 1.2 [2/2] [UU]
[>....................] resync = 0.0% (803584/1953382400) finish=161.9min speed=200896K/sec
bitmap: 15/15 pages [60KB], 65536KB chunk

on va préparer notre volume group pour utiliser ce nouvel espace libre. On commence par définir le PV, et on l'intègre dans notre VG qui s'appelle lvm.
# pvcreate /dev/md2
Physical volume "/dev/md2" successfully created.
# vgextend lvm /dev/md2
Volume group "lvm" successfully extended
/# pvs
PV VG Fmt Attr PSize PFree
/dev/md2 lvm lvm2 a-- <1,82t <1,82t
/dev/sda5 root lvm2 a-- <465,52g 399,26g
/dev/sde1 lvm lvm2 a-- <465,76g <464,76g
/dev/sdf1 lvm lvm2 a-- <465,76g <155,76g

Avant de bouger les données à proprement parler, on désactive les 2 disques qu'on ne veut pas utiliser, ce qui évitera de mettre des données dessus par erreur et devoir recommencer :
# pvchange -xn /dev/sde1
Physical volume "/dev/sde1" changed
1 physical volume changed / 0 physical volumes not changed
# pvchange -xn /dev/sdf1
Physical volume "/dev/sdf1" changed
1 physical volume changed / 0 physical volumes not changed

Et maintenant c'est parti pour le déplacement :
# pvmove /dev/sde1
/dev/sde1: Moved: 0,39%
/dev/sde1: Moved: 57,03%
/dev/sde1: Moved: 100,00%

Une fois fini, on peut enlever le disque sde de notre LV pour éviter de l'utiliser par erreur :
# vgreduce lvm /dev/sde1
Removed "/dev/sde1" from volume group "lvm"

Ensuite le 2e disque (un peu plus long parce qu'il était bien plein)
# pvmove -v /dev/sdf1

Sur un autre terminal, pendant le déplacement des données, on voit qu'il a réserver toute la place nécessaire sur md2 pour déplacer effectivement nos données :
# pvs
PV VG Fmt Attr PSize PFree
/dev/md2 lvm lvm2 a-- <1,82t <1,52t
/dev/sda5 root lvm2 a-- <465,52g 399,26g
/dev/sde1 lvm2 --- <465,76g <465,76g
/dev/sdf1 lvm lvm2 u-- <465,76g <155,76g

Comme c'est un peu long, on va prendre un café. On commence à avoir l'habitude des temps de traitement longs quand on travaille avec des 100aines de Go.


2h plus tard, on peut libérer complètement le VG :
 vgreduce lvm /dev/sdf1
Removed "/dev/sdf1" from volume group "lvm"
# pvs
PV VG Fmt Attr PSize PFree
/dev/md2 lvm lvm2 a-- <1,82t <1,52t
/dev/sda5 root lvm2 a-- <465,52g 399,26g
/dev/sde1 lvm2 --- <465,76g <465,76g
/dev/sdf1 lvm2 --- <465,76g <465,76g
# pvremove /dev/sde1 /dev/sdf1
Labels on physical volume "/dev/sde1" successfully wiped.
Labels on physical volume "/dev/sdf1" successfully wiped.
# pvs
PV VG Fmt Attr PSize PFree
/dev/md2 lvm lvm2 a-- <1,82t <1,52t
/dev/sda5 root lvm2 a-- <465,52g 399,26g


Et voila, les 2 disques du raid5 du début de ce topic sont à nouveau vides et pourront servir à diverses expérimentations  :wahoo:

PS : infos SMART du disque sde : Power_On_Hours = 89503 (plus de 10ans)  :eek:
"Le pire, c'est quoi ? L'ignorance ou l'indifférence ? - Je sais pas ... et je m'en fous !"
Page 1
 
 
Octopus30.net >> Les discussions >> Informatique, internet et jeux vidéos >> Montage d'un serveur de fichiers raid 5 logiciel
 
Forum Octopus30 version 6.0.7 / Poulpe 2001-2020
Page générée en 38ms (9 requêtes SQL : 11ms)
Site enregistré à la CNIL sous le numéro 1002899