Ubuntu Core avec Raid 1

J’essaie d’installer mon Nextcloud sur un Raspberry Pi 3 sur Ubuntu Core. Je veux avoir une configuration Raid 1, donc une panne de disque n’effacera pas toutes les données (à côté des sauvegardes hebdomadaires, je vais faire avec un autre disque connecté

Le problème actuel est que Ubuntu Core ne vient pas avec mdadm pour créer le RAID. De plus, il ne semble pas y avoir de snap disponible pour mdadm, et vous ne pouvez évidemment pas installer le paquet en utilisant apt-get sur Ubuntu Core. Cependant, j’ai découvert qu’avec la “dimension classique” instantanée, je peux utiliser apt-get, installer mdadm et utiliser mdadm pour créer un Raid 1 sur /dev/md0 partir de mes deux disques.

De plus, dans la dimension non classique, je peux utiliser ce fichier / dev / md0 et le monter à l’aide de systemd.mount, comme décrit ici . Jusqu’ici tout va bien.

Le problème est que, après un redémarrage, le /dev/md0 n’existe plus et que systemd échoue – Objet: L’unité dev-md0.device a échoué – Défini-par: systemd

J’imagine que c’est parce que mdadm n’existe pas dans cet environnement et que le raid a donc disparu après le redémarrage.

Ma question est la suivante: existe-t-il une possibilité de créer un raid sur Ubuntu Core à l’aide de mdadm? Et si oui, comment puis-je le faire fonctionner?

Merci pour votre temps.

Edit : J’ai découvert qu’après un redémarrage, je pouvais entrer dans l’extension classique avec sudo classic et, dans l’extension classique, lancer le raid avec sudo mdadm --assemble --scan . Est-il possible de faire cela en utilisant un script systemd quelconque?

Nous avons eu une discussion assez active il y a quelque temps lorsque nous avons implémenté l’interface udisks2 dans snapd. Le résultat était que nous ne voulions pas donner un access instantané arbitraire à des périphériques bloqués et ajouté tous les access pour ceux-ci directement dans l’interface udisks2.

udisks2 offre un moyen de médiation pour tous les autres snaps afin de traiter les périphériques en mode bloc et permet également de travailler avec des RAID. Je dis généralement, parce que c’est une fonctionnalité que nous n’avons pas encore vérifiée qu’elle fonctionne avec le composant logiciel enfichable udisks2 actuellement dans le magasin.

Si la prise en charge des RAID dans udisks2 fonctionne, les utilisateurs doivent pouvoir monter un RAID sur un répertoire de /media via un appel d’API dbus.

Un inconvénient est que l’interface udisks2 refuse explicitement les connexions plug car elle donne toujours un access privilégié au système. Chaque assembly effectué via udisks2 apparaîtra sous /media et chaque capture utilisant l’interface de média amovible aura access aux périphériques montés sur celui-ci, qu’il s’agisse ou non de la partition système. Donc, même le côté prise est une chose très privilégiée. Cela dit, les instantanés peuvent demander une déclaration instantanée du côté du magasin pour obtenir des connexions à udisks2.

Une autre fonctionnalité que nous prenons en charge avec le composant logiciel enfichable udisks2 est le assembly automatique (la documentation à ce sujet sera bientôt disponible sur https://docs.ubuntu.com/ ). Cela permet à un périphérique d’indiquer qu’il souhaite que les périphériques amovibles, tels que les périphériques de stockage USB, soient automatiquement montés dans /media comme vous le connaissez depuis des périphériques grand public tels que le bureau Ubuntu. En fonction de la configuration du RAID, il est possible que le RAID soit monté au démarrage dans /media . Les conditions requirejses pour qu’un automonteur considère un périphérique sont actuellement les suivantes:

  • Le périphérique n’est pas un périphérique système (c’est-à-dire que ce n’est pas une partition sur le périphérique à partir duquel nous démarrons le système).
  • L’appareil n’est pas déjà monté.
  • Le périphérique est un périphérique amovible (USB, CD / DVD).

Le assembly automatique peut être activé via:

 $ snap set udisks2 automount.enable=true 

lorsque le composant logiciel enfichable udisks2 est installé.

Pour une solution très simple et non confinée, vous pouvez simplement installer le composant logiciel enfichable udisks2 (étant donné qu’il détecte et fonctionne correctement avec les périphériques RAID) et créer une unité systemd dans /etc/systemd/system/mount-my-raid.service

 [Unit] Description=Mount my RAID [Service] Exec=/snap/bin/udisks2.udisksctl mount -b /path/to/block/device [Install] WantedBy=multi-user.target 

Puis activez-le via:

 $ sudo systemctl enable mount-my-raid.service 

et le RAID doit être automatiquement monté en dessous de /media lors du prochain redémarrage du système.