Migration 2003 serveur -> FreeBSD.
: Je sais que ce post va faire un peu blog, mais c’est plus simple à rédiger pour moi. Le but du post étant de raconter mon experience de home-server avec freebsd. Sans rentrer dans les détails, vu que l’on trouve pas mal de documentations sur la plupart des points abordés, mais dans l’optique de proposer une marche a suivre, et de conseiller un éventuel débutant sur les différentes étapes de configuration.
En effet, si la configuration des différents éléments n’est pas insurmontable, c’est surtout la question de quels éléments choisirs (et ou trouver LA doc pour cet élément) pour que tout fonctionne bien ensemble qui peux poser problème. Ce post est toutefois une invitation à ceux qui sont interressés par une démarche similaire à demander des détails sur telle ou telle étape.
Depuis bientôt 4 ans, je suis adepte du home-server.
Le principe est simple, il s’agit d’avoir une machine qui tourne 24/24, de préférence qui consome pas trop et ne fais pas trop de bruit, pour les applis qui nécessitant de tourner en permanence.
Ayant 4 pcs @home, (PC boulot perso/jeu, PC multimédia dans le salon, portable du taf et le serveur) j’ai décidé il y’a peu de rassembler tout mes fichiers dans le serveur, tout les disques étant tous aux 7/8 pleins, ca devenais difficile à gérer.
Sauf que avant de mettre tout les oeuf dans le même panier, on s’assure d’avoir un panier solide (et bien rembourré à l’interieur).
Il m’étais donc indispensable de limiter la casse en cas de crash disque. La solution la plus économique, en terme rapport capacité/prix s’est avérée être la suivante :
4 disques 250G en RAID5, sois 3*250 = 750Go. Avec une carte controleur non RAID (le vrai RAID fesant exploser le budget).
Premiers tests sous windows, niveau fonctionalités, ok.
Questions perfs, par contre, c’est pas ca. 4Mo/s en lecture max, 2-3 Mo/s en ecriture. Cependant, le CPU n’est pas utilisé a fond. Je soupcone le northbridge (un KT133). Après patch, le CPU tourne a fond, et on passe à 16 Mo / 5 Mo.
C’est mieux, mais c’est pas la panacée. Un coup d’oeil sur perfmon me donnera un indice : pendant l’écriture sur le raid, j’ai autant de débit en lecture que d’écriture… zarb, a moins que le systeme ne vérifie tout ce qu’il écris.
Dans le doute, les disques encore vides, je débranches tout les disques (sauf le raid), et boote sur un FreeNAS (freenas gere le RAID5).
C’est largement mieux, du coup. Depuis un autre PC du réseau, j’arrive à 20/10 Mo/s (FreeNAS n’a rien en interne pour mesurer des perfs).
C’est assez concluant pour me décider. Non pas à passer sur freenas (j’ai d’autres besoins qu’un simple NAS), mais à retenter ma chance avec FreeBSD.
Je vous passe les détais de l’installation du systeme de base. Avec le handbook sous la main, c’est une gageure.
Seul hic, le CD refuse de booter avec mes 4 disques Sata présents. Je les débranches le temps de l’install, pas de soucis après pour booter sur le disque… ouf.
Niveau matos, tout est détecté du premier coup (y compris le controleur sata promise, donc).
1ere étape, installer le module RAID5.
En effet FreeBSD ne gère pas nativement le RAID5 (pour le moment), mais comporte une archi assez bien foutue et modulaire pour la gestion des disques : GEOM.
Pour le projet FreeNAS, à donc été developpé un module noyau (une classe geom donc) : geom_raid5.
L’install est relativement simple : voir http://fanplastic.org/freebsd-geom-raid-5/ .
La création de l’array est tout aussi simple : graid5 create nom_de_l_array da0 da1 da2 da3
La synchronisation des disques va prendre un certain temps, mais l’on peux commencer à utiliser l’array immédiatement.
(création du systeme de fichiers : newfs , activation des soft-updates et acls : tunefs, montage : mount et /etc/fstab ).
Une fois l’array synchrone (encore une fois, cela prends du temps, 2h dans mon cas, mais beaucoup moins que sous win), quelques tests de perfs avec gstat.
En écriture : cat /etc/random > /mnt/raid5/test
Par disque : 4 Mo/s en ecriture, 0 en lecture, sois 10Mo/s sur l’array, c’est déja plus sympatique.
En lecture, maintenant : cp /mnt/raid5/test /dev/null
Par disque : ~12 Mo/s , sois ~64 Mo/s sur l’array : là, je suis content B).
OK, c’est décidé, on reste sur FreeBSD.
2ème étape : Le réseau.
Avant l’install, l’a fallu passer la freebox en mode routeur (ERK), on va donc configurer la machine pour qu’elle reprenne son role de NAT/FW.
La configuration des interfaces réseau (3 dans mon cas : FreeBox, LAN et WLAN) se fais dans rc.conf.
Puis : activation et configuration de pf en Nat (/etc/rc.conf et /etc/pf.conf)
Oups ! J’oublie ALTQ ! Tant qu’a utiliser FBSD et PF, autant profiter des fonctionnalités de QoS. Malheuresement, pour ca, il faut recompiler le noyau.
Heuresement, avec le handbook sous la main, c’est l’affaire de 2mn dans un unique fichiers de conf, de deux commandes (et de 10-15 mn de compilation, pendant lequelles ont peux passer à autre chose).
3ème étape : Le DNS.
J’aime bien avoir mon petit DNS. Cela évite d’utiliser les IPs des machines, et évite de se reposer sur NetBios pour la résolution de noms locale.
Donc configuration de BIND (intégré au systeme de base). Je vous passe les détails, et j’avoue que cela deviens un peu complexe, pour qqun qui n’a jamais touché a Bind.
Dans mon cas, j’utilisais déja Bind sous Windows…
4ème étape : DHCP.
Installation de isc-dhcpd-3.
La configuration est quand à elle relativement aisée en utilisant le fichier de conf exemple.
L’activation du demon se fait comme pour tout les autres, dans rc.conf.
5ème étape : Wifi.
Je n’utilise pas d’AP materiel. Le serveur étant le point central du réseau, j’estime que c’est plus sa tache. (et une carte réseau coute moins cher qu’un AP wifi, surtout quand on l’a déja).
Suite des opérations, configurer la carte wifi en mode AP.
Là, ca se complique. En effet, si le simple chiffrage WEP est géré par le noyau, l’authentification WPA nécessite l’utilisation d’un démon séparé : hostapd.
Or, si hostapd est inclus dans le systeme de base, la documentation fais pas mal défaut. Pas de fichier de conf d’exemple, ni de détails sur les options du dit fichier dans man.
J’ai heuresement fini par trouver un How-To qui explique tout bien comme il faut :
http://www.howtoforge.com/setting_up_a_fre…an_access_point
Notamment : nécessité de modules noyau qui ne sont pas dans le noyau GENERIC (recompilation du coup, tant qu’a faire…) et des options de hostapd nécessaires pour que ca marche.
Une fois que l’on dispose de toutes les infos, par contre, cela fonctionne très bien, voire mieux qu’en hostAP sous windows.
En effet, hostapd permet au passage de faire du WPA2, et d’utiliser indifféremment TKIP ou AES-CCMP.
Je n’ai pas voulu pousser le vice à installer une authentification EAP/radius, mais sachez que c’est tout aussi fesable.
La suite (partage de fichiers, bittorrent, news) au prochain edit.