Académique Documents
Professionnel Documents
Culture Documents
2 SlackwareZine h ttp://w w w .s l
ack w are zine .com .br
RED ES
IN NS thor.dominio.com.br.
IN NS odin.dominio.com.br.
thor IN A 200.200.200.200
odin IN A 200.200.200.201
hercules IN A 200.200.200.202
$ORIGIN intra.dominio.com.br.
thor IN A 192.168.0.3
odin IN A 192.168.0.1
hercules IN A 192.168.0.2
h ttp://w w w .s l
ack w are zine .com .br SlackwareZine 3
PRO GRAM AÇÃO
A s intaxe m ais bás ica do Aw k é: O gre p acabou de m os trar o s e gundo e s paço da linh a.
Para m os trar o l
ocal
h os t, pre cis aríam os faze r:
awk '/padrão/ { ação }'
$ grep localhost /etc/hosts | cut -d' ' -f16
O u s e ja, toda ve z q ue e l
e ach ar algo q ue cas e com localhost
/padrão/, e l e vai e xe cutar um a de te rm inada ação. A
ge nte pode te s tar is s o fácil: Cl aro, us ando tr -s ""dá para s um ir com os e s paços
e xce de nte s ... Para is s o q ue a inte l
igência do aw k ve m
$ awk '/localhost/ { print $0 }' /etc/hosts a cal h ar. Com um s ó com ando a ge nte cons e gue
127.0.0.1 localhost de te ctar e m os trar o s e gundo cam po, não im portando
s e s ão Tabs , e s paços ou a q uantidade de l e s . Al
ém de
Es s e com ando l ê o arq uivo /e tc/h os ts e procura onde pode r us ar o Aw k com o um "gre p"al te rnativo,
e xis tir o padrão "l ocalh os t", q uando ach ar, e le pode m os us á-l o com o um "cut"tam bém -; ).
im prim e a l inh a na te l
a (o taldo $0). Com o ach ar um
padrão e col ar a linh a na te l a é um a atividade m uito E, e m te rm os de "cut"e xis te um a fe ature
com um (vide o gre p) e s s a é a ação de faul t do Aw k avançadís s im a do Aw k q ue q uando m e nos s e e s pe ra é
e ntão pode m os re e s cre ve r o com ando acim a com o: tre m e ndam e nte útil
. Por e xe m pl
o, o /e tc/h os ts aq ui é
as s im :
$ awk '/localhost/' /etc/hosts
127.0.0.1 localhost 127.0.0.1 localhost
192.168.0.1 optimus.mylab optimus
Bom , agora já s abe m os com o us ar o aw k com o um 192.168.0.2 rachael.mylab rachael
"gre p"al te rnativo -;). E, onde e s tá "local h os t"pode -s e ...
us ar q ualq ue r padrão, incl us ive e xpre s s õe s re gul
are s : 192.168.0.10 megaman.mylab megaman
$ awk '/^[0-9]/' /etc/hosts Se e u q uis e r lis tar todos os IPs e o ape l ido de cada
127.0.0.1 localhost h os t, pode ria l is tar $1 e $3;m as , com is s o, não iria
192.168.0.1 optimus.mylab optimus lis tar o 'l
ocal h os t' q ue e s tá no s e gundo cam po. O q ue
192.168.0.2 rachael.mylab rachael faze r?
...
192.168.0.10 megaman.mylab megaman $ awk '/^[0-9]/ { print $1"\t"$NF}' /etc/hosts
127.0.0.1 localhost
Com o m e s m o arq uivo de e xe m pl
o (/e tc/h os ts ), 192.168.0.1 optimus
pode m os faze r m ais um a brincade ira: 192.168.0.2 rachael
...
$ awk '/localhost/ { print $2 }' /etc/hosts 192.168.0.10 megaman
localhost
NF é o núm e ro de cam pos de cada l inh a. Então
O $2 s ignifica o s e gundo cam po da l inh a, o prim e iro é im prim im os o prim e iro cam po ($1) e o úl tim o ($NF).
o $1 e o te rce iro o $3 (e as pe s s oas inte lige nte s já O "\t"é para im prim ir um TAB e de ixar tudo
s acaram q ue o q uarto é $4, o q uinto $5 e as s im alinh adinh o. E ainda com binam os dois com andos e m
s uce s s ivam e nte ). E, ao contrário do q ue m uita ge nte um -; ).
4 SlackwareZine h ttp://w w w .s l
ack w are zine .com .br
Pare cido com o NF, o Aw k te m um a s e gunda variáve l um padrão e s pe cial"END", q ue s e m pre "cas a"com o
ch am ada NR: Núm e ro de Re gis tro. Com o finaldo arq uivo (no nos s o cas o, q uando todas as
norm al m e nte um re gis tro é um a l
inh a, pode -s e us ar linh as foram l idas );q uando ch e gam os no finaldo
e s s e NR para indicar e m q uall inh a o Aw k e s tá arq uivo, faze m os um l aço de re pe tição:
proce s s ando:
for (i=NR-9;i<=NR;i++) { print TEXT[i] }
$ awk '{ if (NR==1) print $0 }' /etc/group
root::0:root A tradução dis s o é:
$ awk '{ if (NR<=10) print $0 }' /etc/group O u s e ja, im prim a as úl tim as 10 l inh as do te xto. É
root::0:root vis íve lq ue is s o de l aço de re pe tição é al go m uito útil
,
bin::1:root,bin,daemon val e a pe na guardar e s s a idéia. O padrão "END"
daemon::2:root,bin,daemon tam bém é e xtre m am e nte útile e l e te m um irm ão o
sys::3:root,bin,adm "BEGIN"q ue "cas a"com o início do arq uivo (ante s de
adm::4:root,adm,daemon q ual q ue r linh a s e r l
ida). É um a boa para im prim ir
tty::5: cabe çal h os ou al go do tipo.
disk::6:root,adm,punk
lp::7:lp Já q ue com a s ubs tituição do tailnós acabam os
mem::8: faze ndo um s cript aw k m ais com pl e xo, vam os ch utar o
kmem::9: pau da barraca e s ubs tituir o w c. O w c conta a
q uantidade de caracte re s , palavras e linh as de um
Ao invés do com pararm os s e o NR é iguala 1, de te rm inado te xto:
ve rificam os s e e l
e é m e nor ou iguala 10. Todas as
ope raçõe s de com paração "norm al "funcionam : ==, $ wc /etc/fstab
!=, <=, > =, < e > , s e m m is térios . 12 72 794 /etc/fstab
De pois de faze r o h e ad, porq ue não inve ntar um novo O prim e iro núm e ro s ão as l
inh as , o s e gundo as
com ando tail ?Es s e é um pouco m ais com pl icado, nós palavras e o te rce iro os caracte re s . Contar as l inh as
s ó s abe m os o tam anh o do arq uivo q uando e l e já todos nós já s abe m os :
ch e gou no final , e ntão te m os q ue arm aze nar as l inh as
de te xto e m al gum l ugar. Es s e e xe m pl
o vai ficar um $ awk 'END { print NR }' /etc/fstab
pouco com pl icado: 12
h ttp://w w w .s l
ack w are zine .com .br SlackwareZine 5
PRO GRAM AÇÃO
im prim im os a variáve lCH AR. Só te m um probl e m inh a Es s e é inte re s s ante para im prim ir s ó o nom e dos
s om a na variáve lCH AR todos os caracte re s q ue te m pacote s ins tal ados , s e m a ve rs ão e arq uite tura:
na l inh a corre nte . E, no final , im prim im os a variáve l
CH AR. Só te m um probl e m inh a... o núm e ro e s tá $ ls -1 /var/log/packages/ | \
e rrado! O w c inform a 79 4 caracte re s e o Aw k inform a > awk 'BEGIN { FS="-" ; OFS="-" }
s ó 782. O q ue aconte ce ?A re s pos ta é s im pl e s, o w c > { NF=NF-3 ; print $0 }'
conta os caracte re s de "s al to de l inh a"(vulgo, o e nte r) a2ps
e o Aw k não. Para re s ol ve r e s s a dis paridade , pode m os aaa_base
s om ar no finala q uantidade de s al tos de l
inh a q ue aaa_elflibs
te m no arq uivo: ...
x11-fonts-misc
$ awk '{ CHAR+=length($0) } x11-fonts-scale
> END { print CHAR+NR }' /etc/fstab x11-xdmx
794 ...
ytalk
E as s im fica corre to -:) Para final
izar, vam os col
ocar zlib
para im prim ir todas as inform açõe s juntas , com o o w c: zsh
U m as úl
tim as brincade iras ante s de fe ch ar o artigo: nome-versao-arquitetura-versao_do_pacote
$ awk -F: '{ if ($3>=1000) E "nom e "pode te r q ual q ue r tam anh o, s e parado por
> { print $1 } }' /etc/passwd h ífe ns . O q ue nós s abe m os é q ue de pois do nom e ,
punk e xis te m ape nas três outros cam pos . Aí ve m o truq ue .
marina Para cada l inh a nós dize m os q ue e l
a pos s ui três
toledo cam pos a m e nos (NF=NF-3) e de pois é s ó im prim ir a
garoto linh a com pl e ta -;
).
tamiris
infomedia Bom , e com e s s as úl tim as dicas te rm inam os o artigo -
slackshow :). Es pe ro q ue te nh a s ido útil
.
O utro e xe m pl
o bom :
# ps aux | \
awk '/^usuario/ { system("kill -9 "$2) }'
6 SlackwareZine h ttp://w w w .s l
ack w are zine .com .br
ANÁLISE D E LIVRO
h ttp://w w w .s l
ack w are zine .com .br SlackwareZine 7
AD M INISTRAÇÃO
A M agia do init
O init é o prim e iro proce s s o ch am ado pe lo k e rne le , além de coorde nar a
inicialização do s is te m a, ch am ando os s cripts de inicial ização apropriados ;
tam b ém é o pai de todos os outros proce s s os da m áq uina
ru nl
e ve l s Aq ui col ocam os o núm e ro do runle ve lq ue
s e rá e xe cutada a ch am ada. De 0-6, s ou S.
8 SlackwareZine h ttp://w w w .s l
ack w are zine .com .br
# Default runlevel. (Do not set to 0 or 6)
id:3:initdefault:
h ttp://w w w .s l
ack w are zine .com .br SlackwareZine 9
AD M INISTRAÇÃO
# Script to run when going multi user. c4:1235:respawn:/sbin/agetty 38400 tty4 linux
rc:2345:wait:/etc/rc.d/rc.M c5:1235:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux
Script e xe cutado nos runl e ve l
s de 2 a 5, M ulti us e r. (O
init irá e s pe rar s ua e xe cução final izar para pul ar para O s id's de c1 a c5 s ão re s pons áve is de e xe cutar o
o próxim o proce s s o.) /s bin/age tty, cons ole s para pode rm os l ogar no s is te m a
(os fam os os Al t+ F1, Al t+ F2, ..., Al
t+ F6). O id c6
# What to do at the "Three Finger Salute". tam bém , porém te m o dife re ncialde s e r inicial izado
ca::ctrlaltdel:/sbin/shutdown -t5 -r now no runl e ve l4 (am bie nte gráfico). O action _re s paw n_
diz ao s is te m a para re inicil
izá-l o cas o e l
e caia.
Es ta linh a diz q ue ao ape rtarm os a com binação
Ctrl + Alt+ De l, nos s o s is te m a irá re inicial
izar e m 5 # Runlevel 4 used to be for an X window \
s e gundos . (Pode m os al te rar e s ta com binação de only system, until we discovered
te clas para o proce s s o q ue de s e jarm os .) # that it throws init into a loop that keeps \
your load avg at least 1 all
# Runlevel 0 halts the system. # the time. Thus, there is now one getty \
l0:0:wait:/etc/rc.d/rc.0 opened on tty6. Hopefully no one
# will notice. ;^)
Ao e ntrar no runl e ve l0, e xe cutar o s cript para # It might not be bad to have one text \
de s l
igar o s is te m a. console anyway, in case something
# happens to X.
# Runlevel 6 reboots the system. x1:4:respawn:/etc/rc.d/rc.4
l6:6:wait:/etc/rc.d/rc.6
Es ta linh a diz ao s is te m a para e xe cutar o s cript
Ao e ntrar no runl e ve l6, e xe cutar o s cript de re s pons áve lpe lologin gráfico, ape nas no runl e ve l4
re inicil
izar o s is te m a. (am bie nte gráfico). O action _re s paw n_ diz ao s is te m a
para re inicil izá-l
o cas o e l e caia.
# What to do when power fails.
pf::powerfail:/sbin/genpowerfail start
Se rviços Autom áticos
Para aq ue l as pe s s oas q ue te m aq ue le s s upe r pow e r
Com o init, pode m os col ocar q ualq ue r proce s s o para
ul tra no-bre ak s , e s ta opção pode s e r m uito
s e r inicializado e re inicial
izado autom aticam e nte ,
inte re s s ante . O no-bre ak avis a q ue a um a fal h a de
cas o e l e m orra. O action _re s paw n_ é re s pons áve lpor
e ne rgia e l étrica, o init de te cta e e xe cuta o
is s o. Vam os ve r um e xe m plo:
ge npow e rfail , q ue de s l
iga autom aticam e nte o
com putador.
AP:3:respawn:/etc/rc.d/rc.httpd restart
# If power is back, cancel the running \
Col ocam os o apach e para s e r m onitorado e
shutdown.
re inicial
izado cas o e l
e caia. Ch am e i o id de AP e e s s a
pg::powerokwait:/sbin/genpowerfail stop
ação é val ida ape nas para o runl e ve l3.
As s im com o a opção de cim a, s e a e ne rgia e l étrica
# init q
e s tabil
izar, e s te s cript cance l
a o de s l
igam e nto do
com putador.
O com ando init q irá re l
e r o /e tc/inittab com a nova
configuração. E o apach e s e rá re iniciado s e m pre q ue
# These are the standard console login
cair (e iniciado no boot).
# getties in multiuser mode:
c1:1235:respawn:/sbin/agetty 38400 tty1 linux
c2:1235:respawn:/sbin/agetty 38400 tty2 linux Leandro Toledo
c3:1235:respawn:/sbin/agetty 38400 tty3 linux <toledo@slackwarezine.com.br>
slackware
to th e re alne rds
10 SlackwareZine h ttp://w w w .s l
ack w are zine .com .br
ESPECIAL
Cluste rs de
Balance am e nto
de Carga e m Linux
O q ue faze r q uando um s e rvidor não agüe nta m ais e xe cutar as tare fas q ue
de ve ria? A s olução tradicionalé com prar outra m áq uina m ais pode ros a
m as ne m s e m pre e s s a m áq uina e xis te ou cab e no orçam e nto; e s s a é a
h ora de pe ns ar e m b al ance am e nto de carga e dis trib uir tare fas .
h ttp://w w w .s l
ack w are zine .com .br SlackwareZine 11
ESPECIAL
21) para e nviar com andos e a cone xão dos dados clie nte fica a cargo do s e rvidor re al , e o dire ctor não
propriam e nte ditos (q ue s e gue m pe l a porta 20). atua m ais ne s ta cone xão. Para faze r is to, o dire ctor
Quando a cone xão é ativa, o cl ie nte inform a ao m odifica o cabe çal h o do pacote , adicionando o M AC
s e rvidor q ualporta q ue ate nde à cone xão de dados do s e rvidor re alcom o e nde re ço fís ico para o IP de
para trans fe rí-los . Porém para um a cone xão pas s iva, o de s tino, e o re trans m ite pe l
a re de . Is to pode caus ar
s e rvidor inform a ao cl ie nte a porta q ue e l e e s tá alguns probl e m as .
ate nde ndo, e e ntão o cl ie nte inicia um a cone xão para
aq ue l a porta. Para am bie nte s e m VS/TU N e VS/DR, o Nos cl us te rs de DR e tune l am e nto IP, o IP de s e rviço é
dire ctor atua ape nas na cone xão cl ie nte -s e rvidor, não com partil h ado e ntre o dire ctor e os s e rvidore s re ais .
no cam inh o inve rs o, e ntão é im pos s íve lpara o Todos te m um a inte rface configurada com e s te IP. Em
dire ctor capturar a porta do pacote q ue vai algum as configuraçõe s q ue os s e rvidore s re ais e s tão
dire tam e nte ao cl ie nte . na m e s m a re de q ue o dire ctor, e os s e rvidore s re ais
re s ponde re m um a re q uis ição ARP, h ave rão probl e m as .
Para re s ol ve r is to, pre cis am os ativar a pe rs is tência O s pacote s s e rão re s pondidos h ora pe l o dire ctor, h ora
e ntre as cone xõe s . De s ta form a, o LVS irá m ante r um a por um s e rvidor re al , h ora por outro, e o cl us te r
tabe l a com o re gis tro de s ta cone xão e m um a tabe l a inte iro não vai funcionar dire ito. Por is to, ne s te s
h as h , conte ndo os dados do IP e porta da orige m , IP e clus te rs , pre cis am os garantir q ue ape nas o dire ctor
porta do de s tino virtual , IP e porta do de s tino no irá re s ponde r as re q uis içõe s ARP para o IP de s e rviço.
s e rvidor re al. Para FTP, o val or das portas é 0, e ntão
q ual q ue r cone xão vinda do cl ie nte é re dire cionada Exis te m algum as form as com o is to pode s e r
para o m e s m o s e rvidor re ale as s ociados à m e s m a configurado, e e xpl icá-las é as s unto s uficie nte para
cone xão, de acordo com a e ntrada s al va na tabe l a. outro artigo. Cas o q ue ira s abe r m ais s obre is to,
Para outros s e rviços , as portas de de s tino s ão cons ul te [2].
m antidas porém a do cl ie nte pode variar q ue o LVS
vai m ante r a pe rs is tência para o m e s m o s e rvidor re al.
Al
goritm os
Porém as ve ze s ne m is to é s uficie nte . Por e xe m pl o,
O LVS pode dis tribuir as cone xõe s bas e ado e m vários
e xis te m grupos de proxys para ace s s os e m
tipos de al goritm os : Round-Robin, por pe s o, pe l o
de te rm inados s ite s , para dim inuir a carga. Só q ue
s e rvidor q ue te m m e nos cone xõe s e outros . Todos te m
para o cl ie nte , e l
e pe diu um a re q uis ição para um
s uas vantage ns e de s vantage ns , de ve ndo o
s e rvidor e outro ate nde u. Então um outro tipo de
adm inis trador e s col h e r de acordo com o pode r de
pe rs is tência s e ria de um range de re de , q ue é
proce s s am e nto dos s e rvidore s re ais , com a
m antido para s abe r q ue cone xõe s para aq ue l e s ips
q uantidade de cone xõe s re ce bidas e com o tipo de
pre cis am s e r pe rs is te nte s .
carga de s tas cone xõe s . O s m ais com uns s ão e s te s :
Com o o LVS re dire ciona as cone xõe s Round-Robin: Se q üe ncial , cada s e rvidor re ce be um a
cone xão por ve z. De s ta form a, e m um cl us te r de três
O LVS pode re dire cionar as cone xõe s vindas dos s e rvidore s re ais , a prim e ira cone xão s e rá e nviada
clie nte s , para os s e rvidore s re ais , através de NAT, para o s e rvidor re al1, a s e gunda para o s e rvidor re al
túne lIP ou rote am e nto dire to (Dire ct Routing). No 2, a te rce ira para o s e rvidor re al3, a q uarta para o
cas o de túne lIP ou DR, e xis te um e fe ito col ate ralq ue s e rvidor 1 e as s im por diante . Es te al goritm os trata
pre cis am os e s tar ate ntos . todos os s e rvidore s re ais igual m e nte , s e m l e var e m
conta o núm e ro de cone xõe s re ce bidas ou o te m po de
Pe l o NAT, q uando o dire ctor re ce be um a cone xão para re s pos ta q ue cada s e rvidor forne ce .
um s e rviço q ue e s tá configurado, e l e e s colh e um
s e rvidor re alde acordo com as re gras , m odifica o IP Round-Robin com Pe s os : Cada s e rvidor re ce be um
de de s tino com o IP do s e rvidor re ale s col h ido e pe s o e o dire ctor irá dis tribuir as cone xõe s com bas e
re e nvia. Ao re ce be r a re s pos ta, o dire ctor vol ta o ne s te s pe s os . As s im , um s e rvidor re alcom pe s o 4 irá
pacote para o cl ie nte , conte ndo o IP originalcom o re ce be r 2 ve ze s m ais cone xõe s q ue um s e rvidor re al
orige m da re s pos ta. Is to ge ral m e nte é us ado e m re de s com pe s o 2, q ue irá re ce be r 2 ve ze s m ais cone xõe s
locais , e o m as caram e nto ge ral m e nte ocorre do q ue um s e rvidor re alcom pe s o 1. É um al goritm os
dire ctor com IP vál ido para a Inte rne t e um a re de m el h or e s truturado para am bie nte s e m q ue os
localde IPs invál idos , por e xe m pl o. s e rvidore s re ais com dife re nte s ve l ocidade s . Porém s e
as cone xõe s fore m de cargas variadas , o s e rvidor re al
Pe lo túne lIP, o dire ctor adiciona outro com m aior prioridade pode acabar re ce be ndo as
e ncaps ul am e nto IP s e m m odificar o cabe çal ho cone xõe s de m aior pe s o e acabar s obre carre gado,
original . Is to é pe rfe ito para re de s ge ográficam e nte e nq uanto outros s e rvidore s de m e nor prioridade
dis tribuídas , onde os s e rvidore s re ais não te m pe rm ane ce m de s ocupados .
ne ce s s ariam e nte o m e s m o e nde re ço de re de . Is to
porém e xige q ue os s e rvidore s re ais te nh am s uporte a M e nos cone xõe s : as cone xõe s s ão re dire cionadas para
e ncaps ul am e nto IP. o s e rvidor re alcom m e nos cone xõe s ativas . Es te é um
algoritm o dinâm ico, pois pre cis a ch e car q uantas
No DR, o dire ctor re dire ciona os pacote s dire tam e nte cone xõe s e s tão ativas e m de te rm inado ins tante . É um
ao s e rvidor re al
. A partir dis s o a com unicação com o bom al goritm o para q uando a q uantidade de cone xõe s
12 SlackwareZine h ttp://w w w .s l
ack w are zine .com .br
re ce bidas varia bas tante . opção -r e us ando o m étodo de m as caram e nto por
NAT(-m ).
M e nos cone xõe s com pe s os : com bina a bus ca pe l o
s e rvidor re alcom m e nos cone xõe s , porém atribuindo A partir daí, pode m os adicionar vários s e rviços com
pe s os a e s te s . U m s e rvidor re alcom capacidade duas algoritm os dife re nte s , e s e rvidore s re ais dis tintos .
ve ze s m aior q ue um outro te rm inará de proce s s ar Porém o l dire ctord agrupa e s ta configuração toda e m
s uas cone xõe s e ficará ocios o, e nq uanto outros pode m um único arq uivo, s e e ncarre gando de carre gar as
ficar s obre carre gados . Com binando e s te s dois tipos , o re gras e control ar os s e rvidore s re ais .
al goritm o dinam icam e nte de s cobrirá q ualo s e rvidor
pode ate nde r m e l h or e m de te rm inado m om e nto.
Ul
tram onk e y, LVS e l
dire ctord
Exis te tam bém outros al goritm os com o o h as h [3]- o
O Ul tram onk e y é um proje to q ue com bina o LVS,
s e rvidor m onta um a tabe l a h as h e re dire ciona as
ge re nciado através do l dire ctord, e o h e artbe at para
cone xõe s para os s e rvidore s por e s ta tabe l a, com ou
ge re nciar as re gras e s e rviços no dire ctor. O
s e m pe s os -, e o de "s e m fil
as "- bus cando s e m pre um
h e artbe at ira faze r a al ta dis ponibil idade do dire ctor,
s e rvidor idl e ou com m e nor te m po de re s pos ta.
e a al ta dis ponibil idade dos s e rvidore s re ais é
intríns e co ao LVS. El e pe rm ite várias com binaçõe s e
Configuraçõe s opçõe s para m e l h or adaptação a dife re nte s am bie nte s
e ne ce s s idade s .
Final m e nte , vam os col ocar a
m ão na m as s a. Para q ue m
q ue r s abe r com o funciona a
bas e de tudo, o ipvs adm . O
Quadro 1: Se rvidor H TTP
s oftw are pode s e r
e ncontrado e m [4], cas o s ua # Virtual Server for HTTP
dis tribuição não te nh a o virtual=192.168.6.240:80 IP Virtual (de serviço)
pacote pronto. Al iás , cas o fallback=127.0.0.1:80 Se nenhum servidor real
não te nh a, e nvie com o responder, quem responde
s uge s tão para o m ante ne dor real=192.168.7.4:80 masq Servidor real, IP, porta e
;) modo de conexão
real=192.168.7.5:80 masq Servidor real, IP, porta e
Após a re ce ita padrão - modo de conexão
m ak e & & m ak e ins tal l- você service=http Qual é o serviço
te rá ins tal ado o ipvs adm , request="index.html" Que página buscar(opção
ipvs adm -s ave e ipvs adm - receive="Test Page" para serviços http)
re s tore . Você pode pe ns ar
no ipvs adm com o s im il ar ao scheduler=rr Qual o escalonador
iptabl es - el e irá (algoritmo) - RoundRobin
adicionando as re gras e neste caso
bus cá-l as na orde m q ue #persistent=600 Persistência (desabilitada
você e s pe cificar. Vam os neste caso)
de tal h ar m e lh or com protocol=tcp Protocolo
e xe m pl os . Para o protocol o checktype=negotiate
FTP, l e m brando de ativar a
pe rs is tência:
h ttp://w w w .s l
ack w are zine .com .br SlackwareZine 13
ESPECIAL
14 SlackwareZine h ttp://w w w .s l
ack w are zine .com .br
ESPECIAL
Construindo um
Cl
uste r de
Ope nM osix com o
Sl
ack w are 11.0
Ne s s e artigo, ire m os im pl
e m e ntar um cl us te r ope nM os ix b as e ado e m
k e rne l 2.4.26 util izando com o b as e , o b om e ve l h o sl ack w are . :)
h ttp://w w w .s l
ack w are zine .com .br SlackwareZine 15
ESPECIAL
slackware/slackware-9.1/\
Cl
u s te rs vol tados para com pu tação de al to slackware/d/\
de s e m pe nh o: É ne s s a cate goria q ue o cl us te r gcc-3.2.3-i486-2.tgz
ope nM os ix (e ntre outros ) s e e nq uadra. A # removepkg gcc-3.4.6-i486-1.tgz
final idade de s s e tipo de cl us te r é dis tribuir # installpkg gcc-3.2.3-i486-2.tgz
proce s s os e ntre as m áq uinas q ue com poe m o
cl us te r. Cada um a de s s as m áq uinas é tam bém O prim e iro pas s o cons is te e m ins tal
ar o k e rne l
ch am ada de nó. A m étrica util izada para a corre s ponde nte à ve rs ão m ais re ce nte do ope nM os ix e
el e ição da m áq uina ide alé a dis ponibil idade e m s e guida apl icar o patch s obre e le . Ne s s e cas o,
de re curs os de m e m ória e cpu de cada um dos e s tam os fal
ando do k e rne l2.4.26, cujo dow nl oad foi
nós no m om e nto e m q ue o proce s s o de ve s e r re al izado na s e ção ante rior. Vam os ao trabal h o:
e xportado. De s s e m odo, m áq uinas ocios as q ue
e s te jam e xe cutando proce s s os cons ide rados # cd /usr/src
s im pl e s s ão forte s candidatas a re ce be re m # cp /root/linux-2.4.26.tar.bz2 .
proce s s os re m otos de outros nós do cl us te r. # tar -xvjf linux-2.4.26.tar.bz2
# cd linux-2.4.26
O ope nM os ix dife re ncia-s e de outros tipos de cl us te r, # cp /root/openMosix-2.4.26-1.bz2 .
por não e xigir m udanças no código fonte das # bunzip2 openMosix-2.4.26-1.bz2
apl icaçõe s ne l e utilizadas . Quando apl icado ao k e rne l # patch -Np1 < openMosix-2.4.26-1
Linux, e l e s e e ncarre gada de e xportar os proce s s os # cp config .config
e ntre os nós do cl us te r e re ce be r os re s ul tados de # make menuconfig
vol ta. O utros tipos de cl us te r popul are s , com o o # make dep
Be ow ul f, por e xe m pl o, util izam bibl iote cas e s pe cíficas # make bzImage
(PVM e M PI) q ue re al izam e s s a tare fa, m as e xige m # make modules
q ue a apl icação s e ja e s crita cons ide rando as pe ctos de # make modules_install
paral el is m o, o q ue , de ce rto m odo, l im ita
cons ide rave l m e nte s ua util ização. Em s e guida, após algum as xícaras de café, vam os
adicionar um a e ntrada re fe re nte ao k e rne lre cém -
com pilado ao lil
o:
Ins tal
ação
# cd arch/i386/boot
A im pl e m e ntação do cl us te r ope nM os ix é # cp bzImage /boot/vmlinuz-2.4.26
re lativam e nte s im pl e s , afinal , trata-s e na prática, de # vim /etc/lilo.conf
ape nas um patch de k e rne l . No e ntanto, al guns
pontos da docum e ntação oficiale s tão de s atual izados Adicione um a e ntrada no s e u m e nu de boot apontanto
e pode m caus ar al gum a confus ão. O s is te m a de para /boot/vm l
inuz-2.4.26, s e m e lh ante ao e xe m pl
oa
arq uivos nativo do ope nM os ix, o oM FS, por e xe m pl o, s e guir:
foi re tirado a partir da ve rs ão 2.4.26-1 por q ue s tõe s
de s e gurança. U m outro "probl e m a"ocorre durante o # LILO configuration file
proce s s o de com pil ação do k e rne l , e m função da # generated by 'liloconfig'
ve rs ão do gcc util izado no s l ack w are 11. De s s e m odo, #
te re m os tam bém q ue trabal h ar com um a ve rs ão # Start LILO global section
ante rior do com pil ador para q ue o código com pil e boot = /dev/hda
s e m probl e m as . M ãos a obra: prompt
timeout = 500
Durante todo o proce s s o de ins tal ação/configuração, # VESA framebuffer console \
por q ue s tõe s de praticidade , e s tou cons ide rando q ue @ 1024x768x256
todos os dow nl oads e s tão s e ndo arm aze nados no vga = 773
dire tório /root e q ue "root"s e ja o us uário corre nte . # Linux bootable partition config\
begins
Baixando os arq uivos ne ce s s ários : image = /boot/vmlinuz
root = /dev/hda1
# wget http://www.if-usp.lkams.kernel\ label = Slackware
.org/pub/linux/kernel/v2.4/\ read-only # Non-UMSDOS filesystems\
linux-2.4.26.tar.bz2 should be mounted read-only for\
# wget http://ufpr.dl.sourceforge.net/\ checking
sourceforge/openmosix/\ # Linux bootable partition config ends
openMosix-2.4.26-1.bz2 # Sua entrada referente ao openMosix\
# wget http://ufpr.dl.sourceforge.net/\ começa aqui
sourceforge/openmosix/\ # openMosix bootable partition config\
openmosix-tools-0.3.6-2.tar.gz begins
image = /boot/vmlinuz-2.4.26
Re s ol
ve ndo o probl
e m a de com patibil
idade do gcc: root = /dev/hda1
label = openMosix
# wget http://ftp.belnet.be/packages/\
16 SlackwareZine h ttp://w w w .s l
ack w are zine .com .br
read-only # Non-UMSDOS filesystems\ openMosix machines.
should be mounted read-only for\ #
checking #Example: 10 machines with IP addresses\
# openMosix bootable partition config\ 192.168.1.50 - 192.168.1.59
ends # which will have openMosix\
### E termina aqui... :) ### node-numbers 1-10:
#
Atual
ize o Lil
o: # 1 192.168.1.50 10
#
# lilo # MOSIX-# IP number-of-nodes
# ============================
Se tudo de r ce rto, você de ve ve r al
go do tipo: 1 192.168.20.15 1
2 192.168.20.16 1
Added Slackware * 3 192.168.20.17 1
Added openMosix 4 192.168.20.18 1
Ate nção: É im portante te r ce rte za q ue os parâm e tros Es s a é um a m ane ira de s e e s pe cificar os nós do
"prom pt"e "tim e out"e s te jam pre s e nte s e m s e u cl us te r, ou s e ja, do lado e s q ue rdo ide ntificar o núm e ro
lil
o.conf, para q ue você pos s a optar pe l o boot do nó, no ce ntro e s pe cificar o ip do nó e no final
utilizando o k e rne lope nM os ix. e s pe cificar q uantos nós de ve m s e r cons ide rados a
partir do ip e s pe cificado. De s s e m odo, a s e guinte
O próxim o pas s o é ins tal ar algum as fe rram e ntas de s intaxe tam bém s e ria vál ida, cons ide rando q ue o
ge re nciam e nto do cl us te r ope nM os ix. range de ips q ue com poe m o cl us te r aq ui
Inicial m e nte , vam os criar um l ink s im bólico e xe m pl ificado s ão s e q ue nciais :
ne ce s s ário durante o proce s s o de com pil ação das
fe rram e ntas q ue s e rão util izadas no cl us te r: # MOSIX-# IP number-of-nodes
# ============================
# ln -s /usr/src/linux-2.4.26 /usr/src/\ # Essa instrução é equivalente à anterior
linux-openmosix 1 192.168.20.15 4
# Static openMosix configuration Por fim , vam os re iniciar a m áq uina e bootar com o
# ============================== k e rne ldo ope nM os ix:
#
# Each line in this file should contain\ # init 6
3 fields, statically mapping
# IP addresses to openMosix node-numbers:
#
Adicionando m ais nós ao s e u cl
us te r
# 1) The first openMosix node-number in\
Adicionar novos nós ao s e u cl us te r é um a ope ração
this range.
s im pl e s s e você já ch e gou até aq ui. Bas ta re pe tir os
# 2) The IP address of the above node\
proce dim e ntos ante riore s e m cada um dos nós e
(or node-name from /etc/hosts).
m ante r o arq uivo /e tc/ope nm os ix.m ap com o m e s m o
# 3) The number of nodes in this range.
conte údo dos outros nós , s e m pre ve rificando s e todos
#
os nós q ue irão com por o cl us te r e s tão e s pe cificados
# Note: If you don't create a valid IP\
ne s s e arq uivo. Em nos s o e xe m pl o, o cl us te r é
<-> node-number mapping, the\
cons tituído de q uatro nós , q ue ate nde m nos ips
# autodiscovery daemon will be\
19 2.168.20.15, 19 2.168.20.16, 19 2.168.20.17 e
started, automatically assigning
19 2.168.20.18.
# node-numbers to all visible\
h ttp://w w w .s l
ack w are zine .com .br SlackwareZine 17
ESPECIAL
Te s tando o cl
us te r
Es s a é um a pol ítica "te m porária"q ue de ve s e r
Agora ire m os te s tar a funcional idade do cl us te r, util izada s om e nte durante o proce s s o de
e s cre ve ndo e de pois e xe cutando um pe q ue no s cript ins tal ação/configuração do cl us te r, de m odo a
s uge rido na própria docum e ntação do ope nM os ixi [1]: ve rificar o s e u corre to funcionam e nto. Evide nte m e nte
q ue , após te r ce rte za de q ue tudo e s tá funcionando a
# vim script_cluster.sh conte nto, um a pol ítica m ais re s tritiva, q ue pe rm ita a
com unicação s om e nte e ntre os nós pe rte nce nte s ao
awk 'BEGIN{for(i=0;i<10000;i++)\ cl us te r é um a boa pe dida. U m a s ubne t de s tinada
for(j=0;j<10000;j++);}' s om e nte para e s s e fim tam bém é um a boa idéia...
18 SlackwareZine h ttp://w w w .s l
ack w are zine .com .br
D ICAS
De cim al
-> Binario:
echo "obase=2 ; numero" | bc "D e s e ntupindo" a fil
a de e -m ail
s
no Pos tfix
Binario-> De cim al
:
echo "ibase=2 ; numero" | bc Sabe q uando s e u s is te m a de e m ailtá l e rdo, e
você não s abe porq ue ?vai ve r o "q ue ue "de e -
H e xa-> Binario: m ail , e te m m ais de 300 e m ails , q ue e s tão
echo "ibase=16 ; obase=2 ; numero" | bc e rrados ou q ue de ram e rro na h ora da e ntre ga e
o M TA cis m a e m ficar te ntando m andar?apague
obas e é bas e de s aída (o "o"é de output) e ibas e é e s s e e m ails da fil
a com is s o:
a bas e de e ntrada (o "i"é de input). A bas e 10 é o
"padrão"do bc, e ntão não pre cis a s e r indicada. mailq | awk '/MAILER/ {
ID = substr($1,0,10)
system("postsuper -d "ID)
}
h ttp://w w w .s l
ack w are zine .com .br SlackwareZine 19
Autore s
Cl
ayton Edu ardo dos Santos , Linux de s de 2003 e
com Sl ack w are de s de 2004. Atual m e nte Pite r PUNK ak a R obe rto Fre ire s Batis ta,
de s e nvol ve s e u proje to de pe s q uis a de trabal h a com Linux de s de 19 9 6. Atual m e nte
Doutorado no De partam e nto de Enge nh aria é cons ul tor na áre a de s is te m as ope racionas
El étrica na U SP de São Carl os . É tam bém na NTU X Inform ática. É o principal
e ntus ias ta da e ra M SX e um dos e ditore s do de s e nvol ve dor do s l ack pk g e contribui
Sl ack w are Z ine . ativam e nte no de s e nvol vim e nto do
Sl ack w are Linux. Tam bém é e ditor do
Le andro Tol e do, Iniciou com com putadore s e m Sl ack w are Z ine e publ icou dive rs os artigos
19 9 3 e Linux e m 19 9 8, us ando Sl ack w are e m re vis tas e s ite s da áre a.
3.4 k e rne l2.0.30. Atual m e nte trabalh a no
ram o finance iro, m ul tinacionalFide l ity BPO, Su l
am ita Garcia, é Es pe cial is ta U nix na EDS, e
com o Anal is ta de Proje tos util izando re s pons áve lpe l
o Linuxch ix Bras il . É autora
s oluçõe s livre s . Se u principalproje to é o de dive rs os artigos e pal e s tras s obre
Sl ack w are Z ine . Sl ack w are , Al
ta Dis ponibil idade e Linux e m
ge ral .
Lindol
fo R odrigu e s ak a Lorn, é us uário de Linux
de s de 2000, com e çou com s l ack w are 8.0
atual m e nte trabal h a na U pl e xis Te cnonlogia,
com o Program ador Pe rl , é um M onge Pe rl
fanático ; ) e s tá no últim o s e m e s tre de BCC
da FASP