3 votes

Linux Red Hat 7 Erreur multipath demandant le mode maintenance au démarrage

J'ai un serveur Dell auquel est rattaché un système de stockage Dell avec une configuration multipath. Les techniciens de Dell ont laissé le serveur avec Red Hat 7 installé sur un disque interne ( /dev/sda ) et avec un lecteur mappé vers le stockage en /dev/mapper/DB_DATA01 .

Tout fonctionnait bien, à l'exception des deux chemins d'accès au stockage externe qui étaient également considérés comme /dev/sdb et /dev/sdc.

J'ai ensuite commis une erreur : j'ai lancé parted pour créer un gpt dans /dev/sdb au lieu de /dev/mapper/DB_DATA01 . Après avoir effectué cette opération, j'ai correctement créé et formaté un xfs cloison à l'intérieur /dev/mapper/DB_DATA01 Pour les besoins de l'enquête, une instruction de montage a été correctement mise en place dans le cadre de l'enquête. /dev/fstab . Puis j'ai redémarré.

Maintenant, à chaque fois que je redémarre le serveur, il demande le mode maintenance en disant qu'il n'a pas pu monter. /dev/mapper/DB_DATA01 en /db2 point de montage. Mais si j'appuie sur CTRL +D le serveur démarre correctement et tout fonctionne...

Comment puis-je réparer ce désordre et faire démarrer le serveur sans demander de maintenance ?

Je sais qu'il y a une mauvaise configuration quelque part. Au fait, ce sont les sorties que j'ai pour l'instant :

[root@db2server etc]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon Oct 17 16:29:48 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=ad5ce7b2-4517-42a9-b558-afc40f5950b4 /                       xfs     defaults        0 0
UUID=ad193bfa-b17d-49da-92b5-53295f5e33b2 swap                    swap    defaults        0 0
UUID=f0241ef6-f167-4edb-9a48-4bda7433eec4 /db2                    xfs     noatime,nobarrier,allocsize=4k,largeio 0 2

[root@db2server etc]# ls -lha /dev/mapper/

total 0
drwxr-xr-x.  2 root root     140 Oct 31 17:27 .
drwxr-xr-x. 20 root root    3.5K Oct 31 17:27 ..
crw-------.  1 root root 10, 236 Oct 31 16:57 control
lrwxrwxrwx.  1 root root       7 Oct 31 17:27 DB_DATA01 -> ../dm-0
lrwxrwxrwx.  1 root root       7 Oct 31 17:27 DB_DATA01p1 -> ../dm-1
lrwxrwxrwx.  1 root root       7 Oct 31 17:27 DB_DATA01p2 -> ../dm-2
lrwxrwxrwx.  1 root root       7 Oct 31 17:27 DB_DATA01p3 -> ../dm-3

[root@db2server etc]# fdisk -l

Disk /dev/sda: 299.4 GB, 299439751168 bytes, 584843264 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x57b68016

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              63       80324       40131   de  Dell Utility
/dev/sda2   *       81920     4276223     2097152    c  W95 FAT32 (LBA)
/dev/sda3         4276224    66775039    31249408   82  Linux swap / Solaris
/dev/sda4        66775040   584843263   259034112    5  Extended
/dev/sda5        66777088   584843263   259033088   83  Linux

Disk /dev/sdc: 3793.3 GB, 3793315115520 bytes, 7408818585 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 524288 bytes
Disk label type: dos
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1  4294967295  2147483647+  ee  GPT
Partition 1 does not start on physical sector boundary.
fdisk: cannot open /dev/sdb: Input/output error

[root@db2server etc]# multipath -l

DB_DATA01 (36000d310034940000000000000000003) dm-0 COMPELNT,Compellent Vol
size=3.5T features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=0 status=active
  |- 1:0:0:1  sdb 8:16 active undef  running
  `- 1:0:1:1  sdc 8:32 active undef  running

[root@db2server etc]# multipath -ll

DB_DATA01 (36000d310034940000000000000000003) dm-0 COMPELNT,Compellent Vol
size=3.5T features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 1:0:0:1  sdb 8:16 active ready  running
  `- 1:0:1:1  sdc 8:32 active ready  running

[root@db2server etc]# multipath -v2

*No data returned*

[root@db2server etc]# multipath -v3

Oct 31 17:40:16 | loading /lib64/multipath/libcheckdirectio.so checker
Oct 31 17:40:16 | loading /lib64/multipath/libprioconst.so prioritizer
Oct 31 17:40:16 | sda: device node name blacklisted
Oct 31 17:40:16 | sdb: not found in pathvec
Oct 31 17:40:16 | sdb: mask = 0x3f
Oct 31 17:40:16 | sdb: dev_t = 8:16
Oct 31 17:40:16 | sdb: size = 7408818585
Oct 31 17:40:16 | sdb: vendor = COMPELNT
Oct 31 17:40:16 | sdb: product = Compellent Vol
Oct 31 17:40:16 | sdb: rev = 0606
Oct 31 17:40:16 | sdb: h:b:t:l = 1:0:0:1
Oct 31 17:40:16 | sdb: tgt_node_name = 0x5000d31003494015
Oct 31 17:40:16 | sdb: path state = running

