Creación de un clúster de discos (SDS) usando GlusterFS (Parte 2)

Este artículo es la continuación de la Parte 1 y será tomado como base para este.

3- Operaciones básicas y de control del volumen gluster

El artículo anterior se limitó solo a la creación del volumen, pero hay muchos otros elementos a tener en cuenta, como agregar discos, sustituir discos rotos…

3.1- Agregando discos a un volumen distribuido replicado

Al expandir el volumen distribuido-replicado, se debe de agregar una cantidad de discos que sea un múltiplo del recuento de réplicas. Por ejemplo, para expandir un volumen replicado distribuido con un recuento de réplicas de 2, se deben agregar discos en múltiplos de 2 (como 4, 6, 8, etc.).

Lo más lógico es colocar estos discos no en los mismos nodos, sino distribuidos. En este caso se van a agregar dos discos, uno a gluster1 y otro a gluster2.

Primeramente se le da formato al disco y se crea una partición, en este caso específico el disco que se va a montar será el ubicado en /dev/sdd tanto en gluster1 como en gluster2:

dev='/dev/sdd' && \
printf "o\nn\np\n1\n\n\nw\n" | fdisk "$dev" && \
mkfs.xfs -i size=512 "${dev}1"

Se creael directorio en donde se va a montar el disco, se agrega el punto de montaje persistente y se aplica el montaje:

mkdir -p /data/glusterfs/vol1/brick2 && \
echo "/dev/sdd1       /data/glusterfs/vol1/brick2 xfs defaults 0 0 " >> /etc/fstab && \
mount -a

Se puede comprbar que se haya montado correctamente con

df -hT | grep glusterfs

Se crea la carpeta de montaje del volumen, pues recordando no se puede montar el volumen gluster en el mismo punto de montaje del disco:

mkdir -p /data/glusterfs/vol1/brick2/data

Ahora toca agregar los discos al volumen ya existente, en el caso presente el volumen existente tiene como nombre (vol1) siguiendo:

# El comando sigue el formato de:
# gluster volume add-brick [volname] [new-bricks]

gluster volume add-brick vol1 gluster1:/data/glusterfs/vol1/brick2/data gluster2:/data/glusterfs/vol1/brick2/data
volume add-brick: success

Para comprobar la correcta aplicación del cambio solo basta con checkear la info del disco. Como se aprecia ahora el volumen cuenta con 8 discos, en vez de 6:

gluster volume info vol1

[…….]
Brick7: gluster1:/data/glusterfs/vol1/brick2/data
Brick8: gluster2:/data/glusterfs/vol1/brick2/data
[…….]

Y se puede listar los volúmenes montados para verificar que, en efecto, el volumen creció de tamaño (anteriormente el volumen contaba con 3GB, ahora cuenta con 4Gb, pues al agregar dos discos de 1GB, al estar replicada la información, solo será utilizable 1GB más):

df -h | grep gluster

/dev/sdb1      1017M  140M  878M  14% /data/glusterfs/vol1/brick0
/dev/sdc1      1017M  235M  783M  24% /data/glusterfs/vol1/brick1
gluster1:/vol1  4.0G  595M  3.4G  15% /var/lib/datastores/gluster_mount
/dev/sdd1      1017M   40M  978M   4% /data/glusterfs/vol1/brick2

Ya los nuevos discos fueron reconocidos, pero hay que hacer un rebalance para que la información pueda ser guardada en los discos nuevos:

# gluster volumen rebalance [volname] fix-layout start

gluster volume rebalance vol1 fix-layout start
volume rebalance: vol1: success: Rebalance on vol1 has been started successfully. Use rebalance status command to check status of the rebalance process.
ID: 1180aa8c-5198-49cb-beeb-5741f7058efc

Tener en cuenta que el comando ejecutado anteriormente realiza un rebalance solo en el nodo en el que se agregó el disco, esto es útil se los discos se agregaron en un mismo nodo. Para hacer un rebalance general hay que correr otro comando:

gluster volume rebalance vol1 start

volume rebalance: vol1: success: Rebalance on vol1 has been started successfully. Use rebalance status command to check status of the rebalance process.
ID: 6130b5d5-a5a4-49d4-bf0e-02f9ddcc9645

Se puede checkear el estado del rebalance con:

