Autor Tema: [Tutorial] Matriz de discos USB  (Leído 4874 veces)

0 Usuarios y 1 Visitante están viendo este tema.

raphik

  • Visitante
[Tutorial] Matriz de discos USB
« en: 11-07-2013, 21:42 (Jueves) »
Objetivo: conectar varias memorias USB al router mediante un hub y que Samba las presente como un único dispositivo compartido de capacidad igual a la suma de todas las memorias.

PARTIMOS DE UNA INSTALACIÓN LIMPIA.
Para lo cual he instalado el último firmware OpenWRT estable en un hg553. Le he conectado un hub USB con cuatro pendrives de 16 GB. Lamentablemente, mi hub no es 2.0.

ACTUALIZAR LA LISTA DE PAQUETES E INSTALACIÓN DE PAQUETES NECESARIOS.
Hay que actualizar la lista de paquetes instalables y dar soporte USB, almacenamiento, sistema de archivos ext4, particionado de discos, herramienta para dar formato, soporte para multidisco lineal y utilidad para la gestión multidisco y Samba. También he tenido que dar soporte al hub 1.1.

Código: [Seleccionar]
opkg update
opkg install kmod-usb2 kmod-usb-storage kmod-fs-ext4 cfdisk e2fsprogs kmod-md-linear mdadm luci-app-samba kmod-usb-ohci

DETECTAR LOS DISCOS. Echamos un vistazo a los pendrives para ver que están todos:
Código: [Seleccionar]
ls /dev/sd*
PARTICIONAR LOS DISCOS. Con la utilidad cfdisk creamos una partición principal en cada disco.

Código: [Seleccionar]
cfdisk /dev/sdx
CREAR EL ARRAY MULTIDISCOS. Creamos el dispositivo /dev/md0 formado por los cuatro pendrives.

Código: [Seleccionar]
mdadm --create --verbose /dev/md0 --level=linear --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
FORMATEAR EL ARRAY MULTIDISCOS (ext4 sin journal). OpenWRT trata /dev/md0 como ¡un único disco!

Código: [Seleccionar]
mke2fs -t ext4 -O ^has_journal /dev/md0
CREAR PUNTO DE MONTAJE.

Código: [Seleccionar]
mkdir /mnt/multidisk
MONTAR EL ARRAY MULTIDISCO.

Código: [Seleccionar]
mount -t ext4 /dev/md0 /mnt/multidisk -o rw,sync,data=ordered,barrier=1
Nota: para crear y montar automáticamente el array al arrancar el router, añadir estas dos líneas al fichero /etc/rc.local,

Código: [Seleccionar]
echo y | mdadm --create --verbose /dev/md0 --level=linear --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
mount -t ext4 /dev/md0 /mnt/multidisk -o rw,sync,data=ordered,barrier=1

SI EL MONTAJE HA IDO BIEN SE VISUALIZARÁ LA CAPACIDAD DEL ARRAY.

Código: [Seleccionar]
df /mnt/multidisk
CAMBIAR PERMISOS Y PROPIETARIO, para no tener que crear usuarios extra ni contraseña para Samba.
Código: [Seleccionar]
chmod -R 777 /mnt/multidisk
chown -R nobody /mnt/multidisk

HABILITAR E INICIAR SAMBA

Código: [Seleccionar]
/etc/init.d/samba enable
/etc/init.d/samba start

CONFIGURAR SAMBA DESDE LuCI. Y al conectarnos desde el PC veremos un dispositivo compartido único que suma las capacidades de todos los pendrives.

-----
Nada impide que el array sea redundante (RAID0, RAID1, RAID5...), siempre que instalemos el paquete correspondiente (kmod-md-raid0, kmod-md-raid1, kmod-md-raid456...)
Yo he probado el RAID5 y funciona. Eso sí, como mi hub es 1.1, la velocidad es de pena.


« Última modificación: 12-07-2013, 08:36 (Viernes) por jar229 »

Pteridium

  • Visitante
Re: Matriz de discos USB
« Respuesta #1 en: 11-07-2013, 22:52 (Jueves) »
¡MOLA!  >:( >:( >:( >:( >:(

Chincheta durante una semana.  ;)

Lo que se aprende en este foro...

raphik

  • Visitante
Re: Matriz de discos USB
« Respuesta #2 en: 12-07-2013, 00:13 (Viernes) »
Estaría bien poder probarlo en un hub de 49 puertos 2.0 a 480Mbps.
« Última modificación: 12-07-2013, 00:37 (Viernes) por raphik »

Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4580
Re: Matriz de discos USB
« Respuesta #3 en: 12-07-2013, 08:32 (Viernes) »
 >:( >:( >:(

Añadido al [Índice] Hilos relevantes de OpenWrt

Te he editado un poco el post para añadir las etiquetas de 'code'. Así queda más claro y vistoso  ;)
Valoraciones positivas en compra/venta:
121 en Htcmania
126 en Har2mano
18 en elchapuzasinformatico
8 en gsmspain
 ....
 
Mis portátiles en venta: https://drive.google.com/open?id=1DjTt6LiqDWzlRayB4KFhFSKc9ZQ-1mjf

raphik

  • Visitante
Re: [Tutorial] Matriz de discos USB
« Respuesta #4 en: 12-07-2013, 21:13 (Viernes) »
INSPECCIONAR DETALLES DEL ARRAY MULTIDISCOS. Da detalles relevantes del "estado de salud" de nuestra matriz de discos.
Código: [Seleccionar]
mdadm -D /dev/md0


El conjunto /dev/md0 es de 60GB. Está formado por cuatro pendrives (de 16GB) y su estado actual es "clean".

¡MOLA!  >:( >:( >:( >:( >:(

Chincheta durante una semana.  ;)

Lo que se aprende en este foro...

¡Gracias! Esto es Linux.

>:( >:( >:(

Añadido al [Índice] Hilos relevantes de OpenWrt

Te he editado un poco el post para añadir las etiquetas de 'code'. Así queda más claro y vistoso  ;)

¡Gracias! Sí que queda más claro.

Pteridium

  • Visitante
Re: [Tutorial] Matriz de discos USB
« Respuesta #5 en: 20-07-2013, 15:22 (Sábado) »
Estuve leyendo algunas cosillas sobre los arrays multidisco y raid y parece ser que con algunas configuraciones (creo que raid0, 1, ...) puede usar mucho ancho de banda en el puerto usb al que está conectado el hub o sobrecargar un poco la cpu debido a que muchas de las tareas las tiene que hacer por software. Supongo que será cuestión de probar...
De todas maneras este aporte es muy muy bueno, con lo que muchísimas gracias por molestarte en probarlo y publicarlo.

Edición: ya pasó la semana, con lo que se quita la "chincheta".
« Última modificación: 29-07-2013, 14:49 (Lunes) por Pteridium »