Carrier Grade Linux

Monday, July 25th, 2005

I am always interested in learning about new open source software developments, but I found this article, “Carrier Grade Linux – The Next Generation” to be particularly interesting. The article discusses implementations of Linux on a much greater scale than I have experienced. “A transformation is taking place in telecommunications to meet the demands of new voice and data technologies…To enable VoIP traffic, application servers must provide carrier-grade reliability that guarantees high service availability (99.999% uptime or better).” Carrier Grade Linux (CGL) is the result of three-dozen industry participants working toward the goal of creating an open source alternative to the types of proprietary hardware and software required to handle the demands of the telecommunication industry.

CGL has seven aspects: Availability, Clusters, Serviceability, Performance, Standards, Hardware, and Security. CGL is able to maintain 24/7 availability because of the ability to hot-swap disks, RAM, or even CPUs. Error control and correction (ECC) is used to detect memory errors. Even software patches can be applied while the affected program is running. Clustering allows multiple machines to share the workload and even take processes over for a failed node. Serviceability requires, “Diagnostic monitoring of temperature controls, fans, power supplies, storage media, the network, CPUs and memory are needed for quick failure detection and failure diagnosis.” If something fails CGL alerts the administrator so maintenance action can be taken. Performance requirements of CGL call for efficient use of technologies such as hyper-threading, symmetrical multiprocessing (SMP), and large memory amounts (more than 4GB). Network traffic must also be prioritized so more important data can be processed before less important information. Standards are necessary to ensure the portability of software from one CGL platform to another. Over time more standards will be added to CGL in order to meet the needs of the telecommunications industry. Hardware is the final aspect of CGL. Technologies such as PCI-Express and blade servers important parts of CGL because they are what is used in the industry.

I can see many potential uses of CGL capabilities in standard Linux systems. As CGL matures many features will be implemented in the standard Linux kernel. That is the power of open source software, improvements in one industry can be shared with every other industry. I do not think that CGL will allow information systems to perform new functions. CGL will however allow existing functions to be performed with 99.999% availability. Industries such as banking, finance, internet service providers, web hosts, or any other firm which requires high availability could benefit from the enhancements of CGL.

References:
Linux World Magazine, March 2005, “Carrier Grade Linux – The Next Generation”, pg.10, John Cherry, Takashi Ikebe, Terence Chen, Steven Dake.

IBM Linux Commercials

Thursday, July 21st, 2005

IBM has one of the best marketing departments in the entire technology industry. Over the years I have enjoyed many of the TV commercials by IBM. My favorite IBM advertisement was the Linux commercial with the little kid and Muhammad Ali called “Linux is shaking things up”.

NoMachine NX (FreeNX)

Friday, July 15th, 2005

Still using VNC or proprietary softwares like Citrix? You might want to check out NX technology. What is NX technology? NX was developed by NoMachine and FreeNX is a GPL implementation of the NX Server. Here is how FreeNX describes the technology:

NoMachine NX is a Terminal Server and remote access solution based on a comprising set of enterprise class open source technologies. Thanks to the outstanding X-Window compression technology developed by NoMachine, NX makes it possible to run any graphical application on any operating system across any network connection at incredible speed. Besides the native X-Window protocol, NX is able to translate and tunnel industry standard protocols like the RDP Protocol, used by Microsoft and Citrix, and the VNC protocol, used by a number of freely available tools, into X-Window, giving secure and fast access to the complete set of network computing facilities available inside a corporate network.

I was going to do a step-by-step installation of the FreeNX server on Debian but Carla Schroder beat me to it. Read her tutorial, then keep reading because I have included a few extra pieces of information:

FreeNX Ups the Remote Linux Desktop Ante
May 31, 2005
By Carla Schroder

Debian Installation
FreeNX has not yet made it into Debian’s official archives. To get FreeNX for your Debian system add this line to /etc/apt/sources.list:

deb http://kanotix.com/files/debian/ ./

Next, run apt-get update as root to update your package lists, then install with

$ apt-get install freenx

It will pull in other packages to satisfy all dependencies, such as expect, freenx, libnxcomp0, libnxcompext0, netcat, nxagent, nxlibs, and nxproxy. During installation it will ask you if you want to use the default DSA key that ships with FreeNX…[I say select the NoMachine keys option]

Then, as root, you’ll need to add users and passwords for users who are authorized to connect to the server. These users must also have system accounts, so if they are not in /etc/passwd you’ll have to create system accounts for them. This is standard SSH behavior, and users who do not have accounts have no business trying to log in, so don’t whine about it. It is also a good security practice to force remote users to have different passwords than their system logins:

$ nxserver –adduser your-username
$ nxserver –passwd your-username

