AFR recovery not working over infiniband (Re: io recovering after failure)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sorry to hound you about this but it turns out an afr volume failing works fine over tcp, but hangs the client over ib-verbs.

Our ib-verbs driver is from the one included in OFED-1.2.5. Is this the recommended ib library? The error is raised at the transport level as you can see from the client log below. Let me know if you need any more detailed information.

Thanks!


Mickey Mazarick wrote:
AFR is being handled on the client... I simplified the specs down to look exactly like the online example and I'm still seeing the same result. This is an infiniband setup so that may be the problem. We want to run this on a 6 brick 100+ client cluster over infiniband.

Whenever I kill the gluster daemon on RTPST201 it hangs and the client log says: /2007-11-30 07:55:14 E [unify.c:145:unify_buf_cbk] bricks: afrns returned 107 2007-11-30 07:55:14 E [unify.c:145:unify_buf_cbk] bricks: afrns returned 107 2007-11-30 07:55:34 E [ib-verbs.c:1100:ib_verbs_send_completion_proc] transport/ib-verbs: send work request on `mthca0' returned error wc.status = 12, wc.vendor_err = 129, post->buf = 0x2aaaad801000, wc.byte_len = 0, post->reused = 210 2007-11-30 07:55:34 E [ib-verbs.c:1100:ib_verbs_send_completion_proc] transport/ib-verbs: send work request on `mthca0' returned error wc.status = 12, wc.vendor_err = 129, post->buf = 0x2aaaac2bf000, wc.byte_len = 0, post->reused = 168 2007-11-30 07:55:34 E [ib-verbs.c:951:ib_verbs_recv_completion_proc] transport/ib-verbs: ibv_get_cq_event failed, terminating recv thread 2007-11-30 07:55:34 E [ib-verbs.c:1100:ib_verbs_send_completion_proc] transport/ib-verbs: send work request on `mthca0' returned error wc.status = 12, wc.vendor_err = 129, post->buf = 0x2aaaabfb9000, wc.byte_len = 0, post->reused = 230/


Storage Bricks are:
RTPST201,RTPST202

########################Storage Brick vol spec:
volume afrmirror
 type storage/posix
 option directory /mnt/gluster/afrmirror
end-volume
volume afrns
 type storage/posix
 option directory /mnt/gluster/afrns
end-volume
volume afr
 type storage/posix
 option directory /mnt/gluster/afr
end-volume
volume server
type protocol/server
option transport-type ib-verbs/server # For ib-verbs transport
option ib-verbs-work-request-send-size  131072
option ib-verbs-work-request-send-count 64
option ib-verbs-work-request-recv-size  131072
option ib-verbs-work-request-recv-count 64
 ##auth##
 option auth.ip.afrmirror.allow *
option auth.ip.afrns.allow *
option auth.ip.afr.allow *
option auth.ip.main.allow *
option auth.ip.main-ns.allow *
end-volume

#####################Client spec is:
volume afrvol1
 type protocol/client
 option transport-type ib-verbs/client   option remote-host RTPST201
 option remote-subvolume afr
end-volume

volume afrmirror1
 type protocol/client
 option transport-type ib-verbs/client   option remote-host RTPST201
 option remote-subvolume afrmirror
end-volume

volume afrvol2
 type protocol/client
 option transport-type ib-verbs/client   option remote-host RTPST202
 option remote-subvolume afr
end-volume

volume afrmirror2
 type protocol/client
 option transport-type ib-verbs/client   option remote-host RTPST202
 option remote-subvolume afrmirror
end-volume

volume afr1
 type cluster/afr
 subvolumes afrvol1 afrmirror2
end-volume

volume afr2
 type cluster/afr
 subvolumes afrvol2 afrmirror1
end-volume


volume afrns1
 type protocol/client
 option transport-type ib-verbs/client
 option remote-host RTPST201
 option remote-subvolume afrns
end-volume
volume afrns2
 type protocol/client
 option transport-type ib-verbs/client
 option remote-host RTPST202
 option remote-subvolume afrns
end-volume

volume afrns
 type cluster/afr
 subvolumes afrns1 afrns2
end-volume

volume bricks
 type cluster/unify
 option namespace afrns
 subvolumes afr1 afr2
 option scheduler alu   # use the ALU scheduler
 option alu.order open-files-usage:disk-usage:read-usage:write-usage
end-volume


Krishna Srinivas wrote:
If you have the AFR on the server side, and if this server goes down then all the FDs associated with the files on this server will return ENOTCONN
error. (If that is how your setup is? ) But if you had AFR on the client
side it would have worked seamlessly. However this situation will be
handled when we bring out the HA translator

Krishna

On Nov 30, 2007 3:01 AM, Mickey Mazarick <mic@xxxxxxxxxxxxxxxxxx> wrote:
Is this true for files that are currently open? For example I have a
virtual machine running that had a file open at all times. Errors are
bubbling back to the application layer instead of just waiting. After
that I have to unmount/remount the gluster vol. Is there a way of
preventing this?

(This is the latest tla btw)
Thanks!


Anand Avati wrote:
This is possible already, just that the files from the node which are
down will not be accessible for the time the server is down. When the
server is brought back up, the files are made accessible again.

avati

2007/11/30, Mickey Mazarick <mic@xxxxxxxxxxxxxxxxxx
<mailto:mic@xxxxxxxxxxxxxxxxxx>>:

Is there currently a way to force a client connection to retry dist io
    until a failed resource comes back online?
    if a disk in a unified volume drops I have to remount on all the
    clients. Is there a way around this?

    I'm using afr/unify on 6 storage bricks and I want to be able to
    change
a server config setting and restart the server bricks one at a time
    without losing the mount point on the clients. Is this currently
    possible without doing ip failover?
    --
    _______________________________________________
    Gluster-devel mailing list
    Gluster-devel@xxxxxxxxxx <mailto:Gluster-devel@xxxxxxxxxx>
          http://lists.nongnu.org/mailman/listinfo/gluster-devel




--
It always takes longer than you expect, even when you take into
account Hofstadter's Law.

-- Hofstadter's Law
--

_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxx
http://lists.nongnu.org/mailman/listinfo/gluster-devel





--



[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux