Node Assassin - Original: Difference between revisions
Line 20: | Line 20: | ||
== Version Control == | == Version Control == | ||
All software related to this product is hosted on [http://github.com/digimer/Node-Assassin | All software related to this product is hosted on [http://github.com/digimer/Node-Assassin GitHub]. | ||
== Naos v1.x Protocol == | == Naos v1.x Protocol == |
Revision as of 22:32, 29 January 2010
Node Assassin :: Node Assassin - Original |
Node Assassin is an open-source, open-hardware project to create a network-attached cluster fence device.
Of course, you must proceed at your own risk. :)
First Version
The first version of Node Assassin is operational!
It still needs to be tied into Red Hat's 'ricci' and 'luci' programs to function as a fence device though. This fence device resides on the cluster's private network channel (or some other common intranet).
Software
This is the initial release of the fence control software; Node Assassin Operating System.
Source Code and notes:
Version Control
All software related to this product is hosted on GitHub.
Naos v1.x Protocol
It works by listening for a connection on TCP port 238 on IP 192.168.1.66 (both port and IP are configurable). Once connected, it uses a very simple protocol.
Commands are:
Get the state of all nodes:
00:0
This will generate a message like:
Node states: - Max Node: 05 - Node 01: Running - Node 02: Running - Node 03: Running - Node 04: Running - Node 05: Running End Message.
Any node that is currently fenced will read 'Fenced!'.
Fence node '02' (Supports nodes from 01 to 05):
02:0
This will generate a message like:
Node 02:0: Now Fenced!
Release '02':
02:1
This will generate a message like:
Node 02:1: Now running.
Fencing or releasing other nodes is a simple as replacing '02' above with the node number. The design allows for the expansion of ports up to 99 devices. It should be trivial to go beyond that, but it's a sufficiently high number for now.
Once a node is fenced, the caller can release and the state will be held until either another call releases the fence or the Node Assassin is reset.
Hardware
This device will be based on the Arduino Duemilanove using the Ethernet Shield for communication.
- The Arduino listens for commands on the network.
- Take "True" or "False" to a given port with a port mapping to a relay to open or close.
- Arduino drives a ULN2003A which in turn drives up to seven relays.
- The relays are He Li Shun's HLS-4078-DC5V.
- I should look into opto-isolators instead...
- The relays are He Li Shun's HLS-4078-DC5V.
- The 1N4148 diode is used to protect the transistor array and arduino.
Next Version
Mark Loit suggested improving the circuit design by swapping out the ULN2003A and the HLS-4078-DC5V with something like the TLP281-4 or 4N35 opto-isolators. This will allow for a much reduced power consumption and size allowing for the circuit to potentially exist on an Arduino Protoshield.
Pictures
This will be updated as the build comes along. Once I am done I will post a diagram. No sense sharing my bugs at this point.
Input, advice, complaints and meanderings all welcome! | ||||
Digimer | digimer@alteeve.ca | https://alteeve.ca/w | legal stuff: | |
All info is provided "As-Is". Do not use anything here unless you are willing and able to take resposibility for your own actions. © 1997-2013 | ||||
Naming credits go to Christopher Olah! | ||||
In memory of Kettle, Tonia, Josh, Leah and Harvey. In special memory of Hannah, Jack and Riley. |