This was a bit trickier to get worked out, but I have made some progress. It turns out just putting the metadata on a shared disk resource and symlinking wasn't quite enough. nmbd (the netbios management daemon that samba uses) complained that the symlink to its working directory wasn't a real directory. On top of that, you can specify the path for the nmbd working dir, but only at compile time, not at run time. To work around this, I added a bind mount for that dir (/var/run/samba for debian/ubuntu) and now samba will start. It will even fail over if I put the primary into standby. So there's the progress.
However, a client still can't reconnect to the share once the node has failed over until I rerun "net ads join" on the secondary (new primary). I've been running the join command using the dns name for the floating IP, but maybe that's not good enough. I'll look more deeply into net tomorrow, and see if I can specify the IP, too. The other new oddity is that after I've put the primary into standby and everything has failed over to the secondary, as soon as I bring the primary back online, the resources try to switch back, i.e. they don't stay on the secondary (new primary) as expected. Granted, if I setup STONITH, this shouldn't be an immediate problem, but it still will be when I go to bring the node back online. I believe this is only the case with the samba resource enabled, but I'll test this more tomorrow to make sure. I'm starting to wonder if samba is practical for failover or not. I don't really have much choice about using it. Because of my mixed environment, I need to be able to export nfs and samba shares from this server. Manual failover is better than what I have now, which is no redundancy at all. At least I'd be able to get my users back up more quickly on the cloned node. It just won't be as smooth as I'd like with automated failover. It still seems like it should be doable, I just haven't found the proper incantation just yet. Any further advice is welcome. Thanks. Seth On 04/26/2012 10:41 PM, Tim Serong wrote: > On 04/27/2012 11:37 AM, Andrew Beekhof wrote: >> On Thu, Apr 26, 2012 at 8:38 AM, Serge Dubrouski<[email protected]> wrote: >>> On Wed, Apr 25, 2012 at 4:28 PM, Seth Galitzer<[email protected]> wrote: >>> >>>> On 04/25/2012 05:12 PM, Dimitri Maziuk wrote: >>>>> On 04/25/2012 03:53 PM, Seth Galitzer wrote: >>>>>> Can anybody point me to recent docs on how to go about setting this up? >>>>>> I've found several much older posts, but not much current with any >>>>>> kind of helpful detail. >>>>> >>>>> If you're running active/passive DRBD, it's what the wiki page calls >>>>> "mounted on one node at a time". That one's simple: use drbdlinks to >>>>> keep everything incl. /etc/samba on the drbd filesystem and fire up smbd >>>>> and nmbd after drbdlinks -- pretty much like any other daemon backed by >>>>> drbd storage. >>>>> >>>> >>>> I see how that will get all the locking and user data and that should be >>>> easy enough to configure. But I'm also doing ADS integration instead of >>>> winbind, and that also seems to be a problem as only one node can be >>>> joined to the AD at a time, even with a shared IP. Any suggestions for >>>> that? >>>> >>> >>> Currently there is no official RA for smbd and nmbd daemons. >> >> Really? I thought tim had one. He was heavily into samba at one point. > > I wrote the CTDB RA, but not a Samba one. There is a Samba RA which > came from RedHat/rgmanager, which is present in the resource-agents repo > (https://github.com/ClusterLabs/resource-agents), but I haven't tried it > myself. > >>> You can try to >>> create one, and include joining domain there into a stat function, though I >>> don't need why you'd need it because AFAIK "join domain" is a one time >>> action unless you want to re-register your server in the domain. > > Correct, you wouldn't want to an AD join on resource start. You only > need to do it once, and anyway, if you scripted it, that'd probably mean > having some domain admin password lying around in a config file or > script or something. Yuck. > > You should be able to run Samba under Pacemaker using the LSB script. > Provided your smb.conf ensures all the samba state directories (private > dir, lock dir, etc.) is on shared storage (or use drbdlinks), you can > have Pacemaker start Samba, then on the node on which it's running, do > "net ads join". You want to end up with your floating IP address and > "netbios name" added to AD, *not* the physical IP or hostname of one of > the nodes. Your samba instance and floating IP then look like a single > host to the outside world, whichever physical node they're active on. > > I realise now I scribbled a little about this at least once before: > > http://lists.linux-ha.org/pipermail/linux-ha/2010-March/039876.html > > HTH, > > Tim -- Seth Galitzer Systems Coordinator Computing and Information Sciences Kansas State University http://www.cis.ksu.edu/~sgsax [email protected] 785-532-7790 _______________________________________________ Linux-HA mailing list [email protected] http://lists.linux-ha.org/mailman/listinfo/linux-ha See also: http://linux-ha.org/ReportingProblems
