technique:old:alice_bob:proxmox_raid_hdd

Après avoir installé Debian comme sur cette page.

Dépendant de la version de Debian, on suivra des tutoriels différents :

On exécutera uniquement les instructions de la section Install Proxmox VE.

Une fois l’installation terminée, on peut essayer de se connecter sur l’interface web avec le port 8006. Notez qu’à ce stade, l’interface web n’est pas sécurisée (elle utilise HTTP), on commencera donc par un tunnel SSH :

ssh -L 8006:localhost:8006 root@alice.picasoft.net

Dans cet exemple, on dit que le port 8006 de localhost arrive sur le port 8006 de alice.picasoft.net, via un tunnel SSH avec l’utilisateur root. Si l’authentification se fait par mot de passe ou clé SSH dépend de votre configuration SSH.

On se connecte ensuite sur localhost:8006 via un navigateur web, avec le compte root avec la méthode PAM. Si la connexion réussit, l’installation est réussie également.

Depuis l’interface, via les différents menus, on peut retrouver toutes les informations sur la machine :

  • Contenu de /etc/resolv.conf
  • Interfaces réseaux
  • Services démarrés
  • Configuration matérielle

On peut également ouvrir un shell, voir les mises à jour et les faire, etc. Se référer à la documentation officielle.

L’objectif est de faire un RAID 1 sur les disques durs, puis d’utiliser LVM sur le périphérique RAID nouvellement créé afin d’obtenir une souplesse de partitionnement.

On commence par identifier les identifiants des disques durs :

snippet.bash
$ fdisk -l | grep sd
    Disque /dev/sda : 447,1 GiB, 480103981056 octets, 937703088 secteurs
    /dev/sda1  *      2048    391167    389120  190M fd Linux raid autodetect
    /dev/sda2       391168 937701375 937310208  447G fd Linux raid autodetect
 
    Disque /dev/sdb : 447,1 GiB, 480103981056 octets, 937703088 secteurs
    /dev/sdb1         2048    391167    389120  190M fd Linux raid autodetect
    /dev/sdb2       391168 937701375 937310208  447G fd Linux raid autodetect
 
    Disque /dev/sdc : 1,8 TiB, 2000398934016 octets, 3907029168 secteurs
 
    Disque /dev/sdd : 1,8 TiB, 2000398934016 octets, 3907029168 secteurs

Les deux disques durs à combiner en RAID 1 sont /dev/sdc et /dev/sdd. On va créer une unique partition sur chaque disque, avec un type RAID Linux, prenant tout l’espace disponible.

