Historia de un NAS (III)
El apartado de software me sugiere dos preguntas básicas:
- ¿Qué necesito?
- ¿Qué software proporciona la solución a mis necesidades?
Desde el principio tenía claro lo que necesitaba. Después de analizarlo, la conclusión fué que el único sistema que cumplía al 100% mis espectativas era Linux en alguna de sus variantes.
Mis conocimientos y experiencia en Linux son bastante limitados y hubiese necesitado mucho tiempo de formación y documentación antes de abordar el proyecto por mi mismo.
Agradezco a Ángel Ferrás su inestimable ayuda en todo el proceso de instalación y configuración del NAS.
Sin duda, el éxito y sobre todo la rapidez en la puesta en marcha del sistema no hubieran sido posibles sin su participación.
Todo el proceso ha resultado apasionante, aunque he de reconocer que en ocasiones se me escapaba un poco. Son muchos los conocimientos para ser digeridos sobre la marcha. Como dice Ángel, hemos tocado casi todos los “palos” de gestión y administración de Linux. Así que espero sacar provecho de ello.
¿Qué Sistemas Operativos funcionan en el SS4200-EHW?
FreeNAS 0.69 & 0.70, con algún problema la 0.70, según la web http://ss4200.pbworks.com.
OpenFiler, según puede leerse en https://forums.openfiler.com/viewtopic.php?id=2048&p=1.
CentOS y Debian, según nuestra propia experiencia.

En las pruebas realizadas por nosotros, se utiliza un lector de CD/DVD USB 2.0.
- En principio, planteamos usar Kubuntu, pero hay problemas con la instalación en modo texto, por lo que decidimos buscar otras soluciones.
- CentOS 5.2 inicia perfectamente la instalación usando el siguiente comando:
linux text console=ttyS0,115200,8,n,1
Para introducir este comando, aunque no se vea lo que escribimos debemos hacerlo mientras el cursor está en la parte inferior. Una vez tecleado, pulsamos ENTER.
Aunque la instalación progresaba con normalidad, decidimos no completarla y probar una distro más popular y menos centrada en el ámbito de servidores.
¿Debian quizá?. Pues sí, decicimos probar:
- Debian 4.0r6 etchnhalf amd64 netinst
La elección resultó perfecta.
Para instalar Debian desde lector CD/DVD:
Cuando solo nos quede el cursor en pantalla pulsaremos:
F1 + Intro
… aparece un menú de texto y un prompt que nos permite introducir comandos, donde teclearemos:
install console=ttyS0,115200n
o bien en modo recuperación …
rescue console=ttyS0,115200n8
… de cualquier forma, la instalación comenzará normalmente.
Una vez realizadas una serie de pruebas, se decide reinstalar Debian, pero en esta ocasión utilizamos la última versión disponible en ese momento:
- Debian 5.0.1 amd64 netinst
Se puede pasar el CD de instalación de Debian a pendrive para no tener que usar un lector de CD/DVD.
Para ello usamos UNetbootin, pero la imagen resultante hay que modificarla para que redireccione la salida de pantalla a ttyS0.

El procedimiento sería el siguiente:
- Generar el pendrive usando UNetbootin.
- De los ficheros generados, modificaremos syslinux.cfg incluyendo la sentencia console=ttyS0,115200n8 en la etiqueta “Default”, quedando de la siguiente manera:
- Cambiar en la sección “Boot” de la BIOS del NAS el orden de arranque (Boot Device Priority) para que arranque primero desde USB.
- Por último, reiniciaremos el NAS con el pendrive insertado en uno de sus USB, y cuando solo nos quede el cursor en la parte superior izquierda, pulsaremos ENTER.
label unetbootindefault menu label Default kernel /ubnkern append initrd=/ubninit desktop=kde vga=normal -- quiet console=ttyS0,115200n8
RAID
Antes de acometer la instalación de Debian, el primer problema que se nos plantea es que el chip RAID que incorpora la placa base, Intel ICH7-R, no está soportado por Linux en modo RAID5. Tan solo hay una especie de emulación, denominada fakeraid, que no funciona en todas las distros y además solo da soporte a RAID0 y RAID1.
Conclusión: Debemos usar RAID software.
Es curioso, pero a “toro pasado” incluso me parece un acierto, ya que el rendimiento del RAID software es excelente y la compatibilidad, expansibilidad y posibilidad de migración de todo el sistema RAID a otros equipos es máxima.
Resulta muy interesante el siguiente enlace:
http://bulma.net/body.phtml?nIdNoticia=1863



