[Bugs] [Bug 1322145] Glusterd fails to restart after replacing a failed GlusterFS node and a volume has a snapshot
bugzilla at redhat.com
bugzilla at redhat.com
Thu Mar 16 20:44:15 UTC 2017
https://bugzilla.redhat.com/show_bug.cgi?id=1322145
--- Comment #21 from Ben Werthmann <ben at apcera.com> ---
The reported case differs slightly from problem statement in 16907.
Problem:
- Deploy gluster on 3 nodes, one brick each, one volume replicated, add peers
by IP address
- Create a snapshot
- Lose one server
- Add a replacement peer and new brick with a new IP address
- replace-brick the missing brick onto the new server (wait for replication to
finish)
- peer detach the old server
- after doing above steps, glusterd fails to restart.
Our expectations:
- Glusterd starts and remain started when in the above state, even if there
are issues with a volume and/or related snapshots. [1]
- The non-snapshot volume would start and a heal would kick off (to catch up
from where 'replace-brick <volumename> <oldbrick> <newbrick> commit force' left
off)
- A procedure exists which allows for replacing a failed server / brick and
allows us to maintain snapshots. [2]
- Limitations of snapshots are documented, such as having to delete all of
your snapshots to replace a failed node. Is this true in all cases or it is
something specifc that we are doing?
While recovering snapshots should be possible, our priority is [1]. Having
gluster enter a state where *none* of the glusterd processes can start is a
significant risk. Functional glusterd should be able to service/start the
primary volume, even if the snapshot volumes enter an unusable state.
[1] Should issues with one volume prevent other volumes from starting due to
glusterd crashing? Is this by design? Please elaborate on this behavior. If a
well meaning individual restarts the gluster services or reboots gluster
servers for troubleshooting, there would be a cluster wide-outage of glusterd
which implies no new client connections.
[2] In theory, it should be possible to recover Gluster snapshots based on
lvm-thin. I think we'd just need to "replay the snapshot history" on a new
thin-lv. The process could be something like:
1. Create a new thin-LV
2. replace-brick the oldest snapshot, create a LVM snapshot, update gluster
references for the snapshot volume to the new snapshot
4. goto next snapshot unless head
This is probably A gross oversimplification of the problem, but it seems that
recovering snapshots should be possible.
Aside comment on 16907:
- What's the recovery path when a peer has failed and something is preventing
the removal of snapshots[3] before replacing the brick? Generally when we need
to perform the "recover a failed gluster server" task something else has gone
wrong.
[3] different reasons where snapshot remove failed:
- Bugs with with dm-thin/lvmtools
- Gluster is not responding to "tpool_metadata is at low water mark" events,
leading to a thinpool wedged in a read-only state.
- poor interaction with netfilter's conntrack
--
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=OQGbQxz6N3&a=cc_unsubscribe
More information about the Bugs
mailing list