snippet.bash
$ fdisk /dev/sdc 
 
    Commande (m pour l'aide) : n
    # Laisser les défauts (toute la partition, primaire, etc)
    Commande (m pour l'aide) : t
    Type de partition (taper L pour afficher tous les types) : fd
    Commande (m pour l'aide) : w
 
$ fdisk /dev/sdd
 
    Commande (m pour l'aide) : n
    # Laisser les défauts (toute la partition, primaire, etc)
    Commande (m pour l'aide) : t
    Type de partition (taper L pour afficher tous les types) : fd
    Commande (m pour l'aide) : w

On vérifie que tout a bien fonctionné :

snippet.bash
$ fdisk -l | grep "sd[c,d]"
Disk /dev/sdc: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
/dev/sdc1   2048 3907029134 3907027087  1.8T Linux RAID
Disk /dev/sdd: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
/dev/sdd1   2048 3907029134 3907027087  1.8T Linux RAID

On va ensuite créer le périphérique RAID 1. Sur notre machine, deux périphériques RAID 1 existent déjà (/dev/md0 et /dev/md1), on choisit dev/md2. Le RAID 1 est aussi appelé mirror.

snippet.bash
$ mdadm --create --verbose /dev/md2 --level=mirror --raid-devices=2 /dev/sdc1 /dev/sdd1

On vérifie que tout s’est bien passé :

snippet.bash
$ cat /proc/mdstat
[...]
    md2 : active raid1 sdd1[1] sdc1[0]
          1953382464 blocks super 1.2 [2/2] [UU]
          bitmap: 15/15 pages [60KB], 65536KB chunk
[...]
 
$ mdadm --detail /dev/md2
/dev/md2:
        Version : 1.2
  Creation Time : Fri Nov 11 16:50:43 2016
     Raid Level : raid1
     Array Size : 1953382464 (1862.89 GiB 2000.26 GB)
[...]
    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       49        1      active sync   /dev/sdd1

Attention:

Le périphérique RAID met un moment à se créer. On verra alors, avec la commande précédente, une progression du style :

md2 : active raid1 sdd1[1] sdc1[0]
      1953381440 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  0.1% (2907200/1953381440) finish=167.7min speed=193813K/sec
      bitmap: 15/15 pages [60KB], 65536KB chunk

Il faudra attendre que ce soit fini avant de passer à la suite.

Pour finir, on va sauvegarder la configuration du RAID pour qu’il puisse être chargé au démarrage. On exécute la commande suivante :

snippet.bash
$ mdadm --examine --scan
ARRAY /dev/md/0  metadata=1.2 UUID=0bb5e10b:a16862ee:8221aa37:daf398cd name=alice:0
ARRAY /dev/md/1  metadata=1.2 UUID=b97b8146:772c95ad:7e0c2b3e:24f3754e name=alice:1
ARRAY /dev/md/2  metadata=1.2 UUID=7f738779:e63987a4:1cb12224:e0cd9dca name=alice:2

On récupère la ligne qui concerne notre périphérique (ARRAY /dev/md/2...) et on l’ajoute au fichier /etc/mdadm/mdadm.conf.

On met ensuite à jour l’initramfs :

snippet.bash
$ update-initramfs -u

On peut redémarrer la machine pour vérifier que tout a bien fonctionné.

On va utiliser LVM sur /dev/md2 pour pouvoir créer des partitions souples :

  • Une partition logique sera utilisée pour les disques des machines virtuelles qui n’ont pas besoin de la vitesse des SSD (ou pour toutes les machines virtuelles, si on a pas de SSD)
  • Une autre sera utilisée pour les backups des machines virtuelles

On commence par créer le volume physique :

snippet.bash
$ pvcreate /dev/md2
Physical volume "/dev/md2" successfully created
$ pvs
  PV         VG  Fmt  Attr PSize   PFree  
  [...]
  /dev/md2   hdd lvm2 a--    1.82t XXX

On voit que /dev/md2 est maintenant utilisable pour LVM.

On crée ensuite un volume group (VG), qui contiendra le PV créé ci-avant.

Note:

Si jamais on rajoute des disques ultérieurement, c’est à ce VG qu’on les rajoutera, avec la commande :

snippet.bash
$ vgextend hdd /dev/md3

snippet.bash
$ vgcreate hdd /dev/md2
Volume group "hdd" successfully created
$ vgs
  VG  #PV #LV #SN Attr   VSize   VFree  
  hdd   1   2   0 wz--n-   1.82t XXX
  [...]

Puis on crée deux volumes logiques (LV) sur ce VG :

  • vm_storage, pour les disques des machines virtuelles
  • backup, pour les backups de Proxmox
$ lvcreate -n vm_storage -L 300g hdd
Logical volume "vm_storage" created
$ lvcreate -n backup -L 300g hdd
Logical volume "backup" created
$ lvs
  LV         VG  Attr       LSize  
  backup     hdd -wi-ao---- 300.00g                                                    
  vm_storage hdd -wi-ao---- 300.00g                                                    
[...]

Ici, on a créé deux volumes logiques de 300G, ce qui laisse environ 1T d’espace libre sur le VG hdd, pour pouvoir augmenter l’un ou l’autre en fonction des besoins.

Enfin, il va falloir choisir un point de montage pour nos deux volumes, qui sera plus tard renseigné dans Proxmox. On ajoute ces lignes dans /etc/fstab :

/dev/mapper/hdd-backup      /SAVE	                   ext4    defaults	            0       2
/dev/mapper/hdd-vm_storage /var/lib/vm_storage	     ext4    defaults	     0       2

Notez que le chemin des LV sont construits avec la syntaxe /dev/mapper/<VG>-<LV>.

On vérifie que tout fonctionne :

# Monte tous les périphériques définis dans /etc/fstab
$ mount -a
  • technique/old/alice_bob/proxmox_raid_hdd.txt
  • de qduchemi