Commit 4897adec authored by Mike Hibler's avatar Mike Hibler

Before I forget: brain dump of power controller setup. This is a little

redundant with setup-serial-and-power.txt, but I'll worry about that later.
This new doc is linked into the setup*.txt chain.
parent 720bb591
......@@ -361,18 +361,14 @@ with 'wap snmpit -o <name>'.
1) Power controllers
The only two supported power controllers at this time are the APC AP9210 and
the BayTech RPC27. Theoretically, other SNMP and serial-controlled power
controllers should not be hard to support.
If your power controllers are controlled via IP and SNMP, add a node type andor
interface type for them. Then, give them an entries in the nodes, interfaces,
and wires tables. Make sure to get the IP address correct in the interfaces
table. The role listed in the nodes table should be 'powerctrl'.
If you have serial power controllers, just create entries node_types and nodes
- no interfaces or wires. Again, the role in the nodes table should be
Follow the instructions in setup-power.txt.
Setting up the power controllers before you add your nodes makes adding
the nodes remotely much easier. The process being: power off all nodes,
then power on what you want to be the first node. It should show up in
the "new node" page on the Emulab web portal. You can then add it as "pc1".
Then power on the second node, add it, etc.
##### Step 5 - Images and OSids
# Copyright (c) 2002-2007 University of Utah and the Flux Group.
# All rights reserved.
##### Setting up power controllers for Emulab.
Currently we support a couple of "families" of power controllers:
the serial-controlled BayTech RPC family and the network-controlled
APC AP family. There is no guarantee that all models in these families
work, but we know that the following models do:
Baytech RPC14
Baytech RPC27
APC AP9210 (deprecated)
APC AP7960
Basically, any unit that uses the Baytech CLI or the APC MIB should work.
A. node_types and nodes table entries.
For either serial or network controlled units, you will need to add
node_type and node DB table entries. Perform the following in mysql
("mysql tbdb" on boss):
insert into `node_types` (class,type) values ('power','APC');
insert into `node_types` (class,type) values ('power','RPC27');
depending on what you have. You will then need to add a nodes table entry
for each instance of the power controller you have. Something like:
insert into `nodes` (node_id,type,phys_nodeid,role,priority,
status,eventstate,op_mode,allocstate) values
'node_id' and 'phys_nodeid' should be identical and be your name of the
power controller (e.g., "power1", "power2", etc.).
'type' will be the same as what you added to node_types above.
'role' should always be 'powerctrl'.
'priority' is used to order all nodes in node listings (e.g., in web pages);
we pick a high number for power controllers so they will come after
regular nodes. Each power controller should have a different value.
All other fields should be exactly as shown.
B. interfaces and wires table entries.
If you have a network power controller, you will need to add entries in the
interfaces and wires tables. For interfaces, you again need one line per
power controller:
insert into `interfaces` (node_id,IP,mask,interface_type,iface,role)
values ('powerN','AAA.AAA.AAA.AAA','MMM.MMM.MMM.MMM','','eth0','other');
'node_id' matches that in the nodes table above.
'IP' and 'mask' reflect the address assigned to the power controller
Wires table entries are strictly informational. You can put them in if you
want to keep track of the cable numbers. Though if they are properly
entered, you can use snmpit to perform some basic functions on the connected
switch ports. A wires table entry looks like:
insert into `wires` (cable,len,type,node_id1,node_id2,card2,port2)
values (NNN,LLL,'Power','powerN','switchN',MMM,PPP);
'cable' and 'len' are integers that describe the cable. Make them 0 and 0
if you do not care.
'type' should be 'Power'.
'node_id1' should match 'node_id' from the interfaces/nodes tables.
'node_id2' should be the name (in the nodes table) of the switch the
power controller is connected to.
'card2' and 'port2' are integers indicating the module and port on the
switch that it is connected to.
C. outlets table entries.
The final step is to add 'outlets' table entries for all nodes that are
controlled by the power controllers. For each node there should be an
entry of the form:
insert into `outlets` (node_id,power_id,outlet)
values ('pcN','powerN',NNN);
'node_id' is the name of the node which is being power controlled.
'power_id' is the nodes table name of the power controller that the node
is connected to.
'outlet' is an integer telling which outlet on the power controller that
the node is connected to. All power controllers we support have outlets
numbered from 1..N where N is the maximum number of outlets on the
controller (typically 8, 16, or 24). So the value of this field should
be from 1 to N.
Note that you have not yet actually added any nodes to the testbed, so
you should use the name that you *intend* to assign to each node when added.
The power control subsystem will work without there being DB state for a
node during bootstrap, but it is important that this field eventually match
an entry in the 'nodes' table later. It is okay to use placeholder values
for 'node_id' in the outlets table and then change them later to match the
nodes table entries.
D. Testing
After all the state has been added, you can use the 'power' command to
test the configuration. If you have serial consoles and have already
done the console setup, then you can "console <node>" and then do
"power cycle <node>" and see if the machine reboots by looking for the BIOS
screen or other bootstrap output. If you do not have serial consoles or
have console setup, you will have to be physically in front of the machine
to see if the outlet properly cycles.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment