Deprecated: Function split() is deprecated in /home/www/static/linuxsoft.ro/www.linuxsoft.ro/public_html/wiki/inc/auth.php on line 146 Warning: Cannot modify header information - headers already sent by (output started at /home/www/static/linuxsoft.ro/www.linuxsoft.ro/public_html/wiki/inc/auth.php:146) in /home/www/static/linuxsoft.ro/www.linuxsoft.ro/public_html/wiki/inc/auth.php on line 236 Warning: Cannot modify header information - headers already sent by (output started at /home/www/static/linuxsoft.ro/www.linuxsoft.ro/public_html/wiki/inc/auth.php:146) in /home/www/static/linuxsoft.ro/www.linuxsoft.ro/public_html/wiki/inc/actions.php on line 128 administrare:server-freebsd [Linux Soft Wiki]
 

Introducere

Aici voi baga niste informatii despre instalare, sistem de init, ports, updatare, etc. Articolul va fi orientat mai mult spre server.

Instalare

Instalarea FreeBSD este destul de usoara si e descrisa cu lux de amanunte in handbook . Totusi voi face cateva note in legatura cu partitionarea.

Discuri

Partitii si numele device-urilor

In FreeBSD, precum si alte sisteme BSD sau UNIX, exista conceptul de slice-uri. Aceste slice-uri sunt ceea ce windows sau linux ar numi partitii primare. Pentru ca un sistem BSD sa functioneze, are nevoie de un slice intreg. Daca nu puteti sa ii alocati un slice, nu puteti sa-l instalati. De exemplu, poate aveti deja 4 slice-uri pe un disc, numarul maxim, sau aveti tot spatiul pe disc ocupat de o partitie extended, iar FreeBSD, spre deosebire de Linux, nu poate fi instalat pe o partitie extended.

Programul care se ocupa de crearea slice-urilor se numeste fdisk. Exemplu de output fdisk:

