help-cfengine
[Top][All Lists]
Advanced

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

failover and loadbalancing


From: Wipf, Stefan
Subject: failover and loadbalancing
Date: Fri, 18 Oct 2002 16:14:00 -0500

In our current environment all copies in cfengine are done from 
an nfs mounted filesystem as failover and loadbalancing are easy that
way:

copy:
      /remote/is/files/etc/somefile dest=/etc/somefile


where /remote/is is nfs mounted:
      /remote/is on server_A,server_B:/local/is


We have been thinking of using cfservd and doing our copying in
the following fashion:


Solution A:
### loadbalancing
control:

  use_server_A::   fileserver         = ( server_A)
                   failoverfileserver = ( server_B )
        
  use_server_B::   fileserver         = ( server_B )
                   failoverfileserver = ( server_A )


### failover
copy:

 any::
   /remote/is/files/etc/somefile dest=/etc/somefile
                                 server=${fileserver}
                                 failover=usefailoverserver

 usefailoverserver::
   /remote/is/files/etc/somefile dest=/etc/somefile
                                 server=${failoverfileserver}


The loadbalancing part is easy, but the failover is cumbersome
especially if we copy many different files and have multiple
failover fileservers.


Solution B:
### same loadbalancing part
### failover
copy:

 ### at the very beginning, recursively copy the entire directory
 ### tree containing all files that could possibly be needed later
 ### to a local directory using the failover kludge from above
 any::
   /remote/is/files  dest=/local/is/files
                     server=${fileserver}
                     failover=usefailoverserver
                     recurse=inf

 usefailoverserver::
   /remote/is/files  dest=/local/is/files
                     server=${failoverfileserver}
                     recurse=inf

 ### from now on we don't need failover because all files are local
 any::
  /local/is/files/etc/somefile        dest=/etc/somefile
  /local/is/files/etc/someotherfile   dest=/etc/someotherfile


Solution C:
The ultimate solution of course would be if we could do this:

copy:
   /remote/is/files/etc/somefile dest=/etc/somefile
                                 server="server_A,server_B"

But this does not appear to be an option.


Questions:

- Does anybody else do something similar?
- how does cfservd perform compared to nfs?
- which would perform better, solution A or solution B?



-- 
Stefan Wipf
swipf@htc.com




reply via email to

[Prev in Thread] Current Thread [Next in Thread]