[opensuse] degraded RAID1 question
Hello: I have several RAID1 mirror devices. For some reason, I don't know why, some of them have been degraded. For example, originally /dev/sdb8 and /dev/sdc8 formed md8 (/dev/md8). This was mounted as /dev/disk/by-id/md-name-pc:8 to /mnt/disk8. Now the above array is degraded, more precisely forms two degraded arrays. One is md8, according to /proc/mdstat: md8 : active raid1 sdc8[0] 31455164 blocks super 1.0 [2/1] [U_] The other is: md121 : active raid1 sdb8[2] 31455164 blocks super 1.0 [2/1] [_U] That is one device from the original array has become part of another array, md121, which hasn't been defined before. Investigating the two arrays separately it seems that both has data which is not on the other 'array'; it seems that the two arrays were used alternatively in the last few days. I can mount them separately and synchronize the data on them manually, but I wonder if there is a better, automatic approach. I also would like to set back the original scenario, where both devices are part of md8. I don't know where the md121 name comes from, and how I can change it back to md8. My /etc/mdadm.conf doesn't have device md121, it has only md8. ARRAY /dev/md/pc:8 UUID=44.... mdadm --detail --scan gives: ARRAY /dev/md/pc:8 metadata=1.0 name=pc:8 UUID=44.... ARRAY /dev/md/pc:8 metadata=1.0 name=pc:8 UUID=44.... The two UUIDs are the same. Any idea to fix this? Thanks, Istvan -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
В Sat, 24 Jan 2015 22:47:13 +0100 (CET) Istvan Gabor <suseuser04@freemail.hu> пишет:
Hello:
I have several RAID1 mirror devices. For some reason, I don't know why, some of them have been degraded. For example, originally /dev/sdb8 and /dev/sdc8 formed md8 (/dev/md8). This was mounted as /dev/disk/by-id/md-name-pc:8 to /mnt/disk8.
Now the above array is degraded, more precisely forms two degraded arrays. One is md8, according to /proc/mdstat:
md8 : active raid1 sdc8[0] 31455164 blocks super 1.0 [2/1] [U_]
The other is:
md121 : active raid1 sdb8[2] 31455164 blocks super 1.0 [2/1] [_U]
That is one device from the original array has become part of another array, md121, which hasn't been defined before.
Investigating the two arrays separately it seems that both has data which is not on the other 'array'; it seems that the two arrays were used alternatively in the last few days.
I can mount them separately and synchronize the data on them manually, but I wonder if there is a better, automatic approach. I also would like to set back the original scenario, where both devices are part of md8. I don't know where the md121 name comes from, and how I can change it back to md8. My /etc/mdadm.conf doesn't have device md121, it has only md8.
ARRAY /dev/md/pc:8 UUID=44....
mdadm --detail --scan gives:
ARRAY /dev/md/pc:8 metadata=1.0 name=pc:8 UUID=44.... ARRAY /dev/md/pc:8 metadata=1.0 name=pc:8 UUID=44....
The two UUIDs are the same.
Any idea to fix this?
It's not a problem to fix it (stop one array, zero out suprtblock, add to another array) but this sounds like really serious bug that should be reported. Of course it means you will need to keep current state for some time to provide debug information. And you will need to decide which one of arrays to keep and which one to destroy. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
Andrei Borzenkov írta:
В Sat, 24 Jan 2015 22:47:13 +0100 (CET) Istvan Gabor пишет:
Hello:
I have several RAID1 mirror devices. For some reason, I don't know why, some of them have been degraded. For example, originally /dev/sdb8 and /dev/sdc8 formed md8 (/dev/md8). This was mounted as /dev/disk/by-id/md-name-pc:8 to /mnt/disk8.
Now the above array is degraded, more precisely forms two degraded arrays. One is md8, according to /proc/mdstat:
md8 : active raid1 sdc8[0] 31455164 blocks super 1.0 [2/1] [U_]
The other is:
md121 : active raid1 sdb8[2] 31455164 blocks super 1.0 [2/1] [_U]
That is one device from the original array has become part of another array, md121, which hasn't been defined before.
Investigating the two arrays separately it seems that both has data which is not on the other 'array'; it seems that the two arrays were used alternatively in the last few days.
I can mount them separately and synchronize the data on them manually, but I wonder if there is a better, automatic approach. I also would like to set back the original scenario, where both devices are part of md8. I don't know where the md121 name comes from, and how I can change it back to md8. My /etc/mdadm.conf doesn't have device md121, it has only md8.
ARRAY /dev/md/pc:8 UUID=44....
mdadm --detail --scan gives:
ARRAY /dev/md/pc:8 metadata=1.0 name=pc:8 UUID=44.... ARRAY /dev/md/pc:8 metadata=1.0 name=pc:8 UUID=44....
The two UUIDs are the same.
Any idea to fix this?
It's not a problem to fix it (stop one array, zero out suprtblock, add to another array) but this sounds like really serious bug that should be reported. Of course it means you will need to keep current state for some time to provide debug information.
And you will need to decide which one of arrays to keep and which one to destroy.
Thank you Andrei. I have mounted /dev/md8 (held /dev/sdc8) and /dev/md121 (held /dev/sdb8) and synchronized them manually (made sure that all needed files are available on at least one of the devices). After this I have erased the superblock of /dev/sdb8 and added /dev/sdb8 to /dev/md8. The array has resynchronized, now it is OK. Now what my problem is: I mentioned that some arrays appeared that were not configured before. One of them was /dev/md121 and others were md119 and md120. I saved the output of /proc/mdstat and it was: # cat /proc/mdstat Personalities : [raid1] md119 : active raid1 sdc18[0] 31455104 blocks super 1.0 [2/1] [U_] md120 : active raid1 sdc11[0] 62918468 blocks super 1.0 [2/1] [U_] md11 : active raid1 sdb11[2] 62918468 blocks super 1.0 [2/1] [_U] md18 : active raid1 sdb18[1] 31455104 blocks super 1.0 [2/1] [_U] sdb11 and sdc11 shoud form md11, and sdb18 and sdc18 should form md18 array. After fixing md8 and rebooting, these md119 and md120 arrays have disappeared. Regarding sdb18, sdc18, sdb11, and sdc11 now I have only this in mdstat: md18 : active raid1 sdc18[0] 31455104 blocks super 1.0 [2/1] [U_] md11 : active raid1 sdb11[2] 62918468 blocks super 1.0 [2/1] [_U] There are no entries for sdb18 and sdc11. When I examine these: # mdadm --examine /dev/sdb18 /dev/sdb18: Magic : a92b4efc Version : 1.0 Feature Map : 0x0 Array UUID : ec974a7c:61e555ad:045471cf:b9be4ee2 Name : pc:18 (local to host pc) Creation Time : Thu Nov 6 20:45:14 2014 Raid Level : raid1 Raid Devices : 2 Avail Dev Size : 62910328 (30.00 GiB 32.21 GB) Array Size : 31455104 (30.00 GiB 32.21 GB) Used Dev Size : 62910208 (30.00 GiB 32.21 GB) Super Offset : 62910456 sectors State : clean Device UUID : d89cb350:16aaae34:fb8d0e7a:f053f3d2 Update Time : Sat Jan 17 02:40:53 2015 Checksum : 3c42c7d9 - correct Events : 41 Device Role : Active device 1 Array State : .A ('A' == active, '.' == missing) # mdadm --examine /dev/sdc11 /dev/sdc11: Magic : a92b4efc Version : 1.0 Feature Map : 0x0 Array UUID : 4ff5944f:b14c863f:9fddd970:c1ea68c7 Name : pc:11 (local to host pc) Creation Time : Sun Jul 14 16:14:59 2013 Raid Level : raid1 Raid Devices : 2 Avail Dev Size : 125836936 (60.00 GiB 64.43 GB) Array Size : 62918468 (60.00 GiB 64.43 GB) Super Offset : 125837064 sectors State : clean Device UUID : 1a4e9d92:609e9741:ec07f476:c977e776 Update Time : Sun Jan 25 13:02:46 2015 Checksum : 203b18d2 - correct Events : 1274 Device Role : Active device 0 Array State : A. ('A' == active, '.' == missing) Now, my question. I would like to compare the corresponding devices before resynching the arrays to prevent possible data loss. Eg. I can mount sdc18 by mounting md18. How can I mount sdb18? Should I create a new array which has it as a device and mount that array? Or are there some other option the mount (which is part of an array) on it own? (Other questions: Where those arrays md119, 120, and 121 came from? Where did they disappeared to? Is it possible to find the array name in the superblock? How can I identify the name of the array to which a device belongs?) Thanks, Istvan -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
participants (2)
-
Andrei Borzenkov
-
Istvan Gabor