Si se usará un RAID hardware, podríamos vernos comprometidos en los aspectos mencionados anteriormente y al fin y al cabo, la diferencia en rendimiento no sería tan determinante.
La primera vez que arrancamos Debian habrá que particionar los discos y crear el sistema RAID:

Se establece el siguiente uso para cada una de las particiones:
- sda1 – Sistema Operativo
- sdb1 – Swap
- sdc1 – Backup Sistema Operativo
- sdd1 – Disponible
- md0 – Datos
El RAID5 se crea al particionar los discos, a través del asistente de Debian.
Enlaces de interés:
http://linux-raid.osdl.org/index.php/Detecting%2C_querying_and_testing#Simulating_a_drive_failure
http://www.geocities.com/bertogg/linux/exim-como.html (Howto exim4)
http://snarvaez.com.ar/libertad/index.php/2007/07/07/exim4_fetchmail_mutt/
http://elavdeveloper.wordpress.com/2008/11/04/ssmtp-envia-email-desde-la-consola/
Respecto a ssmtp, he seguido los pasos que están en la web anterior pero me ocurre una cosa supertonta.
Parece que PuTTY no hace caso a las teclas Ctrl+D que hay que pulsar y falla por timeout.
Igual cambiando la configuración de PuTTY en cuanto al tipo de emulación de terminal se puede conseguir algo.
Un aspecto importante una vez generado el RAID es probar su integridad. A continuación se muestran una serie de comandos para dicha tarea:
Configuramos el sistema RAID para que nos alerte por email en caso de fallo:
mdadm --monitor --mail=nuestro@email.com --delay=1800 /dev/md0
Simulamos que sdc2 ha fallado:
mdadm --manage --set-faulty /dev/md0 /dev/sdc2
Comprobamos que el RAID está en modo degradado:
cat /proc/mdstat mdadm --detail /dev/md0
Quitamos el disco sdc2 del array y apagamos:
mdadm /dev/md0 -r /dev/sdc2 poweroff
Encendemos y observamos como está la cosa:
cat /proc/mdstat mdadm --detail /dev/md0
Añadimos de nuevo el disco sdc2 al array:
mdadm /dev/md0 -a /dev/sdc2
Vemos como está (en teoría debería estar en resync).
cat /proc/mdstat mdadm --detail /dev/md0
Como es obvio, también sería posible simular el fallo de uno de los discos desconectándolo.
Probamos el rendimiento una de las particiones fuera del RAID:
hdparm -tT /dev/sda1 /dev/sda1: Timing cached reads: 1736 MB in 2.00 seconds = 867.61 MB/sec Timing buffered disk reads: 262 MB in 3.00 seconds = 87.30 MB/sec
Probamos el rendimiento del RAID5:
hdparm -tT /dev/md0 /dev/md0: Timing cached reads: 1764 MB in 2.00 seconds = 881.61 MB/sec Timing buffered disk reads: 798 MB in 3.01 seconds = 265.38 MB/sec
Backup del Sistema Operativo
Se implementa un sistema simple de backup para la partición sda1, cortesía de Ángel Ferrás:
- Creamos un clon de sda1 sobre sdc1:
- Realizamos un mount del clon (crear antes carpeta sdc1 en /mnt/ con mkdir):
- Modificamos fstab en /mnt/sdc1/etc/fstab, cambiando la entrada de sda1 por sdc1.
- Añadimos una entrada en grub para arrancar desde el clon. Para ello, editamos /boot/grub/menu.lst y añadimos una entrada clónica igual que para hd0,0 pero cambiándola por hd2,0. Se añade tiempo de espera en grub (5 segundos, por ejemplo) para que se puedan ver las entradas.
- Tecleamos sync y ENTER dos veces.
- Hacemos reboot y probamos el nuevo arranque.
dd if=/dev/sda1 of=/dev/sdc1
mount /dev/sdc1 /mnt/sdc1
Una vez verificado que el arranque de sdc1 funciona perfectamente, procederemos a la automatización de la copia, añadiendo una entrada en cron para que se actualice semanalmente:
- Hacemos una copia de /etc/fstab a /root/.scripts/.
- Modificamos el fichero /root/.scripts/fstab cambiando la entrada que hace referencia a sda1 por sdc1 y lo salvamos.
- Creamos el fichero clon_sys_semanal.sh en la carpeta /root/.scripts e introducimos la siguiente información:
- Indicarle a cron que ejecute este script, por ejemplo todos los viernes a las 2 de la mañana.
#!/bin/bash dd if=/dev/sda1 of=/dev/sdc1; mount /dev/sdc1 /mnt/sdc1; cp -f /root/.scripts/fstab /mnt/sdc1/etc/; umount /mnt/sdc1;
Con esto, ya tendríamos un sistema 100% tolerante a fallos y con una partición libre para instalar otra distro o incluso el software original del Intel SS4200-E ...
Enlaces de interés:
http://linux-raid.osdl.org/index.php/Preventing_against_a_failing_disk
(Configurar Grub en debian Etch despues de haber cambiado el orden de las particiones)
http://blog.debian.org.sv/?p=26
http://www.guatewireless.org/como-agregar-tareas-al-cron-de-linux/
Software adicional
- Hacer una compartición básica en Samba. El siguiente enlace está basado en RedHat pero debe funcionar igualmente en Debian:
http://www.linuxparatodos.net/portal/staticpages/index.php?page=13-como-samba
- Instalar y configurar Apache, PHP, MySQL.
- Escritorio remoto. Se plantean dos posibilidades: NX ó xserver vía SSH.
Instalar xserver y KDE:
apt-get install kdm apt-get install kde apt-get install kde-i18n-es apt-get install xutils apt-get install xserver-xfree86 apt-get install xfs apt-get install xfonts-base apt-get install xfonts-intl-european apt-get install xfonts-75dpi
Instalar NX:

wget http://64.34.161.181/download/3.3.0/Linux/nxclient_3.3.0-6_x86_64.deb wget http://64.34.161.181/download/3.3.0/Linux/nxnode_3.3.0-12_x86_64.deb wget http://64.34.161.181/download/3.3.0/Linux/FE/nxserver_3.3.0-14_x86_64.deb wget http://64.34.161.181/download/3.3.0/Linux/nxmanager_3.3.0-2_x86_64.deb dpkg -i nxclient_3.3.0-6_x86_64.deb dpkg -i nxnode_3.3.0-12_x86_64.deb dpkg -i nxserver_3.3.0-14_x86_64.deb dpkg -i nxmanager_3.3.0-2_x86_64.deb /usr/NX/bin/nxserver --useradd usuario --system (para añadir un usuario) /usr/NX/bin/nxserver --restart (reiniciar el servidor)
Si en el ordenador cliente tenemos por ejemplo Windows, instalaremos el software cliente de NX para Windows, disponible en la web de NoMachine.
Configuramos el acceso indicando, IP del NAS, escritorio KDE, usuario/clave que creamos en el NAS y accederemos a la sesión gráfica de KDE tal y como si estuviésemos manejándolo directamente sobre el NAS. ¡Recuerdo que el NAS no tiene siquiera tarjeta gráfica! , vamos ... ¡una pasada!.
Compartir una sesión NX (modo Shadow):
http://www.nomachine.com/ar/view.php?ar_id=AR11B00098

xserver vía SSH:
Habilitar X11 forwarding en /etc/SSH/sshd_config. Para ello poner:
X11Forwarding yes AllowTcpForwarding yes
Si usamos un cliente Windows, instalaremos Cygwin o Xming.
Este sistema no me convence. Sobre todo porque la velocidad de NX es muy superior.
No vale la solución Cupps para mi impresora Canon Pixma iP4000, puesto que no hay drivers para Linux que permitan un uso completo de todas sus funciones. Sobre todo el estado de la tinta, etc. a través de la red.
Nos planteamos una solución que parece exagerada para el objetivo tan básico de compartir una impresora, pero se muestra efectiva al 100% y no es otra que:
- Máquinas virtuales.
http://revoltion.wordpress.com/2007/03/09/crear-maquinas-virtuales-en-debian-etch-con-virtualbox/
Instalar VirtualBox desde los repositorios de Sun.
deb http://download.virtualbox.org/virtualbox/debian lenny non-free
Se podría instalar la versión más ligera de Windows XP existente, se trata de Windows XP FLP (Fundamentals for Legacy PC).
Instalaríamos los drivers de Canon PIXMA iP4000 y se compartiría la impresora en red por Samba dentro de la máquina virtual, pero al estar dicha máquina en el mismo grupo de red que el NAS y el resto de nuestros equipos, tendríamos acceso a la impresora en toda la red local.
¿Genial no?. Ángel, eres una máquina (y no virtual precisamente).
Desechado Windows 98 por su nulo manejo del estado idle de la CPU.
Ni siquiera usando alguna utilidad para forzar el idle, funciona correctamente. Mientras está corriendo la máquina virtual, aunque esté en reposo Windows 98, la CPU de nuestro Linux estará a tope.

- Configuración si se desea de un cliente p2p multiprotocolo (eDonkey, Kad, torrent, ...) como es MLDonkey o simplemente torrent, como torrentflux.
- Si se quiere utilizar un gestor de descargas directas como JDownloader, que está desarrollado en Java, puede instalarse en el entorno KDE manejado desde NX. La sesión de NX no se pierde si se cierra en modo "Disconnect" de forma que JDownloader seguiría activo.
- Videovigilancia con Zoneminder.

Se hacen pruebas con la cámara USB "Logitech QuickCam Chat" y funciona perfectamente incluso la detección de movimiento y grabación de eventos.

Tengo echado el ojo a una cámara WiFi del siguiente estilo:
http://cgi.ebay.es/Wireless-WIFI-24-IR-LED-Waterproof-IP-Camera-CCTV-MPEG4_W0QQitemZ190332733282QQcmdZViewItemQQptZUK_CCTV?hash=item2c50b70762&_trksid=p3286.c0.m14

- Administración remota (Webmin).
http://www.webmin.com
![]()
- WordPress.

http://nekan.net/instalar-blog-wordpress-en-debian-lenny
http://nekan.net/how-to-lamp-en-debian-lenny
Por hacer ...
- Mejorar seguridad (Nessus).
- Mejorar backup partición arranque, manteniendo varias versiones.
- Instalar y configurar NFS, iSCSI, ...
- Domótica.
Conclusión
Como véis, las posibilidades de este aparato son inmensas. Tiene muchos puntos fuertes, como su fiabilidad, rapidez, conectividad, diseño, tamaño y silencio, así como una gran calidad de construcción.
Por otra parte, le encuentro pocas pegas, si acaso, la no inclusión de una conexión gráfica que permita instalar un sistema más cómodamente. Pero ya sería pedirle peras al olmo.
Por cierto ... ¿y si pudiérais conseguir este aparato por unos 200 euros, totalmente nuevo, con garantía y con gastos de envío incluidos?. Seguro que por ese precio no encontráis nada parecido en el mercado.
http://stores.shop.ebay.es/DENSUS-SHOP__W0QQ_armrsZ1



me ha gustado mucho tu articulo, estoy pensando hacerme uno para mi casa, en estos momentos tengo un barebone stuttle con un PIV y y giga de ram, tengo el xp y lo controlo por terminal server, tengo instalado utorrent dema para las descargas, el barebone el ide y no tiene raid, pero he visto que haces el raid por SW. se puede hacer con WIN????,, bueno ya te ire comentando como van mis progresos
salu2
@chuacher
Hola chuacher.
Me alegra que te haya gustado el artículo.
Que yo sepa, no se puede hacer RAID por software con Windows.
No descartes probar Linux para estos menesteres ya que la estabilidad, versatilidad y potencia son increíbles.
Un saludo.
Saludos,
Es un articulo que me esta ayudando mucho en mi necesidad. En nuestro pais apenas ha arribado el SS4200-EHW y me cae como anillo al dedo tu publicacion, espero no tener complicaciones en ponerle a andar.
@Raul
Me alegro que te ayude el artículo Raul. Si tienes conocimientos de Linux no tendrás demasiados problemas y aunque yo no ando muy sobrado, si te puedo ayudar en algo aquí estoy.
Un saludo.
Muy interesante tu explicación, yo estoy con la idea de montarme un NAS, lo que tu has hecho me parece muy bueno, no tengo experiencia en Linux y me da miedo meterme en ese proyecto pero la verdad ganas me dan. Me gustaria contactar contigo para comentar como te va, yo lo quiero para almacenar contenidos HD ( Full BD) y acceder a ellos desde mi Dune Base 3.0.
Un saludo.
@Miguel
Buenas Miguel.
Pues te puedo decir que yo no soy para nada un experto en Linux. Más o menos siguiendo las indicaciones que doy no es demasiado dificil de poner en funcionamiento el equipo para un usuario informático con experiencia. Siempre hay tutoriales para las dificultades que te vayan surgiendo, configurar samba, linux raid, etc.
Respecto a como va, te puedo decir que va de lujo. No me ha dado el más mínimo problema desde el primer día y está funcionando las 24 horas ininterrumpidamente. Para el uso que le quieres dar es ideal aunque claro está que hay soluciones más básicas. Este equipo como puedes ver te va a dar muchas más funcionalidades.
Si quieres preguntarme algo, no dudes en usar el formulario de contacto que hay al final de la página.
Un saludo.
Un tutorial estupendo, podrías actualizar a las ultimas versiones del NX
Gracias
@Golem
Gracias Golem y disculpa el retraso.
En breve, pienso hacer un nuevo resumen paso a paso de la instalación de Debian en el SS4200-EHW actualizando todos los enlaces.
Un saludo.