Diskless Linux Terminal - Engineering Seminar

Diskless Linux Terminal
As technology is advancing rapidly, network cards are becoming cheaper and much faster. With high speed network cards, remote access will become as fast as the local disk access, which makes possible diskless nodes. Diskless Computers do not have any hard-disk, floppy drives and tape drives. They offer significant savings in "Total Cost of Ownership" by eliminating the maintenance costs. When the diskless terminal boots, it downloads the necessary client software from the LTSP server, and from then on runs as a self-contained PC.
Diskless Linux computer will become immensely popular and will be the product of this century and in the next century. The diskless Linux computers will be very successful because of the availability of very high-speed network cards at very low prices. Today 100 Megabit per second (11.92 Megabytes per sec transfer rate) network cards are common and in about 1 to 2 years 1000 MBit (119.2 Megabytes per sec transfer rate) network cards will become very cheap and will be the standard.
In near future, Monitor manufacturers will place the CPU, NIC. RAM right inside the monitor to form a diskless computer!! This eliminates the diskless computer box and saves space. The monitor will have outlet for mouse, keyboard, network and power supply

Think of an idea whereby a remote filesystem could be mounted, in other words attached on to your local filesystem. You do not need to log in remotely to that system and ,say . transfer files and at the same time you don't need any special commands to do it. Using nfs we can connect one filesystem on one machine (say acharya) to another filesystem on another machine (say ramanuja) and provide an illusion at ramanuja that they are locally connected. You can work from ramanuja on this mounted filesystem as if it was local. Hence our idea of large disks on some computers (acharya), accessed by others. Network setup depends upon kernel version being used. There are at least two possible methods to load the kernel over the network.
1 PXE : Intel's Preboot Execution Environment system is a form of smart boot ROM built into some networking cards or motherboards.
2 The etherboot port produces ROM-able code to boot kernels over the network. The code can be either burnt into a boot PROM on a network card, or loaded from a local floppy (or hard) disk drive, or from a running MS-DOS system. Many network cards are supported.

