Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 23/03/2019, à 08:29

inouix

Re : RAID0 n'est plus reconnu

ok,

un paquet qui ne vient pas des dépôts classique que j'ai installé puis désinstallé car il ne fonctionne pas avec ma version de java c'est jitsi la visioconf libre.

sinon des infos brutes:

J'ai modifié /etc/modules pour résoudre le problème de apm:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# apm power_off=1
sudo systemctl status systemd-modules-load.service -l
● systemd-modules-load.service - Load Kernel Modules
   Loaded: loaded (/lib/systemd/system/systemd-modules-load.service; static; vendor preset: enabled)
   Active: active (exited) since Sat 2019-03-23 08:39:30 CET; 21min left
     Docs: man:systemd-modules-load.service(8)
           man:modules-load.d(5)
  Process: 330 ExecStart=/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)
 Main PID: 330 (code=exited, status=0/SUCCESS)

mars 23 08:39:30 julien-GA-880GA-UD3H systemd-modules-load[330]: Inserted module 'lp'
mars 23 08:39:30 julien-GA-880GA-UD3H systemd-modules-load[330]: Inserted module 'ppdev'
mars 23 08:39:30 julien-GA-880GA-UD3H systemd-modules-load[330]: Inserted module 'parport_pc'
mars 23 08:39:30 julien-GA-880GA-UD3H systemd[1]: Started Load Kernel Modules.

Cela m'a fait réaliser pas mal de démarrage et il en ressort quand même que si le paquet madm est présent mon raid dm-1 l'est aussi, si pas de madm, il est absent. J'essaie de comprendre comment fonctionne udev sur le wiki mais c'est chaud!! smile

ci dessous le fichier conf de madm:

#mdadm.conf
#
# !NB! Run update-initramfs -u after updating this file.
# !NB! This will ensure that initramfs has an uptodate copy.
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays

# This configuration was auto-generated on Thu, 21 Mar 2019 18:25:53 +0100 by mkconf

Hors ligne

#27 Le 23/03/2019, à 15:16

jamesbad000

Re : RAID0 n'est plus reconnu

En analysant le paquet dmraid je trouve:
Le bloc de règle udev dans /lib/udev/rules.d/97-dmraid.rules contenant notamment

(...)
RUN+="/sbin/dmraid-activate %k"
(...)
RUN+="/sbin/kpartx -a /dev/$kernel"

On y voit la commande d'activation "dmraid-activate" (qui apparaissait comme ayant échouée dans le log du service udev) :

mars 20 19:24:02 julien-GA-880GA-UD3H dmraid-activate[796]: ERROR: Cannot retrieve RAID set information for pdc_bffbjachi

Suivie de la commande kpartx (équivalent de partprobe que je t'ai fait lancer, et qui va chercher s'il y a une table de partition sur un volume) qui n'est donc pas exécutée, en raison de l'échec de l'activation.

Du coup le device raid ne devrait même pas être actif dans /dev/mapper.
Cependant on trouve l'explication probable de l'activation du volume raid, en dépit de l'échec de son activation par udev, dans un script du initramfs: "/usr/share/initramfs-tools/scripts/local-top/dmraid" du paquet. Qui semble être là pour palier à un éventuel échec (plus ou moins prévue donc) de l'activation à ce moment.

(...)
wait_for_udev 30

# Activate any dmraid arrays that were not identified by udev and vol_id.

if devices=$(dmraid -r -c); then
	for dev in $devices; do
		dmraid-activate $dev
	done
fi

Ce script attend max 30 secondes que udev n'ai plus d'évènement à traiter puis explore les dmraid existant et les active, mais sans faire de sondage de table de partition (pas de commande kpartx).

Conclusion, il semble bien qu'en l'état actuel de linux, le démarrage de ton faike raid soit intrinsèquement aléatoire.

