我有两个相同configuration的CentOS 5服务器(未来可能会更多)。 我需要在其中的任何一个上运行一个cron作业,并且只能在其中一个上运行。
我知道RedHat集群套件(我们在其他服务器上使用它),但是对于这个任务来说这是一个太大的枪支,再加上它对于less于三个节点的performance并不好。
有什么重量可以使用吗?
服务器可以直接相互通信。 我想我可以通过ssh或nrpe(已经安装在这些服务器上的两台服务器)开发一些东西,但是我想知道是否有可用的东西。
对于共享文件系统(如NFS)上的locking文件,这非常简单。 我假设你没有这个设置。
这里有一些想法:
在一些共享资源上实现一个锁,或者两台机器都可以访问的东西。 例如,他们都可以写入一些外部networking资源? 下滑:我敢肯定,很多比赛的机会。
使用readhat DLM并通过perl DLM :: Client访问locking。 下行:如你所说,可能比你想要的更重。
试试ruby锁服务器官员 。 如果你是ruby,可能会很有趣。
这是另一个perl分布式locking机制: IPC :: Locker 。 优点:不需要你像Linux内核DLM一样设置另一个服务。
使用像RabbitMQ这样的消息服务来进行locking。 再次,可能相当重量级。
我自己是一个perl程序员,所以我可能首先尝试IPC :: Locker。 如果你只有两台服务器,我喜欢这种方法的简单性。
对于企业解决scheme,您可以使用BMC Control-M 。 一个开源的替代scheme是Job Scheduler