Puyb Inside

dimanche 2 novembre 2008

Fabriquer un NAS et plus encore...

Je voulais acheter un NAS pour centraliser les sauvegardes des ordinateurs de ma mère...

Comme les ordinateurs à sauvegarder sont des Mac, je me suis d'abord intéressé à TimeCapsule d'Apple. Mais j'ai vite écarté cette solution. La principale raison est le fait qu'il n'y ai pas de RAID 1. Je ne conçois pas une solution de sauvegarde sur disque dur sans RAID miroir ! La seconde raison, c'est le prix : 499€ pour 1To, c'est cher...

Ensuite, j'ai regardé les NAS d'autre marques. Mais je n'ai rien trouvé de très intéressant. Soit c'est abordable et peu performant, soit c'est cher...

J'ai donc décidé de faire un NAS à partir d'un PC.
Les objectifs à atteindre :
  • 1To en RAID 1
  • Prix plancher
  • Faible consommation électrique
  • Peu bruyant

Le matériel :


J'ai acheté pour moins de 300€ :
  • Une carte mère VIA PC 2500E équipé d'un C7 à 1.5GHz
  • 1 Go de RAM
  • 2 disque de 1To SATA
  • 1 clef USB de 8Go (pour l'OS)
J'avais déjà un petit boîtier Micro ATX qui trainait, c'est déjà ça d'économisé.

Pourquoi ces composants : J'ai prix cette carte mère car elle coûte très peu et consomme aussi très peu. J'ai choisi de mettre l'OS sur un clef USB pour pouvoir éteindre les disques lorsqu'il ne servent pas. Cela permet donc de moins les user et d'économiser l'énergie pas la même occasion.

J'ai choisi d'installer un Ubuntu. Je l'ai installé depuis une clef USB (la même que celle que j'ai utilisé pour installer mon Acer Aspire One).

Configuration :

