# [RAID] - besoin de conseil.

## takhisis_astrafall

Bonjour,

J'ai actuellement un raid5 hardware.

Des soucis de compatibilité et le manque de flexibilité m'ennuyant, je comptais migrer sur une autre solution.

J'ai eu l'habitude de jouer avec LVM au boulot à coup de pvresize/pvmove/lvresize et cie  :Very Happy: 

Par contre, j'ai peu d'expérience avec MDadm.

Je pensais donc tourner avec 2 raid différents au fur et à mesure des évolution de la machine, chaque raid étant un chacun un PV dans un seul VG

Exemple d'évolution (à très long terme hein ^^' ): 

- 3hdd*3To ( raid5 PV1 ) + 2hdd*6To ( raid 1 PV2)

Ajout d'un disque 6To et retrait d'un 3To : ( passage du raid1 de PV2 en raid5 => augmentation du PV2 => migration des données du PV1 sur le PV2 => diminution de la taille du PV => downgrade du raid5 du PV1 en raid1 )

- 2hdd*3To ( raid1 PV1 ) + 3hdd*6to ( raid5 PV2)

Remplacement du raid 1 ( intégration nouveau disque dans le raid1 suppression d'un ancien, ajout du 2nd nouveau, suppression du second ancien)

- 3hdd*6to ( raid5 PV2 ) + 2hdd*8To ( raid 1 PV1)

(et ainsi de suite... )

Est-ce que le passage de raid5 vers raid1 est géré par mdadm ?

Il y-a-til de meilleur moyen/ technologie pour procéder à ce type d'évolution ? ^^'

Merci d'avance !

----------

## 324874

Bonjour takhisis_astrafall !

Je trouve que la présentation de l'objectif est technique. Les enjeux sont difficiles à saisir en première lecture. 

Il serait préférable d'expliquer ce que tu souhaites obtenir. 

Par exemple, je souhaite disposer d'une capacité totale de ... TiO, permettre une duplication des données (correction des erreurs) et 

effectuer éventuellement des redimensionnements, etc.

Les technologies produisent un résultat déterminé ou déterminable. Le choix des technologies employées constitue une réponse au problème posé.

Il est préférable de présenter le problème plutôt que d'exposer la réponse apportée. En effet, peut-on comprendre la réponse si l'on ne saisit pas le problème ?

----------

## takhisis_astrafall

Bonjour Feng,

Mon objectif est de pouvoir augmenter la capacité des mes FS de stockages sans avoir à changer tout les disques d'un coup, en exploitant entièrement ceux en place, tout en ayant une redondance et sans avoir à faire de transfert de données de FS à FS.  :Shocked: 

Actuellement, j'ai 4 disques de 3To en raid5 sur une carte raid. Celle ci étant buggué et plus supporté, je cherche donc une solution logiciel libre.

je pensais investir dans 2 disque de 6To pour commencer et pour exploiter 2*6To +3*3To.

NB: les perf ne sont pas une priorité pour moi.

Merci !

----------

## 324874

Bonsoir, takhisis_astrafall !

Est-ce que le plan d'évolution (changements raids 1 <-> 5) est dû à l'archivage de données ?

édition : ou bien à cause du coût des disques ?

----------

## 324874

Je ne comprend pas la situation et la configuration employée ! 

Pourquoi utilises-tu plusieurs niveaux RAID ? Pourquoi ne gères-tu pas tous les disques avec le RAID de cinquième type ?

LVM permet la redondance des données.

----------

## takhisis_astrafall

bonjour,

L'idée dans le passage de raid5 vers raid1 et d'avoir les 2 en parrallèle est :

-ne pas avoir à mettre au placard tout un pool de disques mais juste 1 qui servirait en cas panne d'un des 2 autres.

-ne pas avoir à acheter trop de disque d'un coup (vu que c'est pas donné comme denrée ^^').

-ne pas avoir 36000 disques dans la tour.

Et si je met 3 disques de 3To et 2 disques de 6To dans le même raid5, les disques de 6To ne seront pas exploité entièrement (ou alors, il y a des méchanismes que je n'ai pas encore découvert   :Embarassed:  ).

Je vais étudier le fonctionnement du raid sous LVM !

----------

## 324874

Zut, tu as raison !   :Sad:   Au final, je me demande si le RAID5 est flexible.

On peut exploiter les disques de tailles différentes, en créant un volume logique, de même taille, que les diques constituant le disque RAID.

Toutefois, cette solution n'est pas optimale si l'on souhaite utiliser des partitions de taille variable. LVM + RAID + LVM ???   :Shocked: 

Je ne sais pas comment on pourrait procéder. Il existe peut-être des solutions alternatives plus adaptées ? (sauvegardes complètes, incrémentales, etc.)

On est revenu à la configuration que tu proposes et aux interrogations initiales.

----------

## El_Goretto

Sachant que l'on peut faire du RAID sur une partition et pas forcément tout un disques (ce qui veut dire que l'espace inutilisé d'un pool de disques n'est pas forcément perdu puisqu'il peut participer à un autre array RAID avec un bon partitionnement), les questions à se poser seraient: est-ce qu'on peut ajouter un membre à un array sans problème (me semble que c'est basique), et surtout est-ce qu'on peut redimensionner un PV qui fait partie d'un array: par exemple dans le cas "3 disques de 3To et 2 disques de 6To", sur les disques 6To, si on vire les partitions "1" qui font 3To et sont dans l'array qui contient 5 membres, est-ce qu'on peut agrandir les "2nde" partitions qui sont dans l'array avec 2 membres pour occuper le total des 6To dispo sur les disques (pour quand il n'y aura plus de disques de 3To mais que des 6To).

Choper la doc et monter une maquette dans une machine virtuelle en mettant des disques de quelques 10/100aines de Mo pour valider tout çà me semble un bon TP  :Smile: 

----------

## takhisis_astrafall

Alors, pour ce qui est de faire un pvresize, ça se fait (sur des disques entier quand le PV est un device, sur la partition si le pv en est une.)

Personnellement, pour éviter les histoires de mauvais alignement de partition, et d'IO un peu bizarre, je privilégie un device = 1 pv.

Bon, je viens de commencer des tests avec seulement LVM, pour le moment, ce n'est pas fameux ^^'

Il va me falloir quand même utiliser une couche MDADM pour créer les raid de différent niveaux puis de passer par LVM pour groupir tout ça

----------

## takhisis_astrafall

les résultat des essais avec LVM : 

3 Disques de  1Go et 2 de 2Go dans le même VG.

Je demande à prendre 100% du VG pour créer le LV et je me retrouve avec un LV de ~4Go : 

```
abyss test # pvs

  PV         VG      Fmt  Attr PSize    PFree

  /dev/loop0 vg_raid lvm2 a--  1020,00m 1020,00m

  /dev/loop1 vg_raid lvm2 a--  1020,00m 1020,00m

  /dev/loop2 vg_raid lvm2 a--  1020,00m 1020,00m

  /dev/loop3 vg_raid lvm2 a--     2,00g    2,00g

  /dev/loop4 vg_raid lvm2 a--     2,00g    2,00g

  /dev/loop5         lvm2 ---     2,00g    2,00g

abyss test # lvcreate --type raid5 -i 2 -l 100%VG -n lv_raid5 vg_raid

  Using default stripesize 64,00 KiB.

  Rounding size (1787 extents) down to stripe boundary size (1786 extents)

  Logical volume "lv_raid5" created.

abyss test # pvs

  PV         VG      Fmt  Attr PSize    PFree

  /dev/loop0 vg_raid lvm2 a--  1020,00m       0

  /dev/loop1 vg_raid lvm2 a--  1020,00m       0

  /dev/loop2 vg_raid lvm2 a--  1020,00m 1016,00m

  /dev/loop3 vg_raid lvm2 a--     2,00g       0

  /dev/loop4 vg_raid lvm2 a--     2,00g       0

  /dev/loop5         lvm2 ---     2,00g    2,00g

abyss test # lvs

  LV       VG      Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  lv_raid5 vg_raid rwi-a-r--- 3,98g                                    100,00
```

Il semblerait qu'il crée un agrega des 2 disques de 1G pour faire le 3ème de 2Go.

=====================================================

3 disques de 1G dans le VG et lv créé en raid 5: 

```
abyss test # pvs

  PV         VG      Fmt  Attr PSize    PFree

  /dev/loop0 vg_raid lvm2 a--  1020,00m    0

  /dev/loop1 vg_raid lvm2 a--  1020,00m    0

  /dev/loop2 vg_raid lvm2 a--  1020,00m    0

  /dev/loop3         lvm2 ---     2,00g 2,00g

  /dev/loop4         lvm2 ---     2,00g 2,00g

  /dev/loop5         lvm2 ---     2,00g 2,00gg
```

Ajout du loop3 dans le VG puis lvresize pour tout prendre : 

```
abyss test # vgextend vg_raid /dev/loop3

  Volume group "vg_raid" successfully extended

abyss test # vgs

  VG      #PV #LV #SN Attr   VSize VFree

  vg_raid   4   1   0 wz--n- 4,98g 2,00g

abyss test # pvs

  PV         VG      Fmt  Attr PSize    PFree

  /dev/loop0 vg_raid lvm2 a--  1020,00m    0

  /dev/loop1 vg_raid lvm2 a--  1020,00m    0

  /dev/loop2 vg_raid lvm2 a--  1020,00m    0

  /dev/loop3 vg_raid lvm2 a--     2,00g 2,00g

  /dev/loop4         lvm2 ---     2,00g 2,00g

  /dev/loop5         lvm2 ---     2,00g 2,00g

abyss test # lvresize -l 100%vg /dev/vg_raid/lv_raid5

  Using stripesize of last segment 64,00 KiB

  Size of logical volume vg_raid/lv_raid5 unchanged from 1,98 GiB (508 extents).

  Logical volume vg_raid/lv_raid5 successfully resized.
```

On voit qu'il n'arrive pas à exploiter le disque en plus.

ajout d'un 2nd disque de 2G dans le vg : 

```
abyss test # vgextend vg_raid /dev/loop4

  Volume group "vg_raid" successfully extended

abyss test # pvs

  PV         VG      Fmt  Attr PSize    PFree

  /dev/loop0 vg_raid lvm2 a--  1020,00m    0

  /dev/loop1 vg_raid lvm2 a--  1020,00m    0

  /dev/loop2 vg_raid lvm2 a--  1020,00m    0

  /dev/loop3 vg_raid lvm2 a--     2,00g 2,00g

  /dev/loop4 vg_raid lvm2 a--     2,00g 2,00g

  /dev/loop5         lvm2 ---     2,00g 2,00g

abyss test # lvresize -l 100%vg /dev/vg_raid/lv_raid5

  Using stripesize of last segment 64,00 KiB

  Size of logical volume vg_raid/lv_raid5 unchanged from 1,98 GiB (508 extents).

  Logical volume vg_raid/lv_raid5 successfully resized.
```

On se retrouve donc avec la même quantité de disque que dans le 1er test. mais LVM n'arrive pas à tout réorganiser pour avoir la même "architecture".

Ajout du 3eme disque de 2G :

```
abyss test # vgextend vg_raid /dev/loop5

  Volume group "vg_raid" successfully extended

abyss test # pvs

  PV         VG      Fmt  Attr PSize    PFree

  /dev/loop0 vg_raid lvm2 a--  1020,00m    0

  /dev/loop1 vg_raid lvm2 a--  1020,00m    0

  /dev/loop2 vg_raid lvm2 a--  1020,00m    0

  /dev/loop3 vg_raid lvm2 a--     2,00g 2,00g

  /dev/loop4 vg_raid lvm2 a--     2,00g 2,00g

  /dev/loop5 vg_raid lvm2 a--     2,00g 2,00g

abyss test # lvresize -l 100%vg /dev/vg_raid/lv_raid5

  Using stripesize of last segment 64,00 KiB

  Size of logical volume vg_raid/lv_raid5 changed from 1,98 GiB (508 extents) to 5,98 GiB (1530 extents).

  Logical volume vg_raid/lv_raid5 successfully resized.
```

Il arrive ici à bien créer un 2nd raid5 dans le LV mais il ne me sera pas possible de mixer 2 type de raid dans le même LV.

Mes loopback étant créé, je vais enchainer sur les test MDADM ^^'

----------

