Providing a Grounding for Remote Access
In thinking about the PiLab and what I would like to be able to do with it, I realized that I had made a mistake right at the start. I was focused on emphasizing the remote access non-graphical (non visual) aspect of system administration. I was aware still that I needed some visualization elements to give the students a means to see the effects of what they were doing. I was thinking about creating a set of monitors that work at multiple levels and which could be seen to change as the students turn their idle disjoint computers into a network of interacting services
I started thinking about how I'd lay out the lessons to introduce the systems to the students and then let them play and I realized I'd missed an opportunity with my focus on avoiding physical access.
What I realized is that, if I design the layout of the pod, the placement of devices and cable routing then I can design a session in which the students assemble their pod and can watch the monitors as each component is correctly placed, cabled and powered up. Then when the students begin work over the network they will have a visual reference to the components and connections with which they are working.
This week I've been working to make the idea a bit more concrete. In this post I'm presenting a physical layout for a single pod. The pods are the units of student control. Each pod will support 4 students. Each student gets her own Raspberry Pi. The pod provides power control and access to the console of each Pi. It also provides power control and console access to the uplink router for the pod.
The diagram below shows one possible physical layout for a pod.
The lab include 5 Raspberry Pi's. The fifth unit is the Head Node. This node is powered on when the pod has power. It is the end point for the consoles for the 4 student Pi units and for the lab router. The head node also controls power to second power strip which powers the USB hub and the first three Pi units.
The pod is designed to be build on a plywood backing board approximately 42x56cm (17x22in). All of the hardware except the Pi units have mounting holes on the back. The Pi units can be affixed with velcro straps tacked to the board. Additional velcro straps can be tacked along the cable runs to dress the cables.
In this configuration, every component except the head node can be powered by the head node itself. The head node exposes its network port and console serial line which can in turn be used to control the pod as a whole.
The Pi lab is designed to allow the students to assemble and cable the pod from components and cables. They will get a chance to handle the parts. The cables should be cut to length where possible and labeled. Where the cable lengths are fixed, the pod back board should provide a means to dress the cables with slack loops.
While one of the goals of the course is to show the students how to work remotely using the network and command line, the exercise of assembling the pod and (hopefully) observing as it comes to life for the first time will give the students a sense of the hardware that is on the other end of the network.
Next: The management infrastructure
The next job is to design the infrastructure layer. The goal there is to provide the next level network and host installation services for the lab Pi units. It would be possible to add USB storage to the PiLab head node but I think it's preferable to provide the OS and monitoring from outside. The monitoring must include both passive and active probes for the nodes. It must provide near real-time graphical feedback of the Pod state to the students. Back to work!