Diciembre
2009
Montando un NAS con Debian Lenny (Intel SS4200)
Mi último «capricho» ha sido comprarme un NAS para tenerlo como servidor de almacenamiento y aplicaciones en mi pequeña red de casa.
Después de buscar entre muchos modelos y ver las desventajas de los más pequeños, basados en micros ARM (lentos) me decidí por el Intel SS4200, tuvo que ver que habíua bastante documentación de montarlo desde el blog de binarito.
El NAS es un poco más grande de lo que me esperaba (lo que está encima es un disco USB de 3.5") pero si lo vemos por dentro es bastante lógico ya que tiene 4 discos y la refrigeración es a través del flujo desde la parte delantera.
Instalación
- Como el NAS no tiene tarjeta gráfica hay varias opciones de instalarlo, la que aparentemente es la única es mediante un cable serie DB9-IDC10 con el esquema de conexión DTK/Intel. (howto instalación por cable serie)
- Los que conocemos un poco linux sabemos que se puede instalar un sistema operativo en un disco duro conectado en una máquina y si lo conectamos a otra y hacemos unos pocos cambios, la instalación sirve y funciona correctamente, así que esta fue mi opción, el primer disco duro lo conecté a un equipo normal e hice uns instalación de Debian lenny básica, el único detalle a tener en cuenta es hacer que en cada reinicio no se guarde la MAC de la tarjeta de red, para eso edité /etc/rc.local añadiendo esta línea
cat /dev/null > /etc/udev/rules.d/70-persistent-net.rules
antes del exit 0. Esto se puede quitar una vez tengamos en disco en el NAS. - La instalación es muy simple, he usado una partición primaria de unos 10GB para el sistema y el resto lo he dejado como Linux Raid Autodetect. Hay que configurarle una IP fija en /etc/network/interfaces e instalar ssh para poder entrar una vez que lo pinchemos en el NAS.
- Desmontamos el disco del PC y conectamos el disco (en la ranura 1) en el NAS, conectando el resto de los discos.
- Conectamos cable de red y alimentación y encendemos, puede que en el primer arranque no carguepero después de un botonazo sí lo hace (quizás la primera vez que la BIOS ve los discos no sabe desde donde arrancar)
- Una vez que lo tenemos funcionando nos conectamos por ssh y empezamos a instalar aplicaciones...
- ssmtp - reemplazará a exim4 y nos permitirá enviar avisos a la cuenta que indiquemos, yo lo he configurado para que me mande a mi cuenta de gmail cuando pase algo
- mdadm y lvm2 - Para montar el RAID y luego crear los volúmenes, con unos discos tan grandes es recomendable usar algo como esto... para montar el RAID5 he ejecutado lo siguiente:
Clonamos las particiones a todos los discossfdisk -d /dev/sda > sda.pf sfdisk /dev/sdb < sda.pf sfdisk /dev/sdc < sda.pf sfdisk /dev/sdd < sda.pf
Creamos el RAIDmdadm --create /dev/md0 --level=5 -n 4 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2 pvcreate /dev/md0 vgcreate vg0 /dev/md0 lvcreate --name mirror --size 350G vg0 lvcreate --name descargas --size 400G vg0 mkfs.ext3 -m 0 -L mirror /dev/vg0/mirror mkfs.ext3 -m 0 -L descargas /dev/vg0/descargas
Añadir al /etc/fstab/dev/mapper/vg0-mirror /mnt/mirror ext3 rw,noatime 0 0 /dev/mapper/vg0-descargas /mnt/descargas ext3 rw,noatime 0 0
- smartmontools - Monitoriza la salud de los discos y avisa por mail si algo empieza a fallar.
- hddtemp - Es imprescindible que los discos esten lo más frescos posible, ahora mismo estan los 4 entre 36 y 42
- ntpdate - para que se sincronice la hora (cada día desde el crontab)
- rsync - impresincible para copiar datos de manera eincremental, hacer backups, etc...
- módulo ss4200 - es un módulo del kernel para controlar a través de /sys el estado de los leds frontales, de hecho me he hecho un script que por defecto apaga todos y los enciende si pasa algo raro. En la web, explican como parchear el kernel pero no es necesario ya que se puede compilar como módulo y las cabeceras de Debian (linux-headers-2.6.26-2-686)
- No tenía claro si usar RAID5 o un doble RAID1 con la solución mixta RAID10, en la doc del paquete mdadm no recomiendan usar RAID5 aunque no acabo de tener muy claros los motivos.
- Una de las cosas que he probado es instalar Xvfb (virtual framebuffer X server) para tener un programa gráfico arrancado (lease estilo JDownloader o un cliente bittorrent) aquí el script.
- Este es el script para activar los leds (cada 10 minutos desde el cron) en caso de emergencia.
Resumiendo, tener un NAS no es algo que necesite todo el mundo, pero en mi caso (uso portátil en lugar de sobremesa desde hace muchos años) los discos USB no estan hechos para funcionar 365/24 y ya me han petado unos cuantos.
Hola Mario.
Soy Pedro (binarito.com). Ante todo, gracias por el enlace a mi blog. Quería consultarte alguna cosilla, si no te importa, ya que me parece muy interesante la técnica que has utilizado para montar tu NAS, se nota que eres bastante experto en Debian.
Acabo de adquirir otro SS4200 y puesto que voy a empezar desde cero la instalacion, quiero tener en cuenta detalles muy importantes como la utilización de lvm2. Me ha encantado el tratamiento que le das a los LED usando hddtemp y quiero implementarlo en mi nueva instalación, pero la verdad, me pierdo un poco con lo de compilar como módulo el código que viene en ss4200.pbworks.com. ¿Te importaría explicarme un poco en versión para torpes como hacerlo?. Prometo aprenderlo ;-)
Respecto al tema aplicaciones de gráficas, estoy usando NX con escritorio gnome para correo JDownloader y alguna otra cosilla y va bastante bien. ¿Que tal funciona Xvfb comparativamente si has probado los dos sistemas?
Tengo prácticamente terminada la documentación para actualizar mi blog y pretendo incluir lo de los LED con referencia al tuyo por supuesto.
También estoy estudiando el tema de backups y he encontrado http://rsnapshot.org, que está basando en rsync, ¿lo conoces?
Gracias y un saludo.
Hola Pedro.
En primer lugar mil gracias porque si compré este NAS fue por las explicaciones detalladas de tu blog y no me arrepiento lo más mínimo, es muy silencioso y bastante más potente que otras soluciones con cpu ARM.
Para lo del parche es muy simple, te descargas el archivo driver_for_Intel_NAS_SS4200_series_v5.patch y parcheas un directorio ***vacío***:
cat driver_for_Intel_NAS_SS4200_series_v5.patch | patch -p1
Esto crea un directorio:
.
|-- b
| `-- drivers
| `-- leds
| |-- Makefile
| `-- leds-ss4200.c
y si entras hasta la carpeta leds tendrás los 2 archivos, el Makefile no sirve (esta preparado para ser parte de código fuente del kernel), he subido un tar.gz con el Makefile correcto aquí: http://mariodebian.com/resource/1/360 (basado en otro Makefile de compilación de módulos fuera del kernel, hay varios unionfs, squashfs, cdfs, etc...)
El "make install" lo instalará en /lib/modules/2.6.xx/updates/ss4200
Cuando carga el módulo se encienden todos los leds (creo que el módulo solo los activa y desactiva, no monitoriza cosas) por eso la razón del script, para tener todo apagado y encenderlos en caso de problemas. El otro día durmiendo me dí cuenta que una de mis particiones se había llenado por uno de estos leds.
En cuanto a NX o Xvfb, prefería no instalar un escritorio completo y Xvfb gasta mucha menos ram y no necesita tantas dependencias (ni siquiera Xorg), me conecto por red local con VNC y va bastante bien, de paso le he puesto como servidor OPENVPN y puedo acceder a recursos compartidos de manera segura desde cualquier sitio ;) (esto para otro HOWTO)
Para los backups uso scripts hechos a manopla para cada servidor que quiero hacer el backup incremental, básicamente una llamada a rsync con la ruta y unos excludes y un cp -al para copiar la carpeta (haciendo enlaces duros) durante 1 mes.
Por lo del RAID **no** estaba muy contento con RAID5 y me he pasado a RAID10, pierdo 1GB pero es mucho más estable, el RAID5 se reconstruía demasiado a menudo, poniendo la CPU y los discos a bastante temperatura... con el RAID1 se suele revisar cada 60 días (más o menos).
Lo último ha sido comprar un switch de 5 puertos gigabit y montar todo lo que necesito por NFSv4 o SSH en los equipos de casa, dando transferencias de 80-90 MB/s
Hola Mario.
Muchísimas gracias por la detallada respuesta.
Antes de nada, disculpa por no responderte antes. Como ves, he estado "missing" una temporada. Anda más que liado con temas de trabajo y personales y tengo un poco dejado todo este apasionante mundillo. Espero en breve poner en práctica lo que me comentas y ya te contaré.
Tan solo una cosilla ... ¿dices que solo has perdido 1GB al pasar a RAID10? ... en RAID5 perdemos 1TB (si los 4 discos son de 1TB).
Gracias de nuevo y un saludo.