LTSP


Linux Terminal Server Project (ou somente LTSP) é um projecto baseado em Linux que agrupa várias ferramentas e protocolos, com a finalidade de proporcionar um ambiente de trabalho remoto. Todo o software é corrido no servidor, e os terminais servem apenas de interface entre o utilizador e as aplicações – os poucos ciclos de processamento gastos são para enviar os dados da placa de rede à placa gráfica. Com efeito, é possível ter vários clientes com hardware antigo (eg. Pentium a 90Mhz, com 16MB de RAM e placa gráfica de 2MB) a ter um desempenho equivalente ao do servidor (que poderia ser um Pentium 4 a 3GHZ com 1GB RAM e placa gráfica de 2MB). 
A primeira das tecnologias envolvidas é o standard PXE, que permite efectuar o arranque de um sistema pela rede. Esta especificação requer suporte na placa de rede (NIC). Aquando do arranque da máquina, a BIOS, devidamente configurada para o efeito, notifica a NIC para arrancar por PXE e esta, por sua vez, envia um pacote broadcast e espera obter configurações da rede. Em caso de timeout, o arranque é delegado para a BIOS novamente, e processado normalmente (com os dispositivos de armazenamento locais). 
Para os casos em que as NIC's não suportam PXE é possível criar uma imagem de arranque com Etherboot, que pode ser armazenada no NIC, se este disponibilizar um encaixe (slot) para EPROM, ou ser utilizado através de uma disquete. Activando o arranque pela disquete, a BIOS lê a imagem, que será responsável pelo arranque da rede. Como com PXE, será enviado um pacote broadcast, desta vez assinado como sendo gerado por Etherboot. 
Para ambos casos, o servidor de DHCP deverá estar devidamente configurado para suportar uma ou ambas tecnologias. Sob um ponto de vista de uniformização das configurações, é possível gerar imagens Etherboot para PXE, de tal forma que o arranque PXE é delegado para o Etherboot, e este, por sua vez, irá arrancar a máquina como ilustra o diagrama da figura. 
Nas configurações do DHCP, além do endereço da rede, gateway, e hostname, deverá constar a localização de uma imagem do sistema operativo, que será descarregada pelo Etherboot, utilizando o protocolo TFTP, pela sua simplicidade de utilização. Este protocolo não requer autenticação, e o conjunto de operações como cliente é bastante limitado, resultando em clientes bastante pequenos.
Assim que o núcleo tiver sido descarregado, o PXE/Etherboot delega o arranque para o núcleo, criado especificamente para o efeito (com a ferramenta MKNBI), que será responsável por criar uma raiz de sistema de ficheiros virtual, por NFS. Esta característica do núcleo é a que permite correr uma instalação remota de Linux sem qualquer dispositivo de armazenamento local – este tipo de terminais envolvidos designam-se também por thin clients. 
Finalmente, após o núcleo montar a raiz do sistema de ficheiros, irá lançar os scripts de arranque do sistema, que serão responsáveis por colocar o terminal no modo configurado, neste caso, o modo gráfico, utilizando XFree86. Este servidor de ambientes de trabalho em modo gráfico permite autenticar e executar uma sessão num servidor remoto, utilizando o protocolo XDMCP. Caso o utilizador consiga autenticar, será lançado o seu ambiente de trabalho, como se o utilizador estivesse a trabalhar localmente no servidor. 
A partir deste momento, todas as operações que o utilizador do terminal efectuar, serão transparentemente realizadas no servidor e o output enviado para o terminal. 
Fonte wikipedia http://pt.wikipedia.org/wiki/LTSP 
Chega de conversa. Hands On Now.
Para o funcionamento do LTSP, é preciso alguns programas. 

# apt-get install dhcp3-server debconf-utils debootstrap ldm-server ltsp-server ltspfs nbd-server openbsd-inetd squashfs-tools tftpd-hpa xbase-clients 

Depois da Instalação começamos a realizar as configurações nos arquivos do servidor. A primeira alteração será realizada na interface de rede. O servidor deve ter duas placas de rede, no Linux elas podemos ver suas configurações com o comando "ifconfg", vamos usar aqui no exemplo a eth1 com ip 192.168.3.1 para o LTSP servindo as janelas do Terminal Service. A interface eth0 sesrá dhcp. Para isso abrimos o terminal e digitamos o comando: 
============================== 

#nano /etc/network/interfaces 

E colocar a seguinte configuração na eth1 deste jeito. 

auto eth0 
iface eth0 inet dhcp 

auto eth1 
iface eth1 inet static 
address 192.168.3.1 
netmask 255.255.255.0 
network 192.168.3.0 
broadcast 192.168.3.255 

depois executar: 

#/etc/init.d/networking restart 

============================== 
Como praxe de boas práticas vamos renomear o arquivo original para que este possa ser consultado mais tarde. 
Para isso use o comando 
# /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf.original 

O próximo comando criará os arquivo dhcpd.conf vazio para que possamos criá-lo de acordo com nossas necessidades: 

