Membangun LTSP

GNU/Linux adalah platform yg amat tepat untuk membangun diskless thin client, salah satunya GNU/Linux Debian Etch... Sebelum kita mulai installasi LTSP, perlu kita ketahui cara kerjanya :

#. Ketika komputer client dihidupkan, maka akan terjadi proses "Power On Self Test" (POST), pada saat proses POST terjadi, BIOS akan mencari ROM yang terpasang pada network card. ROM yang dicari itu harus sudah terisi kode Etherboot.

#. Ketika proses POST selesai, kemudian kode Etherboot yang terdapat pada ROM network card itu akan dieksekusi, kode buatan Etherboot itu kemudian akan mencari network card yang terpasang, apabila berhasil ditemukan maka network card tersebut akan di-initialisasi.

#. Kode Etherboot itu akan mengirimkan sinyal ke jaringan berupa DHCP Request. DHCP Request itu akan disertai dengan MAC Address dari network card yang digunakan, DHCPD daemon yang aktif di server kemudian akan memperoleh sinyal permintaan itu, dan akan mencari data pada file konfigurasi yang telah ada, DHCPD daemon kemudian akan mengirimkan paket balasan yg berisi beberapa informasi, yaitu :
> IP Address untuk client
> Konfigurasi NETMASK untuk jaringan internal
> Lokasi file kernel yang akan di-download.
> Parameter tambahan untuk dikirimkan ke kernel, melalui baris perintah kernel.




#. kemudian kode Etherboot akan menerima balasan dari server LTSP, dan kemudian melakukan konfigurasi TCP/IP pada network card dengan parameter yang diterima.

#. Dengan menggunakan TFTP ( Trivial File Transfer Protocol ), kemudian kode Etherboot akan berusaha untuk men-download file kernel dari server LTSP, setelah kernel berhasil didownload sepenuhnya oleh client, kemudian kode Etherboot akan meletakkan kernel tersebut ke lokasi memory yang tepat.

#. Kemudian kontrol akan diambil alih oleh Kernel, Kernel ini kemudian akan melakukan initialisasi seluruh system dan peralatan terpasang yang dikenali, pada bagian akhir dari kernel terdapat image filesystem yang akan diletakkan di memory sebagai sebuah ramdisk, dan sementara di-mount sebagai root filesystem, hal ini dilakukan dengan memberikan baris perintah root=/dev/ram0 yang kemudian akan memberitahu kernel untuk melakukan proses mount pada image tersebut sebagai root directory.

#. Setelah kernel selesai melalui proses booting, akan dieksekusi program init. Tetapi, pada kasus ini, dilakukan perubahan dengan menginstruksikan kernel untuk melakukan membaca shell script. Hal itu dilakukan dengan memberikan parameter init=/linuxrc pada baris perintah kernel, script /linuxrc tersebut kemudian akan memeriksa PCI bus, mencari network card.

#. Setiap perangkat PCI yang ditemukan, kemudian akan dilakukan proses pencarian pada file /etc/niclist, untuk mencari apakah perangkat tersebut ada pada daftar tersebut. Jika ditemukan, maka nama module dari NIC tersebut akan diambil untuk kemudian dieksekusi. Untuk ISA card, module driver tersbut HARUS dirinci pada baris perintah kernel, disertai dengan IRQ atau parameter alamat yang dibutuhkan.

#. Setelah network card berhasil diidentifikasi, maka script /linuxrc akan mengambil modul kernel yang mendukung network card tersebut, dhclient kemudian akan dijalankan, untuk melakukan query informasi ke DHCP server, request itu dilakukan untuk yang kedua kalinya, sebab apabila menggantungkan pada hasil query yang dilakukan oleh Etherboot, maka informasi tersebut tidak sepenuhnya dapat diterima oleh kernel, Kernel kemudian akan mengabaikan konfigurasi NFS Server yang disertakan sebagai parameter tambahan root-path. Hal ini perlu dilakukan jika dimiliki NFS server yang berada pada server terpisah dari TFTP server.

#. Ketika dhclient memperoleh jawaban dari server LTSP, kemudian akan dieksekusi file /etc/dhclient-script, yang mana kemudian akan berusaha membaca konfigurasi untuk kemudian melakukan setup pada interface eth0. Sampai pada proses ini, filesystem root berada di ramdisk..

#. Selanjutnya, script /linuxrc akan melakukan proses mount ulang pada filesystem melalui NFS. Direktori yang di-export pada server umumnya adalah /opt/ltsp/i386. Proses tersebut tidak bisa langsung melakukan proses mount filesystem yang baru sebagai /. Proses mount akan terlebih dahulu dilakukan pada /mnt. Kemudian, dilakukan pivot_root. pivot_root kemudian akan melakukan pertukaran filesystem root yang aktif dengan filesystem baru. Setelah proses tersebut, filesystem NFS akan di-mount pada /, dan filesystem root terdahulu akan di-mount pada /oldroot.

