Q: md-RAID1 creation with I/O error (attempt to access beyond end of device)

78 views
Skip to first unread message

Ulrich Windl

unread,
Oct 21, 2010, 7:16:20 AM10/21/10
to open-iscsi, dm-d...@redhat.com
Hi,

not an iSCSI question, but maybe here's the right audience: I had sucessfully created a RAID1 using mdadm, multipath, iSCSI and some SAN storage on SLES10 SP3+Updates on x86_64. When I tried to do the same thing on a comparable machine, the RAID could not be created, because something tried to access the disk at a bad position. I reapeated the attempt with another set of disks of the same size, and it also failed.

Details:
# mdadm --verbose --create /dev/md5 --raid-devices=2 --level=raid1 --bitmap=internal --assume-clean /dev/mapper/EVA1_L232_host05 /dev/mapper/EVA2_L232_host05
mdadm: /dev/mapper/EVA1_L232_host05 appears to be part of a raid array:
level=raid1 devices=2 ctime=Thu Oct 21 12:26:18 2010
mdadm: /dev/mapper/EVA2_L232_host05 appears to be part of a raid array:
level=raid1 devices=2 ctime=Thu Oct 21 12:26:18 2010
mdadm: size set to 31457216K
Continue creating array? y
mdadm: RUN_ARRAY failed: Input/output error
mdadm: stopped /dev/md5
hostname:~ # tail -24 /var/log/messages Oct 21 12:28:05 hostname kernel: md: md5 stopped.
Oct 21 12:28:07 hostname kernel: md: md5 stopped.
Oct 21 12:29:46 hostname kernel: md: bind<dm-21>
Oct 21 12:29:46 hostname kernel: md: bind<dm-14>
Oct 21 12:29:46 hostname kernel: raid1: raid set md5 active with 2 out of 2 mirrors
Oct 21 12:29:46 hostname kernel: md5: bitmap file is out of date (0 < 1) -- forcing full recovery
Oct 21 12:29:46 hostname kernel: md5: bitmap file is out of date, doing full recovery
Oct 21 12:29:46 hostname kernel: attempt to access beyond end of device
Oct 21 12:29:46 hostname kernel: dm-14: rw=8, want=62914568, limit=62914560
Oct 21 12:29:46 hostname kernel: attempt to access beyond end of device
Oct 21 12:29:46 hostname kernel: dm-21: rw=8, want=62914568, limit=62914560
Oct 21 12:29:46 hostname kernel: md5: bitmap initialized from disk: read 15/16 pages, set 489472 bits, status: -5
Oct 21 12:29:46 hostname kernel: md5: failed to create bitmap (-5)
Oct 21 12:29:46 hostname kernel: md: pers->run() failed ...
Oct 21 12:29:46 hostname kernel: md: md5 stopped.
Oct 21 12:29:46 hostname kernel: md: unbind<dm-14>
Oct 21 12:29:46 hostname kernel: md: export_rdev(dm-14)
Oct 21 12:29:46 hostname kernel: md: unbind<dm-21>
Oct 21 12:29:46 hostname kernel: md: export_rdev(dm-21)

hostname:~ # mdadm --query -X /dev/mapper/EVA2_L232_host05
mdadm: WARNING: bitmap file is not large enough for array size 62914432!

Filename : /dev/mapper/EVA2_L232_host05
Magic : 6d746962
Version : 4
UUID : c522ab5a:24f292a0:0b3d7356:64ade12a
Events : 0
Events Cleared : 0
State : Out of date
Chunksize : 64 KB
Daemon : 5s flush period
Write Mode : Normal
Sync Size : 31457216 (30.00 GiB 32.21 GB)
Bitmap : 489472 bits (chunks), 489472 dirty (100.0%)
hostname:~ # mdadm --query -X /dev/mapper/EVA1_L232_host05
mdadm: WARNING: bitmap file is not large enough for array size 62914432!

Filename : /dev/mapper/EVA1_L232_host05
Magic : 6d746962
Version : 4
UUID : c522ab5a:24f292a0:0b3d7356:64ade12a
Events : 0
Events Cleared : 0
State : Out of date
Chunksize : 64 KB
Daemon : 5s flush period
Write Mode : Normal
Sync Size : 31457216 (30.00 GiB 32.21 GB)
Bitmap : 489472 bits (chunks), 489472 dirty (100.0%)

"blockdev --getsize" reports "62914560" for each LUN being used.

Regards,
Ulrich


Rahsaan Page

unread,
Oct 22, 2010, 8:46:54 AM10/22/10
to open-...@googlegroups.com, dm-d...@redhat.com
Hi Ulrich,

I dont think thats going to work, arent you suppose to create the raid with xdisk, than create LVM on top of the raid?



--
You received this message because you are subscribed to the Google Groups "open-iscsi" group.
To post to this group, send email to open-...@googlegroups.com.
To unsubscribe from this group, send email to open-iscsi+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/open-iscsi?hl=en.




--
Rahsaan D. Page

Ulrich Windl

unread,
Oct 25, 2010, 2:25:52 AM10/25/10
to open-...@googlegroups.com, dm-d...@redhat.com
>>> Rahsaan Page <rahsaa...@gmail.com> schrieb am 22.10.2010 um 14:46 in
Nachricht <AANLkTineg_wHmd_es91=aGpr-bRLBp=xNikiO...@mail.gmail.com>:

> Hi Ulrich,
>
> I dont think thats going to work, arent you suppose to create the raid with
> xdisk, than create LVM on top of the raid?

Hi!

I never heard of "xdisk". Also I decided to use MD for RAID, and not LVM, because the Linux implementation needs a third device to handle the mirror log, while MD can host a bitmap on the members itself. In my setup I'd partition the MD-device, then create an LVM physical volume in one of the partitions...

Regards,
Ulrich

> open-iscsi+...@googlegroups.com<open-iscsi%2Bunsubscribe@googlegroups.c
>om>

Neil Brown

unread,
Nov 29, 2010, 7:07:25 PM11/29/10
to device-mapper development, Ulrich...@rz.uni-regensburg.de, open-iscsi
On Thu, 21 Oct 2010 13:16:20 +0200 "Ulrich Windl"
<Ulrich...@rz.uni-regensburg.de> wrote:

> Hi,
>
> not an iSCSI question, but maybe here's the right audience: I had sucessfully created a RAID1 using mdadm, multipath, iSCSI and some SAN storage on SLES10 SP3+Updates on x86_64. When I tried to do the same thing on a comparable machine, the RAID could not be created, because something tried to access the disk at a bad position. I reapeated the attempt with another set of disks of the same size, and it also failed.

You need an updated version of mdadm. The fix for this was committed to
SLES10-SP3 in early August this year, so you need an update since then.
However as far as I can tell an update hasn't been released yet... I should
probably look into that.

But you can work-around by explicitly setting the bitmap chunk size.
Anything larger than 64K will do. I generally suggest a much bigger bitmap
chunk size these days. so maybe add
--bitmap-chunk=65536
(which is 64Meg) to the --create line.

The source-code fix is:


--- mdadm-2.6.orig/super0.c
+++ mdadm-2.6/super0.c
@@ -833,7 +833,7 @@ static int add_internal_bitmap0(struct s
* size is in sectors, chunk is in bytes !!!
*/
unsigned long long bits;
- unsigned long long max_bits = 60*1024*8;
+ unsigned long long max_bits = (60*1024 - sizeof(bitmap_super_t))*8;
unsigned long long min_chunk;
int chunk = *chunkp;
mdp_super_t *sb = sbv;

--- mdadm-2.6.orig/super0.c
+++ mdadm-2.6/super0.c
@@ -833,7 +833,7 @@ static int add_internal_bitmap0(struct s
* size is in sectors, chunk is in bytes !!!
*/
unsigned long long bits;
- unsigned long long max_bits = 60*1024*8;
+ unsigned long long max_bits = (60*1024 - sizeof(bitmap_super_t))*8;
unsigned long long min_chunk;
int chunk = *chunkp;
mdp_super_t *sb = sbv;

Your bitmap comes to 59.9998K and there is only room for 59.75K.

(If you have a support contract and want to log a call to get an official
update, please mention bnc#579170)

NeilBrown

> --
> dm-devel mailing list
> dm-d...@redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel

Reply all
Reply to author
Forward
0 new messages