gluster volume rebalance vol1 status

Node Rebalanced-files          size       scanned      failures       skipped               status  run time in h:m:s
---------      -----------   -----------   -----------   -----------   -----------         ------------     --------------
gluster2                0        0Bytes             9             2             0            completed        0:00:00
gluster3                2       66Bytes            10             0             0            completed        0:00:02
localhost                0        0Bytes             6             0             0            completed        0:00:01

volume rebalance: vol1: success

NOTA: En el ejemplo presente se trabaja en un ambiente ultra controlado, pero en producción (en caso de ser requerido) debe hacerse con extrema precaución y evitando horarios de máxima actividad por parte de los clientes pues puede ser un proceso que demore.

3.2- Reemplazando discos rotos de un volumen distribuido replicado

Puede darse el caso de que exista un disco con problemas, que resulte inutilizable, el siguiente procedimiento se realiza en estos casos en los que hay que reemplazar algún disco.

Para simular un caso real, se copió información al volumen:

ls -lah /var/lib/datastores/gluster_mount/

total 2.5G
drwxrwxr-x 7 root root 4.0K Nov  3 04:56  .
drwxr-xr-x 4 root root 4.0K Nov  3 02:03  ..
drwxr-xr-x 2 root root 4.0K Nov  3 03:02  lock
drwxr-xr-x 2 root root 4.0K Nov  3 02:03  share
-rw-rw-r-- 1 user user 219M Nov  3 04:48 'The.Office.S07E01.Nepotism.720p.BrRip.x264-[MULVAcoded].mkv'
-rw-rw-r-- 1 user user 193M Nov  3 04:49 'The.Office.S07E02.Counseling.720p.BrRip.x264-[MULVAcoded].mkv'
-rw-rw-r-- 1 user user 181M Nov  3 04:50 'The.Office.S07E03.Andys.Play.720p.BrRip.x264-[MULVAcoded].mkv'
-rw-rw-r-- 1 user user 191M Nov  3 04:51 'The.Office.S07E04.Sex.Ed.720p.BrRip.x264-[MULVAcoded].mkv'
-rw-rw-r-- 1 user user 194M Nov  3 04:52 'The.Office.S07E05.The.Sting.720p.BrRip.x264-[MULVAcoded].mkv'
-rw-rw-r-- 1 user user 209M Nov  3 04:53 'The.Office.S07E06.Costume.Contest.720p.BrRip.x264-[MULVAcoded].mkv'
-rw-rw-r-- 1 user user 237M Nov  3 04:54 'The.Office.S07E07.Christening.720p.BrRip.x264-[MULVAcoded].mkv'
-rw-rw-r-- 1 user user 175M Nov  3 04:55 'The.Office.S07E08.Viewing.Party.720p.BrRip.x264-[MULVAcoded].mkv'
-rw-rw-r-- 1 user user 226M Nov  3 04:56 'The.Office.S07E09.WUPHF.com.720p.BrRip.x264-[MULVAcoded].mkv'
-rw-rw-r-- 1 user user 217M Nov  3 04:58 'The.Office.S07E10.China.720p.BrRip.x264-[MULVAcoded].mkv'
-rw-r--r-- 1 root root 396M Nov  2 18:06 'your home router SUCKS use pfSense instead.mp4'

Para comprobar el estado del volumen, como se puede apreciar hay información en el volumen:

df -h | grep gluster

/dev/sdb1      1017M  140M  878M  14% /data/glusterfs/vol1/brick0
/dev/sdc1      1017M  528M  490M  52% /data/glusterfs/vol1/brick1
gluster1:/vol1  4.0G  2.6G  1.5G  65% /var/lib/datastores/gluster_mount
/dev/sdd1      1017M  610M  408M  60% /data/glusterfs/vol1/brick2

En este ejemplo se asumirá que el disco roto es sdc de gluster1.

En el comando anterior ya detectamos su punto de montaje (/data/glusterfs/vol1/brick1) y se puede ver que tiene un 52% del espacio ocupado, ahora se necesita saber el nodo en el que se encuentra y qué número de disco es:

gluster volume info

[…..]
Brick2: gluster2:/data/glusterfs/vol1/brick0/data
Brick3: gluster1:/data/glusterfs/vol1/brick1/data
Brick4: gluster3:/data/glusterfs/vol1/brick0/data
[…..]

