RAID-1 (incluant /boot) sur un desktop Ubuntu, comment le feriez-vous ?

J’ai un desktop avec 2 SSD (pas UEFI) que je voudrais installer en RAID-1 logiciel. Auparavant j’ai déjà converti un système existant ou installé directement via le “Alternate installer” mais il n’existe plus. Il y a seulement de la place pour 2 disques dans ce système donc en installer un 3e (ou deux autres) pour séparer l’OS n’est pas possible.

Quelle méthode utiliseriez-vous aujourd’hui pour faire ça ?

  1. Installation normale puis conversion manuelle vers RAID-1 - doc datant quand même de 10 ans (!), aussi décrit ici - plus récent

  2. Conversion automatique avec Raider (script dont la dernière version date de 2012, utilisé avec succès sur 2 installations relativement récentes <2 ans)

  3. Installation normale avec partionnement manuel (semblable à ce qui est décrit ici) :

    • Deux partitions en RAID1 ( RAMx2 en swap, le reste sur “/” incluant /home et /boot) via l’installateur serveur Ubuntu puis l’ajout du desktop par la suite

J’ai essayé la dernière avec succès quoique j’ai quelques avertissements lors de la MAJ de noyaux pour la mise-à-jour de modules. J’aimerais savoir si d’autres ici ont ce genre d’installation et vos impressions sur les choix ci-haut.

Est-ce que tu utilises mdadm ou bien lvm (device mapper) pour créer ton miroir (RAID-1) ?

Quels sont les avertissements lors de la mise à jour ?

Un miroir avec mdadm ou lvm ne va pas être en mesure de détecter si un bloc d’un périphérique est corrompu car il n’y a pas de checksum.

As-tu essayé zfs pour faire ton miroir ?

Bien que je ne boot pas sur mon miroir zfs, il est composé de 3 disques de 3.7 T:

$ zpool status
  pool: tank
 state: ONLINE
  scan: resilvered 796G in 1h57m with 0 errors on Mon Oct  8 17:52:01 2018
config:

	NAME                   STATE     READ WRITE CKSUM
	tank                   ONLINE       0     0     0
	  mirror-0             ONLINE       0     0     0
	    zpool_disk0_crypt  ONLINE       0     0     0
	    zpool_disk1_crypt  ONLINE       0     0     0
	    zpool_disk2_crypt  ONLINE       0     0     0

errors: No known data errors

$ zpool list
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
tank  2.72T   542G  2.19T         -     1%    19%  1.00x  ONLINE  -

Merci pour tes commentaires. C’est dans le cas d’une installation via l’installateur serveur (mdadm, partitionnement manuel, pas de LVM) que j’avais des problèmes.

J’ai rêglé le problème d’avertissements, en supprimant cryptsetup-initramfs et il y avait aussi un problème pour GRUB qui cherchait à mettre à jour une clé USB présente en absence de fichier device.map.

Ensuite en ajoutant le desktop via tasksel install ubuntu-mate-desktop (par exemple) il manquait quand même quelques composantes malgré que c’est supposé aboutir au même résultat qu’une installation standard.

Je comprends pas ce que tu indiques pour la détection de blocs corrompus - par le passé en cas de problème sur ext4 en RAID je pouvais toujours faire des fsck et récupérer, en cas de problème matériel, simplement remplacer le disque. Pour le reste, des bons backups :slight_smile:

Pour ZFS bootable sur Debian je sais comment faire mais sur Ubuntu je suis un peu… rouillé. Je vais devoir expérimenter mais ça devient trop distant d’une installation plus standard que je peux débugger avec des exemples d’autres.

C’est vrai que tu peux utiliser fsck pour « healer » la partition dans certains cas.

Mais disons que dans ton RAID-1, le disque 1 est corrompu à 3 endroits, et le disque 2 à 7 endroits différents. fsck répond « réparation impossible » sur le disque 1 et sur le disque 2 aussi.
mdadm ne peut rien faire non plus, puisque mdadm peut reconstruire le disque 1 avec le disque 2 ou vice versa. Donc, le système est irrécupérable.

Avec mirror ZFS (équivalent à RAID-1 de mdadm), « le resilvering » va réparer les 3 problèmes du disque 1 avec le disque 2, et les 7 problèmes du disque 2 avec le disque 1.

Avec RAID, il y a aussi le problème du « Write hole ».