#nano /etc/dhcp3/dhcpd.conf 

authoritative; 
subnet 192.168.3.0 netmask 255.255.255.0 { 
range 192.168.3.20 192.168.3.250; 
option domain-name "ltsp"; 
option domain-name-servers 208.67.222.222, 192.168.3.1; 
option broadcast-address 192.168.3.255; 
option routers 192.168.3.1; 
option subnet-mask 255.255.255.0; 
option root-path "/opt/ltsp/i386"; 
if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { 
filename "/ltsp/i386/pxelinux.0"; 
} else { 
filename "/ltsp/i386/nbi.img"; 

============================== 
O DHCP está pronto. Agora vamos informar ao servidor qual interface de rede responderá as requisições DHCP. Este arquivo pode ser editado com o seguinte comando: 

#nano /etc/default/dhcp3-server 

Deixe a linha Interfaces como esta abaixo: 

INTERFACES="eth1" 
============================== 

Configuração do tftpd-hpa Abra o: 
#nano /etc/default/tftpd-hpa 
Veja se está com esta configuração, caso não esteja, deixe o arquivo tftpd-hpa deste jeito... 
# /etc/default/tftpd-hpa 

TFTP_USERNAME="tftp" 
TFTP_DIRECTORY="/var/lib/tftpboot" 
TFTP_ADDRESS="0.0.0.0:69" 
TFTP_OPTIONS="--secure" 

============================== 

Configuração do NBD-Server 
O nbd-server vai ser configurando colando uma linhas com valores no /etc/inetd.conf 
No meu caso só foi preciso criar a última linha. Vamos editar o arquivo: 
# nano /etc/inetd.conf 

9571           stream  tcp     nowait  nobody /usr/sbin/tcpd /usr/sbin/ldminfod 
9572                    stream  tcp     nowait  nobody /usr/sbin/tcpd /usr/sbin/nbdswapd 
2000               stream  tcp nowait  nobody /usr/sbin/tcpd /usr/sbin/nbdrootd /opt/ltsp/images/i386.img 

============================== 

# nano /etc/hosts.allow 

Agora vamos alterar o arquivo hosts.allow para NBD-Server poder atuar na rede vamos editar o arquivo e acrescentar no fim do arquivo: 

nbdrootd: ALL: keepalive 
nbdswapd: ALL: keepalive 

O arquivo hosts.allow deve ter linhas acimas, para assim permitir/allow a todos micros/hospedeiros/hosts (por isso hosts.allow) conseguir negociar com o NBD-Server. 

============================== 

O servidor está quase pronto, reinicie o computador. 
Vamos agora testar o DHCP com o comando #dhcpd3 
Aqui tive uma mensagem de erro dizendo que o arquivo dhcpd.pid não pôde ser criado. Resolvi o problema com o comando 

ln -s /var/run/dhcp3-server/dhcpd.pid /var/run/dhcpd.pid 

reinicie o serviço dhcp com o comando /etc/init.d/dhcp3-server 

Teste novamente o serviço de dhcp. No meu caso estava tudo correto. 

============================== 

Agora vem a parte mais demorada. Instalar o client-builder. Sem ele nada funciona. A velocidade da instalação depende muito da sua velocidade de conexão, no meu caso levei 40 minutos com internet de 5 mega. 
rode o comando 
# ltsp-build-client 
e espere a conlcusão da instalação. 
Reinicie o servir e pronto. 

============================== 

Com o servidor terminado precisamos baixar a iso que será responsável pelo boot no lado cliente. Lembre-se o cliente não precisa ter disco rígido, apenas placa de rede e leitora de cd/dvd. Entre no site http://www.rom-o-matic.net/ e baixe a iso mais recente para para o boot. No meu caso a escolha ficou assim: 
1. Choose an output format: ISO bootable image (.iso) 
2. Choose a NIC type: all-drivers 
3. não marquei nada. 
4. Clique em get image. 
Pronto. aguarde o download e grave num cd/dvd. Mude a ordem de boot para iniciar primeiro pelo cd/dvd. Ok. tudo terminado. No meu caso funcionou perfeitamente. 
Usei duas máquinas virtuais uma com ubuntu 10.04 onde instalei todos os programas descritos acima. A outra máquina criei e não instalei nenhum Sistema Operacional, apenas adicionei a iso no drive de cd e liguei a máquina. 
Para mim funcionou perfeitamente. 
O texto original que me orientou na construção do meu LTS eu obtive no endereço-eletrônico http://idsorocaba.batemacumba.net/index.php?n=Main.InstalacaoLTSP5NoUbuntu1004Lucid e fiz as alterações que precisei para funcionar perfeitamente.

Nenhum comentário:

Postar um comentário

PDO Simples com PHP

A pedido da Turma, fiz este pequeno vídeo mostrando a utilização do PHP com PDO (PHP Data Object) Abaixo, deixo o sql gerado pelo phpmya...