EOF

Carrier Grade Linux

Ibrahim Haddad

Issue #123, July 2004

Your next mobile phone server will run Linux. Leading telecom vendors are enhancing Linux for reliability, high availability, scalability and more.

In January 2002, the Open Source Development Labs (OSDL, www.osdl.org) established the Carrier Grade Linux (CGL) Working Group. This initiative was intended to enhance the Linux kernel to achieve a highly available, secure, scalable and easily maintained open-source platform suitable for carrier grade systems.

Many companies joined the CGL initiative, and today the CGL is composed of member companies that work together contributing to the CGL requirement definition, helping current and starting new open-source projects to meet these requirements. Many CGL member companies already have contributed pieces of various technologies to open source to make the Linux kernel a more viable option for telecom platforms. CGL activities are providing momentum for Linux in the telecom space, allowing it to be an alternative to proprietary operating systems.

Gateways, signaling and management servers are the three main areas into which the CGL Working Group expects the majority of applications implemented on CGL platforms to fall. In addition to specifying the requirements, the Working Group also identifies existing open-source projects supporting the road map, implementing required components and interfaces of the platform. When an open-source project does not exist to support a CGL requirement, the Working Group launches or supports new projects to implement the missing functionality.

The scope of the CGL Working Group covers two main areas, carrier grade enhancements to the kernel and development tools. Kernel enhancements cover availability, security, scalability and reliability, as well as changes to interfaces for hardware, user-level code, application code and development and debugging tools. Software development tools covered by CGL include debuggers and analyzers.

The CGL Requirements Definition Version 2.0, released October 9, 2003, divides the requirements into the following main categories:

  1. Clustering supports the use of multiple carrier server systems providing higher levels of service availability through redundant resources and recovery capabilities.

  2. The security requirements aim at maintaining a certain level of security while not endangering the goals of high availability, performance and scalability. These requirements support the use of additional security mechanisms to protect the systems and provide special mechanisms at kernel level to be used by telecom applications.

  3. Standards: CGL specifies standards to which compliance is required, including the Linux Standard Base, POSIX standards and a number of Internet RFCs.

  4. CGL specifies platform requirements that support interactions with the hardware making up carrier grade systems. Examples of platform requirements include: hot insert, hot remove, remote boot support, boot cycle detection and support for diskless systems.

  5. Availability requirements support heightened availability of carrier grade systems, such as improving the robustness of software components or by supporting recovery from failure of hardware or software. Examples include support for watchdog timer interface, disk and volume management, Ethernet link aggregation and link failover and application heartbeat monitor.

  6. Serviceability requirements support the availability of applications and the operating system. Examples include support for producing and storing kernel dumps, dynamic debug of the kernel and running applications, platform signal handler and remote access to event logs.

  7. Performance requirements support performance levels necessary for the environments a carrier grade system would encounter. Examples include support for application (pre) loading, soft real-time performance, kernel preemption and RAID 0 support.

  8. Scalability requirements support vertical and horizontal scaling of carrier server systems, such as the addition of hardware resources to result in acceptable increases in capacity and throughput.

  9. Tools requirements provide capabilities to facilitate diagnosis, such as the support for a kernel debugger, kernel dump analysis and the capability to debug multi-threaded programs.

Many individuals within the CGL initiative are active participants in the main-line Linux development community. In addition, the implementations providing the carrier grade enhancements to the kernel are open-source projects and are planned for integration with the Linux kernel. All of the enhancements are available from their respective project Web sites; please refer to the OSDL Web site for links.

As of January 2004, the CGL Working Group is developing CGL version 3.0. The group expects to release the final official version by October 2004. The participation in OSDL CGL is open to everyone. For more information, please visit the OSDL Web site.

Ibrahim Haddad, contributing editor to LJ, is a Researcher at the Ericsson Research & Innovation Department in Montréal, Canada.