Maniatux's Blog

Welcome to the internet

Storage

J'ai sauvé un NAS Buffalo Linkstation Duo LS-WXL

Rédigé par Xavier - - 4 commentaires

Il y a quelques temps on m'a offert un NAS Buffalo LS-WXL qui contient deux disques de 1TB. Comme j'avais envie de m'amuser, j'ai pris les deux HDD et les ai mis dans un autre PC sur lequel j'ai installé FreeNAS, puis Openmediavault. Ces deux OS sont super, mais préférant la discrétion du LS-WXL, j'ai remis les disques dedans. Et c'est là que les ennuis ont commencé. En fait ce genre de NAS a la bonne idée de stocker son firmware sur les disques de données eux-même. Donc en formatant les disques, j'ai écrasé le firmware. Donc le NAS ne voulait plus booter.

Et après avoir pas mal galéré j'ai réussi à le remettre d'aplomb. Voici en gros la procédure à suivre :

  • Télécharger le firmware updater sur le site constructeur
  • Télécharger TFTP Boot Recovery
  • Brancher le NAS en direct sur un PC, paramétrer le PC en IP fixe 192.168.11.1
  • Exécuter TFTP Boot Recovery
  • Allumer électriquement le NAS
  • Appuyer 5 secondes sur le bouton fonction
  • Editer le fichier LSUpdater.ini
  • Modifier comme suivant :
  • [Flags]
    VersionCheck = 1
    NoFormatting = 1
    
    [SpecialFlags]
    Debug = 1
  • Passer votre PC en IP automatique (DHCP), il va se mettre en 169.x c'est nécessaire
  • Exécuter LSUpdater.exe
  • Faire clic droit sur la barre de titre puis passer en debug
  • Cocher toutes les cases
  • Cliquer sur OK, valider les différents messages.
  • Le NAS va finir par rebooter. S'il est à nouveau en erreur, reprenez la procédure du début.
  • S'il boote sans erreur, utilisez Nas navigator pour le trouver et le configurer
  • Profit.

Pfiou, un NAS sauvé. Et vu que ce NAS m'a causé pas mal d'ennuis, je vais émettre quelques critiques à son encontre :

  • Il est très lent au niveau des transferts, même sur un réseau Gigabit, je soupçonne l'utilisation d'une vieille version de Samba, je déconseille ce modèle. Pour comparer, avec FreeNAS je met ~6 heures pour transférer toutes mes données. Avec ce NAS c'est 21 heures !!!
  • Il ne supporte pas NFS
  • Il stocke son firmware sur les disques on ne peut donc pas les remplacer par des disques standard ou plus gros, ou alors il faut se taper la procédure d'urgence décrite dans cet article
  • J'ai testé la procédure avec des disques de 160GB, cela ne marche pas, ce qui m'amène à penser qu'il est configuré "en dur" pour utiliser des disques de 1TB uniquement

Bref si vous en avez la possibilité, faites-vous votre propre NAS sous FreeNAS ou Openmediavault, les performances et la souplesse sont à des années-lumière des modèles propriétaires du commerce.

Liens

OpenMediaVault : alternative à FreeNAS

Rédigé par Xavier - - 2 commentaires

OpenMediaVault est un système basé sur Debian Squeeze orienté NAS. Il permet, tout comme FreeNAS, de transformer un ordinateur en support de stockage accessible par le réseau au travers de différents protocoles.

La version distribuée actuellement est dans sa version 0.2, ce qui indique un projet jeune mais néanmoins grandement actif et utilisable. Je regrette la très grande pauvreté de la documentation, juste un maigre wiki insuffisant, ce qui m'a valu l'obligation de passer par Google pour trouver quel était le mot de passe par défaut de l'interface web.

Le système semble distribué en version 64 bits uniquement, ce qui va briser vos rêves de transformer votre vieille machine mini-ITX à base d'Atom en NAS. Néanmoins il est peut-être possible d'installer une Debian Squeeze 32 bits puis d'ajouter la couche OpenMediaVault par dessus ?

Nous pouvons donc :

  • Associer des disques en RAID
  • Créer des partitions en ext4
  • Faire un partage en NFS, Samba, FTP
  • Faire un serveur Rsync
  • Installer un client bittorrent (via plugin)
  • Activer le SNMP

Soit beaucoup de fonctionnalités intéressantes, même si je regrette l'absence du support Active Directory pour le moment et les bugs de l'interface pour créer des dossiers partagés.