Como se aprecia es el disco 3 (Brick3). Ya con todos los datos en mente se busca el PID del disco:

gluster volume status

Status of volume: vol1
Gluster process                             TCP Port  RDMA Port  Online  Pid
[…….]
data                                        49152     0          Y       1133
Brick gluster1:/data/glusterfs/vol1/brick1/
data                                        49153     0          Y       1157
Brick gluster3:/data/glusterfs/vol1/brick0/
data                                        49154     0          Y       1736
[…….]

Como vemos el su PID es 1157. Ahora toca detener el proceso:

kill -15 1157

Se comprueba nuevamente el estado del volumen y se checkea el estado de dicho disco:

gluster volume status

[…..]
data                                        49152     0          Y       1133
Brick gluster1:/data/glusterfs/vol1/brick1/
data                                        N/A       N/A        N       N/A 
Brick gluster3:/data/glusterfs/vol1/brick0/
data                                        49154     0          Y       1736
[…..]

Como se aprecia ya el disco no tiene asociado ningún PID. Se procede a desmontar el disco:

umount /data/glusterfs/vol1/brick1/

Se comenta en la línea referente al disco en /etc/fstab:

nano /etc/fstab

# […..]
/dev/sdb1       /data/glusterfs/vol1/brick0 xfs defaults 0 0
#/dev/sdc1       /data/glusterfs/vol1/brick1 xfs defaults 0 0
gluster1:/vol1 /var/lib/datastores/gluster_mount glusterfs defaults,_netdev 0 0
[…..]

Se comprueba con df –hT que el disco se encuentre realmente desmontado.

La salida del comando ll indica la relación de los discos del sistema operativo (sda, sdb, sdc, …) con las ranuras en el servidor (1,2,3, …). El número después de la palabra «ata/sas» es la ranura del servidor donde está instalado el disco (en este caso no se muestra, pues es un servidor virtualizado):

ll /dev/sdb

brw-rw---- 1 root disk 8, 16 Nov  3 02:56 /dev/sdb

Si el servidor admite la tecnología «Hot Swap«, el disco afectado se puede quitar sin apagar el servidor. De lo contrario, el servidor debe apagarse para realizar el reemplazo. En el caso de este laboratorio virtual hay que apagar la VM, retirar el disco y poner uno nuevo.

Una vez cambiado el disco, se tendrá que hacer el proceso de darle formato y crearle su partición. Primeramente se busca que letra le asigno el OS, en este caso fue sdc nuevamente, y luego:

dev='/dev/sdc' && \
printf "o\nn\np\n1\n\n\nw\n" | fdisk "$dev" && \
mkfs.xfs -i size=512 "${dev}1"

Crear un nuevo punto de montaje para el disco. No se puede utilizar el punto de montaje utilizado por el disco roto.

Se crea el directorio en donde se va a montar el disco, se agrega el punto de montaje persistente y se aplica el montaje

mkdir -p /data/glusterfs/vol1/brick4 && \
echo "/dev/sdc1       /data/glusterfs/vol1/brick4 xfs defaults 0 0 " >> /etc/fstab && \
mount -a

Se comrpueba que se haya montado correctamente con df -hT | grep glusterfs.

Crear la carpeta data:

mkdir /data/glusterfs/vol1/brick4/data

Ahora resta hacer que glusterfs reemplace el disco, el comando general será:

#gluster volume replace-brick [volname] [node]:/broken/disk/mount/point/data [node]:/new/disk/mount/point/data commit force

gluster volume replace-brick vol1 gluster1:/data/glusterfs/vol1/brick1/data gluster1:/data/glusterfs/vol1/brick4/data commit force
volume replace-brick: success: replace-brick commit force operation successful

Se checkea que la operación haya sido exitosa:

gluster volume status

[……]
Brick gluster2:/data/glusterfs/vol1/brick0/
data                                        49152     0          Y       1133
Brick gluster1:/data/glusterfs/vol1/brick4/
data                                        49154     0          Y       4494
Brick gluster3:/data/glusterfs/vol1/brick0/
data                                        49154     0          Y       1736
[……]

Se borra el punto de montaje del disco reemplazado:

