Este proyecto consistió en crear un NAS (network attached storage) un almacenamiento adicional en red. Creando nuestro servicio personal de nube (Cloud).
Te permite almacenar tú información disponible en la red LAN (samba), en cualquier parte del mundo con conexión a Internet (owncloud) creando múltiples usuarios y de acceso multiplataforma acceso como puede ser un ordenador, un móvil o una tablet.
Materiales:
Te permite almacenar tú información disponible en la red LAN (samba), en cualquier parte del mundo con conexión a Internet (owncloud) creando múltiples usuarios y de acceso multiplataforma acceso como puede ser un ordenador, un móvil o una tablet.
RAID1. Extraído de ASRock, manual
RAID motherboard H97M Anniversary
|
Materiales:
- Dos discos duros 1 TB cada uno (sda y sdb o disk0 y disk1)
- Dos carcasas con sus fuentes de alimentación y sus cables USB
- Una Raspberry Pi 2, tarjeta SD (8 GB, puede ser menos)
- Cable de red UTP (de las raspi al router)
- Router con Wifi
- Keyboard
- Mouse
- Monitor
Software GNU
NAS con Rapsberry Pi
seguramente nos pida instalar más paquetes que son necesarios según cada caso, le decimos que
--------------------------------------------------------------------------------------------------------------------------
Al instalarse nos preguntará dos cosas muy importantes, en el caso de la Raspberry Pi aún más:
A continuación termina de instalarse todo.
--------------------------------------------------------------------------------------------------------------------------
Hemos Creados 4 particiones en cada disco de 1TB
Comprobamos los discos disponibles en la Raspberry Pi usando la orden:
--------------------------------------------------------------------------------------------------------------------------
Ahora conectamos los discos que van a formar parte del RAID y volvemos a comprobar con
sudo lsblk
A) DISCOS CON UNA SOLA PARTICIÓN DE 1 Tb CADA UNO
En este caso son
B) DISCOS CON UNA DOS PARTICIÓN ES DE 0.5 Tb CADA UNO
En este caso son
Esto significa:
Comprobamos que el disco ya está creado con
--------------------------------------------------------------------------------------------------------------------------
A partir de aquí todo es igual que lo expliqué en la guía para montar un NAS casero. Ahora formateamos el nuevo disco:
Y ahora lo preparamos todo para poder usarlo: (Creamos el directorio, le damos todos los permisos y montamos el dispositivo md(1,2)con acceso al directorio raid(1,2), según sea el caso.
Para md1
Ya lo podemos utilizar y vemos como aparece con:
sudo
--------------------------------------------------------------------------------------------------------------------------
Para terminar vamos a incluirlo de forma permanente en el sistema, como también comenté la guía de NAS casero, pero que repito aquí. Primero buscamos el código único del nuevo disco con
Y ahora editamos el archivo
Código a pegar en fstab
Código
proc /proc proc defaults 0 0
/dev/mmcblk0p6 /boot vfat defaults 0 2
/dev/mmcblk0p7 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
##############Identifica cada disco y lo ancla a un fichero
# tengo dos discos duros de 1Tb cada uno con dos particiones, formando dos raids
#md1, del RAID raspi, chito
######## sugerido por Xavi Carretero
UUID=0db2ac7f-2b16-4d69-9483-14e800e9909c /media/raid1 ext4 defaults,nofail 0 0
#md2, del RAID2 raspi, chito
########sugerido por Xavi Carretero
UUID=fcbec6b9-4ccb-45e5-801c-0c86eaa13ae8su /media/raid2 ext4 defaults,nofail 0 0
# sugerencia de Xavi Carretero vídeo en youtube en: https://www.youtube.com/watch?v=xYAUysZVg1Y
En principio podría valer con las opciones estándar
fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin
----------------------------------------------------------------------------------------------------------------------------
ENLACES SIMBÓLICOS
Lo he usado para colocar un acceso directo al raid en el escritorio
En mi caso fue:
Crear un acceso directo en el escritorio de pi que apunte al raid1 montado
ln -s /media/raid1 /home/pi/Desktop/raid1
Crear un acceso directo en el escritorio de pi que apunte al raid2 montado
ln -s /media/raid2 /home/pi/Desktop/raid2
En caso de apagón del sistema
De momento no reconoce bien el disco sda y sdb, los puede cambiar y los raid dan errores.
Solución:
Pasos para arrancar el raid (md1 y md2) después de un apagón
sudo mount /dev/md2 /media/raid2
Posible solución
https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
total 0
lrwxrwxrwx 1 root root 15 mar 31 13:17 947B-B89A -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 10 abr 1 13:19 C42ED50E25D4F9FE -> ../../sdb1
lrwxrwxrwx 1 root root 15 mar 31 13:17 eda95d8a-9cdd-4224-96d0-890b4791600c -> ../../mmcblk0p2
mount /dev/disk/by-uuid/C42ED50E2ED4F9FE /var/hdd
Webgrafía (fuentes consultadas)
NAS con Raspberry Pi
https://www.vichaunter.org/como-se-hace/nas-raspberry-pi
NAS casero avanzado disco RAID en Raspberry Pi
https://raspberryparatorpes.net/proyectos/nas-casero-avanzado-disco-raid-en-raspberry-pi/
RAID por software en Debian 7 con mdadm
https://blog.unlugarenelmundo.es/2013/10/23/raid-por-software-en-debian-7-con-mdadm/
How to set up software RAID for Raspberry Pi
https://funnyvale.com/how-to-set-up-software-raid-for-raspberry-pi/
Gestión de un RAID 1 en un sistema linux (Debian)
https://www.youtube.com/watch?v=yQT_dmFLbVo
- Sistema raspbian (Linux para Raspberry bajo la arquitectura de un procesador ARM)
- Owncloud (servidor multiusuario, multiplataforma GNU)
- Mdadm (permite crear RAID por software en sistemas linux)
NAS con Rapsberry Pi
Cómomontar un NAS con Raspberry Pi
Read more at: https://www.vichaunter.org/como-se-hace/nas-raspberry-pi
Read more at: https://www.vichaunter.org/como-se-hace/nas-raspberry-pi
Cómo montar discos duros y memorias usb por id en Linux
Read more at: https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
Read more at: https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
sudo apt-get install mdadm
seguramente nos pida instalar más paquetes que son necesarios según cada caso, le decimos que
Sí
--------------------------------------------------------------------------------------------------------------------------
Al instalarse nos preguntará dos cosas muy importantes, en el caso de la Raspberry Pi aún más:
- La primera es si queremos que el software RAID arranque al principio
de todo para instalar ahí el sistema operativo. A lo que tenemos que contestar que no, pero que si leemos el texto se hace indicando:
none
- Y luego nos pregunta que si cuando haya discos RAID en el equipo los
ponga en funcionamiento con esta configuración de forma automática y en
este caso le decimos que sí:
Sí
A continuación termina de instalarse todo.
--------------------------------------------------------------------------------------------------------------------------
Esquema de interacción entre los dispositivos físicos y los md con sus respectivos directorios |
Hemos Creados 4 particiones en cada disco de 1TB
Comprobamos los discos disponibles en la Raspberry Pi usando la orden:
sudo lsblk
Lista dispositivos en bloques
--------------------------------------------------------------------------------------------------------------------------
Ahora conectamos los discos que van a formar parte del RAID y volvemos a comprobar con
lsblk
cual es su nombresudo lsblk
A) DISCOS CON UNA SOLA PARTICIÓN DE 1 Tb CADA UNO
En este caso son
sda
y sdb
. Y el comando para crear un solo disco de tipo RAID 1 es:sudo mdadm --create /dev/md1 -l 1 -n 2 /dev/sda /dev/sdb
(Pueden cambiar el nombre de los dispositivos)
EL PROCESO DE SINCRONIZADO TARDA MUCHO TIEMPO (890 min, dos discos de 1 TB). DEBES ESPERAR QUE SE CREE EL RAID VER SU ESTADO CON EL COMANDO
B) DISCOS CON UNA DOS PARTICIÓN ES DE 0.5 Tb CADA UNO
En este caso son
sda
y sdb
. Y el comando para crear dos (RAID1 y RAID2) ambos de tipo RAID 1 es:sudo mdadm --create /dev/md1 -l 1 -n 2 /dev/sda1 /dev/sdb1
sudo mdadm --create /dev/md2 -l 1 -n 2 /dev/sda2 /dev/sdb
2
(Pueden cambiar el nombre de los dispositivos)
EL SINCRONIZADO TARDARA LA MITAD DEL TIEMPO (445 min, en dos discos de 1 TB). DEBES ESPERAR QUE SE CREE EL RAID VER SU ESTADO CON EL COMANDO
cat /proc/mdstat
Esto significa:
- sudo mdadm –create >> crear un disco RAID
- /dev/md1 >> será el nombre del disco RAID
- -l 1 >> esto indica que es un RAID de nivel 1
- -n 2 >> esto indica que vamos a usar 2 discos
- /dev/sdb /dev/sdc >> estos son los nombre de los discos a incluir en el RAID
Yes
Comprobamos que el disco ya está creado con
lsblk
--------------------------------------------------------------------------------------------------------------------------
A partir de aquí todo es igual que lo expliqué en la guía para montar un NAS casero. Ahora formateamos el nuevo disco:
sudo mke2fs -t ext4 /dev/md1
Y ahora lo preparamos todo para poder usarlo: (Creamos el directorio, le damos todos los permisos y montamos el dispositivo md(1,2)con acceso al directorio raid(1,2), según sea el caso.
Para md1
sudo mkdir /media/raid1
sudo chmod 777 /media/raid1
sudo mount /dev/md1 /media/raid1
Para md2
sudo mkdir /media/raid2
sudo chmod 777 /media/raid2
sudo mount /dev/md2 /media/raid2
Ya lo podemos utilizar y vemos como aparece con:
df -h
Este comando nos muestra df = disk free en formato -h = humano, o sea, para ver que espacio libre tenemos en los discos.sudo
df -h
--------------------------------------------------------------------------------------------------------------------------
Para terminar vamos a incluirlo de forma permanente en el sistema, como también comenté la guía de NAS casero, pero que repito aquí. Primero buscamos el código único del nuevo disco con
sudo blkid
Y ahora editamos el archivo
fstab
recordando que:Para ello ejecutamos el editor de texto
OJO QUE PODEMOS LIARLA, VAMOS A IR CON CUIDADO AL TOCAR ESTE FICHERO
nano
con la siguiente orden:
sudo nano -w /etc/fstab
Código a pegar en fstab
Código
proc /proc proc defaults 0 0
/dev/mmcblk0p6 /boot vfat defaults 0 2
/dev/mmcblk0p7 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
##############Identifica cada disco y lo ancla a un fichero
# tengo dos discos duros de 1Tb cada uno con dos particiones, formando dos raids
#md1, del RAID raspi, chito
######## sugerido por Xavi Carretero
UUID=0db2ac7f-2b16-4d69-9483-14e800e9909c /media/raid1 ext4 defaults,nofail 0 0
#md2, del RAID2 raspi, chito
########sugerido por Xavi Carretero
UUID=fcbec6b9-4ccb-45e5-801c-0c86eaa13ae8su /media/raid2 ext4 defaults,nofail 0 0
# sugerencia de Xavi Carretero vídeo en youtube en: https://www.youtube.com/watch?v=xYAUysZVg1Y
En principio podría valer con las opciones estándar
defaults
,
pero para acelerar más este disco pensado para aprovechar la velocidad
de 2 puertos USB a la vez, he puesto esta configuración:UUID=el-que-tenga-tu-raid /media/raid ext4 rw,noauto,noatime,nodiratime 0 0
- UUID=el-que-tenga-tu-raid >> obtenido mediante el comando
blkid
- /media/raid >> la carpeta que creamos para montar el disco
- ext4 >> el tipo de formateo del disco
- rw >> permiso de escritura y lectura
- noauto >> no se monta automáticamente
- noatime >> no cambia la fecha de los archivos
- nodiratime >> no cambia la fecha de directorios
- 0 >> no incluir en copia de tipo dump
- 0 >> no detenerse en caso de fallo
fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin fin
----------------------------------------------------------------------------------------------------------------------------
ENLACES SIMBÓLICOS
Lo he usado para colocar un acceso directo al raid en el escritorio
Linux permite crear enlaces simbólicos (Symbolic link) que, para los usuarios que trabajen con windows, es el equivalente a los acceso directos. Podemos crear enlaces simbólicos tanto a archivos (scripts, programas, etc.) como a carpetas. Si borramos estos enlaces no afectaremos al contenido de la carpeta o al archivo.
1
|
ln -s /media/raid /home/pi/Desktop
|
Como hemos visto antes utilizamos ln -s para indicar que queremos crear un enlace simbólico (o acceso directo) seguido de la ruta a la carpeta (o archivo) al que queremos hacer el enlace y la ruta donde estará el enlace.
1
| ln -s [ruta del archivo o directorio] [ruta del enlace si) |
Crear un acceso directo en el escritorio de pi que apunte al raid1 montado
ln -s /media/raid1 /home/pi/Desktop/raid1
Crear un acceso directo en el escritorio de pi que apunte al raid2 montado
ln -s /media/raid2 /home/pi/Desktop/raid2
En caso de apagón del sistema
Pasos para arrancar el raid (md1 y md2) después de un apagón
- Encendemos la rapsberry pi, esperamos que cargue el sistema.
- Verificamos en consola los dispositivos conectados al sistema:
- Encendemos el HDD0 (sda), dejamos unos segundos
- Verificamos en consola los dispositivos conectados al sistema:
- Encendemos el HDD1 (sdb), dejamos unos segundos
- Verificamos en consola los dispositivos conectados al sistema:
- Ensamblamos y escaneamos los raid (md1 y md2):
- Verificamos los estados de los raid (md1 y md2):
- Anclamos los raid md1 y md2 a los directorios raid1 y raid2:
sudo mount /dev/md2 /media/raid2
Posible solución
https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
mount /dev/disk/by-uuid/C42ED50E2ED4F9FE /var/hdd
Read more at: https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
root@raspberrypi:~# ls -l /dev/disk/by-uuid/Read more at: https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
total 0
lrwxrwxrwx 1 root root 15 mar 31 13:17 947B-B89A -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 10 abr 1 13:19 C42ED50E25D4F9FE -> ../../sdb1
lrwxrwxrwx 1 root root 15 mar 31 13:17 eda95d8a-9cdd-4224-96d0-890b4791600c -> ../../mmcblk0p2
mount /dev/disk/by-uuid/C42ED50E2ED4F9FE /var/hdd
Webgrafía (fuentes consultadas)
NAS con Raspberry Pi
https://www.vichaunter.org/como-se-hace/nas-raspberry-pi
NAS casero avanzado disco RAID en Raspberry Pi
https://raspberryparatorpes.net/proyectos/nas-casero-avanzado-disco-raid-en-raspberry-pi/
RAID por software en Debian 7 con mdadm
https://blog.unlugarenelmundo.es/2013/10/23/raid-por-software-en-debian-7-con-mdadm/
How to set up software RAID for Raspberry Pi
https://funnyvale.com/how-to-set-up-software-raid-for-raspberry-pi/
Gestión de un RAID 1 en un sistema linux (Debian)
https://www.youtube.com/watch?v=yQT_dmFLbVo
Instalación y configuración de un Raid1 en Ubuntu. Xavi Carretero
Ver el identificador de
una unidad usb en linux
Por suerte, al igual que pasa con las MAC de las tarjetas de red, los
dispositivos usb, así como las memorias flash y los discos duros, tienen
cada uno un identificador único que nos indica exactamente una unidad,
independientemente de cuando la conectemos al equipo. Para eso
simplemente tendremos que conectar una unidad a nuestro equipo de
ejecutar este comando:
ls -l /dev/disk/by-uuid/
1
ls -l /dev/disk/by-uuid/
Esto nos dará una lista con las unidades conectadas, por ejemplo:
root@raspberrypi:~# ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 15 mar 31 13:17 947B-B89A -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 10 abr 1 13:19 C42ED50E25D4F9FE -> ../../sdb1
lrwxrwxrwx 1 root root 15 mar 31 13:17
eda95d8a-9cdd-4224-96d0-890b4791600c -> ../../mmcblk0p2
1
2
3
4
5
root@raspberrypi:~# ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 15 mar 31 13:17 947B-B89A -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 10 abr 1 13:19 C42ED50E25D4F9FE -> ../../sdb1
lrwxrwxrwx 1 root root 15 mar 31 13:17
eda95d8a-9cdd-4224-96d0-890b4791600c -> ../../mmcblk0p2
Como puedes ver en este caso la unidad que he conectado tiene la id
C42ED50E25D4F9FE, y como nunca cambiará no importa en el orden que la
conecte, ya que hará referencia siempre al disco sdX al que vaya
asociado. Para cada unidad que conectemos podemos apuntarnos por ejemplo
las 3 o 4 primeras letras para identificarla dentro de un archivo de
texto.
Cómo montar unidades usb por uuid en linux
Ahora que sabes la uuid de tu disco usb simplemente tienes que montarla
como haces siempre pero con la ruta a su identificador. Sería ejecutar
un comando similar a este en mi caso:
mount /dev/disk/by-uuid/C42ED50E2ED4F9FE /var/hdd
1
mount /dev/disk/by-uuid/C42ED50E2ED4F9FE /var/hdd
En este caso este comando es lo mismo que si ejecuto mount /dev/sdb1
/var/hdd, ya que este uuid va asociado a dicha partición. Con esto
puedes hacer muchas cosas, como por ejemplo tener un script que detecte
cuando conectas una memoria usb en concreto y que haga de llave para
desbloquear algo, o que se copie automáticamente el contenido de un
disco duro específico, o en mi caso gestionar un sistema de backups que
guardan las copias en discos duros determinados.
Read more at: https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
Read more at: https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
Ver el identificador de
una unidad usb en linux
Por suerte, al igual que pasa con las MAC de las tarjetas de red, los
dispositivos usb, así como las memorias flash y los discos duros, tienen
cada uno un identificador único que nos indica exactamente una unidad,
independientemente de cuando la conectemos al equipo. Para eso
simplemente tendremos que conectar una unidad a nuestro equipo de
ejecutar este comando:
ls -l /dev/disk/by-uuid/
1
ls -l /dev/disk/by-uuid/
Esto nos dará una lista con las unidades conectadas, por ejemplo:
root@raspberrypi:~# ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 15 mar 31 13:17 947B-B89A -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 10 abr 1 13:19 C42ED50E25D4F9FE -> ../../sdb1
lrwxrwxrwx 1 root root 15 mar 31 13:17
eda95d8a-9cdd-4224-96d0-890b4791600c -> ../../mmcblk0p2
1
2
3
4
5
root@raspberrypi:~# ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 15 mar 31 13:17 947B-B89A -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 10 abr 1 13:19 C42ED50E25D4F9FE -> ../../sdb1
lrwxrwxrwx 1 root root 15 mar 31 13:17
eda95d8a-9cdd-4224-96d0-890b4791600c -> ../../mmcblk0p2
Como puedes ver en este caso la unidad que he conectado tiene la id
C42ED50E25D4F9FE, y como nunca cambiará no importa en el orden que la
conecte, ya que hará referencia siempre al disco sdX al que vaya
asociado. Para cada unidad que conectemos podemos apuntarnos por ejemplo
las 3 o 4 primeras letras para identificarla dentro de un archivo de
texto.
Cómo montar unidades usb por uuid en linux
Ahora que sabes la uuid de tu disco usb simplemente tienes que montarla
como haces siempre pero con la ruta a su identificador. Sería ejecutar
un comando similar a este en mi caso:
mount /dev/disk/by-uuid/C42ED50E2ED4F9FE /var/hdd
1
mount /dev/disk/by-uuid/C42ED50E2ED4F9FE /var/hdd
En este caso este comando es lo mismo que si ejecuto mount /dev/sdb1
/var/hdd, ya que este uuid va asociado a dicha partición. Con esto
puedes hacer muchas cosas, como por ejemplo tener un script que detecte
cuando conectas una memoria usb en concreto y que haga de llave para
desbloquear algo, o que se copie automáticamente el contenido de un
disco duro específico, o en mi caso gestionar un sistema de backups que
guardan las copias en discos duros determinados.
Read more at: https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
Read more at: https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
ls -l /dev/disk/by-uuid/
Read more at: https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
Read more at: https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
ls -l /dev/disk/by-uuid/
Read more at: https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
Read more at: https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
ls -l /dev/disk/by-uuid/
Read more at: https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
Read more at: https://www.vichaunter.org/como-se-hace/montar-discos-duros-memorias-usb-id-linux
Comentarios
Publicar un comentario