## Installer Proxmox + RAID HDD
Après avoir installé Debian comme [[technique:old:alice_bob:install_debian|sur cette page]].
Dépendant de la version de Debian, on suivra des tutoriels différents :
* [Jessie (8)](https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Jessie)
* [Stretch (9)](https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Stretch)
* [Buster (10)](https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Buster)
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.
## Installation du RAID sur les HDD
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 :
```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.
```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é :
```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`.
```bash
$ mdadm --create --verbose /dev/md2 --level=mirror --raid-devices=2 /dev/sdc1 /dev/sdd1
```
On vérifie que tout s'est bien passé :
```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
```
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 :
```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` :
```bash
$ update-initramfs -u
```
On peut redémarrer la machine pour vérifier que tout a bien fonctionné.
## Mise en place de LVM sur le périphérique RAID 1
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 :
```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.
Si jamais on rajoute des disques ultérieurement, c'est à ce VG qu'on les rajoutera, avec la commande :
```bash
$ vgextend hdd /dev/md3
```
```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/-`.
On vérifie que tout fonctionne :
```
# Monte tous les périphériques définis dans /etc/fstab
$ mount -a
```