Montar RAID de un NAS con Linux

Hace un par de semanas que estoy trabajando en un caso que tengo varios discos duros y unidades de memoria cifradas con LUKS2 y no es posible conocer la contraseña. Quien la puso no está y el trabajo consiste en tratar de recuperar todos los datos posibles.

Dentro de los dispositivos a localizar datos se encuentra un NAS “NETGEAR ReadyNAS” con 4 discos de 4Tb y del cuál no dispongo del alimentador y el que tengo no funciona. El otro día analicé los discos de forma individual pero evidentemente estaban en RAID y precisaba de una máquina que me permitiese conectar como mínimo 6 discos.

Hoy he puesto los 4 discos en el servidor, con el hd del sistema y otro para almacenar los datos (por esto 6 discos) y he montado el raid usando mdadm, basándome en qué el NAS como es común suelen usar Linux.

Lo primero será ver si ha detectado los discos

root@IAIA-Capa8:~# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0 476.9G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0 475.5G  0 part /
└─sda3   8:3    0   976M  0 part [SWAP]
sdb      8:16   0 476.9G  0 disk 
└─sdb1   8:17   0 476.9G  0 part /mnt/hd1
sdc      8:32   0   2.7T  0 disk 
├─sdc1   8:33   0     4G  0 part 
├─sdc2   8:34   0   512M  0 part 
└─sdc3   8:35   0   2.7T  0 part 
sdd      8:48   0   3.6T  0 disk 
└─sdd1   8:49   0   3.6T  0 part /mnt/hd2
sde      8:64   0   2.7T  0 disk 
├─sde1   8:65   

Nextcloud: definir quota de usuario por CLI con occ

En uno de los nextcloud que administro, tras unos meses de uso el usuario evidentemente quiere mas espacio. En su momento les definí 1Tb cuando la capacidad total del disco es de 2Tb. Ni idea de porqué lo hice así, hoy me he encontrado de nuevo el porqué, y es que no ha habido forma humana para definir en el interfaz web una quota de usuario de 1,5Tb, ni poniendo 1500Gb, ni con espacio, ni sin ni la madre que lo parió. Así que otra forma de hacerlo es mediante el uso del comando occ.

La forma de definir una quota al usuario entonces sería:

root@***cloud:~# su - www-data -s /bin/bash
www-data@***cloud:~$ cd html/nextcloud
www-data@***cloud:~/html/nextcloud$ chmod +x occ
www-data@***cloud:~/html/nextcloud$ ./occ user:setting admin files quota 1500GB

Para ver si se ha aplicado la quota correctamente

www-data@***cloud:~/html/nextcloud$ ./occ user:info admin
  - user_id: admin
  - display_name: admin
  - email: 
  - cloud_id: admin@cloud.***.***
  - enabled: true
  - groups:
    - admin
  - quota: 1500GB
  - storage:
    - free: 589345344031
    - used: 1021267391969
    - total: 1610612736000
    - relative: 63.41
    - quota: 1610612736000
  - last_seen: 2022-09-15T08:59:09+00:00
  - user_directory: /var/www/nextclouddata/admin
  - backend: Database

Fuente: help.nextcloud.com

Nextcloud sobre nginx y postgreSQL + fulltextsearch + paquetes ofimáticos collabora o onlyoffice-ds sobre docker

Hoy les traigo un manual de éstos tochos o al menos para llegar hasta aquí ya que hay mucha documentación pero ninguna que lo englobe todo, así que os voy a mostrar mi experiencia y los pasos seguidos.

Primero de todo, la política ha sido de instalar cada servicio en un contenedor o máquina virtual. La instalación de nextcloud va a estar instalada sobre un contenedor lxc y los paquetes ofimáticos, que los vamos a instalar usando docker, sobre las máquinas virtuales kvm. El motivo es que docker no funciona muy bien sobre contenedores lxc.

La otra cosa que tenemos que tener en cuenta, es que para hacer funcionar los paquetes ofimáticos, vamos a usar proxys de nginx, las máquinas van a requerir que se vean correctamente entre ellas y el usuario a las maquinas. Ésto lo comento porque la idea inicial era montar todo el sistema sobre un mismo servidor compartiendo la misma IP y repartir en el host que alberga las maquinas virtuales con iptables a los puertos correspondientes. Ésto me ha dado problemas, así que la mejor opción es servicios preparados.
En éste post me hubiese gustado documentar elasticsearch para poder buscar entre los ficheros, pero aún lo tengo a medio instalar y no he conseguido aún la comunicación. Espero que en unos días pueda publicar otro post en éste mismo blog de como hacer la integración nextcloud-fulltextsearch-elasticsearch.

Así que vamos a empezar! :)

Nextcloud
Partimos de un contenedor lxc, ésto quiere decir que el procedimiento se …

Nextant: Indexador de ficheros de nextcloud