# fdisk
******* Working on device /dev/ad0 *******
parameters extracted from in-core disklabel are:
cylinders=39813 heads=16 sectors/track=63 (1008 blks/cyl)

Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=39813 heads=16 sectors/track=63 (1008 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 63, size 40131441 (19595 Meg), flag 80 (active)
        beg: cyl 0/ head 1/ sector 1;
        end: cyl 1023/ head 15/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>


fdisk arata un singur slice de 20gb, in care este bagat disklabelul freebsd. In acest asa-numit disklabel sunt partitiile freebsd /, /mnt, /var, /usr, swap, etc. Disklabelul se modifica folosind comanda disklabel.

# disklabel /dev/ad0s1
# /dev/ad0s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  1048576        0    4.2BSD     2048 16384     8
  b:  2045520  1048576      swap
  c: 40131441        0    unused        0     0         # "raw" part, don't edit
  d:  3119104  3094096    4.2BSD     2048 16384 28552
  e:  1048576  6213200    4.2BSD     2048 16384     8
  f: 32869665  7261776    4.2BSD     2048 16384 28552


Aici avem lista cu toate partitiile noastre. Ce este acel /dev/ad0s1? Este numele device-ului corespunsator primului slice de pe hdd-ul master de pe primul controler IDE al sistemului, ceea ce in linux s-ar numi /dev/hda1.

In outputul disklabel vedem acele litere de la inceputul fiecarui rand:

a:  1048576        0    4.2BSD     2048 16384     8

Ce semnifica acel a:? Sa vedem ce zice si mount:

# mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s1e on /tmp (ufs, local, soft-updates)
/dev/ad0s1f on /usr (ufs, local, soft-updates)
/dev/ad0s1d on /var (ufs, local, soft-updates)

Aici ne apar numele device-urilor care sunt montate si mountpointurile lor. Device-ul ‘/dev/ad0s1a’ este device-ul corespunzator partitiei (labelului) ‘a:’ de pe primul slice de pe hdd-ul master de pe primul controler IDE al sistemului.

Scheme de partitionare

Dupa cum observati in exemplul anterior, am pus sistemele de fisiere pe partitii diferite. Partitiile mele arata astfel:

/        524MB
swap     1022MB
/var     1559MB
/tmp     524MB
/usr     16434MB

Un sistem freebsd ar putea fi instalat pe o singura partitie / si eventual o partitie swap, daca nu aveti memorie suficienta pentru a va rula aplicatiile, dar nu e necesar. Care sunt avantajele si dezavantajele separarii partitiilor?

O singura partitie:

  • Nu se pierde deloc spatiu
  • Capul de citire al hdd-ului se misca mai putin, datele fiind toate la un loc asezate in ordine
  • Daca se corupe sistemul de fisiere, pierdeti toate datele si nu mai puteti sa bootati deloc sistemul
  • Este mai greu sa faceti backup la un intreg sistem de fisiere
  • Daca o aplicatie genereaza prea multe loguri, sau primiti multe mailuri, etc. va umpleti tot spatiul de pe disc, limitandu-va spatiul de manevra


Mai multe partitii:

  • Daca se corupe o partitie, celelalte raman nevatamate, in special partitia /, deoarece pe ea in general nu prea se scrie, deci se corupe mai greu. Avand partitia / intacta, puteti boota sistemul sa constatati pagubele si sa le reparati.
  • Se poate face backup mult mai usor la o intreaga partitie, de exemplu la partitia /var, unde de obicei se tin mailurile, logurile si bazele de date.
  • Daca o aplicatie genereaza subit multe loguri, ea va umple doar partitia /var. Unele atacuri vizeaza generarea multor loguri cu scopul de a umple hdd-ul sistemului. Daca aveti multe loguri in general, e recomandat sa va faceti o partitie separata /var/log
  • Datele fiind mai dispersate, capul de citire al hdd-ului va trebui sa se miste mai mult, depinzand de marimea partitiilor si ce date sunt in ele.
  • Va ocupa mai mult spatiu, dar cum spatiul pe disc e ieftin, asta nu mai e o problema


Cam cat spatiu trebuie sa alocam partitiilor si ce partitii ar trebui separate de restul?
Mai intai trebuie sa stim cam ce rol au directoarele respective. Consultati man hier pentru o lista completa a structurii sistemului de fisiere. In general, cam singurele directoare care trebuie puse pe o partitie separata sunt:

  • / - filesystemul radacina, aici sunt pastrate kernelul, loaderul, fisierele de configurare ale sistemului (/etc), uneltele de rescue (/rescue vedeti man rescue . Daca tot sistemul este distrus, si inca mai aveti partitia /, puteti sa bootati si sa-l reparati, nu mai aveti nevoie de livecd. Marime minim recomandata 250MB
  • /tmp - fisiere temporare, marime minim recomandata 500MB
  • /var - mailuri in / var/mail, paginile care urmeaza a fi printate si alte asemenea lucruri in / var/spool, loguri in /var/log. Spatiul necesar partitiei variaza in functie de necesitati. Daca aveti un server de mail sau aveti multe loguri, ati putea face partitiile /var/mail sau /var/log separate. Un minim necesar pentru un sistem fara loguri si fara mail ar fi cam 600-700MB
  • /usr - aici se pastreaza o parte din binarele si liburile din baza freebsd /usr/bin, /usr/lib, /usr/share etc. manurile si alte chestii, programele instalate din ports /usr/local, porturile /usr/ports, inclusiv sursele programelor si pachetele binare /usr/ports/distfiles, si programele in curs de compilare in directoarele ‘work’ din directoarele porturilor. Aveti grija cand compilati un program mare precum openoffice, veti avea nevoie de spatiu mult pentru compilare 2-3GB. Tot in /usr este si directorul home, /home fiind symlink catre /usr/home. Foarte important sa tineti cont si de asta. Este preferabil sa faceti o partitie separata pentru /usr/home. Deci spatiul necesar ar fi un minim absolut de vreo 2GB, depinzand desigur de cantitatea de software pe care vreti sa o instalati. Pentru un desktop cu X, Gnome, KDE, diverse aplicatii, openoffice cam 10-15GB ar trebui sa ajunga, asta neincluzand datele utilizatorilor din /usr/home, desigur. De obicei in /usr se baga restul spatiului liber dupa ce ati creat toate celelalte partitii.

Soft updates

Soft updates este o alternativa la jurnalizarea sistemului de fisiere. El asigura faptul ca sistemul de fisiere nu se va corupe daca serverul se va opri de la o cadere de tensiune sau crash foarte mare (ex: kernel panic). El, ca si alte fisiere jurnalizate, nu va poate garanta ca nu se vor pierde date, doar ca sistemul de fisiere nu o sa fie lasat intr-o stare in care sa nu mai poata fi montat la repornire.

Softupdates necesita ca un fsck sa fie rulat la repornire. Desi acesta se face in background pe freebsd, dar nu si pe netbsd sau openbsd (serverul poate sa-si continue activitatea in timp ce se efectueaza fsck-ul), acest lucru ar putea sa fie indezirabil pe volume foarte mari de date. Exista deja suport pentru ufs jurnalizat in freebsd, dar nu este inclus in release momentan, trebuie aplicat un patch si recompilat.

Configurare

Multe setari le faceti de la instalare cu programul sysinstall, instalinstalleru FreeBSD. Puteti sa folositi sysinstall si dupa ce ati instalat sistemul tastand in consola ‘sysinstall’. Aici voi trata configurarea “manuala”, adica modificand fisierele de configurare

Fisiere de configurare

  • /etc/rc.conf - cel mai important fisier de configurare al unui sistem FreeBSD. Din rc.conf se configureaza sistemul de init, placile de retea, aliasurile lor, hostname, domeniu, fontul consolei, rata de repeat al tastaturii in consola si alte chestii. Toate setarile implicite le gasiti in /etc/defaults/rc.conf. Daca aveti dubii in privinta sintaxei rc.conf, consultati /etc/defaults/rc.conf, dar modificarile trebuie facute mereu in /etc/rc.conf!
  • /etc/sysctl.conf - seteaza variabilele sysctl ale kernelulul. Aceste variabile sunt echivalentul /proc in linux si seteaza niste parametri de functionare ai kernelului.
  • /boot/loader.conf - configureaza loaderul freebsd, programul care incarca kernelu. Aici se pot seta diverse sysctl-uri care nu pot fi modificate in timp ce ruleaza, se pot incarca drivere sau alte module de kernel, timerul de la bootare, etc. La fel ca si in cazul rc.conf, exista /boot/defaults/loader.conf.
  • /etc/make.conf - configureaza anumiti parametri ai porturilor FreeBSD, si al procesului de “build world” (recompilarea bazei freebsd sau a kernelului). Folosind make.conf puteti controla CFLAGS, pentru a pune optimizari de compilare, puteti sa scoateti anumite componente din baza FreeBSD, precum sendmail sau bind, compilatoare si altele. Exista si un fisier exemplu in /usr/share/examples/etc/make.conf pe care puteti sa-l folositi drept baza si sa-l modificati dupa cum doriti.

Pentru mai multe detalii consultati man rc.conf man sysctl man loader.conf man loader man make.conf

Configurarea placilor de retea

Din motive istorice (desigur), placile de retea in FreeBSD au numele driverului lor. Astfel, o placa realtek va avea numele rl0, o a doua placa realtek va avea numele rl1, o placa intel numele fxp0, etc. ifconfig este instrumentul cu care se configureaza placile de retea. Exemplu output ifconfig:

# ifconfig
lnc0: flags=108843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
        inet6 fe80::20c:29ff:fe12:4d53%lnc0 prefixlen 64 scopeid 0x1
        inet 192.168.38.129 netmask 0xffffff00 broadcast 192.168.38.255
        ether 00:0c:29:12:4d:53
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet 127.0.0.1 netmask 0xff000000

lnc 0 este placa de retea emulata de vmware. ifconfig afiseaza statusul (UP, DOWN, etc.), IP, netmask, MAC, daca are link, modul in care functioneaza ex. 100BASE-TX, 1000BASE-T, etc.
lo0 este interfata loopback, o interfata logica care are legatura numai cu sistemul propriu, localhost cum ar veni.

Ca sa schimbam configuratia placii, folosim tot ifconfig, dar atentie!, modificarile sunt temporare, la reboot vor ramane tot cele precedente. Sintaxa ifconfig din FreeBSD difera putin fata de cea Linux.

Setare IP, netmask:

ifconfig lnc0 inet 192.168.38.123 netmask 255.255.255.0


Setare alias pe interfata:

ifconfig lnc0 alias 192.168.38.155 netmask 255.255.255.0


Scoateti un alias:

ifconfig lnc0 -alias 192.168.38.155 netmask 255.255.255.0


Pornire si oprire interfata:

ifconfig lnc0 up
ifconfig lnc0 down


Si o functie destul de utila, dupa parerea mea, redenumire interfata:

ifconfig lnc0 name contabilitate
# ifconfig
contabilitate: flags=108843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
        inet6 fe80::20c:29ff:fe12:4d53%contabilitate prefixlen 64 scopeid 0x1
        inet 192.168.38.129 netmask 0xffffff00 broadcast 192.168.38.255
        ether 00:0c:29:12:4d:53


Pentru mai multe detalii man ifconfig .

Dupa ce am configurat IP-urile, trebuie sa punem si gateway-ul. Asta se face cu comanda route (observati ca este ‘route add default’, nu ‘route add default gw’ ca pe linux):

route add default 192.168.38.2


Pentru a vizualiza rutele, se foloseste comanda netstat:

# netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.38.2       UGS         0        0 contab
127.0.0.1          127.0.0.1          UH          0        6    lo0
192.168.38         link#1             UC          0        0 contab
192.168.38.1       00:50:56:c0:00:08  UHLW        1      163 contab   1197
192.168.38.2       link#1             UHLW        2        7 contab

Internet6:
Destination                       Gateway                       Flags      Netif Expire
[...]


Desigur, pentru mai multe detalii man route man netstat .

Dupa cum spuneam, setarile acestea se vor pierde dupa reboot. Ca sa le facem permanente trebuie sa modificam /etc/rc.conf.

ifconfig_lnc0="inet 192.168.38.129 netmask 255.255.255.0"
defaultrouter="192.168.38.2"


Exemplu cu redenumire de interfata:

ifconfig_lnc0_name="contabilitate"
ifconfig_contabilitate="inet 192.168.38.129 netmask 255.255.255.0"
defaultrouter="192.168.38.2"


DHCP:

ifconfig_lnc0="DHCP"


Un exemplu de configuratie cu aliasuri plus niste detalii despre ce netmaskuri trebuie sa le puneti aveti in handbook .

 
administrare/server-freebsd.txt · Last modified: 2008/03/02 17:37 by gheorghe
 
Publicaţi pe acest Wiki doar conţinut original, nu se acceptă copierea articolelor de pe alte site-uri. Se recomandă folosirea link-urilor in acest caz.
Recent changes RSS feed