J'ai fait quelques tests en virtuel, avec 3 disques durs (il en faut un dédié au système entier, les deux autres sont destinés au stockage). Les deux de stockage ont été groupés en RAID1, et le système de fichiers en ext4. J'ai créé un utilisateur ainsi qu'un accès samba. Et depuis un client Windows, ça marche tout de suite, le partage apparait dans l'explorer. Les taux de transferts sont très élevés ainsi que la réactivité, ce qui le rend très intéressant.

Conclusion

OpenMediaVault est un sérieux concurrent à FreeNAS, car plus simple, plus rapide, mais peut-être encore trop jeune. Espérons que des fonctionnalités viendront se rajouter très bientôt !

Site officiel de OpenMediaVault

Aperçu de ZFS sous FreeBSD 8.1

Rédigé par Xavier - - 2 commentaires

ZFS est un système de fichiers développé à l'origine par Sun pour Solaris, et spécialisé dans le stockage de données en Datacenter.

ZFS offre de très nombreux avantages qui le font surpasser presque tous ses concurrents:

  • N'utilise pas les partitions mais un système logique de pool
  • Un pool peut regrouper plusieurs disques et fonctionner en RAID, sans couche logicielle supplémentaire
  • Détection et correction des erreurs
  • Hotspare, remplacement de disque à chaud
  • Monitoring
  • Possibilité de créer des "tranches" dans un pool, par exemple une pour / et une pour /usr
  • Il n'y a pas de taille à spécifier pour ces tranches
  • Possibilité de compression des tranches
  • Attributs sur les tranches, par exemple interdiction d’exécuter des programmes
  • Snapshots hautement paramétrables

Donc ZFS est le système idéal pour les redimensionnements/déplacements de données (même entre machines), la sécurisation (par redondance ou algorithmes de contrôles) et la continuité de service. Une fois son administration prise en main, on est littéralement libéré des contraintes des vieux systèmes de partitions utilisés par exemple avec NTFS ou EXT4.

Note: Bien que ZFS soit développé pour OpenSolaris/Solaris à la base, il est disponible sur FreeBSD, NetBSD, et partiellement sur Linux. Sa licence (CDDL) incompatible avec la GPLv2 fait qu'il ne sera jamais intégré dans le noyau Linux. Néanmoins il existe des portages tiers et une implémentation dans FUSE. Oracle développe btrfs spécialement pour Linux, et qui devrait offrir des fonctionnalités similaires à ZFS.

Matériel pour essai

Actuellement je dispose d'un serveur de fichiers équipé d'un unique disque dur de 1To. Pour assurer la sécurité de mes données, je me suis procuré un second disque identique et ait entrepris de monter un système de mirroir (RAID1). Ma carte mère ne gère pas le RAID et je n'ai pas vraiment envie d'acheter une carte pour ça. Donc je me suis tourné vers le RAID logiciel.

Une solution consiste à installer Debian puisque l'installeur de cette dernière permet de paramétrer un RAID logiciel. Mais étant dans une période "FreeBSD" et ayant beaucoup entendu parler de ZFS, je voulais essayer. Configuration du serveur:

  • Carte mère Intel D945GSEJT équipée d'un Atom simple coeur + hyperthreading à 1,6 GHz
  • Une barrette de 512MB de mémoire PC5300 (DDR2)
  • Deux disques Samsung Spinpoint F3 de 1To, 7200 tr/min
  • Une alim ATX branchée en fils volants

La chambre de Geek fait toujours rêver

La version de FreeBSD est la dernière stable, c'est à dire la 8.1-RELEASE en version i386, puisque l'atom ne supporte pas le 64 bits.

L'installation

La procédure pour installer FreeBSD sur un système de fichiers ZFS est disponible ici. Ce qui est pénible c'est de devoir télécharger la version DVD qui pèse 2Gio, alors que le système installé au final fera moins de 200Mio. Mais il faut le DVD pour pouvoir profiter à la fois des paquetages d'installation et du mode "Livefs" qui permet d'avoir une console et tous les outils Unix pour travailler. Le wiki décrit une procédure nous faisant construire un système divisé en tranches: /var/log /var/mail etc... certaines étant compressées. Si on suit la procédure minutieusement sans se précipiter et en lisant calmement, cela doit fonctionner. Si comme moi vous survolez les instructions vous vous retrouverez avec un système qui ne boote pas.

Découverte et essais

Une fois que l'on a réussi à booter en dur, on peut s'amuser à faire quelques essais. La commande:

# zpool status

Retourne l'état de vos pool. Vous pouvez ainsi contrôler qu'il n'y a pas d'erreur et que les disques sont bien fonctionnels. Voici par exemple un status issu de la doc de Sun:

 zpool status tank
  pool: tank
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-2Q
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        DEGRADED     0     0     0
          mirror-0  DEGRADED     0     0     0
            c1t0d0  ONLINE       0     0     0
            c1t1d0  UNAVAIL      0     0     0  cannot open