Consider a small network (say LAN) , for this a group of computer have diskless, ethernet card in which a bootrom (the coded bootrom easily available from vendor's or the source code of bootrom can be download from the sites), a Linux sever having disk and rest of them same for LAN .

An overview to build diskless nodes is as follows:
Download/Install red hat RPM
Test with floppy disk (1.44MB) having the PROM program.
Next you have to make the Network card which has the bootable prom
Either purchase NIC ready with prom or
Purchase the EPROM's
Purchase EPROM burner to burn your own EPROM's, Transfer the tested program from floppy to prom via EPROM burner

In order to boot over the network, the computer must get
1. an identity
2. an operating system image and
3. usually, a working filesystem.

Consider a diskless computer (DC) that has a network boot ROM. It may be one of several identical DCs. How can we distinguish this computer from others? There is one piece of information that is unique to that computer (actually its network adapter) and that is its Ethernet address. Every Ethernet adapter in the world has an unique 48 bit Ethernet address because every Ethernet hardware manufacturer has been assigned blocks of addresses. By convention these addresses are written as hex digits with colons separating each group of two digits, for example - 00:60:08:C7:A3:D8 .

The protocols used for obtaining an IP address, given an Ethernet address, are called Boot Protocol (BOOTP) and Dynamic Host Configuration.Protocol (DHCP). DHCP is an evolution of BOOTP. In our discussion, unless otherwise stated, anything that applies to BOOTP also applies to DHCP. An example of a DHCP exchange goes like this:

DC: Hello, my hardware address is 00:60:08:C7:A3:D8, please give me my IP address.

BOOTP OR DHCP server: (Looks up address in database.) Your name is Abram. your IP address is, your server is the file you are supposed to boot from is /tftpboot/vmlinux.nb (and a few other pieces of information).
It is a wonder how the DC found the address of the BOOTP server in the first place. The BOOTP request was broadcast on the local network and any BOOTP server that can answer the request will.

After obtaining an IP address, the DC must download an operating system image and execute it. Another internet protocol is used here, called Trivial File Transfer Protocol (TFTP). TFTP is like a cut-down version of FTP— there is no authentication, and it runs over User Datagram Protocol (UDP) instead of Transmission Control Protocol (TCP). UDP was chosen instead of TCP for simplicity. The implementation of UDP on the DC can be small so the code is easy to fit on a ROM. Because UDP is a block oriented, as opposed to a stream oriented, protocol, the transfer goes block by block, like this:

DC: Give me block 1 of /tftpboot/vmlinux.nb. TFTP server: Here it is. DC: Give me block 2.
and so on, until the whole file is transferred. Handshaking is a simply acknowledge each block scheme, and packet loss is handled by retransmit on timeout. When all blocks have been received, the network boot ROM hands control to the operating system image at the entry point.

Finally, in order to run an operating system, a root filesystem must be provided. The protocol used by Linux and other Unixes is normally NFS, although other choices are possible. However the operating system must be capable of running with a root filesystem that is a NFS, instead of a real disk. Linux has the required configuration variables to build a version that can do so.

The Network File System (NFS) was developed to allow machines to mount a disk partition on a remote machine as if it were on a lo'cal hard drive. This allows for last, seamless sharing of files across a network. It also gives the potential for unwanted people to access your hard drive over the network (and thereby possibly read your email and delete all your files as well as break into your system) if you set it up incorrectly. There are other systems that provide similar functionality to NFS.

Samba : Provides file services to Windows clients.
Coda : File System is still in development but is designed to work well with disconnected clients.

The boot process
All PC systems start the boot process by executing code in ROM (specifically, the BIOS) to load the sector from sector 0, cylinder 0 of the boot drive. The boot drive is usually the first floppy drive (/dev/fdO). The BIOS then tries to execute this sector. On most bootable disks, sector 0, cylinder 0 contains either:
Code from a boot loader, which locates the kernel, loads it and executes, or
The start of an operating system kernel, such as Linux.

If a Linux kernel has been raw-copied to a diskette, the first sector of the disk will be the first sector of the Linux kernel itself. This first sector will continue the boot process by loading the rest of the kernel from the boot device. When the kernel is completely loaded, it initializes device drivers and its internal data structures. Once it is completely initialized, it consults a special location in its image called the ramdisk word. This word tells it how and where to find its root filesystem. A root filesystem is simply a filesystem

that will be mounted as "7". The kernel has to be told where to look for the root filesystem; if it cannot find a loadable image there, it halts.

Once the system has loaded a root filesystem successfully, it tries to execute the init program (in /bin or /sbin). init reads its configuration file /etc/inittab. looks for a line-designated sysinit, and executes the named script. The sysinit script is usually something like /etc/rc or /etc/init.d/boot. This script is a set of shell commands that set up basic system services, such as running fsck on hard disks, loading necessary kernel modules, initializing swapping, initializing the network, and mounting disks mentioned in /etc/fstab. This script often invokes various other scripts to do modular initialization.

NFS Setup
The administrator maintains the directories that could be mounted from the server on to the client .So when the client issues a mount request the mountd daemon on the server checks the file "/etc/exports" to verify access rights, transfers control to another daemon nfsd which file for corresponding actions. So there exists /etc for the server and /tftpboot/ for the client . There are three main configuration files you will need to edit to set up an NFS server: /etc/exports, /etc/hosts.allow, and /etc/hosts.deny. Strictly speaking, you only need to edit /etc/exports to get NFS to work, but you would be left insecure setup.
/etc/hosts.allow and /etc/hosts.deny

These two files specify which computers on the network can use services on your machine. Each line of the file is an entry listing a service and a set of machines. When the server gets a request from a machine, it does the following:

It first checks hosts.allow to see if the machine matches a description listed in there. If it does, then the machine is allowed access.

If the machine does not match an entry in hosts.allow, the server then checks hosts, deny to see if the client matches a listing in there. If it does then the machine is denied access.

If the client matches no listings in either file, then it is allowed access.

Name-address resolution
For small networks name address resolution could well be carried out by the server which refers the "/etc/hosts" fde . [Add to] "/etc/resolve.conf'
Make a fde named resolv.conf in which the server name is added nameserver acharya   (or use ADDRESS)
//eg nameserver // ( Suppose here "acharya" is the server name) Make a fde named "/etc/hosts".Add into it each clients name and ip address
eg, address localhost
1 acharya
2 ramanuja

This helps in getting connected to a terminal by name rather than ip address .The client needs to know about its ip-address. its kernel image location at the server and fdesystem.

Assigning address to a client and booting
Dynamic host conf. Protocol .Normally a client issues a broadcast message with its hardware address at the time of booting .The server identifies the machine from the hardware addresses and by refering to its "dhcpd.cbnf file determines the ip-address as well the location of kernel image .Though dhcpd stands for dynamic address configuration protocol we normally make use of it to assign fixed address by including a clause "fixed-address"

The following are benefits of using diskless computers.

  • Total cost of ownership is very low in case of Diskless computers. Total cost of ownership is cost of initial purchasing + cost of maintenance. The cost of maintenance is usually 3 to 5 times the cost of initial computer purchase and this cost is recurring year after year. In case of Diskless computers, the cost of maintenance is completely eliminated.
  • All the backups are centralized at one single main server.
  • More security of data as it is located at server.
  • No need of UPS battery, air-conditioning, dust proof environment for diskless clients, only server needs UPS battery, A/C and dust proof environment.
  • Noise is completely eliminated since diskless computer does not have Fan motor, and local hard disk. Only server makes lots of noise but it is enclosed in a server room.
  • Protection from Virus attack - Computer virus cannot attack diskless computers as they do not have any hard disk. Virus cannot do any damage to diskless computers. Only one single server box need to be protected against virus attack. This saves millions of dollars for the company by avoiding installation of vaccines and cleaning the hard disks!!
  • Server can have large powerful/high performance hard disks, can optimize the usage of disk space via sharing by many diskless computer users.

Diskless Linux computer network will become immensely popular and will be the product of this century and in the next century. The diskless Linux computers will be very successful because of the availability of very high-speed network cards at very low prices. Today 100 Megabit per second (12.5 MB per sec transfer rate) network cards are common and in about 1 to 2 years 1000 MBit (125 MB per sec transfer rate) network cards will become very cheap and will be the standard.

In near future, Monitor manufacturers will place the CPU, NIC, RAM right inside the monitor to form a diskless computer!! This eliminates the diskless computer box and saves space. The monitor will have outlet for mouse, keyboard, network RJ45 and power supply.

No comments:

Post a Comment

leave your opinion