[Gluster-users] hook script question related to ctdb, shared storage, and bind mounts

Strahil hunter86_bg at yahoo.com
Mon Nov 4 04:59:10 UTC 2019


Hi Erik,

I took another approach.

1.  I got a systemd mount unit for my ctdb lock volume's brick:
[root at ovirt1 system]# grep var /etc/fstab
gluster1:/gluster_shared_storage /var/run/gluster/shared_storage/ glusterfs defaults,x-systemd.requires=glusterd.service,x-systemd.automount        0 0

As you can see - it is an automounter, because sometimes it fails to mount on time

2.  I got custom systemd services for glusterd,ctdb and vdo -  as I need to 'put' dependencies for each of those.

Now, I'm no longer using ctdb & NFS Ganesha (as my version of ctdb cannot use hpstnames and my environment is a little bit crazy), but I can still provide hints how I did it.

Best Regards,
Strahil NikolovOn Nov 3, 2019 22:46, Erik Jacobson <erik.jacobson at hpe.com> wrote:
>
> So, I have a solution I have written about in the based that is based on 
> gluster with CTDB for IP and a level of redundancy. 
>
> It's been working fine except for a few quirks I need to work out on 
> giant clusters when I get access. 
>
> I have 3x9 gluster volume, each are also NFS servers, using gluster 
> NFS (ganesha isn't reliable for my workload yet). There are 9 IP 
> aliases spread across 9 servers. 
>
> I also have many bind mounts that point to the shared storage as a 
> source, and the /gluster/lock volume ("ctdb") of course. 
>
> glusterfs 4.1.6 (rhel8 today, but I use rhel7, rhel8, sles12, and 
> sles15) 
>
> Things work well when everything is up and running. IP failover works 
> well when one of the servers goes down. My issue is when that server 
> comes back up. Despite my best efforts with systemd fstab dependencies, 
> the shared storage areas including the gluster lock for CTDB do not 
> always get mounted before CTDB starts. This causes trouble for CTDB 
> correctly joining the collective. I also have problems where my 
> bind mounts can happen before the shared storage is mounted, despite my 
> attempts at preventing this with dependencies in fstab. 
>
> I decided a better approach would be to use a gluster hook and just 
> mount everything I need as I need it, and start up ctdb when I know and 
> verify that /gluster/lock is really gluster and not a local disk. 
>
> I started down a road of doing this with a start host hook and after 
> spending a while at it, I realized my logic error. This will only fire 
> when the volume is *started*, not when a server that was down re-joins. 
>
> I took a look at the code, glusterd-hooks.c, and found that support 
> for "brick start" is not in place for a hook script but it's nearly 
> there: 
>
>         [GD_OP_START_BRICK]             = EMPTY, 
> ... 
>
> and no entry in glusterd_hooks_add_op_args() yet. 
>
>
> Before I make a patch for my own use, I wanted to do a sanity check and 
> find out if others have solved this better than the road I'm heading 
> down. 
>
> What I was thinking of doing is enabling a brick start hook, and 
> do my processing for volumes being mounted from there. However, I 
> suppose brick start is a bad choice for the case of simply stopping and 
> starting the volume, because my processing would try to complete before 
> the gluster volume was fully started. It would probably work for a brick 
> "coming back and joining" but not "stop volume/start volume". 
>
> Any suggestions? 
>
> My end goal is: 
> - mount shared storage every boot 
> - only attempt to mount when gluster is available (_netdev doesn't seem 
>    to be enough) 
> - never start ctdb unless /gluster/lock is a shared storage and not a 
>    directory. 
> - only do my bind mounts from shared storage in to the rest of the 
>    layout when we are sure the shared storage is mounted (don't 
>    bind-mount using an empty directory as a source by accident!) 
>
> Thanks so much for reading my question, 
>
> Erik 
> ________ 
>
> Community Meeting Calendar: 
>
> APAC Schedule - 
> Every 2nd and 4th Tuesday at 11:30 AM IST 
> Bridge: https://bluejeans.com/118564314 
>
> NA/EMEA Schedule - 
> Every 1st and 3rd Tuesday at 01:00 PM EDT 
> Bridge: https://bluejeans.com/118564314 
>
> Gluster-users mailing list 
> Gluster-users at gluster.org 
> https://lists.gluster.org/mailman/listinfo/gluster-users 


More information about the Gluster-users mailing list