rm -rf /data/glusterfs/vol1/brick1

Se comprueba que el espacio ocupado del disco nuevo para ver si gluster replico los archivos:

df -hT | grep gluster

/dev/sdd1      xfs            1017M  610M  408M  60% /data/glusterfs/vol1/brick2
/dev/sdb1      xfs            1017M  541M  477M  54% /data/glusterfs/vol1/brick0
gluster1:/vol1 fuse.glusterfs  4.0G  2.6G  1.5G  65% /var/lib/datastores/gluster_mount
/dev/sdc1      xfs            1017M  528M  490M  52% /data/glusterfs/vol1/brick4

Como se puede apreciar el disco ya tiene el 52% del espacio ocupado, el mismo espacio que tenía anterior a su “rotura”!!!

3.3- Sustituyendo la información de un nodo roto a un nodo completamente nuevo

Todo el laboratorio se ha conformado de tal manera (distribuido replicado) en la que si se pierde un nodo perteneciente al pool de gluster los otros dos puedan continuar trabajando en perfecto estado. En esta sección se va a simular la pérdida total del nodo gluster3, se asumirá que tanto el nodo como todo son discos son inaccesibles.

Se puede comprobar el estado de un nodo perteneciente al pool corriendo desde gluster1:

gluster peer status

Number of Peers: 2
Hostname: gluster2
Uuid: 231fadcc-23e9-4146-8dbf-4868e5474c00
State: Peer in Cluster (Connected)

Hostname: gluster3
Uuid: 89a516af-1a12-4a5a-8378-2da4238f0b6d
State: Peer in Cluster (Disconnected)

La nueva VM asumirá el rol de gluster4, con un nuevo IP (en este caso será 192.168.43.53). Contará con la misma cantidad de discos que el nodo roto (gluster3 contaba con 2 discos pertenecientes al clúster gluster). Para dejarla lista, antes de hacer nada relacionado con el gluster, se recomienda hacer un update y upgrade, e instalar la paquetería necesaria.

Configuración de /etc/hosts en gluster4 agregando las líneas:

echo "" >> /etc/hosts && \
echo "# Gluster1" >> /etc/hosts && \
echo "127.0.0.1 gluster4.sysadmin.cu gluster4" >> /etc/hosts && \
echo "192.168.43.50 gluster1.sysadmin.cu gluster1" >> /etc/hosts && \
echo "192.168.43.51 gluster2.sysadmin.cu gluster2" >> /etc/hosts && \
echo "gluster4" > /etc/hostname && \
echo "gluster4" > /proc/sys/kernel/hostname && \
bash

Añadir el repositorio:

# Para Ubuntu:
add-apt-repository ppa:gluster/glusterfs-9 && \
apt update

# Para Debian
wget -O - https://download.gluster.org/pub/gluster/glusterfs/9/rsa.pub | apt-key add -

Instalar y comprobar la version:

apt install glusterfs-server -y && \
gluster --version

glusterfs 9.4
Repository revision: git://git.gluster.org/glusterfs.git
Copyright (c) 2006-2016 Red Hat, Inc. <https://www.gluster.org/>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
[.....]

Una vez instalados deberemos de habilitar el servicio que se creó con la instalación (en ambos servidores), su nombre es glusterd, el siguiente comando además de habilitarlo lo inicia sin esperar al siguiente reinicio del sistema:

systemctl enable --now glusterd

Para el brick0 y brick1:

dev='/dev/sdb' && \
printf "o\nn\np\n1\n\n\nw\n" | fdisk "$dev" && \
mkfs.xfs -i size=512 "${dev}1" && \
dev='/dev/sdc' && \
printf "o\nn\np\n1\n\n\nw\n" | fdisk "$dev" && \
mkfs.xfs -i size=512 "${dev}1"

Ahora toca crear el directorio donde se va a montar el disco. Se recomienda la siguiente sintaxis:

# mkdir -p /data/glusterfs/[volname]/brick[id]
mkdir -p /data/glusterfs/vol1/brick0 && \
mkdir -p /data/glusterfs/vol1/brick1

Agregar el punto de montaje de forma persistente:

# echo "/dev/sd[disk_label]1       /data/glusterfs/vol1/brick0 xfs defaults 0 0 " >> /etc/fstab
echo "/dev/sdb1       /data/glusterfs/vol1/brick0 xfs defaults 0 0 " >> /etc/fstab && \
echo "/dev/sdc1       /data/glusterfs/vol1/brick1 xfs defaults 0 0 " >> /etc/fstab && \
mount -a

Verificar si se realizaron correctamente los puntos de montaje:

df -hT | grep glusterfs

Debe devolver lo siguiente:

/dev/sdb1      xfs       5.0G   68M  5.0G   2% /data/glusterfs/vol1/brick0
/dev/sdc1      xfs       5.0G   68M  5.0G   2% /data/glusterfs/vol1/brick1

Crear directorio data en el punto de montaje de cada brick en cada servidor gluster4:

# mkdir /data/glusterfs/volname/brick[id]/data
mkdir -p /data/glusterfs/vol1/brick0/data && \
mkdir -p /data/glusterfs/vol1/brick1/data

Usando uno de los restantes servidores (gluster1 o gluster2), agregar al nuevo server al clustergluster:

gluster peer probe gluster4
peer probe: success

Comprobamos que se haya agregado al pool:

gluster peer status
[.....]
Hostname: gluster3
Uuid: 89a516af-1a12-4a5a-8378-2da4238f0b6d
State: Peer in Cluster (Disconnected)

Hostname: gluster4
Uuid: 0691bbf8-a4c5-4317-ba81-5c29f2985239
State: Peer in Cluster (Connected)
[.....]

Ahora se necesita reemplazar los discos erróneos (los pertenecientes al nodo caído), para ello necesitamos saber cuáles son esos discos:

gluster volume info vol1

[……..]
Bricks:
Brick1: gluster1:/data/glusterfs/vol1/brick0/data
Brick2: gluster2:/data/glusterfs/vol1/brick0/data
Brick3: gluster1:/data/glusterfs/vol1/brick4/data
Brick4: gluster3:/data/glusterfs/vol1/brick0/data
Brick5: gluster2:/data/glusterfs/vol1/brick1/data
Brick6: gluster3:/data/glusterfs/vol1/brick1/data
Brick7: gluster1:/data/glusterfs/vol1/brick2/data
[……..]

Como se puede apreciar, los discos pertenecientes a gluster3 son los Brick4 y Brick6. Esta información se puede contrastar usando gluster volumen status vol1.

Con el conocimiento de los discos rotos y sus puntos de montaje en el cluster, ya se puede proceder a reemplazarlos:

# gluster volume replace-brick [VOLNAME] [hostname_server_roto]:/punto/de/montaje/data [hostname_server_nuevo]: /punto/de/montaje/data  commit force

gluster volume replace-brick vol1 gluster3:/data/glusterfs/vol1/brick0/data gluster4:/data/glusterfs/vol1/brick0/data commit force

volume replace-brick: success: replace-brick commit force operation successful
gluster volume replace-brick vol1 gluster3:/data/glusterfs/vol1/brick1/data gluster4:/data/glusterfs/vol1/brick1/data commit force
volume replace-brick: success: replace-brick commit force operation successful

Una vez agregados correctamente, se puede comprobar el estado del volumen:

gluster volume status vol1

[…….]
Brick gluster1:/data/glusterfs/vol1/brick4/
data                                        49153     0          Y       1453
Brick gluster4:/data/glusterfs/vol1/brick0/
data                                        49152     0          Y       1333
Brick gluster2:/data/glusterfs/vol1/brick1/
data                                        49153     0          Y       1168
Brick gluster4:/data/glusterfs/vol1/brick1/
data                                        49153     0          Y       1396
[…….]

Como se puede apreciar, los discos pertenecientes al gluster4 tomaron la misma posición que tenían los discos de gluster3.

Si se lista el contenido de los discos, se puede ver que la replicación de los datos que existían anteriormente ya se están replicando:

ls -lah /data/glusterfs/vol1/brick1/data/

