RAID LVM sous GNU/Linux

INTRODUCTION

Sur une machine ne possédant que deux interfaces SATA sont connectés deux disques dur en raid 1 logiciel. Ces disques étant pleins, l'objectif est de les échanger avec de nouveaux disques ayant une capacité supérieure.

On simulera donc cette manipulation à l'aide des interfaces "loop" pour créer des disques durs "virtuels"

  • Création des disques virtuels
  • Création de la grappe raid 1
  • Création du LVM
  • Création du système de fichier
  • Création des nouveaux disques durs

CRÉATION DES DISQUES DURS VIRTUELS

création des dd

#mkdir dd
#dd if=/dev/zero of=dd/dd1 bs=1M count=500
#dd if=/dev/zero of=dd/dd2 bs=1M count=500

création des fichiers loop

#losetup /dev/loop0 dd/dd1
#losetup /dev/loop1 dd/dd2

Les deux disques sont donc accessibles par les interfaces loop0 et loop1

création du raid

#mdadm --create md0 --raid-devices=2 --level=1 /dev/loop0 /dev/loop1

Création du LVM

  • pv : physical volume (partition ou disque)
  • pg : physical groupe (ensemble de pv)
  • lv : logical volume (partition d'un pv)

Création d'un pv pour le raid

#pvcreate /dev/md127

faucon:/home/biss#pvscan
  PV /dev/md127                    lvm2 [494,16 MiB]
  Total: 1 [494,16 MiB] / in use: 0 [0   ] / in no VG: 1 [494,16 MiB]

Création du volume groupe

# vgcreate VolGrpLVM /dev/md127
  Volume group "VolGrpLVM" successfully created

Création des volume logiques part1 et part2

faucon:/home/biss# lvcreate -n part1 -L 150M VolGrpLVM
  Rounding up size to full physical extent 152,00 MiB
  Logical volume "part1" created
faucon:/home/biss# lvcreate -n part2 -L 250M VolGrpLVM
  Rounding up size to full physical extent 252,00 MiB
  Logical volume "part2" created
faucon:/home/biss#

Création du système de fichier

#mkfs.ext3 /dev/VolGrpLVM/part1
#mkfs.ext3 /dev/VolGrpLVM/part2

A ce stade on a un système "virtuel" équivalent à la machine dont on souhaite faire migrer les disques durs

Création des nouveaux disques durs

création de deux disques 1G dd3 et dd4 pour remplacer dd1 et dd2

#mdadm --manage /dev/md127 --add /dev/loop2

déclaration d'un disque défaillant

#mdadm --manage /dev/md127 --set-faulty /dev/loop1

Idem pour le dd4 (loop3)

Suppression des loop0 et loop1

#mdadm --manage /dev/md127 --remove /dev/loop0
#mdadm --manage /dev/md127 --remove /dev/loop1

Redimensionnement du raid et du lvm

#mdadm --grow /dev/md127 -z max
#pvresize /dev/md127