Interestingly, you only get one chance to set the password — it does not ask for confirmation, so type carefully.

It is not necessary to run the nxsetup utility because the installer does the setup for you. Make sure port 22 is open, and you’re done.

To install the FreeNX server under Fedora check out this tutorial by Rick Stout

That takes care of the server side. Now a client application needs to be installed in order to gain access to your shiny new NX server. Go to the NoMachine downloads page and locate the proper client for your OS. Clients exist for Windows, Linux, Mac, and Solaris operating systems. If you are feeling really adventurous you can try the clients for PS2, iPAQ, or Zaurus.

Once you have downloaded and installed the client. Open the program and go through the “NX Connection Wizard”. Fill out the information, and NoMachine will save your settings.
(1) SSL encryption must be enabled. I am not sure why, I don’t have a SSL certificate on my server, but the connection always seems to fail without it. (2) Sometimes when logging on, a message will appear about some error creating a cache. I have gotten it a few times, but I can’t figure out what to do about it. It seems to appear if the client side cache has nothing in it. (If you are having problems with the NX client be sure to clear out its cache) (3) Increase the amount of “memory” cache in the client config settings to 32MB. It just seems to help the performance.

How to change the default webpage path for Apache2 in Ubuntu

Tuesday, July 12th, 2005

* Initially you will need to create a new directory where you want Apache to point to for its default web content. The original default path is located in “/var/www/apache2-default”, so we want our new default directory to be “NEW-DIRECTORY-NAME” (for tutorial sake). Also make sure there is a valid index.html file inside the directory to test the new default path.
* Go to “/etc/apache2/sites-available/”, the “default” text file is what you will need to edit.
* So go ahead and make your backup of the default text file in. (e.g. default.bak)
* Now edit the directory path, which is about 17 lines down from the top.

This is what you should see for the path list information:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
RedirectMatch ^/$ /NEW-DIRECTORY-NAME/
</Directory>

* All you need to do now is STOP and then RE-START the Apache2 web service.
To do this open up your console and login as root (or you can ’su’ to root).
* Change your directory to “/etc/init.d/”
-Now STOP the apache service by using the command: apache2 -k stop
-Now START the apache service by using the command: apache2 -k start
* Your default web content directory should now be “NEW-DIRECTORY-NAME” (or what ever you want to called it).

Cell Processor

Monday, July 11th, 2005

The very first sentence of the article got my attention. “The eagerly anticipated Cell processor from IBM, Toshiba and Sony leverages a multicore 64-bit Power architecture with an embedded streaming processor, high-speed I/O, SRAM and dynamic multiplier in an effort, the partners hope, to revolutionize distributed computing architectures.” Two things immediately jumped out at me. First, the 64-bit nature of the Cell processor. Linux already has had 64-bit capabilities for some time now while Windows has just released Windows XP 64-bit. Second, the Cell processor will have a Power architecture. Linux can run on many different architectures: Intel x86, PowerPC, and SPARC just to name a few. Based on these two aspects I would theorize that the OS choice for systems running a Cell processor will initially be Linux. I am sure that Microsoft will jump into the market if the Cell processor design becomes a standard chip design. The design itself is also interesting. The Cell processor is not a single processor like we have in our computers today. Rather, it is composed of multiple “processing elements” which can divide the processing load. Because the elements are physically separate, the connections between the “processing elements” must be fast, really fast. Data will be transferred between them on “parallel bundles of serial I/O links — [which] operate at 6.4 GHz per link.” Another feature of the Cell processor are the, “one hundred twenty-eight 128-bit registers”. With 128-bit registers the Cell processor will be able to rapidly manipulate huge amounts of data.

It seems as though the Cell architecture will be used beyond its initial application, the PlayStation3. The companies involved in creating the chip IBM, Toshiba and Sony all target different markets with their products. IBM might use the Cell processor in their high-end servers. “At the top level, the architecture appears to be a pool of “Cells,” or clusters of perhaps four identical processing elements. All of the Cells in a system — or for that matter, a network of systems — are apparently peers.” A more interesting use would be connecting these servers into a powerful “Cell grid”. The combined computational power could be used to perform calculations, simulations, or other types of research. Toshiba might use the Cell processor in medical imaging applications or possibly even laptops (the article does not discuss power consumption or heat emission). Sony will put the Cell processor into their upcoming PS3, but I doubt Sony will stop there. I think Sony would like to incorporate the Cell processor into various consumer electronics. As computing power increases perhaps we will see a Sony-Ericsson phone with enough processing power to play a movie or a demanding video game like Half-Life 2.

References:
EETimes.com, 4-6-2005, “Details trickle out on Cell processor”, Brian Fuller, Ron Wilson