El SS4000-E es una vieja NAS de Intel (tan antigua que está descatalogada), que adquirí hace ya varios años, y que tiene el problema de que era muy muy lenta, según he leído tal vez a causa de algunos módulos del kernel propios que emplea y que no están demasiado optimizados para esta NAS.
Hoy le quito el polvo para reutilizarla porque aunque lenta bien puede valer para un backup anual, y con la excusa de hacerlo con los comandos rsync y scp -en principio no disponibles-, y en ext3 -en principio está en XFS- aquí cuento un poco por encima cosas de este equipo. Se trata de un dispositivo con estas características:
- Procesador ARM XScale-IOP8032x Family rev 0 (v5l) a 395 MHz.
- RAM 256 Mb.
- 1 Tb de almacenamiento en 4 discos (/dev/sda, /dev/sdb, /dev/sdc, /dev/sdd). Permite distintos tipos de RAID.
- 2 interfaces de red.
- Acceso para configuración vía panel web. Mediante el interface web he actualizado el firmware, ajustado la IP y configurado RAID5.
- Y lo mejor… sistema operativo GNU/Linux, que permite acceso ssh. Es divertido poder conocer más la máquina haciendo
cat /proc/cpuinfo, top, ps aux, mount, df -h, ifconfig, route -n, dmesg y viendo cómo es el árbol de directorios. Ej. guarda los ficheros específicos de la NAS y del interface web en /usr/local/ipstor y /usr/local/wwwadmin respectivamente.
ext3
Por comprobar un poco la organización de los discos, al hacer un mount aparece:
/dev/md0 on / type ext3 (rw)
none on /proc type proc (rw,nodiratime)
none on /sys type sysfs (rw)
/dev/vbdi3 on /nas/NASDisk-00003 type xfs (rw,nosuid,usrquota)
/dev/vbdi2 on /nas/NASDisk-00002 type xfs (rw,nosuid,usrquota)
none on /proc/bus/usb type usbfs (rw)
Ya se ve por tanto que se está usando XFS. Por mirar algo más de los discos, haciendo estos comandos:
mdadm --examine --brief --scan --config=partitions
mdadm --detail /dev/md0
cat /proc/mdstat
df -h
fdisk -l
puedo ver un RAID1 en /dev/md0 (con /dev/sda1, /dev/sdb1, /dev/sdc1, /dev/sdd1), un RAID5 sobre /dev/md1 (/dev/sda3, etc.), y que las segundas particiones de cada disco están como swap pero no forman un RAID. Además se crean 2 dispositivos /dev/vbdi2 y /dev/vbdi3 que son gestionados con un módulo de kernel propio, kvbdi, que parece ser responsable del raid en /dev/md1. Es en esos dos dispositivos donde está el espacio “grande y libre”.
A lo que iba: veo que el sistema de ficheros es XFS pero prefiero ext3 para poder mantener intactos los usuarios, grupos y permisos, por lo que reformateo una de las particiones:
mke2fs -j /dev/vbdi2
Al reiniciar la NAS existe el dispositivo /dev/vbdi2 pero no el directorio sobre el que se monta, con lo que sólo queda escribir un script que se ejecute al inicio:
D=/nas/NASDisk-00002; mkdir $D; mount /dev/vbdi2 $D
scp y rsync
El acceso remoto a los ficheros de la NAS es sólo vía CIFS o NFS, ej. para ver los servicios compartidos y acceder a alguno de ellos desde otro equipo se pueden hacer:
smbclient -L ip_de_la_nas -U usuario%clave
mount -t smbfs -o username=usuario%clave //ip_de_la_nas/usuario /mnt/nas/
Pero haciendo scp desde otro equipo da error de que le falta el comando scp, y entrando por ssh y buscando con find no se encuentra. ¿Solución? aparte de hacer una compilación cruzada para ARM, veo que la versión de sshd es la 4.3p. Haciendo en un PC dkpg -S scp el paquete es el openssh-client, y observo que en Debian etch la versión es justo la 4.3p2. Pasos:
- Descargo este paquete para arm,
- Lo extraigo con
dpkg -x y copio vía samba el scp extraído a la NAS, al directorio /usr/bin
- Al ejecutarlo me da error de que le falta alguna librería dinámica (zlib.so.1). Repito los pasos anteriores y enlazo debidamente en /lib.
No obstante, hacer un backup con scp tiene el problema de que no se guarda el propietario (user, group). Para ello habría que emplear rsync, que se instalaría siguiendo un procedimiento análogo al descrito.
Y una vez de que se tiene rsync, scp y ext3 ya se puede hacer:
rsync -avz * root@ip_de_na_nas:/nas/NASDisk-00002/
Eso sí, insistir que tarda mucho en copiar ficheros, por lo que no es algo para hacer todos los días. Parece que acelera algo esto:
echo 50000 >/proc/sys/dev/raid/speed_limit_max