Como mantener un disco USB despierto en XPenology

por Javier Rodríguez 10/03/2016 ...

Hace algunas semanas os mostramos como montar un proyecto XPenology con un PC barato y unidades externas USB. Algunas unidades USB, sobre todo aquellas que tienen gestión inteligente tipo JBOD o diversos modos RAID, pueden darnos problemas por desconexiones o entradas en suspensión que nos generan problemas en la gestión de los datos. La caída de una unidad USB puede, entre otros efectos, pararnos servicios asociados a esos datos como incumplimiento de ratios, de actividad de descargas o de reproducción multimedia remota.

Para lograr estabilidad en unidades USB montadas en un XPenology debemos establecer un nombre fijo para la unidad. El sistema va enumerando las unidades USB como: usbshare1, usbshare2, etc. Si fijamos un nombre habremos ganado parte de la batalla. Eso lo podemos hacer en el FileStation.  Ahí cambiaremos la unidad “usbshare” por el nombre que queramos. El cambio es persistente, aunque reiniciemos.

Si nuestra unidad USB insiste en apagarse, entrar en reposo, cada cierto tiempo entonces el método más directo y sencillo es crear un “script” de Linux que ejecutemos cada cinco minutos (el periodo más corto que admite el programador de tareas del DSM), donde obliguemos al disco duro a tener actividad. Para que la actividad sea definitivamente notoria para el sistema lo mejor es generar algún tipo de escritura en el disco.

La escritura no debe ser muy intensa para no reducir la vida de la unidad tontamente. Podemos crear un script que escriba un archivo en nuestra unidad USB cada 5 minutos. Eso será suficiente. El script podemos generarlo directamente desde el interfaz Web con el editor de textos de DSM.

Podemos, por ejemplo, hacer que el sistema escriba un archivo de 1MB, siempre el mismo, en la unidad USB que queramos mantener despierta. Esto se hará cada 5 minutos, 288 veces al día, 2880MB escritas en el disco duro cada día. Es un script que podemos hacer de muchos modos y que yo resumo en esto: dd if=/dev/zero of=/volumeUSB2/usbshare/Descarga/output.dat  bs=1M  count=10

El script es sencillo de entender, pero para los más profanos lo que hace este script es rellenar un archivo llamado output.dat con ceros. Los ceros se cuentan por 10 veces, 1MB. 10MB de escritura en total. El archivo se sobrescribe cada vez que se ejecuta el comando. No hay acumulación. Podéis reducirlo a ampliarlo modificando el contador del bucle en “count” o el tamaño en “bs=”.

Tendréis que cambiar la ruta de vuestra unidad para que coincida con la adecuada. En mi línea podéis tener pistas de como localizar la unidad mediante FileStation, usando el menú contextual de “propiedades” podemos averiguar la ruta exacta del sistema de archivos donde exactamente queréis dejar el archivo. Grabaremos el script en alguna de las carpetas de nuestro NAS con la extensión “.sh”.

Ahora solo tenemos que programar una tarea. El DSM cuenta con un programador de tareas sencillo pero adecuado para este tipo de trabajos. El programador de tareas lo encontraremos en el panel de control. Crearemos una nueva tarea, de tipo “script definido por el usuario”. En la primera pestaña de creación definiremos el nombre y donde está el script. Tendremos que darle la ruta donde salvamos el archivo “.sh”. Podemos encontrar la ruta usando las “propiedades” del archivo desde el FileStation. Definido el nombre y habilitada la tarea, pasamos la pestaña de programa.

En programa le diremos que la ejecute “cada día”. Definiremos la hora de comienzo como las 00:00 horas, la ultima hora de ejecución como las 23:55 horas y la ejecución cada 5 minutos. Así se ejecutará de forma continuada, todos los días, cada cinco minutos. Damos a ok cuando acabemos.

A partir de ahora nuestra unidad USB nunca se pondrá en reposo y tendremos un sistema mucho más estable.