#. Setelah proses mount dan pivot pada filesystem root yang baru selesai, shell script /linuxrc telah selesai melakukan perintah yang ada, dan saatnya diperlukan untuk menjalankan program init yang seharusnya. kemudian Init akan membaca file /etc/inittab dan mulai melakukan setting environtment client tersebut.

#. Init menggunakan konsep runlevel, dimana tiap runlevel memiliki konfigurasi services yang berbeda. LTSP akan diawali pada runlevel '2'. Konfigurasi tersebut dapat dilihat pada baris initdefault pada file inittab. salah satu item yang berada pada urutan awal yaitu perintah rc.local yang akan aktif sementara workstation berada pada tahap 'sysinit'.

#. Script rc.local kemudian akan membuat ramdisk sebesar 1 mb untuk menyimpan file-file yang akan dibuat atau diubah.

#. Ramdisk akan di-mount sebagai direktori /tmp. Semua file yang akan dituliskan sebenarnya akan diletakkan pada direktori /tmp, dan nantinya akan terdapat symbolic link yang mengacu pada file-file tersebut. Filesystem /proc kemudian di-mount. Jika client ditentukan untuk melakukan swap over NFS, maka direktori /var/opt/ltsp/swapfile akan di-mount sebagai /tmp/swapfiles. Jika, belum tersedia swapfile untuk client tersebut, maka akan dibuat secara otomatis. Ukuran dari swapfile tersebut ditentukan pada file lts.conf .
Swapfile kemudian akan diaktifkan, dengan menggunakan perintah swapon.

#. Interface loopback akan dikonfigurasi. Interface tersebut nantinya akan menggunakan IP Address 127.0.0.1, Jika Local apps diaktifkan, maka direktori /home akan di-mount, sehingga aplikasi tersebut dapat mngakses direktori home.

#. Beberapa direktori kemudian akan dibuat pada filesystem /tmp untuk menyimpan beberapa file sementara yang dibutuhkan sewaktu system berjalan. Direktori yang akan dibuat tersebut adalah sebagai berikut :
a. /tmp/compiled
b. /tmp/var
c. /tmp/var/run
d. /tmp/var/log
e. /tmp/var/lock
f. /tmp/var/lock/subsys

#. Proses selanjutnya adalah melakukan konfigurasi pada system X Windows. Pada file lts.conf, terdapat parameter yaitu XSERVER. Jika parameter tersebut tidak diketemukan, atau ditentukan menjadi "auto", maka akan dilakukan proses deteksi. Jika card yang digunakan adalah PCI, maka akan diambil PCI Vendor dan Device id, untuk kemudian dicari apakah terdapat pada file /etc/vidlist.

Jika card tersebut didukung oleh XFree86 4.X, maka pci_scan akan memberikan hasil yaitu nama dari driver modul yang digunakan. Jika hanya didukung oleh Xfree86 3.3.6, maka pci_scan akan memberikan X server yang akan digunakan. Script rc.local dapat membedakan hasil dari pci_scan tersebut dikarenakan pada versi terdahulu 3.3.6 nama server didahului oleh 'XF86_'

#. Jika digunakan XFree86 4.x, maka script /etc/rc.setupx akan dijalankan untuk membentuk file XF86Config untuk X4. Jika yang digunakan adalah Xfree86 3.3.6 maka script /etc/rc.setupx3 akan dijalankan untuk membentuk file XF86Config.
File XF86Config akan dibuat, berdasarkan file /etc/lts.conf.

#. Ketika script rc.setupx selesai, maka alur proses akan kembali pada rc.local. Kemudian /tmp/start_ws akan dibuat. Script ini juga berfungsi untuk menjalankan XServer. File /tmp/syslog.conf juga akan dibuat. File ini akan menginformasikan syslogd daemon, host manakah pada jaringan yang akan menerima informasi logging workstation. Syslog host ditentukan pada file lts.conf. Terdapat symbolic lynk /etc/syslog.conf yang mengacu ke file /tmp/syslog.conf.

#. Syslogd daemon kemudian akan dijalankan, menggunakan konfigurasi file yang disebutkan pada langkah sebelumnya. Alur proses kemudian dikembalikan ke init. Init akan mencari initdefault untuk menentukan runlevel yang digunakan. Nilai dari initdefault adalah 2, sama halnya dengan yang ditentukan pada lts_core-2.08.

#. Runlevel 2 akan menyebabkan init untuk menjalankan script set_runlevel yang akan membaca file lts.conf dan menentukan runlevel workstation yang dijalankan.
Standard runlevel untuk LTSP adalah 3, 4, dan 5.
> 3 - Akan menjalankan shell. Sangat berguna untuk debugging workstation.
> 4 - Akan menjalankan satu atau lebih Telnet session pada mode karakter atau text base. Sangat cocok jika diaplikasikan untuk menggantikan serial terminal.
> 5. - GUI mode. Ini akan menjalankan X windows, dan mengirimkan query XDCMP ke server, yang akan menampilkan kotak dialog login untuk akses ke server LTSP. Dibutuhkan display manager yang aktif di server, seperti XDM, GDM atau KDM.







0 komentar: