Thread (12 messages) 12 messages, 3 authors, 2015-03-24

Re: is mdadm RAID1 disk full sync

From: lingli tang <hidden>
Date: 2015-03-22 11:31:51

Yes, I just issue 'reboot' on Server A.
But I am curious about why 'some' request will lost to other server.
Is It should be only one request lost(the last IO committed )
according to full sync strategy.

2015-03-22 13:38 GMT+08:00 NeilBrown [off-list ref]:
On Sun, 22 Mar 2015 13:00:54 +0800 lingli tang [off-list ref]
wrote:
quoted
Thanks for reply.

I have create a raid1 with two fusion io PCIe flash disk:
mdadm --create /dev/md/master --name=master --level=1 --raid-devices=2
/dev/fioa2 /dev/mapper/mpathc
/dev/fioa2 is local disk on server A and /dev/mapper/mpathc is a iscsi
load disk export from server B.

After that we mkfs.ext4 on /dev/md/master and mount with 'sync' option on /data1
and we will run mysql binlog on it.
In order to avoid data loss  of mysql binlog we have set
sync_binlog=1. so every sql commit will call fsync() to flush to disk.

according to your description. if we reboot the server A, the two disk
data on different server will be the same.
but after the server A restarted, we assemble the two disk on two
server, data is different on the two server, disk on server B lost
more than one sql commit.
What exactly do you mean by "reboot"??
Is this a clean shutdown or do you remove the power or something like that.

If you remove the power, then it is very possible that some requests will
have been submitted to one device but not the other.
If you have a clean shutdown, then the two devices should be identical.

NeilBrown

quoted
I have checked it with strace 'mysqld' on Server A.
I found a sql commit and fsync() on binlog file handle on server A but
this sql can not find in assembled disk on server B.

I also test it with two SAS disk, Server B still has more than one sql
commit lost.


2015-03-22 11:20 GMT+08:00 NeilBrown [off-list ref]:
quoted
On Sat, 21 Mar 2015 19:01:54 +0800 lingli tang [off-list ref]
wrote:
quoted
I am a newbie of mdadm. I have a question but find no answer in
document or google for last 10 days.

The question is : RAID1 made by mdadm is full sync? for example, I
have two disk(sdb and sdc) to make RAID1 disk (/dev/md127), if I
commit an IO to the RAID1 disk (md127), it will return back to me when
all the two disk commit successfully      or      it will return back
to me once just one of the disk successfully commit.
The write request will not return until it has been submitted to all, and
returned by, all working devices.
quoted
I have test with xfs and ext4 with sync option, and it seems that two
disk have lots of commit difference after reboot the server. is that
means mdadm return success when one of the disk is commit
successfully?
That certainly shouldn't happen.  I would need more details of the experiment
that you performed.

NeilBrown

quoted
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help