Home

2003 USENIX Annual Technical Conference

image

Contents

1. The use of link layer networking also reduces the number of locks that must be obtained while formatting the message for transmis sion since the network stack s sequence number lock is no longer needed To minimize the amount of con figuration required and to eliminate the dependency on module parameters we changed the code to broadcast Ethernet frames to the hardware broadcast address of LPELLLE EE LEVEL ke We retained from netconsole the use of a pool of reserved pre allocated network buffers that allows for the transmission of up to 32 console messages in out of memory situations in which the standard network buffer allocation fails We also used the same device polling technique for message transmission over the network Network hardware generally has some limitation on the size of its transmission queue The coe implementation checks to determine if the transmission queue of the net work device is stopped If so it calls a routine in the network device driver that enters the interrupt handler to force the processing of transmission interrupts thus clearing the queue and allowing coe to transmit a packet This scheme improves the reliability and timeliness of the transmissions To receive and display console messages sent by coe we wrote a console monitor program coercv that runs on a separate system in the same physical subnet work It uses the packet socket support provided in the standard Linux kernel to send and recei
2. Linux kernels Using etherconsole allowed us to debug and perform low level systems management for server blades that do not have any standard external ports for console devices We were able to track the progress of boot from power on or re set through power on self test firmware initialization hardware set up and operating system load to the com pletion of kernel initialization This proved invaluable USENIX Association FREENIX Track 2003 USENIX Annual Technical Conference 131 for fault isolation and problem determination It also al lowed us to monitor the concurrent initialization of mul tiple blades on a single display making it easy to de termine when the blades were all up following a cluster reboot Moreover it externalized kernel messages re garding problems encountered during normal operation Our full console function allowed us to manage systems running in single user mode start and stop subsystems outside the context of normal init processing and per form other types of management and debugging opera tions when normal telnet or SSH services were unavail able One usage difficulty that is not an issue in our en vironment but might be in other situations is the fact that there are a few commonly used commands such as ifconfig that manipulate the Ethernet interface and the network configuration Since our systems are disk less and totally dependent on network communication shutting down the Ethernet int
3. in the physical sub net but not part of the VLAN will be unable to access consoles within the VLAN A more sophisticated con sole emulation program can act as a form of firewall and bridge receiving connections from the outside on an other VLAN doing the necessary protocol conversions and forwarding legitimate messages to the etherconsoles over the private VLAN This idea is explored further in Section 6 Denial of service attacks are a special form of se curity exposure that have recently received considerable attention One possible form of this type of attack is to send the console a very large number of messages or faulty command strings to handle Processing them can consume a substantial amount of resource slowing the system down significantly A related form of attack is to send a command that somehow causes a very large amount of console output As most software developers recognize one way to slow down a program dramati cally is to have it do a very large number of printf calls and one way to slow down a kernel module in Linux is to fill it with printks In many cases Linux protects against this form of attack by limiting message generation rates For example the rate limiting support in the TCP IP protocol stack of the Linux 2 4 kernel detects and suppresses duplicate messages issued faster than some fixed rate This decreases the load imposed by any console implementation including etherconsole and reduces the possibilit
4. network interface and dedicating it to console support offers the advantages of clean traf fic separation and the possibility of having a different network topology for console messages but our experi ence indicates that these benefits are outweighed by the cost complexity and additional space required for this design Our implementation of console over Ethernet achieves more than adequate performance and reliabil ity with very little impact on other network traffic using the single Ethernet interface on our blades The paper by Felter et al 10 contains detailed performance stud ies of our server blades All of these studies were con ducted with one or more of our console over Ethernet implementations active on all the blades 5 3 Security Considerations One possible concern with console over Ethernet is se curity Putting the system console on the network cre ates the possibility of break ins and denial of service at tacks By using link layer protocols etherconsole hides the console from systems outside the physical subnet Link layer protocols do not use IP addresses and are not routable beyond the subnet In addition the hard ware addresses required for interaction with the console are not exposed and have no meaning outside the sub net Within the subnet access to the console can be further restricted using VLANs 13 A private VLAN can be created consisting of only those machines that require console access machines
5. the future servers may be come more like embedded systems and no longer re quire console support except during development but that does not seem to be the current situation The following section provides some additional motivational background for our work as well as de scribing the constraints of our environment Section 3 describes other console technologies and previous re lated work In Section 4 we give a detailed description of the design and implementation of etherconsole Sec tion 5 provides the results of our experimental evalua tion of etherconsole and Section 6 indicates a number of ways in which our work can be enhanced Section 7 concludes the paper 2 Motivation and Intended Environment Our work on etherconsole is in support of two larger projects at the IBM Austin Research Laboratory the MetaServer and Super Dense Server projects 10 The goal of the MetaServer project is to develop new ap proaches to systems management for clusters of server appliances A MetaServer cluster consists of a collec tion of compute nodes each of which contains a pro USENIX Association FREENIX Track 2003 USENIX Annual Technical Conference 125 cessor and memory but no local disk network attached storage nodes which are used to store application data and a MetaServer system that provides a single point of management and administration for the cluster These components are connected by a high speed switched network
6. 01 2 R Black The Fairisle network console http www cl cam ac uk Research SRG bluebook 18 netcon netcon html 3 i D Bovet and M Cesati Understanding the Linux Kernel Second Edition O Reilly and Associates Inc 2002 Citrix Corporation Citrix independent com puting architecture http www citrix com press corpinfo ica asp 2002 4 p 5 D Comer and D Stevens Internetworking with TCP IP Volume 3 Client Server Programming and Applications BSD Socket Edition Prentice Hall 1993 6 Compaq Inc Proliant BL10e Server January 2002 7 J Delaney Dell blade Maximum power mini mum space PC Magazine February 2003 8 R Droms and T Lemon The DHCP Handbook Understanding Deploying and Managing Auto mated Configuration Services Macmillan Techni cal Publishing 1999 Y C Fang J Jancic A Saify and S Zaiback Us ing Dell embedded remote access to facilitate re mote management of HPC clusters Dell PowerSo lutions November 2002 W Felter T Keller M Kistler C Lefurgy K Ra jamani R Rajamony F Rawson B Smith and E VanHensbergen On the performance and use of dense servers To appear in the IBM Journal of Research and Development 2003 9 10 134 FREENIX Track 2003 USENIX Annual Technical Conference USENIX Association 11 R Gooch Linux devfs device file system FAQ http www atnf csiro au people rgooch linux docs de
7. 24 Red Hat Inc TUX 2 1 2001 25 Red Hat Inc Netconsole 2002 26 T Richardson Q Stafford Fraser K Wood and A Hopper Virtual network computing IEEE In ternet Computing 2 1 January February 1998 27 USB http www usb org 2003 28 E Van Hensbergen and F Rawson Revisiting link layer storage networking Technical Report RC22609 IBM Research October 2002 29 K Yap and M Gutschke Etherboot user manual July 2002 30 T Ylonen T Kivinen M Saarinen T Rinne and S Lehtinen SSH protocol architecture September 2002 USENIX Association FREENIX Track 2003 USENIX Annual Technical Conference 135
8. USENIX Association Proceedings of the FREENIX Track 2003 USENIX Annual Technical Conference San Antonio Texas USA June 9 14 2003 THE ADVANCED COMPUTING SYSTEMS ASSOCIATION 2003 by The USENIX Association All Rights Reserved For more information about the USENIX Association Phone 1 510 528 8649 FAX 1 510 548 5738 Email office usenix org WWW http www usenix org Rights to individual papers remain with the author or the author s employer Permission is granted for noncommercial reproduction of the work for educational or research purposes This copyright notice must be included in the reproduced paper USENIX acknowledges all trademarks herein Console over Ethernet Michael Kistler Eric Van Hensbergen and Freeman Rawson IBM Austin Research Laboratory Abstract While console support is one of the most mundane portions of an operating system console access is crit ical especially during system debugging and for some low level system administration operations As a result densely packed servers and server appliances have ei ther keyboard video mouse KVM cabling and KVM switches or serial ports cabling and concentrators Fur ther increases in the density of server appliances and blades require eliminating these items We did so in the design of a prototype dense server blade system that in cludes none of the standard external ports for console devices Since the standard means for console accesss KVM or se
9. ation of console over Ethernet were based on the recently introduced Linux netconsole feature 17 25 After we describe our design and imple mentation we will compare our work with netconsole in Section 5 4 Here we merely review the key features of netconsole As implemented in the openly released patch to Linux 2 4 netconsole is a module that is dynam ically loaded into a running kernel image It is designed to support the transmission of console messages espe cially in emergency situations but it is not intended as a full console replacement The netconsole implementa tion uses UDP and either broadcasts messages or trans mits them to a particular receiving host whose IP ad dress is specified as a parameter to the netconsole kernel module when it is loaded Netconsole registers as a con sole to allow it to receive the messages being written by the kernel To avoid problems when the system is low on memory netconsole maintains a dedicated pool of Linux sk_buf fs 3 the network buffer structures used by the kernel It also relies on special routines added to the net work device drivers that send out frames waiting in the transmission queue without enabling interrupts polling for the device to become available if necessary Netcon sole uses a syslog server running on another system to capture the messages that it sends In addition to netconsole there have been other console over a network implementations in recent years The Fai
10. blades which led to our decision not to include the ports required to support standard console interfaces we were forced to develop an alternative mechanism for console support Our only options were the Ethernet connection and the I2C system management bus We rejected the I2C bus for a number of reasons First we wanted to re serve it for hardware control and certain low level mon itoring functions that we needed for our other research work Second although the latest versions of the bus have up to 3 4 megabits per second of bandwidth 23 in high speed mode our implementation runs it at the bus s original bandwidth of 100 kilobits per second Third experimentally we found the I2C bus to be somewhat unreliable in our implementation Once we eliminated the I2C bus from consideration we were forced to im plement the console support for our prototype over the Ethernet interface Our network environment also influenced our de sign We made several important assumptions about the Ethernet and the systems on it all of which are true in our environment and many other clusters and data cen ters First we assumed the use of high speed highly re liable links connecting the individual server systems to an Ethernet switch Second we assumed that the switch is capable of Ethernet data link layer 22 switching at line speed which means that it does not experience con gestion problems or drop packets Therefore the net work itself is h
11. concen tration hardware and a USB to DB9 serial adaptor for every system In addition given the late initialization of the USB support and infrastructure in Linux the USB serial console offers less support for system debug than the standard serial console Moreover USB cables are limited to 5 meters in length complicating the cabling problem Although there are also KVM switches that support the USB mouse and keyboard interfaces they still use the standard video interface and cable and have properties that are very similar to standard KVM switch ing schemes IBM has recently introduced a new form of KVM switching C2T Interconnect cable chaining and the Net BAY Advanced Connectivity Technology ACT 15 Rather than using a star topology for KVM switching ACT daisy chains the server systems together C2T is one of the two chaining techniques used it reduces the cabling and conversion hardware at the cost of adding a specialized port to every server in the chain The daisy chain ends in either a special KVM switch or KVM to Ethernet converter Although ACT reduces the amount of cabling and the number of switches or converters re quired it still relies on cabling connectors and support ing equipment that reduce density and increase cost Finally there are systems that provide a form of integrated hardware based console A good example of such an implementation is the Embedded Remote Ac cess ERA port 9 found on some recent se
12. erface console over Ethernet allows us to construct servers without standard external ports or cables and the associated infrastructure for console devices This elim inates the cost complexity and fragility of console ca bling and switches while allowing for higher density packaging of server systems As with the chassis that we used for our prototype server blades 10 even the Ethernet cables become unnecessary if the server is a blade that plugs into an appropriately wired backplane Eliminating the separate network for console traffic sim plifies the design and wiring of the backplane reducing the cost of the chassis and the total cost of a blade server deployment Source Code Availability Source code for our implementation is available from the IBM Linux Technology Center web site at http oss software ibm com developerworks opensource linux Acknowledgments Wes Felter Tom Keller Elmootazbellah Elnozahy Bruce Smith Ram Rajamony Karthick Rajamani and Charles Lefurgy contributed very heavily to the SDS project We would also like to thank the management of the IBM Austin Research Laboratory for their sup port of our work Our shepherd Chuck Cranor and the anonymous referees provided many helpful comments that improved the quality of this paper All trademarks are the property of their respective owners References 1 Amphus Inc Virgo A ManageSite enabled fully manufacturable ultra dense server design 20
13. erface with an ifconfig down command effectively shuts down an entire node of our cluster However for disk based environments care must be taken to restrict the usage of commands that may unintentionally terminate console operation 5 2 Performance and Reliability Since console and tty support is not a performance path we did not perform any formal performance studies However in our very extensive experience with our implementations we did not observe any performance problems in terms of either the speed of the console or the overhead imposed on the system Also we found that we did not lose messages even when using the im plementations that operate at the link layer Even for a configuration where 8 blades are broadcasting boot time messages simultaneously the period of heaviest activ ity the load imposed on a switched 100 Mbit Ethernet is insignificant If one or more specific MAC addresses are used instead the network load is even less As men tioned in Section 2 our network environment is such that the network itself is reliable at the link layer and the implementation techniques used in our link layer code avoid the problems that can occur with network trans mission on busy systems We have not found any need for additional reliable delivery or flow control mecha nisms In passing it is worth noting that we also use link layer networking very successfully in our environ ment for remote disk access 28 Having a second
14. es a ded icated kernel thread to read it and pass it up through the tty code In addition to the code that works with the tty line discipline function in the Linux kernel there is also a set of direct I O routines for use by the kernel console function These operate in much the same manner as the functions that interface with the tty code except that they are invoked through the Linux console structure We modified a terminal emulator and telnet pro gram written in Java 16 to act as a console emulator for etherconsole T The result uses standard telnet protocol and terminal emulation techniques once communication is initiated but unlike a standard telnet client it listens for connections from a system running etherconsole T and when it accepts a pair of connections one input and one output from a server it opens a separate window for the console session with the remote system Etherconsole T adds two new files to the Linux kernel sources with a combined size of 1243 lines of code In addition there are 12 lines of code added to the tty and system initialization Our changes to the Java telnet program to support console emulation are about 220 lines of Java 4 2 Link Layer Console Message Trans mitter Although etherconsole T works well in the context of our Linux DSA operating environment it requires a full Linux TCP IP stack and thus cannot be used in very low level code such as boot time firmware Our need for console s
15. esenting a graphical user interface However in comparison to console over Ethernet all of these products require additional hard ware components cabling and space A common alternative to KVM switches is the use of a serial console which redirects the console traffic over a Serial port connected to a serial concentrator Un like KVM switches but like etherconsole serial console does not support a graphical user interface Serial con soles and concentrators offer the advantage of reducing the number of cables for N systems to N 1 Some newer serial concentrators also offer conversion to an Ethernet uplink However they still add to the cost of the installation take up space and require additional ca bling Given that the console is a vital but rarely used function in a production installation this seems like an excessive price to pay for supporting it Recent developments in hardware firmware and operating system support now make it possible to use a Universal Serial Bus USB 27 port for the console The current support in Linux for a full console over USB is similar to one of our implementations in that it is based on the pre existing serial console support in Linux and is not graphical in nature The USB serial console supports communication with a terminal emulator over a USB connected serial port Like the serial console the USB serial console requires at least N 1 cables for N systems as well as the additional serial
16. heir firmware we can leverage this existing support to provide the transport for con sole communications Another approach is to develop special serial port hardware that instead of transmitting data to a physical port on the machine transmits it to the network interface Finally a programmable network in terface can pretend to be the serial device by owning the bus resources for it It would then translate operations on the serial I O port into the corresponding network in teractions 6 4 Frame Buffer Emulation Some operating systems do not support character based consoles and require the use of a graphical user interface instead They are better supported with a frame buffer emulation approach In this case an area of memory is used to hold a dummy frame buffer and the network in terface sends characters from the frame buffer Input oc curs by transmitting characters and mouse movements to the system through the network interface and then pass ing them to the operating system by emulating normal keyboard and mouse input USENIX Association FREENIX Track 2003 USENIX Annual Technical Conference 133 OS serial BIOS serial console console Emulated serial interface Firmware NIC programming Network I F Link layer or transport layer two way flow Link layer or transport layer console emulator Figure 3 Serial device emulation 7 Conclusions By redirecting console interactions over the network in t
17. her than relying on command line parame ters the DHCP 8 support in the firmware and kernel can be used to receive additional console configuration and control information such as the hardware address of a particular workstation running the console emulation program for this system An interesting and more challenging functional ex tension is to support a remote gdb debugger over the Eth ernet In principle many of the same techniques used in the private gdb serial code should also work with an Ethernet interface In particular our code already uses polling to clear the transmission queue and oper ates with minimal overhead at the link layer The major open question is how to handle the network buffers The debugging environment is even more restrictive than the console and we need to recycle a fixed pool of network buffers that is completely private to the gdb stub code to avoid unwanted interactions with the system being de bugged 6 2 Subnet Console Server and Reflector A useful extension to our console emulator software would be to incorporate a telnet or SSH server that would allow console access outside the physical sub net Such a program can accept telnet or SSH connec tions over TCP IP from workstations outside the sub net perform appropriate authorization and authentica tion checking and then link these connections with the console of a particular system doing the conversion be tween the TCP IP and link layer prot
18. ighly reliable and only the system end points create transmission or reception hazards Third since all of the systems including the management sys tem that runs the console monitor or console emulator program are on the same physical subnet we assumed that no routing is needed These assumptions imply that reasonably reliable high performance communica tion is possible using only link layer Ethernet protocols and hardware addressing Since we were developing a prototype hardware platform we had to do system debug and bring up We initially developed two forms of console over Ethernet a link layer output only one and a full console imple mentation using the TCP IP stack Recently we con solidated them into a single link layer implementation that can function both as a simple message transmitter and as a full console supporting both input and output We needed the link layer output only function to allow us to track the progress or lack of it of early system initialization and the full function support as a complete replacement for the standard console function Full con sole support is required for example when some type 126 FREENIX Track 2003 USENIX Annual Technical Conference USENIX Association of low level configuration is needed and the system must run in single user mode Although our systems have net work access in single user mode standard daemon pro cesses such as telnet servers cannot run so the cons
19. infrastructure and the cluster connects to an ex ternal network through one or more gateways that hide its internal organization The compute nodes share a sin gle operating system kernel image and root file system supplied to them over NFS from the MetaServer system The operating system environment of the compute nodes is based on the Red Hat 7 1 Linux distribution and the Linux 2 4 17 kernel with key modifications to support diskless operation We call this environment the Linux Diskless Server Architecture Linux DSA The Super Dense Server SDS project is explor ing ways of building servers to reduce their power con sumption and heat production as well as increase their density It uses a number of boards or server blades plugged into a chassis or backplane where each server blade is a single board computer with a processor mem ory an Ethernet connection an interface to the I2C sys tem management bus and supporting logic The server blades were intentionally designed with a very limited amount of I O to reduce their power consumption and heat production and to increase the overall density of the prototype In particular our server blades do not have local disks and do not include any of the standard ex ternal ports for console devices Along with the server blades other specialized blades are also plugged into the chassis including an Ethernet switch and a specialized single board computer that acts as a system management c
20. ith a major and minor number relying on either dev entries or the devfs 11 file system to provide the required special files The driver supports multiple mi nor numbers and therefore multiple Ethernet ttys The console boot parameter is used to specify the name of the etherconsole T device and the IP address of the system running the console emulator program Since etherconsole T depends on a fully configured TCP IP stack console initialization must be delayed until after TCP IP is initialized and configured If etherconsole T is to be used for diagnosing early boot problems TCP IP configuration must be done as part of kernel initializa tion using either DHCP or parameters passed to the kernel Our server blades use DHCP to obtain the ker nel boot image and configuration parameters and always perform TCP IP configuration as part of kernel initial ization When etherconsole T is initialized it estab lishes two socket connections with the console emula tor program on the remote host One of the connections is used to accept input from the console emulator pro gram while the other is used to write data to it The etherconsole T code does all of its communication with the console emulator using a kernel level interface to the standard socket library the programming technique it uses is very similar to the one used by the in kernel Tux 24 web server Since input from the console emu lator arrives asynchronously etherconsole T us
21. ments The coercv program with optional fil tration based on the sending system is slightly more than 100 lines of code The changes to syslogd are approxi mately 75 lines of code 4 3 Merged Implementation Finally our etherconsole implementation combines the features of the coe and etherconsole T implementations It offers both the low level output only broadcast of messages from the system and a complete console and tty similar in function to etherconsole T Although it in corporates the kernel module packaging features it is designed to be built statically into a kernel image as we must do with LinuxBIOS and this also allows it to be initialized earlier than would be possible if it were a ker nel module Once the network device driver and basic sockets support have been initialized etherconsole reg isters as a console and can start broadcasting messages The Linux kernel maintains a buffer of the most recently issued console messages and passes these to the console during the registration process This generally allows etherconsole to process all the messages generated by the system during the boot process even those issued before the network is available The size of the kernel message buffer can be expanded to prevent the loss of early boot messages because of buffer wrapping but this has not been necessary in our environment Although etherconsole initialization is later than standard console initialization it still precedes
22. most system initialization processing and therefore supports error diagnosis for a large fraction of system initialization Etherconsole uses a link layer protocol and thus it can communicate only with other machines on the same physical subnet In its default configuration it performs all of its output by setting the Ethernet MAC address to ff ff ff ff ff ff to force the hardware to doa broadcast However it can be configured to send output to a particular target MAC address with the console kernel boot parameter The syntax of this boot parameter is console ttyNn mac_address where t tyNn is a character device node in dev or cre ated by devfs 11 with a major and minor number indi cating it is an etherconsole device and mac_address is an Ethernet MAC address in 6 byte hexadecimal no tation Packets are transmitted by queuing them directly on the transmission queue of the Ethernet driver and in voking a special routine in the device driver to send out available packets without enabling interrupts polling for the device to become available if necessary To han dle input using link layer protocols etherconsole regis ters as the packet handler for its Ethernet frame type so that it receives all incoming packets with that frame type Etherconsole discriminates between packets that are console input and those that are broadcasts from other etherconsoles on the same subnet by checking the destination address in the Ethernet f
23. ocols 6 3 Serial Port Emulation Most server firmware and operating systems allow con sole interactions to be directed to one of the computer s serial ports As discussed above this is commonly used as the means of accessing the console of a server appli ance or blade For systems using x86 compatible pro cessors the serial port is an I O port with an address de fined in the system configuration The firmware or oper ating system uses the OUTB instruction to send data and commands to the serial port and the INB instruction to receive data or read the port status An alternative con sole over Ethernet design can intercept data and com mands issued to the serial port and redirect these over the network to a console emulator running on another system In this solution no change is necessary to the operating system it is simply configured to use the se rial console Figure 3 illustrates this concept As indi cated in the figure communication can be at either the link layer using Ethernet frames or the transport layer using TCP or UDP A variety of mechanisms can be used to intercept read and write requests to a serial port One approach is to add this feature to the firmware of the machine In this case the firmware is configured to trap INB and OUTB instructions written to a specific port and process them on its own Since machines capable of DHCP and remote boot already have the basic mechanisms for IP connectivity built into t
24. ole is the only way of providing the input that the machine requires 3 Background and Related Work Others have recognized the cost and complexity issues with providing console access to large clusters of servers and have developed a variety of solutions to address these problems In this section we describe both the alternative approaches to console support used in dense servers and blades and some work that is a pre cursor to our own solution to the problem 3 1 Alternative Approaches to Console Support We have identified five distinct approaches to provid ing console support that are in common use in commer cial data centers The first approach employs a Key board Video Mouse KVM switch which connects a single keyboard mouse and display to multiple servers typically 4 8 16 or 32 machines To interact with the console of a particular server the user selects the server using a mechanical or programmable selector on the KVM switch and the keyboard mouse and dis play are connected by the switch to that server s console ports A KVM switch that supports N servers requires 3N 3 cables 3 between each server and the KVM switch and 3 from the KVM switch to the shared key board mouse and display In addition to standard KVM switches there are a number of KVM extenders as well as KVM to Ethernet concentrators that have appeared on the market One advantage of KVM switches and ex tenders is that they are capable of pr
25. ontroller Each server blade runs its own copy of a com mon operating system image and server application set and the server blades in a chassis are typically config ured into a cluster We developed our own boot time firmware based on LinuxBIOS 18 and use the Linux DSA operating system and runtime environment from the MetaServer project Recently a number of com mercial dense server and server blade products have ap peared in the marketplace including ones from Am phus 1 Compaq 6 prior to its merger with Hewlett Packard Hewlett Packard 12 IBM 14 and Dell 7 All of these products share concepts similar to those found in the SDS work but all still include either stan dard or proprietary ports for console devices and require extra cabling and switches for console access The goal of etherconsole is to attach a console or console emulator to a server over a standard Ethernet connection In so doing it provides a complete replace ment for all console alternatives for both the firmware and the operating system Since a server must have a network connection typically Ethernet in commercial data center environments reusing it for console attach ment adds no additional hardware or cabling for con sole support The network interfaces cables or back plane wiring and switches are all required and would be present no matter how the console is attached Given our desire to maximize the packaging density of our server
26. rame header If it matches the hardware address of the local Ethernet in terface the packet is assumed to be console input Oth erwise it is treated as a broadcast from another ether console and discarded Like etherconsole T etherconsole contains tty sup port as well which allows us to use it as a full console replacement To provide tty support etherconsole re quires the character device node described above Early in boot the system uses the console entry points directly but once the init thread opens dev consol1e subse quent console interactions use the tty entry points Ether console provides all of the entry points needed by the tty code However many of the entry points do noth ing more than return since they are not applicable to the underlying Ethernet device Our final etherconsole implementation supports coercv and the modified syslogd we developed for coe as well as a Java console emulator similar to that used with etherconsole T Our link layer etherconsole including both the code inherited from the original netconsole implemen tation and all of the function that we added is 470 lines of code 5 Experience and Evaluation This section describes our experience with our console over Ethernet implementations 5 1 Usage Since our server blades are prototypes we wrote our own boot firmware based on LinuxBIOS 18 and ether boot 29 which allowed us to integrate etherconsole into both our firmware and our
27. rial were not possible we developed low level software to redirect console activity to the Ether net interface This paper describes the console support over the network interface that we developed for both our LinuxBIOS based boot time firmware and the Linux operating system We refer to this code as console over Ethernet or etherconsole We found it invaluable in de bugging and evaluating our prototype server blades We also describe ways of extending our work to make it more transparent to existing firmware and operating sys tems 1 Introduction Console support has been a feature of operating systems since their inception and it is perhaps one of their most basic and mundane components Modern computer sys tems make relatively little use of the console during nor mal operation and for reasons of cost space and sim plicity are often run without dedicated terminal equip ment connected to the console interface This is particu larly the case for servers packaged as server appliances where a server appliance is defined to be a computer sys tem specialized to run a single server application such as a web server or firewall However during system debug and for certain types of low level system administration tasks console support is essential In this paper we describe several variants of an im plementation of Linux console support that use the Eth ernet connection as the input output device We incor porated versions of thi
28. risle network console 2 is similar to etherconsole in that it provides remote console support over a network in this case an ATM network Based on the readily available documentation it is difficult to make a detailed comparison of etherconsole with the Fairisle network console In particular it is not clear whether the Fairisle network console is a complete re placement for all local console function One traditional method of accessing systems is through terminal oriented protocols such as telnet 5 and SSH 30 Although these protocols provide tty ac cess to the system and most of the needed function once the operating system and all of the required infrastruc ture are running unlike etherconsole they do not offer true console access and are not available until after ker nel and mult user system initialization has been com pleted Virtual Network Computing VNC 26 is a very commonly used way of gaining access to a graphical user interface GUI over the network It is often used for example to provide an X Windows session with a remote Linux host on a Microsoft Windows based sys tem Like telnet and SSH VNC depends on a broad range of underlying system services and thus cannot be used during system initialization WNC also requires more network bandwidth since it must transfer graphi cal screen contents to the remote system Also unlike etherconsole which is intended to work with server pro grams that catch messages f
29. rom and interact with large numbers of server blades VNC is intended to allow re mote one to one access to the graphical user interfaces of a relatively small number of host systems Another commercially available remote GUI access protocol is Citrix s Independent Computing Architecture ICA 4 which is used with Microsoft Windows based hosts Al though the details of ICA are very different from those of VNC they are conceptually quite similar 21 Finally although there is a SourceForge project en titled Network Console Project 20 as of this writing early 2003 it appears to be dormant 4 Design and Implementation We developed three different console over Ethernet implementations and each implementation contributed features that we found very useful in our work The first implementation which we call etherconsole T is a full replacement for the standard serial console Etherconsole T uses a kernel level interface to the socket library to send and receive console messages on a TCP connection over the Ethernet instead of doing low level device operations on the serial port as the serial console does The second implementation referred to in this paper as coe is actually more primitive in terms of function and reuses some technology from the Linux netconsole implementation described in Section 3 De spite its simplicity we found coe extremely useful in our work The final implementation called etherconsole merge
30. rver sys tems from Dell The ERA port provides console access to firmware functions as well as hardware monitoring in formation using an independent microprocessor mem ory and set of firmware and a dedicated network port presumably an Ethernet port Based on the published information it appears that the ERA collects informa tion over the I2C bus It serves only as a hardware and firmware console but not as the console for the operat ing system It may be possible to modify the operating system to interact with the ERA over the I2C This ap proach is probably adequate for a single system but the characteristics of the I2C bus may well make it unsuit able for clusters In summary all of these approaches require ad ditional cabling or hardware which decreases reliabil ity and adds complexity to the installation and manage ment of a cluster of server blades or appliances In ad USENIX Association FREENIX Track 2003 USENIX Annual Technical Conference 127 dition they increase costs in terms of equipment and floor space requirements because they require addi tional hardware devices such as KVM switches or serial concentrators Finally all of these console implemen tations decrease the density of the server systems them selves since they require parts on the server boards that can be eliminated if console access is provided through the network interface 3 2 Other Software Technologies Portions of our implement
31. s console support into both Lin uxBIOS 18 and Linux to provide the console support for a prototype dense server blade system that includes none of the standard external ports for console devices We call our console support console over Ethernet or etherconsole We found this code to be invaluable for both the hardware and software bring up and ongoing systems management of our prototype As we used our implementation we refined and extended its usefulness but we also identified some areas where further enhance ments are clearly desirable Currently there are some who believe that consoles are an anachronism a hold over from earlier days and clearly there are embedded systems environments that have no console support at all However we believe that for servers especially during certain portions of their life cycles console function is critical As noted above we needed console support during our debugging efforts and we would note that even embedded systems devel opers generally use some type of temporary console sup port usually some form of console over a serial line during the debugging of their code For servers given the complexity and flexibility of their configurations and their tendency to have a repair or replace rather than a pure replacement strategy for dealing with failures there is a need for console support beyond the development phase to set low level configuration values and capture system message output In
32. s the best features of the two previous implemen tations This section describes in turn each design and implementation along with the console emulator code that we developed to work with it 4 1 TCP IP Based Implementation Our initial implementation of console over Ethernet is a straightforward implementation of all of the console and tty function of the serial console using a TCP connection rather than a serial line as the transport Structurally as well as functionally etherconsole T is very similar to the serial tty and console code in the standard Linux distri bution with the major difference being the way that the driver code communicates with the console emulation 128 FREENIX Track 2003 USENIX Annual Technical Conference USENIX Association Ethernet TTY console Remote console Java runtime TCP IP packets TCP IP stack Server TCP IP stack Console Emulator Figure 1 etherconsole T a TCP IP based console over Ethernet program running on another system Since etherconsole T predated our other work with link layer communica tion protocols we chose to implement it using transport layer protocols rather than link layer networking Fig ure 1 shows the overall structure of etherconsole T and its console emulator program Since etherconsole T is an Ethernet tty it must fit into Linux s overall tty structure including the kernel line discipline code It is structured as a character de vice w
33. upport to help debug our server blades led to our second implementation coe Figure 2 depicts the USENIX Association FREENIX Track 2003 USENIX Annual Technical Conference 129 Ethernet switch coercv app packet filter Ethernet packets Servers network DD Console Monitor Figure 2 coe as deployed on prototype server blades implementation of coe on our prototype server blades We began our work on coe by implementing some simple extensions to Etherboot 29 and LinuxBIOS which allowed redirection of print messages over the Ethernet device as opposed to a serial port We then combined this code with portions of Red Hat s netcon sole patch in order to provide a unified link layer mes sage transmitter for both our firmware and the Linux ker nel Our implementation of coe uses link layer net working only transmitting raw Ethernet frames with a special frame type This allows our console to begin operation much earlier in system initialization since it does not depend on IP configuration Even when done at the kernel level IP configuration occurs relatively late in initialization and relies on the proper exchange of messages between a kernel level DHCP client and a DHCP server or the proper processing of kernel pa rameters The special Ethernet frame type allows other systems to identify and process coe packets properly and ensures that these packets do not conflict with the existing traffic on the network
34. ve raw network packets Coercv creates a packet socket using the stan dard socket system call specifying PF_PACKET as the protocol family and the coe Ethernet frame type as the protocol This causes the Linux kernel to set up a packet filter 19 for the coe Ethernet frame type the packet filter directs incoming frames with the specified frame type to coercv The coercv program uses the recvfrom system call to receive the incoming mes sages For sockets in the PF_PACKET protocol family the kernel returns the hardware address of the source of the packet in the sock_addr structure passed on the recvfrom call This allows coercv to either tag the messages that it prints with the Ethernet hardware address or filter the incoming messages and print only those whose source hardware address matches a speci fied value We also added support to the standard Linux syslogd program which logs messages to capture and log ones being sent by coe It uses a map of network 130 FREENIX Track 2003 USENIX Annual Technical Conference USENIX Association hardware addresses to tag the messages that it receives with the hostname of the server to allow the reader of the log file to determine what system originated each mes sage Neither coe nor coercv contains much code or is very complex Building on the then current version of netconsole coe adds 35 lines of code to the source file of which 26 lines are preprocessor conditional compi lation state
35. vfs html August 2002 12 Hewlett Packard Company HP bc1100 December 2001 13 IEEE IEEE standards for local and metropolitan area networks Virtual bridge local area networks IEEE Standard 802 1Q 1998 1998 14 International Business Machines Corporation BladeCenter _http www ibm com September 2002 15 International Business Machines Corporation The Decision Maker s Guide to Server Connectivity and Console Switching http www ibm com July 2002 16 The Java telnet ssh applet http javassh org 2002 17 M Johnson Red Hat Inc s network console and crash dump facility http www redhat com support wpapers redhat netdump 2002 18 R Minnich J Hendricks and D Webster The Linux BIOS In The Fourth Annual Linux Show case and Conference October 2000 19 J Mogul R Rashid and M Accetta The packet filter An efficient mechanism for user level net work code In Proceedings of the 11th ACM Sym posium on Operating Systems Principles SOSP pages 39 51 1987 20 Network Console Project http sourceforge net projects netconsole 2003 21 J Nieh J Yang and N Novik A comparison of thin client computing architectures Technical Re port CUCS 022 00 Columbia University Novem ber 2000 22 L Peterson and B Davie Computer Networks Second Edition Morgan Kaufman 2000 23 Philips Corporation I2C Bus http www semiconductors philips com buses i2c 2003
36. y of lost messages 5 4 Comparison with Netconsole We made three very significant extensions to netconsole First we designed etherconsole to be built into the ker 132 FREENIX Track 2003 USENIX Annual Technical Conference USENIX Association nel and enabled at boot time rather than being packaged as a kernel module that can be used only after the system is fully initialized This allows etherconsole to start op eration much sooner than netconsole so that messages generated during system boot can be observed remotely Second etherconsole uses a link layer protocol that re quires only basic network hardware support and MAC level addressing whereas netconsole uses UDP sockets requiring full IP configuration and addressing Third we added support for input by incorporating the tty support described above In addition etherconsole also derives from our very first implementation of the full console over Ethernet which was a completely independent de velopment that started before netconsole appeared 6 Future Work There are a number of areas in which our work can be extended something that we hope to encourage by mak ing our code available to the open source community 6 1 Functional Extensions Our implementation has a few functional deficiencies In particular it does not handle the control alt delete key sequence for rebooting nor does it process the sys req key used by some Linux kernel debugging features Rat

Download Pdf Manuals

image

Related Search

Related Contents

The Art of Storage WS1006B Instructions / Assembly  ID Interface Module User`s Manual (Hardware)  Starvert iC5  Communique ou Meurs  Manuel - Niviuk  MANUAL DE USUARIO  PCG-GT1のカタログはこちら  File - MICRO TECHNOLOGIES (NZ) LIMITED  LG LS660P Brochure (Spanish)    

Copyright © All rights reserved.
Failed to retrieve file