Du coup une solution plus pérenne serait probablement de commencer par aller ajouter dans ce script la commande kpartx (si tant est que l'on puisse savoir quels paramètres lui passer) et refaire les initramfs. Et si ça fonctionne aller déclarer un bug sur lauchpad pour que le paquet soit corrigé. (Autrement à la prochaine mise à jour ça va revenir comme avant)

j'aimerais bien voir ce que retourne la commande

sudo dmraid -r -c

Dernière modification par jamesbad000 (Le 23/03/2019, à 16:05)


L'espace et le temps sont les modes par lesquels nous pensons, et non les conditions dans lesquelles nous vivons. (Signé Albert)

Hors ligne

#28 Le 23/03/2019, à 17:22

inouix

Re : RAID0 n'est plus reconnu

 sudo dmraid -r -c
[sudo] Mot de passe de julien : 
/dev/sde
/dev/sdd

Hors ligne

#29 Le 23/03/2019, à 17:39

jamesbad000

Re : RAID0 n'est plus reconnu

Oui évidemment, si j'avais lu correctement l'aide de la commande...
et donc

sudo dmraid -s -cr

devrait donner le nom des volumes raid à sonder. (je peux pas tester chez moi, vu que je n'ai pas fake raid, et je ne sais pas le simuler dans une VM)

Dernière modification par jamesbad000 (Le 23/03/2019, à 17:50)


L'espace et le temps sont les modes par lesquels nous pensons, et non les conditions dans lesquelles nous vivons. (Signé Albert)

Hors ligne

#30 Le 23/03/2019, à 18:10

inouix

Re : RAID0 n'est plus reconnu

sudo dmraid -s -cr
[sudo] Mot de passe de julien : 
pdc_bffbjachi
jamesbad000 a écrit :

Du coup le device raid ne devrait même pas être actif dans /dev/mapper.

je n'ai pas du bien comprendre car il y a bien ce bffbjachi dans /dev/mapper:

ls /dev/mapper/
control  pdc_bffbjachi

Hors ligne

#31 Le 23/03/2019, à 18:16

jamesbad000

Re : RAID0 n'est plus reconnu

inouix a écrit :

je n'ai pas du bien comprendre car il y a bien ce bffbjachi dans /dev/mapper:

Parce qu'il y a une 2ème tentative d'activation par un script (lancé uniquement au démarrage. Alors que les règles udev s'appliquent à tout moment après le démarrage, dès l'introduction d'un nouveau périphérique)
Relis bien l'explication que j'ai mis juste en dessous.


L'espace et le temps sont les modes par lesquels nous pensons, et non les conditions dans lesquelles nous vivons. (Signé Albert)

Hors ligne

#32 Le 24/03/2019, à 08:28

inouix

Re : RAID0 n'est plus reconnu

Ok je crois comprendre mieux.


L'ordre des règles udev pourrait-il ne pas être cohérent?

j'ai aussi une règle udev pour kpartx: 95-kpartx.rules

# persistent links for device-mapper devices
# only hardware-backed device-mapper devices (ie multipath, dmraid,
# and kpartx) have meaningful persistent device names
#

KERNEL!="dm-*", GOTO="kpartx_end"
ACTION!="add|change", GOTO="kpartx_end"
ENV{DM_UUID}!="?*", GOTO="kpartx_end"

# This is a temporary hack until Debian's dmsetup properly supports "dmsetup
# export". For more information see: #434241, #487881, #493078
IMPORT{program}="dmsetup_env %M %m"

# Create dm tables for partitions on multipath devices.
ENV{DM_UUID}!="mpath-?*", GOTO="mpath_kpartx_end"

# DM_SUBSYSTEM_UDEV_FLAG1 is the "skip_kpartx" flag.
# For events not generated by libdevmapper, we need to fetch it from db.
ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1"
ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="mpath_kpartx_end"

# 11-dm-mpath.rules sets MPATH_UNCHANGED for events that can be ignored.
ENV{MPATH_UNCHANGED}=="1", GOTO="mpath_kpartx_end"

# Don't run kpartx now if we know it will fail or hang.
ENV{DM_SUSPENDED}=="1", GOTO="mpath_kpartx_end"
ENV{DM_NOSCAN}=="1", GOTO="mpath_kpartx_end"

# Run kpartx
GOTO="run_kpartx"
LABEL="mpath_kpartx_end"

## Code for other subsystems (non-multipath) could be placed here ##

GOTO="kpartx_end"

LABEL="run_kpartx"
RUN+="/sbin/kpartx -un -p -part /dev/$name"

LABEL="kpartx_end"

J'ai aussi un "56-dmpart.rules" qui contient des commandes kpartx:

# Rules for partitions created by kpartx

KERNEL!="dm-*", GOTO="dm_parts_end"
ACTION!="add|change", GOTO="dm_parts_end"
ENV{DM_UUID}!="part[0-9]*", GOTO="dm_parts_end"

# We must take care that symlinks don't get lost,
# even if blkid fails in 13-dm-disk.rules later.
#
# Fixme: we have currently no way to avoid calling blkid on
# partitions of broken mpath maps such as DM_NOSCAN.
# But when partition devices appear, kpartx has likely read
# the partition table shortly before, so odds are not bad
# that blkid will also succeed.

IMPORT{db}="ID_FS_USAGE"
IMPORT{db}="ID_FS_UUID_ENC"
IMPORT{db}="ID_FS_LABEL_ENC"
IMPORT{db}="ID_PART_ENTRY_NAME"
IMPORT{db}="ID_PART_ENTRY_UUID"
IMPORT{db}="ID_PART_ENTRY_SCHEME"

# Maps should take precedence over their members.
ENV{DM_UDEV_LOW_PRIORITY_FLAG}!="1", OPTIONS+="link_priority=50"

# Set some additional symlinks that typically exist for mpath
# path members, too, and should be overridden.
#
# kpartx_id is very robust, it works for suspended maps and maps
# with 0 dependencies. It sets DM_TYPE, DM_PART, DM_WWN
IMPORT{program}=="kpartx_id %M %m $env{DM_UUID}"

# DM_TYPE only has a reasonable value for partitions on multipath.
ENV{DM_UUID}=="*-mpath-*", ENV{DM_TYPE}=="?*" \
	SYMLINK+="disk/by-id/$env{DM_TYPE}-$env{DM_NAME}"
ENV{DM_WWN}=="?*", ENV{DM_PART}=="?*", \
	SYMLINK+="disk/by-id/wwn-$env{DM_WWN}-part$env{DM_PART}"

LABEL="dm_parts_end"

Hors ligne

#33 Le 24/03/2019, à 14:43

jamesbad000

Re : RAID0 n'est plus reconnu

inouix a écrit :

L'ordre des règles udev pourrait-il ne pas être cohérent?

En tout cas, je vois bien ces règles dans la VM ou j'ai installé dmraid.
Et je n'irais pas toucher aux règles udev sans comprendre exactement de quoi il retourne. Ce qui est loin d'être le cas pour le moment.

En fait en creusant, je découvre même que en dehors du dmraid, ce n'est pas udev qui se charge de faire le sondage de table de partition. Donc je suis encore trop loin du compte pour démêler cet imbroglio...


L'espace et le temps sont les modes par lesquels nous pensons, et non les conditions dans lesquelles nous vivons. (Signé Albert)

Hors ligne