Oct 31 17:40:16 | sdb: 2425 cyl, 255 heads, 63 sectors/track, start at 0
Oct 31 17:40:16 | sdb: serial = 00034940-00000003
Oct 31 17:40:16 | sdb: get_state
Oct 31 17:40:16 | loading /lib64/multipath/libchecktur.so checker
Oct 31 17:40:16 | sdb: path checker = tur (controller setting)
Oct 31 17:40:16 | sdb: checker timeout = 30000 ms (sysfs setting)
Oct 31 17:40:16 | sdb: state = up
Oct 31 17:40:16 | sdb: uid_attribute = ID_SERIAL (internal default)
Oct 31 17:40:16 | sdb: uid = 36000d310034940000000000000000003 (udev)
Oct 31 17:40:16 | sdb: detect_prio = 1 (config file default)
Oct 31 17:40:16 | sdb: prio = const (controller setting)
Oct 31 17:40:16 | sdb: prio args = (null) (controller setting)
Oct 31 17:40:16 | sdb: const prio = 1
Oct 31 17:40:16 | sdc: not found in pathvec
Oct 31 17:40:16 | sdc: mask = 0x3f
Oct 31 17:40:16 | sdc: dev_t = 8:32
Oct 31 17:40:16 | sdc: size = 7408818585
Oct 31 17:40:16 | sdc: vendor = COMPELNT
Oct 31 17:40:16 | sdc: product = Compellent Vol
Oct 31 17:40:16 | sdc: rev = 0606
Oct 31 17:40:16 | sdc: h:b:t:l = 1:0:1:1
Oct 31 17:40:16 | sdc: tgt_node_name = 0x5000d31003494008
Oct 31 17:40:16 | sdc: path state = running

Oct 31 17:40:16 | sdc: 2425 cyl, 255 heads, 63 sectors/track, start at 0
Oct 31 17:40:16 | sdc: serial = 00034940-00000003
Oct 31 17:40:16 | sdc: get_state
Oct 31 17:40:16 | sdc: path checker = tur (controller setting)
Oct 31 17:40:16 | sdc: checker timeout = 30000 ms (sysfs setting)
Oct 31 17:40:16 | sdc: state = up
Oct 31 17:40:16 | sdc: uid_attribute = ID_SERIAL (internal default)
Oct 31 17:40:16 | sdc: uid = 36000d310034940000000000000000003 (udev)
Oct 31 17:40:16 | sdc: detect_prio = 1 (config file default)
Oct 31 17:40:16 | sdc: prio = const (controller setting)
Oct 31 17:40:16 | sdc: prio args = (null) (controller setting)
Oct 31 17:40:16 | sdc: const prio = 1
Oct 31 17:40:16 | sr0: device node name blacklisted
Oct 31 17:40:16 | sdd: not found in pathvec
Oct 31 17:40:16 | sdd: mask = 0x3f
Oct 31 17:40:16 | sdd: dev_t = 8:48
Oct 31 17:40:16 | sdd: size = 0
Oct 31 17:40:16 | sdd: vendor = iDRAC
Oct 31 17:40:16 | sdd: product = Virtual Floppy
Oct 31 17:40:16 | sdd: rev = 0329
Oct 31 17:40:16 | sdd: h:b:t:l = 12:0:0:1
Oct 31 17:40:16 | sdd: path state = running

Oct 31 17:40:16 | sr1: device node name blacklisted
Oct 31 17:40:16 | dm-0: device node name blacklisted
Oct 31 17:40:16 | dm-1: device node name blacklisted
Oct 31 17:40:16 | dm-2: device node name blacklisted
Oct 31 17:40:16 | dm-3: device node name blacklisted
===== paths list =====
uuid                              hcil     dev dev_t pri dm_st chk_st vend/pro
36000d310034940000000000000000003 1:0:0:1  sdb 8:16  1   undef ready  COMPELNT
36000d310034940000000000000000003 1:0:1:1  sdc 8:32  1   undef ready  COMPELNT
                                  12:0:0:1 sdd 8:48  -1  undef faulty iDRAC
Oct 31 17:40:16 | params = 1 queue_if_no_path 0 1 1 service-time 0 2 2 8:16 1 1 8:32 1 1
Oct 31 17:40:16 | status = 2 0 0 0 1 1 A 0 2 2 8:16 A 1 0 1 8:32 A 0 0 1
Oct 31 17:40:16 | DB_DATA01: disassemble map [1 queue_if_no_path 0 1 1 service-time 0 2 2 8:16 1 1 8:32 1 1 ]
Oct 31 17:40:16 | DB_DATA01: disassemble status [2 0 0 0 1 1 A 0 2 2 8:16 A 1 0 1 8:32 A 0 0 1 ]
Oct 31 17:40:16 | tur checker refcount 2
Oct 31 17:40:16 | const prioritizer refcount 2
Oct 31 17:40:16 | tur checker refcount 1
Oct 31 17:40:16 | const prioritizer refcount 1
Oct 31 17:40:16 | unloading const prioritizer
Oct 31 17:40:16 | unloading tur checker
Oct 31 17:40:16 | unloading directio checker

0voto

adamitj Points 239

Eh bien, après une recherche approfondie sur le Web, j'ai trouvé une solution qui consiste à "remettre à zéro" la mauvaise partition GPT créée à l'intérieur du fichier /dev/sdb . Après cela, tout ce que j'avais à faire était de créer un autre gpt table de partition sur /dev/mapper/DB_DATA01 (si vous remarquez qu'il y avait 3 partitions auparavant).

J'ai utilisé un petit Python ici Comment supprimer le GPT d'un disque dur pour supprimer toutes les tables de partition de /dev/sdb .

J'ai ensuite utilisé gdisk pour créer un nouveau GPT et une nouvelle partition utilisant tout l'espace du périphérique mappé.

Ensuite, juste a utilisé mkfs.xfs pour formater à nouveau et a obtenu ID avec blkid . Il a ensuite remplacé l'ancien identifiant dans /etc/fstab et redémarré.

Voilà ! Tout fonctionne à nouveau !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X