J'ai commencé par installer le serveur ssh, puis les paquets permettant de gérer le RAID et de surveiller le statuts des disques en SMART.
apt-get install vim openssh-server mdadm smartmontools postfix denyhosts
J'ai configuré postfix en smarthost (il fait suivre les mails a mon serveur SMTP). Il va servir à envoyer les mails d'alertes du système.
Denyhosts est un script qui permet de sécuriser le serveur ssh contre les attaques de type brut force (essayer de tous les mots de passe possible de façon automatique) en bloquant l'accès au bout d'un nombre déterminé d'erreur de connexion.
Ensuite, j'ai configuré les alias pour recevoir les mails d'alertes envoyé à root/puyb :
echo "puyb: admin@example.fr" >> /etc/aliases
postalias /etc/aliases
Maintenant, passons à l'étape de la configuration des disques.
Première étape, avec fdisk, j'ai fait une partition sur chaque disque, puis j'ai assemblé, formaté, et monté l'array RAID.
mdadm --create /dev/md0 -l1 -n2 /dev/sda1 /dev/sdb1
mke2fs -j -m0 /dev/md0
echo 50000 > /proc/sys/dev/raid/speed_limit_min 
cat "/dev/md0        /home           ext3    defaults        0       0" >> /etc/fstab
cd /
mv home home.bak
mkdir home
mount -a
cp -rv home.bak/* home/
rm -r /home
watch -n1 /proc/mdstat
Maintenant, il faut attendre que l'array se construise avant d'éteindre la machine... La dernière commande permet de suivre l'avancement... Bien sur, ça n'empêche pas de continuer à configurer la machine, il suffit juste de ne pas l'éteindre...
Pour information, la commande echo 50000 > /proc/sys/dev/raid/speed_limit_min fixe la vitesse de reconstruction à 50Mo par secondes minimum...

Installation de netatalk

Netaltalk permet de faire des partages AFP (pour les backup Time Machine). Malheureusement, la version fournie avec Ubuntu ne supporte pas le SSL. Il faut donc le recompiler avec le support SSL.
apt-get install build-sessentials libslp-dev autotools-dev devscripts cracklib2-dev dpkg-dev libssl-dev
apt-get source netatalk
apt-get build-dep netatalk
cd netatalk-2.0.3
DEB_BUILD_OPTIONS=ssl sudo dpkg-buildpackage -us -uc
debi

Le script de démarrage de Netatalk fournit avec Ubuntu ne fonctionne pas si la carte réseau est configuiré en mode itinérant. Il faut donc lui assigner une adresse IP fixe.

Ensuite, après avoir configuré les partage que je souhaite dans /etc/netatalk/AppleVolumes.default, j'ai configuré avahi pour annoncé les services disponible sur ce NAS. J'ai déjà détaillé la façon de le faire dans ce billet. J'ai configuré le SSH comme dans le billet, mais j'ai aussi ajouté l'AFP.
/etc/avahi/services/afpd.service
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">%h</name>
  <service>
    <type>_afpovertcp._tcp</type>
    <port>548</port>
  </service>
</service-group>

A ce niveau, je dispose donc d'un NAS permettant de faire de l'AFP, du SFTP et du SSH... Ça me permet de me connecter depuis Linux et MacOSX... Mais il n'y a pas que ces deux OS... J'ai aussi des copains qui utilise des OS alternatifs comme Windows...J'ai donc installé samba pour faire des partage SMB/CIFS.

apt-get install samba

Pour économiser l'energie, j'ai reglé les disque pour s'éteindre au bout de 5 min.
echo "/dev/sda {
        spindown_time = 60
}
/dev/sdb {
        spindown_time = 60
}
" >> /etc/hdparm.conf

Configuration de Time Machine

Pour faire fonctionner ce NAS avec Time Machine, il faut bidouiller un peu. Et oui, Apple ne vas pas si facilement vous laisser acheter autre chose qu'un disque Time Capsule... Première étape, il faut créer un fichier vide à la racine du partage réservé pour Time Machine :
touch .com.apple.timemachine.supported
Ensuite, il faut, dans un terminal dur le mac, taper la commande suivante, qui va empêcher Time Machine de cacher les disques qui ne sont pas "supportés" :
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
Ensuite, il faut lancer une première sauvegarde. Elle va échouer, mais avant quelle échoue, il faut aller copier le nom du dossier qui est créé dans le partage Time Machine. Il doit avoir un nom qui ressemble à "NomMachine_0123456789ab.sparsebundle"... Il faut recopier ce nom, et créer une image disque (via l'utilitaire de disque) de type SparseBundle, Format HFS+, aucun chiffrement, aucune partition, portant le nom que vous avez copié, et de la taille maximale que vous souhaiter allouer au backup (j'ai mis 900Go). Enregistrer cette image sur le volume TimeMachine (toujours sous le même nom), puis relancer une sauvegarde, elle devrais marcher...

Performances

Consommation :

Avec mon wattmettre, j'ai mesuré environ 60W quand les disques sont allumé et 35W quand ils sont éteint... Ça me semble pas mal vu que d'après ce que j'ai lu, la plupart des NAS consomme environs 30W à 45W...
Je devrais pouvoir encore améliorer la consommation en remplacement l'alimentation bas de gamme actuelle par une alimentation avec un meilleur rendement (une alimentation certifié 80+ devrais faire l'affaire).

Acces disques :

Lecture : 85Mo/s
Écriture : 75Mo/s

Dans tous les cas, c'est bien plus que ce que peu supporté la carte ethernet 100MBps dont est équipé le serveur... De plus, il sera utilisé le plus souvent en Wifi ! Bref, les performances du RAID sont très bonnes...

Bruit

Aie, c'est là que le bas blesse. La carte mère est pourvu d'un petit ventilateur de 4 cm de diamètre qui fait bruit aigue assez désagréable. Je pense qu'a terme, je vais remplacer le radiateur par un grand modèle prévu pour dissiper la chaleur émise par gros processeur. Le tout, sans ventillateur, en utilisant juste le flux d'air du ventilateur de l'alimentation électrique.

Conclusion

Voila comment se faire un NAS haute performance pour un budget faible... Evolutions possibles : D'un point de vue logiciel, vu la puissance disponible, quasiment tout est envisageable, on verra selon les besoins qui se présenteront... Au niveau matériel, la carte mère possède un port PCI express 1X et 2 PCI... Je pourrais donc ajouter une carte réseau gigabit, ou encore un contrôleur SATA et quelques disques suplémentaires si les 1To ne suffisent plus...

vendredi 19 septembre 2008

Les Webcams du LHC

Le nouvel accélérateur de particules du CERN, le LHC, est maitenant équipé de webcams. On peut donc voir les expériences en direct !

Et ça vaut le coup d' œil !

C'est ici

Via Tristan Nitot.

samedi 13 septembre 2008

Au voleur

Jeudi, dans le train Paris-Rouen de 21h20, je me suis fait dérobé ma sacoche avec, entre autre, mon IBM T30 dedans.

Bon, clairement, vu son âge et son état, cette machine ne vaut rien (peut être 150€ ?). Mais je lance quand même un appel si vous la voyez en vente, merci de me prévenir.

Donc, concretement, un T30, ça ressemble à ça :

Mais le miens ressemblait plutôt à ça :

Sa configuration :
P4M 1.8GHz, 1024Mo, 120Go, Ubuntu 8.04
Signes particuliers :
Les autocollants (mais le voleur, s'il est malin les aura enlevés). La peinture noire des trapes d'accès à la RAM et à l'emplacement MiniPCI est partie. Un autocollant de licence WinXP Pro sur la trappe MiniPCI. Le coin de la trappe d'accès au HDD est cassé. La plupart des caches de vis du capot manquent. L'adresse MAC de la carte Ethernet est : 00:09:6B:C2:54:67.

Le pire dans tout ça, c'est que je venais de réinstaller Ubuntu dessus et que je n'avais pas pensé a installer Adéona dessus... J'ai l'air malin maintenant !!!

M'enfin, en remplacement, je viens d'acquérir un Acer Aspire One (sous Linux évidement !). Et je viens d'installer Adéona dessus !!!

mardi 29 juillet 2008

Antivol pour portable

Je viens de découvrir Adeona. C'est un logiciel libre qui permet retrouver plus facilement son portable en cas de vol.

Il existait déjà des services équivalent, mais payant, non libre (et uniquement sous MacOSX à ma connaissance).

Le principe est le suivant : à intervalle régulier, le programme se réveille et si il est connecté à internet, envoi un message crypté sur un service de stockage en ligne. Le message contient toutes les informations nécessaires à un service de police pour retrouver le portable, à savoir, l'adresse IP interne et externe du portable, un traceroute, la liste des réseaux wifi à proximités, et si le portable est équipé d'une webcam, une photo de l'utilisateur (qui doit sans doute être le voleur...). Déjà plusieurs portables on été retrouvé grâce à ce genre de service aux états unis.

La confidentialité des informations stockées en ligne est garantie par un cryptage fort (certificat + mot de passe).

Je viens de l'installer sur la plupart de mes ordinateurs et sur ceux de mes proches...

Voici en vrac quelques améliorations possibles :
  • Il pourrait donner aussi la liste des appareils bluetooth à portés.
  • S'il détecte un GPS bluetooth, il pourrait l'utiliser pour envoyer aussi les coordonnées GPS.
Les autres options pourraient permettre de palier l'absence de connectivité, mais elles sont moins légales :
  • Si aucun réseau ouvert n'est disponible, il pourrait essayer d'envoyer un SMS par bluetooth sur le portables à proximité, voir de se connecter à internet par bluetooth.
  • Moins légal, toujours si aucun réseau ouvert n'est detecter, il pourrais essayer de se connecter automatiquement au réseaux fermé avec une attaque de clef WEP ;-)... Un peu comme dans ce XKCD:
Le plus gênant, c'est qu'il faudrait que ces actions ne se déclenchent que si le portable à été déclaré comme volé, hors, sans connectivité, le portable ne peut pas savoir qu'il a été volé... Le serpent se mort la queue...

En tout cas, c'est un très bon soft, mais j'espère ne jamais avoir à m'en servir !

dimanche 6 juillet 2008

Pour les Rototuxiens

Je les ai ;-) Il y en a environ une centaine...

Maintenant, si tu fais partie de RotomaLUG et que tu en veux un, il va falloir être très très gentil ;-)

mardi 1 juillet 2008

De retour de 24H du Mans Roller 2008

Ce week-end, j'ai participé pour la quatrième fois aux 24H du Mans Roller.

Cette année, nous avons fait une meilleur performance que l'année dernière, soit 136 tours au contre 130 en 2007. Malgré cela, nous sommes moins bien classé (195ème contre 174ème en 2007). Comme le dit Bastnic, que j'ai rencontré sur place, c'est sans du au fait que les rollers de vitesse avec des roues de 100mm sont devenu très abordable, et donc les concurrents roulent tous beaucoup plus vite. Je me rappel qu'en 2004, lors de ma première participation, la plupart des concurrents étaient équipés de patins de fitness (moi compris).

Sur un plan personnel, je suis à la fois content et déçu (oui, je suis compliqué). Je suis content, car mon entraînement cardio et mes nombreuses sorties en roller tout au long de l'année dernière ont portées leurs fruits. Cette années, après chaque tours, je récupérais beaucoup plus vite.

Par contre, je suis un peu déçu, car pour mon dernier tour, je me suis fait violence et j'ai amélioré mon chrono de presque 1 minute. Et je l'ai plutôt bien supporté ! Je suis donc un peu déçu de ne pas avoir poussé un peu plus lors de mes tours précédents. Je me suis peut être un peu trop économisé.

Par contre, j'ai encore souffert du dos. Cette année, je vais donc essayer d'orienter mon entraînement sur la musculation du dos et des abdominaux.


Merci à tous les membres de la Wonder Team et à l'année prochaine sur le circuit Bugatti !

dimanche 20 avril 2008

Multi écran avec Ubuntu Hardy

J'ai essayé de faire fonctionner le multi-écran sur mon portable IBM T30 et sur un autre PC. J'ai eu quelques difficultés sur les deux. Voici mes observations :

Ces deux machines sont toutes les deux équipées d'une puce graphique un peu ancienne. Le T30 à une vénérable radeon 7500 généreusement dotée de 16Mo de RAM. L'autre PC était équipé d'une radeon 9200. Ces deux machines utilisent le driver 'ati' de Xorg.

De nos jours, pour faire du multi-écran avec une seule carte vidéo, on n'utilise plus Xinerama (tant mieux, c'était un calvaire à configurer), mais l'extension XRandR (pour X Rotation and Resolution), qui était déjà utilisée pour changer la résolution de X11 sans devoir redémarrer le serveur. Normalement avec Ubuntu Hardy, un joli utilitaire (Système > Préférences > Résolution de l'écran) permet de configurer le double écrans facilement.

Parfait... Sauf que pour moi, il n'a pas fonctionné... Il détecté correctement mes deux écrans, je pouvais changer leur résolutions, les positionner l'un par rapport à l'autre, mais dès que je cliquait sur "appliquer", mes deux écrans semblaient comme superposés... Si je fermais, puis revenais dans l'utilitaire, il me montrait mes deux écrans superposés (donc cohérent avec mon affichage). Impossible de les séparer...

Après avoir cherché un peu du coté de XRandR, je me suis rendu compte, en tapant xrandr dans un terminal, que la résolution virtuelle de ma carte était bien trop faible... Mais qu'est ce que la résolution virtuelle ? Et bien, il faut considérer que les écrans sont une partie d'un grand écran virtuel. Pour que le double écran fonctionne, il faut que mes deux écran "entre" dans cet écran virtuel. Mes deux écrans, un 15" et et 17 " ont des résolutions de respectivement 1024x768 et 1280x1024. Ma résolution virtuelle était réglée à 2048x2048 (1024x1024 sur mon T30). Cette résolution virtuelle, sur sa largeur ne peut pas contenir mes deux écrans (2048 < 1024 + 1280)... Voilà pourquoi mes écrans restaient superposés...

Mais ce qui est bien avec Linux, c'est qu'un problème n'est bien souvent pas une fatalité. Il suffit de dire à Xorg quelle résolution virtuelle l'on souhaite utiliser. Pour cela, malheureusement, il faut mettre les mains dans le cambouis en éditant son fichier /etc/X11/xorg.conf (qui au passage, s'est dramatiquement vidé depuis le passage à Xorg 7.3) :
...
Section "Screen"
	Identifier	"Default Screen"
	Monitor		"Configured Monitor"
	Device		"Configured Video Device"
	DefaultDepth    24
	SubSection     "Display"
		Depth       24
		Modes      "1024x768" "800x600" "640x480"
		Virtual 2304 1024
	EndSubSection
EndSection
...
Je me suis limité à l'exact résolution dont j'avais besoin, car ma carte disposant de peu de RAM, je n'ai pas pu mettre beaucoup plus. Il m'a suffit de me déconnecter, puis de me reconnecter, et j'ai pu régler facilement mes résolutions via l'interface graphique...

Alors, on est en droit de se demander pourquoi le réglage de Xorg est si faible par défaut. En fait, il semble que cette valeur par défaut soit laissée à la discrétion du pilote ('ati' dans mon cas). Si le driver met une valeur faible c'est qu'il semble par exemple que certaine cartes ne puissent plus afficher de 3D si une résolution virtuelle supérieure à 2048x2048 est utilisée. Il semble que j'ai effectivement perdu les fonctions d'accélération 3D sur mon T30... En même temps, la 3D sur une radeon 7500...

Voilà, amusez vous bien avec vos écrans multiples sous Linux ;-)

dimanche 24 février 2008

Lire un podcast sous Ubuntu

Hier, Jean-François m'a fait part de ses difficultés à s'abonner à un podcast sous Ubuntu. Sa compagne évoquant même la possibilité de revenir sous Windows juste pour ça (elle aime la provocation ;-) ). J'ai été assez surpris, car la manipulation est assez simple. Il suffit d'aller dans RhythmBox, de sélectionner la fonction "Nouveau flux Podcast" du menu "Musique" et de saisir l'adresse du podcast. Pour obtenir l'adresse, sur le site de Radio France par exemple, il suffit de cliquer sur le lien "voir le lien RSS", puis de copier l'adresse qui apparait dans la fenetre popup.

Le problème viens du fait que beaucoup de podcast sont proposé sous forme d'un adresse commençant par itpc://... En fait cette adresse permet d'indiquer aà un ordinateur muni d'iTunes qu'il faut utiliser iTunes pour lancer ce podcast. RhythmBox ne connait pas (encore) les adresse itcp. En fait, il suffit juste de remplacer itpc par http dans l'adresse pour que RhythmBox accepte le podcast.

Maintenant, comme ce genre de manipulation est plutôt fastidieuse, voici comment rendre tout cela automatique. Le but du jeu, est que lorsque dans Firefox l'on clique sur un lien itpc, le podcast soit automatiquement ajouter dans Rhythmbox.

Il suffit d'ajouter dans Firefox, un nouveau gestionnaire de protocole. Commençons par écrire le gestionnaire de protocole en question. Le gestionnaire de protocole est un petit programme qui sera lancer avec comme argument l'URL demandé. Nous voulons qu'il prennent cette URL, remplace itpc par http et lance RhythmBox avec la nouvelle URL ainsi formée. C'est facile :
#!/bin/bash
/usr/bin/rhythmbox "http`echo "$1" | cut -c 5-`"
J'ai décider d'enregistrer ce programme dans /usr/local/bin/rhythmbox-podcast. Il ne faut pas oublier de le rendre executable avec :
sudo chmod a+x /usr/local/bin/rhythmbox-podcast

Ensuite, il suffit d'indiquer a Firefox qu'il doit utiliser ce programme pour gérer les adresses commençant par itpc. Pour cela, il faut taper about:config dans la barre d'adresse de Firefox, puis faire un clic droit sur la liste qui apparait et choisir "Nouvelle chaine de caractères". Entrer le nom "network.protocol-handler.app.itpc" et la valeur "/usr/local/bin/rhythmbox-podcast".

Ensuite, il suffit de cliquer sur un lien itpc (comme les liens "installer dans iTunes" sur le site de Radio France) pour que le podcast s'ajoute automatiquement à RhythmBox (il faut que celui ci soit déjà lancé avant de cliquer).

mercredi 20 février 2008

Utiliser la Freebox HD sur un moniteur informatique

Je souhaitais juste vous informer que l'on peut faire fonctionner une Freebox HD avec un moniteur informatique possédant une prise DVI. Je regarde maintenant la TV sur mon moniteur Apple Cinema 20. Comme je n'ai vu nul part sur le net le même genre de montage, j'ai voulu le partager.
L'intérêt de la chose : simplement, ça m'évite de devoir acheter un téléviseur. De plus, même si l'on a pas de moniteur, pour des tailles inférieures à 30 pouces, un moniteur informatique coûte beaucoup moins cher qu'un téléviseur LCD de même taille (un moniteur de 22" coûte moins de 200€ en ce moment).

Donc pour faire marcher ça, je me suis juste procurer un adaptateur DVI femelle vers HDMI femelle (mon moniteur Apple ne possède pas de prise DVI femelle sur le châssis, mais seulement d'une prise mâle sur un câble). Il me suffit de brancher un câble HDMI de la Freebox à l'adaptateur qui lui est branché sur le moniteur. J'utilise des enceintes de PC pour le son. La Freebox doit être réglée pour utiliser la résolution auto, et le ratio sur 16/9.

La qualité d'image est exceptionnelle, surtout sur les canaux HD (trop rare sur la Freebox).
Le seul problème est que comme mon écran est en 16/10, l'image est légèrement déformée mais ce n'est pas très grave ( Update 2008-03-30 : Il suffit de régler le format d'image sur Auto dans le menu de la Freebox (accessible avec la touche jaune) et l'image n'est plus déformée.).

DjangoBook... suite

Je viens de corriger quelques petits problèmes sur le PDF du Django Book que j'avais généré.
Voici la liste des points corrigés :
  • Correction de la table des matières :
    Les sous chapitres n'avaient pas de numéro de page. En fait, dans le script build_toc.py, j'écrasait par mégarde les id sur le balise <h*>.
  • Correction de la mise en page des codes sources :
    • Décalage de la première ligne du bloc : remise à zéro de la propriété CSS text-indent pour les tag <pre />.
    • Indentation incorrecte : ce problème venait de deux choses. L'utilisation de la fonction prettify de BeautifulSoup, qui ré-indentait le HTML, je suis revenu à un simple appel de la fonction str(). Enfin, pour les codes sources avec du texte en mis en gras, BeautifulSoup, en trouvant les tag <strong />, perdait le formatage. J'ai ajouté au dictionnaire QUOTE_TAGS la clef 'pre' qui indique à BeautifulSoup de ne pas analyser le code à l'intérieur des base <pre / >.
  • Caractère inconnu correspondant au symbole TM : je les remplace par <sup>TM</sup>.

Comme on me l'a demandé, voici les commandes à enchaîner pour généré le PDF :
python make_django_book.py
python build_toc.py > res2.html
/usr/local/bin/prince res2.html -o res.pdf

Et donc voici le résultat : Version HTML - Version PDF