total 151M
drwxrwxr-x   7 root root 4.0K Nov  3 17:02  .
drwxr-xr-x   3 root root   18 Nov  3 16:46  ..
drw------- 262 root root 8.0K Nov  3 17:03  .glusterfs
drwxr-xr-x   2 root root    6 Nov  3 17:02  .glusterfs-anonymous-inode-583322ce-2c9d-4bf8-8a74-99f483d986bf
drwxr-xr-x   2 root root   41 Nov  3 03:02  lock
drwxr-xr-x   3 root root 4.0K Nov  2 18:13  .shard
drwxr-xr-x   2 root root    6 Nov  3 02:03  share
-rw-rw-r--   2 user user  50M Nov  3 04:42 'The.Office.S07E01.Nepotism.720p.BrRip.x264-[MULVAcoded].mkv'
-rw-rw-r--   2 user user  50M Nov  3 04:43 'The.Office.S07E03.Andys.Play.720p.BrRip.x264-[MULVAcoded].mkv'
-rw-rw-r--   2 user user  50M Nov  3 04:45 'The.Office.S07E07.Christening.720p.BrRip.x264-[MULVAcoded].mkv'


ls -lah /data/glusterfs/vol1/brick0/data/

total 151M
drwxrwxr-x   7 root root 4.0K Nov  3 17:01  .
drwxr-xr-x   3 root root   18 Nov  3 16:46  ..
drw------- 262 root root 8.0K Nov  3 17:02  .glusterfs
drwxr-xr-x   2 root root    6 Nov  3 17:01  .glusterfs-anonymous-inode-583322ce-2c9d-4bf8-8a74-99f483d986bf
drwxr-xr-x   2 root root    6 Nov  3 03:02  lock
drwxr-xr-x   3 root root 4.0K Nov  2 18:13  .shard
drwxr-xr-x   2 root root    6 Nov  3 02:03  share
-rw-rw-r--   2 user user  50M Nov  3 04:42 'The.Office.S07E02.Counseling.720p.BrRip.x264-[MULVAcoded].mkv'
-rw-rw-r--   2 user user  50M Nov  3 04:46 'The.Office.S07E10.China.720p.BrRip.x264-[MULVAcoded].mkv'
-rw-r--r--   2 root root  50M Nov  2 18:06 'your home router SUCKS use pfSense instead.mp4'

Para forzar la replicación se puede hacer:

gluster volume heal vol1 full

Launching heal operation to perform full self heal on volume vol1 has been successful
Use heal info commands to check status.

Y se puede comprobar el estado de la misma:

gluster volume heal vol1 info

[.......]
Brick gluster4:/data/glusterfs/vol1/brick0/data
Status: Connected
Number of entries: 0

Brick gluster4:/data/glusterfs/vol1/brick1/data
Status: Connected
Number of entries: 0
[.......]

En el caso de este laboratorio se esta corriendo un volumen distribuido, por lo tanto hay que correr:

volume rebalance vol1 fix-layout start

volume rebalance: vol1: success: Rebalance on vol1 has been started successfully. Use rebalance status command to check status of the rebalance process.
ID: 2210b284-88f5-4f13-818f-db65a3f1724a

gluster volume rebalance vol1 status
Node                                    status           run time in h:m:s
---------                               -----------                ------------
gluster1.sysadmin.cu                   fix-layout completed        0:0:1
gluster2                               fix-layout completed        0:0:0
localhost                              completed                   0:0:1

volume rebalance: vol1: success

Una vez terminado el proceso, solo resta darle de baja al nodo roto del pool, desde gluster1 se corre:

gluster peer detach gluster3

All clients mounted through the peer which is getting detached need to be remounted using one of the other active peers in the trusted storage pool to ensure client gets notification on any changes done on the gluster configuration and if the same has been done do you want to proceed? (y/n) y
peer detach: success

Y se comprueba que se haya eliminado:

gluster peer status

Number of Peers: 2
Hostname: gluster2
Uuid: 231fadcc-23e9-4146-8dbf-4868e5474c00
State: Peer in Cluster (Connected)

Hostname: gluster4
Uuid: 0691bbf8-a4c5-4317-ba81-5c29f2985239
State: Peer in Cluster (Connected)

Y de esta forma se concluyen los articulos de GlusterFS

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Autores:

  • Frank Morales
  • Franco Díaz

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

2 comentarios

    • Firefox 96.0 Firefox 96.0 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0

      Sip, pero si se pone en la configuración de Distribuido Replicado sólo verás el volumen con el tamaño del disco más pequeño.

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*