Tuesday, July 06, 2010

I have found managing a small handful of servers with a slightly larger handful of services that they need to provide. From time to time I need to add a service without adding a server. While at the outset the idea seemed simple, the realization turns out to be somewhat problematic. The problem is that it can be difficult to recall exactly what each server is doing, and to imagine all the problems that might crop up if you change something. Virtualization offers an appealing approach to managing this. Unfortunately, only the very newest of the servers I'm managing supports virtualization, and it has already been put to use.

There are a number of other issues that come up. It's a little silly having the same user account across all the servers, and is somewhat inflexible; a kerberos system would be nice here, but stresses the allocation of resources further. Additionally, making good use of hard drives and drive bays between these servers is non trivial. A storage virtualization system would be nice. Perhaps a cluster filesystem that spans all the drives in the network, using and providing storage as needed with extreme flexibility.

cfengine offers an interesting approach to dealing with services with forgotten requirements that you're afraid to touch. cfengine allows you to specify 'promises' that your systems are supposed to keep. It sounds as though this is a perfect solution for this problem. I still need to investigate further - I'm working off my interpretation of a small quantity of documentation.

OpenQRM offers exactly what I've always wanted for managing my few servers - dhcpd + tftpd + nfs/iscsi/aoe + lvm, all in one convenient bundle. Unfortunately it doesn't deliver. Besides having an unfortunately complicated interface (to be fair, it could be much, much worse), I can't for the life of me get the stupid thing to do anything useful.

I'm still sorting out some ideas, and I think attempting an implementation will be the best way to figure this out, but it seems to me that there is significant similarity between the functionality of cfengine and OpenQRM. I just want managing my servers to be easy. Why can't it be easy?

No comments: