Inicio > Almacenamiento > Historia de un NAS (III)

Historia de un NAS (III)

Viernes, 2 de octubre de 2009 Pedro Dejar un comentario Ir a comentarios

El apartado de software me sugiere dos preguntas básicas:tux-debian

  • ¿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

FreeNAS 0.69 & 0.70, con algún problema la 0.70, según la web http://ss4200.pbworks.com.

openfiler_logo

OpenFiler, según puede leerse en https://forums.openfiler.com/viewtopic.php?id=2048&p=1.

CentOS y Debian, según nuestra propia experiencia.
centos-logo-150
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-logo¿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.
pendrive
El procedimiento sería el siguiente:

  1. Generar el pendrive usando UNetbootin.
  2. De los ficheros generados, modificaremos syslinux.cfg incluyendo la sentencia console=ttyS0,115200n8 en la etiqueta “Default”, quedando de la siguiente manera:
  3. label unetbootindefault
    menu label Default
    kernel /ubnkern
    append initrd=/ubninit desktop=kde vga=normal -- quiet console=ttyS0,115200n8
  4. Cambiar en la sección “Boot” de la BIOS del NAS el orden de arranque (Boot Device Priority) para que arranque primero desde USB.
  5. 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.

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

raid0raid1raid5

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:
esquema_discos_formato
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:

  1. Creamos un clon de sda1 sobre sdc1:
  2. dd if=/dev/sda1 of=/dev/sdc1
  3. Realizamos un mount del clon (crear antes carpeta sdc1 en /mnt/ con mkdir):
  4. mount /dev/sdc1 /mnt/sdc1
  5. Modificamos fstab en /mnt/sdc1/etc/fstab, cambiando la entrada de sda1 por sdc1.
  6. 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.
  7. Tecleamos sync y ENTER dos veces.
  8. Hacemos reboot y probamos el nuevo arranque.

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:

  1. Hacemos una copia de /etc/fstab a /root/.scripts/.
  2. Modificamos el fichero /root/.scripts/fstab cambiando la entrada que hace referencia a sda1 por sdc1 y lo salvamos.
  3. Creamos el fichero clon_sys_semanal.sh en la carpeta /root/.scripts e introducimos la siguiente información:
  4. #!/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;
  5. Indicarle a cron que ejecute este script, por ejemplo todos los viernes a las 2 de la mañana.

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

Instalar xserver y KDE:
kde-logo150

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:
nomachine_logo

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
Xming-logo-200
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.
  • virtualbox

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.

mldk

  • Configuración si se desea de un cliente p2p multiprotocolo (eDonkey, Kad, torrent, ...) como es MLDonkey o simplemente torrent, como torrentflux.
  • jdownloader_logo

  • 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.zm_logo
    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

ca250_1

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

Categories: Almacenamiento Tags:
  1. Jueves, 12 de noviembre de 2009 a las 14:03 | #1

    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

  2. Pedro
    Viernes, 13 de noviembre de 2009 a las 16:12 | #2

    @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.

  3. Miércoles, 16 de diciembre de 2009 a las 04:01 | #3

    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.

  4. Pedro
    Jueves, 17 de diciembre de 2009 a las 03:05 | #4

    @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.

  5. Miguel
    Jueves, 4 de febrero de 2010 a las 09:22 | #5

    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.

  6. Pedro
    Viernes, 5 de febrero de 2010 a las 06:22 | #6

    @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.

  7. Golem
    Martes, 9 de febrero de 2010 a las 23:01 | #7

    Un tutorial estupendo, podrías actualizar a las ultimas versiones del NX

    Gracias

  8. Pedro
    Lunes, 1 de marzo de 2010 a las 19:04 | #8

    @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.

  1. Viernes, 2 de octubre de 2009 a las 07:52 | #1