errors: No known data errors

Là on voit que le fonctionnement n'est pas optimal, et en lisant on s'aperçoit que le disque "c1t1d0" est absent. J'ai moi même débranché un de mes disques (à froid) et ait pu constater que le système boote toujours, et que l'erreur est signalée.

Vitesse de transfert

Mon serveur étant utilisé pour stocker des fichiers, il devait être capable de transférer à haut débit avec mon ordinateur de bureau, sur un réseau 1000Mbps (Gigabit). Un protocole de transfert réseau léger et simple est le FTP que j'utilise pour sa rapidité. Sur FreeBSD on peut utiliser le serveur FTP de référénce (FTPd) ou installer VSFTPd via les ports ou packages.

Seulement voilà, la grosse surprise est que les débits de transfert sont vraiment très faibles, et régulièrement interrompus par des micro-coupures. Je ne dépassais pas les 12 Mo/s alors que le débit attendu pour un réseau Gigabit est de 60 Mo/s environ (limité par la vitesse d'écriture des disques). La vitesse de 12Mo/s correspond à la vitesse d'un réseau 100Mbps, je me suis donc demandé si ce n'était pas un problème de carte réseau. Malheureusement un ifconfig me confirme qu'elle est bien réglée en 1000, tout comme mon switch et sa LED verte qui indique la même chose. Ce n'est donc pas un problème de carte réseau.

Après divers essais de paramétrage du ZFS, aidé par la doc, je n'ai obtenu aucun résultat probant et ait même fini par casser mon OS... impossible de booter. J'ai réinstallé FreeBSD mais cette fois avec un seul disque et avec les options par défaut (système UFS, pas ZFS). Et là aucun problème, débit de transfert maximum. Donc mes problèmes venaient bien de ZFS.

Explication: Il semblerait que ZFS nécessite une machine relativement puissante, notamment en raison de son utilisation de la mémoire RAM comme cache. Ainsi, sur la documentation de Solaris, il est conseillé de tourner sur un système 64 bits avec au moins 1 Go de RAM. Les différentes personnes ayant rapporté faire fonctionner un NAS sous ZFS avaient au moins un processeur double cœur épaulé par plusieurs Go de mémoire.

Les problèmes de performances sont-ils dus à mon matériel trop "primitif" pour le supporter de manière correcte? Possible, mais pas 100% certain. Car il semblerait que l'implémentation de ZFS sur FreeBSD souffre d'un retrait important de performances par rapports à OpenSolaris. Des benchmark publiés sur cette page ont confronté FreeNAS (=FreeBSD), OpenSolaris et Nexenta. Je vous laisse regarder les graphiques mais la différence de rapidité au niveau des opérations par seconde peut varier d'un facteur de 10.

Conclusion

Le but de mes essais était de savoir si FreeBSD+ZFS offrait un réel avantage par rapport à UFS ou EXT sous Linux. La réponse est oui, sans conteste, une plus grande souplesse dans l'administration. Néanmoins, à la question "vais-je le garder?" la réponse est non puisqu'il y a un sérieux problème de performances.

La suite?

Essais avec OpenSolaris (même si plus supporté) et Nexenta. Si aucun ne donne satisfaction, ce sera retour sur Debian GNU/Linux avec RAID avec dmraid.

Classé dans : BSD, Storage - Mots clés : aucun

Un serveur de fichiers pour pas cher :D

Rédigé par Xavier - - 6 commentaires

Disposant de pas mal de matériel de récupération, je me suis bricolé un petit serveur de fichiers. Voici le contenu:

  • Carte mère à base d'Intel Atom 945GSEJT
  • Une barette de 512Mo de ram
  • Un disque dur 2,5" de 500Go
  • Un bloc d'alim 12V
  • Un ventilo 120mm
  • Une carte wifi PCI WP54G

Pour le boitier? Une boite de carte mère découpée, et un système de vis + rondelles + écrous. Photo!

Concernant la partie logicielle, l'OS utilisé est debian. Pour le partage de fichiers, au début j'utilisais NFS, mais pour une raison encore osbcure les transferts étaient lents et longs à se lancer. Je me suis donc rabattu sur le FTP avec vsftpd.

Et grâce aux droits Unix on peut autoriser plusieurs utilisateurs à se connecter, cacher les dossiers à certains ou ne leur donner que les droits d'écriture, etc..

Alors bien sûr pour transférer de gros fichiers, je le branche en RJ45, car avec la carte 1000Mbps, je peux transférer jusqu'à 50-60Mo/s (limité par les disques durs).