Hace poco me puse a hacer limpieza por casa y me he dado cuenta de que tengo muchos pendrives de 2, 4 y 8 Gb. Así que me he propuesto darles algo de utilidad.
Lo primero ha sido escoger los pendrives que creía que estaban mejor, son 4 de 8Gb de diferentes marcas:

También voy a reutilizar un hub usb 3.0 alimentado para no sobrecargar la pi:

Así la idea es era usar los 4 pendrives para tener una unidad raid 0 de 32Gb.

Por desgracia, dos de los pendrives no se cargaban bien al arrancar la pi y fallaba el raid, así que me quedé con dos.
- Lo primero es instalar mdadm, que será el encargado de crear y gestionar el raid:
Código: Seleccionar todo
pi@central:~ $ sudo apt-get install mdadm
Código: Seleccionar todo
pi@central:~ $ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdd 8:48 1 7,5G 0 disk <----- Pendrive
sdb 8:16 0 7,3T 0 disk
├─sdb4 8:20 0 3T 0 part /disco
├─sdb2 8:18 0 4,2T 0 part /winbackup
├─sdb3 8:19 0 20G 0 part /www
└─sdb1 8:17 0 128M 0 part
sde 8:64 1 7,5G 0 disk <----- Pendrive
sdc 8:32 0 931,5G 0 disk
└─sdc1 8:33 0 931,5G 0 part /disco2
sda 8:0 0 931,5G 0 disk
├─sda2 8:2 0 18,6G 0 part /www2
└─sda1 8:1 0 912,9G 0 part /disco3
mmcblk0 179:0 0 14,4G 0 disk
├─mmcblk0p2 179:2 0 1K 0 part
├─mmcblk0p7 179:7 0 13,1G 0 part /
├─mmcblk0p5 179:5 0 32M 0 part
├─mmcblk0p1 179:1 0 1,2G 0 part
└─mmcblk0p6 179:6 0 66M 0 part /boot
- Creamos el raid, en este caso será un raid 0:
Código: Seleccionar todo
pi@central:~ $ sudo mdadm --create /dev/md0 -l 0 -n 2 /dev/sdd /dev/sde
mdadm: chunk size defaults to 512K
mdadm: /dev/sdd appears to contain an ext2fs file system
size=7864320K mtime=Thu Jan 1 01:00:00 1970
mdadm: /dev/sde appears to contain an ext2fs file system
size=7839744K mtime=Thu Jan 1 01:00:00 1970
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
- Para comprobar si realmente está creado, volvemos a usar el comando lsblk:
Código: Seleccionar todo
pi@central:~ $ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdd 8:48 1 7,5G 0 disk
└─md0 9:0 0 15G 0 raid0 <----- Pendrive
sdb 8:16 0 7,3T 0 disk
├─sdb4 8:20 0 3T 0 part /disco
├─sdb2 8:18 0 4,2T 0 part /winbackup
├─sdb3 8:19 0 20G 0 part /www
└─sdb1 8:17 0 128M 0 part
sde 8:64 1 7,5G 0 disk
└─md0 9:0 0 15G 0 raid0 <----- Pendrive
sdc 8:32 0 931,5G 0 disk
└─sdc1 8:33 0 931,5G 0 part /disco2
sda 8:0 0 931,5G 0 disk
├─sda2 8:2 0 18,6G 0 part /www2
└─sda1 8:1 0 912,9G 0 part /disco3
mmcblk0 179:0 0 14,4G 0 disk
├─mmcblk0p2 179:2 0 1K 0 part
├─mmcblk0p7 179:7 0 13,1G 0 part /
├─mmcblk0p5 179:5 0 32M 0 part
├─mmcblk0p1 179:1 0 1,2G 0 part
└─mmcblk0p6 179:6 0 66M 0 part /boot
- Ahora toca formatear el disco, en este caso voy a formatearlo desactivando el journal para mejorar el rendimiento:
Código: Seleccionar todo
pi@central:~ $ sudo mkfs.ext4 -O ^has_journal /dev/md0
mke2fs 1.43.3 (04-Sep-2016)
/dev/md0 contiene un sistema de ficheros ext4
última fecha de montaje Tue Aug 1 10:18:10 2017
¿Continuar de todas formas? (s,n) s
Se está creando un sistema de ficheros con 3923968 bloques de 4k y 981120 nodos-i
UUID del sistema de ficheros: f2b31600-3b3c-4549-8854-ad981badb764
Respaldo del superbloque guardado en los bloques:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Reservando las tablas de grupo: hecho
Escribiendo las tablas de nodos-i: hecho
Escribiendo superbloques y la información contable del sistema de ficheros: hecho
Código: Seleccionar todo
pi@central:~ $ sudo mkdir /raid0
pi@central:~ $ sudo mount /dev/md0 /raid0
- Y comprobamos que todo esté bien:
Código: Seleccionar todo
pi@central:~ $ sudo df -h
S.ficheros Tamaño Usados Disp Uso% Montado en
/dev/root 13G 7,1G 5,2G 58% /
devtmpfs 474M 0 474M 0% /dev
tmpfs 478M 0 478M 0% /dev/shm
tmpfs 478M 19M 459M 4% /run
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 478M 0 478M 0% /sys/fs/cgroup
/dev/mmcblk0p6 66M 22M 45M 33% /boot
/dev/sda2 19G 835M 17G 5% /www2
/dev/sdb3 20G 955M 18G 6% /www
/dev/sda1 913G 888G 26G 98% /disco3
/dev/sdc1 917G 604G 267G 70% /disco2
/dev/sdb2 4,3T 1,1T 3,2T 25% /winbackup
/dev/sdb4 3,0T 888G 2,0T 31% /disco
tmpfs 96M 0 96M 0% /run/user/1000
/dev/md0 15G 41M 14G 1% /raid0 <----- Raid
- Lo siguiente será asegurarnos de que mdadm monte el raid en cada inicio, ejecutamos:
Código: Seleccionar todo
pi@central:~ $ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
ARRAY /dev/md0 metadata=1.2 name=central:0 UUID=1a39fe6d:d72d63f5:b61cdeb0:022f3319
Código: Seleccionar todo
pi@central:~ $ sudo cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#
# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
DEVICE partitions containers
# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes
# automatically tag new arrays as belonging to the local system
HOMEHOST <system>
# instruct the monitoring daemon where to send mail alerts
MAILADDR root
# definitions of existing MD arrays
# This configuration was auto-generated on Mon, 31 Jul 2017 15:49:27 +0200 by mkconf
ARRAY /dev/md0 metadata=1.2 name=central:0 UUID=1a39fe6d:d72d63f5:b61cdeb0:022f3319
- Ahora añadimos nuestro raid al fstab (ojo con este paso, ya sabeis que podemos liarla) :x En mi caso mi fstab quedaría así:
Código: Seleccionar todo
pi@central:~ $ sudo nano /etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p6 /boot vfat defaults 0 2
/dev/mmcblk0p7 / ext4 defaults,noatime 0 1
UUID="01D24A82897F9750" /disco3 ntfs defaults,noatime,nofail 0 2
UUID="dd4c9a6b-4bcf-4554-a179-6818c13459e5" /www2 ext4 defaults,noatime,nofail 0 2
UUID="59a6f298-cfc0-491a-9152-423f45db773e" /disco2 ext4 defaults,noatime,nofail 0 2
UUID="01D2FB048D1832E0" /winbackup ntfs defaults,noatime,nofail 0 2
UUID="b21f5430-a633-4cd4-99ac-e249ebef54dd" /www ext4 defaults,noatime,nofail 0 2
UUID="4a04e880-fd6c-4423-91f1-bcff4e1c63a0" /disco ext4 defaults,noatime,nofail 0 2
/dev/md0 /raid0 ext4 defaults,noatime,nofail 0 2 <----- Raid
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
-[PD] En mi caso, por algún motivo mdadm monta el raid cuando le da la gana. Lo he solucionado con el comando:
Código: Seleccionar todo
sudo update-initramfs -u
Os dejo una prueba de velocidad, como podeis comprobar, no es gran cosa pero para ir empezando lo veo interesante:
ESCRITURA
Código: Seleccionar todo
pi@central:/raid0 $ sudo dd if=/dev/zero of=/raid0/test.tmp bs=1M count=1024 oflag=direct
1024+0 registros leídos
1024+0 registros escritos
1073741824 bytes (1,1 GB) copiados, 90,6049 s, 11,9 MB/s
Código: Seleccionar todo
pi@central:/raid0 $ sudo dd if=/raid0/test.tmp of=/dev/null bs=1M count=1024
1024+0 registros leídos
1024+0 registros escritos
1073741824 bytes (1,1 GB) copiados, 38,4241 s, 27,9 MB/s
CONCLUSION
Para ser mi primer experimento con discos raid, ha sido muy frustrante y gratificante (como casi todo para un novato de linux).
Un fallo de mdadm es que al instalarlo, no descomenta la opción DEVICE y así al reiniciar, no realiza un escaneo en busca de dispositivos raid. Casi me vuelvo loco (es lo que tiene no leer la documentación).
Con los puertos USB 2.0 no lo veo muy aprovechable, pero lo tendré en cuenta en el futuro cuando las próximas versiones de la Raspberry tengan puertos 3.0. Ahí quizá podamos aprovechar la velocidad para tener algo decente.
Espero que os sirva, un saludo.

EDITO:
Después de varios reinicios, mdadm no le da la gana de montar el raid.

Al final lo he solucionado asi:
1.- Cuando tengais el raid montado y funcionando hay que ejecutar el comando: sudo update-initramfs -u
Así por ahora va funcionando, cualquier cosa ya os aviso