Una vez instalado Nextcloud vemos que la interfaz cambia un poco además de que tenemos un montón de aplicaciones disponibles que no teníamos con owncloud.

En antaño había instalado una aplicación para indexar el contenido que hay dentro de los ficheros almacenados en el cloud, pero a partir de alguna de las actualizaciones de owncloud dejó de funcionar, traté de identificar el bug y solucionarlo, pero la cosa se quedó al aire y fuera de mis capacidades, así que simplemente desactivé dicha aplicación. Ahora con Nextcloud vuelve a aparecer una herramienta, basada en solr/java para indexar el contenido de los ficheros. El solr es un viejo conocido (monstruo) en Alfresco, así que vamos a ver como trabaja en la instancia de cloud que tengo en funcionamiento, mucho mas cargada de ficheros y documentación que la que tenía inicialmente en Alfresco… también los años van pasando…

Vamos a ver pues como instalar Nextant

Solr
Primero tendremos que instalar solr como servicio, para ello tendremos que instalar primero java y después solr.

Mi primera pregunta, ¿cuál java? ¿el SE, JRE, JDK? el JDK.

Lo guardamos en /opt por ejemplo y lo descomprimimos, a continuación creamos un link simbólico en alguno de los directorios de ejecución (mirar printenv para ver cuales son)

# cd /opt
# tar xvzf jdk-9.0.1_linux-x64_bin.tar.gz
# cd /usr/local/bin
# ln -s /opt/jdk-9.0.1/bin/java .

Comprobamos que java nos aparece como un programa escribiendo directamente en la terminal java –version

# java --version
java 9.0.1
Java(TM) SE Runtime Environment 

Migrar de owncloud a nextcloud

Nextcloud es el fork que se hizo de Owncloud cuando éste empezó a ofrecer un servicio premium y aplicaciones de pago. Para ello la comunidad decidió pasarse a Nextcloud, manteniendo las actualizaciones y funcionalidad de y con Owncloud.

Hace ya un par de años instalé Owncloud en un servidor que lo he ido actualizando de vez en cuando, hace unas semanas decidí pasar de Owncloud a Nextcloud, así que lo actualicé a la versión 10.0.3 para previamente pasarlo a Nextcloud pero me encontré que la versión 12.0.3 de Nexcloud aún no estaba preparada para migrar desde Owncloud 10.0.3. Así que tuve que esperar hasta la release de la versión 12.0.4 de Nextcloud ayer mismo :)

Lo primero será realizar una copia de seguridad de los ficheros y de la base de datos. Una recomendación que hago que se realice automáticamente a diario.

Mi instancia de owncloud la tengo instalada en /var/www y tengo separados los ficheros en 2 directorios, owncloud que es donde se almacena el software del programa y ownclouddata que es donde se almacenan los ficheros de los usuarios, además tengo un script que hace un dump de la base de datos.

Nos posicionaremos pues en el directorio superior de donde tenemos owncloud y descargaremos la última versión de nextcloud

# cd /var/www
# wget -c --no-check-certificate https://download.nextcloud.com/server/releases/nextcloud-12.0.4.zip
# unzip nextcloud-12.0.4.zip

Copiaremos el fichero de configuración de owncloud a nextcloud

# cp owncloud/config/config.php nextcloud/config/

Tendremos que cambiar el directorio por defecto de trabajo del servidor web (apache en …

Alfresco: Parar el indexador para subir ficheros en masa

El otro día empecé a subir ficheros a saco por webdav a una instancia de alfresco ya que por el share sólo podía subir los ficheros directorio a directorio, lo que hizo que me quedase sin recursos (sin RAM y sin disco) y se acabase rompiendo el alfresco, en fin un caos absoluto!!!

Nota mental: alfresco es un monstruo como programa pero consume recursos como un jodido!

A partir del post que hizo Joseba Martos de migración de alfresco 4 a alfresco 5 a mi honor, conseguí hallar la solución ;)

Al ver que alfresco no funcionaba lo que hice fue instalar una nueva instancia desde 0 y mover los ficheros de alf_data de la vieja instancia a la nueva, pero mas tarde he visto que no era necesario :P almenos si no te has quedado sin disco……

Instalar extensiones alfresco con amp

Con una instancia recién instalada de alfresco, vamos a instalar los paquetes amp con el alfresco-mmt.jar.

En alfresco 5 ya no existe la apariencia antigua de alfresco, así que sólo tenemos alfresco share.

Las extensiones las instalamos sobre el .war que corresponde a la instancia dentro de tomcat alojado en /opt/alfresco-5.0.b/tomcat/webapps/ en este caso share.war.

Los comandos básicos son install, uninstall y list.

Vamos a instalar por ejemplo la extensión htmlwebpreviewer que nos va a permitir visualizar documentos de texto, html, imágenes, etc. en nuestra instancia de alfresco, ya que por defecto sólo se nos muestran los pdf.…