Unidades compartidas de alta disponibilidad que utilizan Vultr Block Storage y GlusterFS

GlusterFS es un sistema de archivos conectado a la red que efectivamente le permite compartir dos unidades en múltiples dispositivos en la red. Este sistema de archivos es perfecto para la oferta de almacenamiento en bloque de Vultr, ya que puede compartir una unidad a través de la red que no es posible de manera inmediata.

En términos de características, extensibilidad y confiabilidad, GlusterFS ha demostrado ser uno de los sistemas de archivos más sofisticados y estables disponibles.

Cuando se realizan cambios en la unidad en un servidor, se replicarán automáticamente en el otro servidor en tiempo real. Para lograr esto y seguir esta guía, necesitará:

  • Dos instancias de nube Vultr, preferiblemente ejecutando el mismo sistema operativo.
  • Dos unidades de almacenamiento en bloque del mismo tamaño.

Después de haber pedido estas dos unidades de almacenamiento en bloque, debe conectarlas a la VM 1 y VM 2. Como utilizaremos ambas unidades de almacenamiento en bloque para el mismo sistema de archivos, dividir el tamaño total de ambas unidades por dos le dará la cantidad utilizable de GB. Por ejemplo, si tiene dos unidades de 100 GB, se podrán utilizar 100 GB (100 * 2/2).

Además, ambas máquinas virtuales deberán estar en la misma ubicación para que puedan estar en la misma red privada. Nos conectaremos a los servidores utilizando sus direcciones IP internas. Tenga en cuenta que borraremos los datos en la unidad de almacenamiento en bloque. Asegúrese de que sean nuevos y sin formato.

En esta guía, utilizaremos storage1y storage2, respectivamente, con direcciones IP privadas 10.0.99.10 y 10.0.99.11. Los nombres de sus servidores y las direcciones IP probablemente diferirán, así que asegúrese de cambiarlos en el proceso de configuración de GlusterFS.

Esta guía fue escrita con CentOS / RHEL 7 en mente. Sin embargo, GlusterFS es relativamente compatible entre varias distribuciones de Linux.

Configurar GlusterFS

Paso 1: alterar el /etc/hostsarchivo

Para que podamos conectarnos rápidamente a las instancias respectivas, debemos agregar nombres fáciles de recordar al hostsarchivo. Abra el /etc/hostsarchivo y agregue las siguientes líneas en la parte inferior:

10.0.99.10 storage1
10.0.99.11 storage2

Paso 2: agregue el disco en storage1

SSH en storage1y ejecutar los siguientes comandos. De forma predeterminada, las unidades de almacenamiento en bloque conectadas se montan como /dev/vdb. Si esto difiere en su caso por algún motivo, debe cambiarlo en los comandos a continuación.

Formatear el disco:

fdisk /dev/vdb

Presione "enter" para las siguientes tres preguntas (con respecto al tamaño de la partición y similares, queremos usar todo el espacio disponible en las unidades de almacenamiento en bloque) y escriba "w" para escribir estos cambios en el disco. Después de que esto se haya completado con éxito, escriba:

/sbin/mkfs.ext4 /dev/vdb1

Seguimos adelante y creamos un sistema de archivos ahora, ya que Vultr no crea ningún sistema de archivos en el almacenamiento en bloque de forma predeterminada.

A continuación, crearemos la carpeta en la que almacenaremos nuestros archivos. Puede cambiar este nombre, pero no verá que parece mucho, así que, en aras de eliminar la complejidad, le recomiendo que lo deje solo.

mkdir /glusterfs1

Para montar automáticamente la unidad en el arranque, abra /etc/fstaby agregue la siguiente línea en la parte inferior del archivo:

/dev/vdb1 /glusterfs1      ext4    defaults        1 2

Finalmente, monte la unidad:

mount -a

El montaje permanecerá persistente durante los reinicios, por lo que cuando reinicie su servidor, la unidad se volverá a montar automáticamente.

Paso 3: agregue el disco en storage2

Ahora que hemos agregado y montado el disco storage1, también necesitamos crear el disco storage2. Los comandos apenas difieren. Para fdisk, siga los mismos pasos que arriba.

fdisk /dev/sdb
/sbin/mkfs.ext4 /dev/sdb1
mkdir /glusterfs2

Edite /etc/fstaby agregue la siguiente línea:

/dev/vdb1 /glusterfs2      ext4    defaults        1 2

Al igual que en el caso storage1, la unidad se montará automáticamente en los reinicios.

Montar el disco:

mount -a

Finalmente, verifiquemos si podemos ver la partición mostrada:

df -h

Debería ver su unidad de disco aquí. Si no es así, intente seguir los pasos anteriores.

Paso 4: Instalar GlusterFS en storage1ystorage2

Necesitamos instalar GlusterFS a continuación. Agregue el repositorio e instale GlusterFS:

rpm  -ivh  http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/3.7/3.7.5/CentOS/glusterfs-epel.repo
yum -y install glusterfs glusterfs-fuse glusterfs-server

Existe la posibilidad de que obtenga un error yumporque la firma del repositorio no es correcta. En ese caso, es seguro forzar no verificar la firma GPG:

yum -y install glusterfs glusterfs-fuse glusterfs-server --nogpgcheck

En ambos servidores, ejecute los siguientes comandos para iniciar GlusterFS ahora e iniciarlo automáticamente después de reiniciar:

systemctl enable glusterd.service
systemctl start glusterd.service

Si usa una versión anterior de CentOS, puede usar los comandos servicey chkconfig:

chkconfig glusterd on
service glusterd start

Paso 5: deshabilitar el firewall storage1ystorage2

Aunque no es la mejor solución per se, es una buena idea desactivar el firewall para eliminar posibles conflictos con los puertos bloqueados. Si no se siente cómodo haciendo esto, no dude en modificar las reglas a su gusto, pero debido a la naturaleza de GlusterFS, le recomiendo deshabilitar el firewall. Teniendo en cuenta que una red privada es realmente privada en Vultr (y no es necesario proteger a otros clientes), simplemente podría bloquear todo el tráfico entrante de Internet y restringir las conexiones permitidas a la red privada. Sin embargo, apagar el firewall y no alterar ninguna otra configuración del sistema también sería suficiente:

systemctl stop firewalld.service
systemctl disable firewalld.service

En caso de que use una versión anterior de CentOS que no sea compatible systemctl, use los comandos servicey chkconfig:

service firewalld stop
chkconfig firewalld off

En caso de que no lo use firewalld, intente deshabilitar iptables:

service iptables stop
chkconfig iptables off

Paso 6: agregue servidores al grupo de almacenamiento

Después de desactivar el firewall, podemos agregar ambos servidores al grupo de almacenamiento. Este es un grupo que consta de todo el almacenamiento disponible. Ejecute el siguiente comando en storage1:

gluster peer probe storage2

Lo que hace este comando es agregar storage2a su propio grupo de almacenamiento. Al ejecutar el siguiente comando storage2, ambas unidades estarán sincronizadas:

gluster peer probe storage1

Después de ejecutar esto en ambos servidores, debemos verificar el estado en ambos servidores:

gluster peer status

Ambos servidores deben mostrar un estado de "Pares: 1". Un error común es que las personas esperan ver Peers: 2, pero como storage1estarán mirando storage2y viceversa, no se miran a sí mismas. Por Peers: 1lo tanto, es lo que necesitamos.

Paso 7: Crear una unidad compartida en storage1

Ahora que ambos servidores pueden conectarse entre sí a través de GlusterFS, vamos a crear una unidad compartida.

En storage1, ejecutar:

gluster volume create mailrep-volume replica 2  storage1:/glusterfs1/files  storage2:/glusterfs2/files force

El volumen ya ha sido creado. En GlusterFS, debe "iniciar" un volumen para que se comparta activamente en varios dispositivos. Empecemos:

gluster volume start mailrep-volume

A continuación, elija una carpeta que debería estar en el volumen y replicada en ambos servidores. En este tutorial usaremos la carpeta /var/files. Naturalmente, esto puede ser lo que quieras. Créalo storage1 solo en :

mkdir /var/files

A continuación, móntelo:

mount.glusterfs storage1:/mailrep-volume /var/files/

Actualice /etc/fstabpara que la unidad se monte automáticamente en el arranque. Agregue lo siguiente:

storage1:/mailrep-volume /var/files glusterfs defaults,_netdev 0 0

Vuelva a montar la unidad:

mount -a

Paso 8: Crear una unidad compartida en storage2

Ahora que hemos creado una unidad compartida storage1, también necesitamos crear una storage2. Cree una carpeta con la misma ubicación / ruta y nombre:

mkdir /var/files
mount.glusterfs storage2:/mailrep-volume /var/files/

Al igual que en storage1, agregue la siguiente línea a /etc/fstab:

storage2:/mailrep-volume /var/files glusterfs defaults,_netdev 0 0

Vuelva a montar la unidad:

mount -a

Paso 9: prueba el almacenamiento compartido

Navegue a la /var/filescarpeta storage1y cree un archivo:

cd /var/files
touch created_on_storage1

A continuación, dirígete al storage2servidor. Ejecute ls -lay debería ver created_on_storage1aparecer el archivo .

Encendido storage2, navegue a la /var/filescarpeta y cree un archivo:

cd /var/files
touch created_on_storage2

Regresa storage1y ejecuta ls -la /var/files. Debería ver el archivo created_on_storage2aparecer aquí.

Paso 10: reinicie todos los servidores (opcional)

Para verificar dos veces si su configuración permanecerá persistente durante los reinicios, como práctica recomendada, debe reiniciar todos los servidores. Como se mencionó, debe esperar a que un servidor esté activo y luego reiniciar el otro para que la unidad compartida se monte automáticamente.

Reinicie storage1primero, espere a que se active y luego reinicie storage2. Ahora inicie sesión y ejecute en ambos servidores:

cd /var/files
ls -la

Ahora debería ver aparecer ambos archivos. Asegúrese de comenzar sin ningún archivo en el volumen, así que elimine los archivos de prueba que hemos creado. Puedes hacer esto en storage1, storage2o en ambos. Los cambios se replicarán al instante:

cd /var/files
rm created_on_storage1
rm created_on_storage2

Debe tener un volumen compartido idéntico en ambos servidores, independientemente de las acciones en ambos volúmenes.

Ahora ha configurado una configuración GlusterFS completa con 100 GB (o más) de espacio utilizable. En caso de que necesite más en el futuro, la configuración es fácilmente escalable para agregar más capacidad y / o más servidores en caso de que su carga de trabajo lo requiera.

¡Gracias por leer!


Nota importante sobre el remontaje

GlusterFS permite mantener sus datos actualizados en dos unidades. Sin embargo, debe tener en cuenta que cuando ambos servidores se reinician al mismo tiempo , deberá forzar el montaje de las unidades en ambos servidores. Debe forzar el montaje manualmente ejecutando el siguiente comando:

gluster volume start mailrep-volume force

Esto se debe a que uno de los servidores actúa como servidor y el otro actúa como cliente. Aunque la diferencia no se nota muy fácilmente en la práctica, esto significa que cuando necesite reiniciar ambos servidores, debe reiniciar uno, esperar hasta que esté activo y luego iniciar el otro.

Nota importante sobre las copias de seguridad

Aunque sus datos se replicarán en dos unidades, debe replicar sus datos al menos tres veces. Aunque sus datos están mejor protegidos contra la corrupción de datos y similares, debe tener en cuenta que los cambios son instantáneos y de ninguna manera estará protegido contra errores humanos. Cuando elimine todos los archivos en una unidad, estos cambios se replicarán inmediatamente en la otra unidad, lo que significa que sus datos se borrarán en ambas instancias.

Afortunadamente, hay múltiples enfoques para evitar esto. En primer lugar, recomiendo habilitar las copias de seguridad en su propia instancia en la nube. Aunque estas copias de seguridad no incluyen datos en el almacenamiento en bloque, protegerán los datos en la instancia misma.

Cuando se trata de hacer una copia de seguridad de los datos en el almacenamiento de bloque en sí, recomiendo girar una instancia separada (por ejemplo, un plan SATA) para que pueda ejecutar una copia de seguridad de uno de los dos servidores conectados todas las noches, por ejemplo. De esta manera, sus datos estarán seguros en otro dispositivo separado.

Preguntas más frecuentes

¿Puedo aumentar mi almacenamiento en disco?

Puede aumentar el tamaño de almacenamiento del bloque desde el panel de control de Vultr. Debe cambiar el tamaño del disco dentro del sistema operativo después, pero eso está fuera del alcance de este artículo.

¿Puedo adjuntar el almacenamiento en bloque a más de dos servidores?

Aunque esta guía se ha escrito para dos servidores (por lo tanto, dos unidades de almacenamiento en bloque conectadas a ambos servidores), es posible tomar esta guía y usarla también para más de dos servidores. Una configuración con más de dos servidores / unidades podría verse así para 6 servidores, por ejemplo:

VM: storage1
VM: storage2
VM: storage3
VM: storage4
Block Storage: attached to storage1
Block Storage: attached to storage2
Block Storage: attached to storage3
Block Storage: attached to storage4

Dado que todas las unidades de almacenamiento en bloque tienen una capacidad de, por ejemplo, 200 GB, obtendría 200 * 4 / 4. En otras palabras, el espacio utilizable es siempre la capacidad de una unidad de almacenamiento en bloque único. Esto se debe a que GlusterFS trata a un servidor con almacenamiento en bloque conectado como el "maestro" y se replica en los otros servidores. Sin embargo, la configuración está diseñada para poder sobrevivir sin un servidor maestro, lo que la convierte en una solución estable, redundante y confiable.



Leave a Comment

ZPanel y Sentora en CentOS 6 x64

ZPanel y Sentora en CentOS 6 x64

ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.

Cómo instalar MODX Revolution en un CentOS 7 LAMP VPS

Cómo instalar MODX Revolution en un CentOS 7 LAMP VPS

¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i

Configure su propia red privada con OpenVPN

Configure su propia red privada con OpenVPN

Vultr le ofrece una increíble conectividad de red privada para servidores que se ejecutan en la misma ubicación. Pero a veces quieres dos servidores en diferentes países.

How to Install and Configure CyberPanel on Your CentOS 7 Server

How to Install and Configure CyberPanel on Your CentOS 7 Server

Using a Different System? Introduction CyberPanel is one of the first control panels on the market that is both open source and uses OpenLiteSpeed. What thi

Install eSpeak on CentOS 7

Install eSpeak on CentOS 7

Using a Different System? ESpeak can generate text-to-speech (TTS) audio files. These can be useful for many reasons, such as creating your own Turin

Cómo instalar Thelia 2.3 en CentOS 7

Cómo instalar Thelia 2.3 en CentOS 7

¿Usando un sistema diferente? Thelia es una herramienta de código abierto para crear sitios web de comercio electrónico y administrar contenido en línea, escrito en PHP. Código fuente de Thelia i

Monitoree sus dispositivos usando LibreNMS en CentOS 7

Monitoree sus dispositivos usando LibreNMS en CentOS 7

¿Usando un sistema diferente? LibreNMS es un completo sistema de monitoreo de red de código abierto. Utiliza SNMP para obtener los datos de diferentes dispositivos. Una variedad

Cómo instalar Cacti 1.1 en CentOS 7

Cómo instalar Cacti 1.1 en CentOS 7

Cacti es una herramienta de gráficos y monitoreo de red de código abierto y libre escrita en PHP. Con la ayuda de RRDtool (herramienta de base de datos Round-Robin), Cacti se puede usar t

Cómo usar Sudo en Debian, CentOS y FreeBSD

Cómo usar Sudo en Debian, CentOS y FreeBSD

Usar un usuario sudo para acceder a un servidor y ejecutar comandos a nivel raíz es una práctica muy común entre Linux y Unix Systems Administrator. El uso de un sud

Cómo supervisar de forma segura los servidores remotos con Zabbix en CentOS 7

Cómo supervisar de forma segura los servidores remotos con Zabbix en CentOS 7

¿Usando un sistema diferente? Zabbix es un software gratuito y de código abierto listo para empresas que se utiliza para monitorear la disponibilidad de sistemas y componentes de red.

Cómo instalar MODX CMS y Nginx en CentOS 7

Cómo instalar MODX CMS y Nginx en CentOS 7

MODX es un sistema de gestión de contenido gratuito y de código abierto escrito en PHP. Utiliza MySQL o MariaDB para almacenar su base de datos. MODX está diseñado para el negocio i

Cómo instalar YOURLS en CentOS 7

Cómo instalar YOURLS en CentOS 7

YOURLS (Your Own URL Shortener) es una aplicación de análisis de datos y acortamiento de URL de código abierto. En este artículo, cubriremos el proceso de instalación

Setup Nginx-RTMP on CentOS 7

Setup Nginx-RTMP on CentOS 7

Using a Different System? RTMP is great for serving live content. When RTMP is paired with FFmpeg, streams can be converted into various qualities. Vultr i

Cómo instalar LimeSurvey en CentOS 7

Cómo instalar LimeSurvey en CentOS 7

LimeSurvey es una herramienta de encuestas en línea gratuita y de código abierto que se utiliza ampliamente para publicar encuestas en línea y para recopilar comentarios de encuestas. En este artículo, voy a

Cómo instalar Vanilla Forum en CentOS 7

Cómo instalar Vanilla Forum en CentOS 7

¿Usando un sistema diferente? Vanilla forum es una aplicación de foro de código abierto escrita en PHP. Es totalmente personalizable, fácil de usar y admite dispositivos externos.

Instalación de Netdata en CentOS 7

Instalación de Netdata en CentOS 7

¿Usando un sistema diferente? Netdata es una estrella en ascenso en el campo del monitoreo de métricas del sistema en tiempo real. En comparación con otras herramientas del mismo tipo, Netdata:

Cómo instalar el servidor Just Cause 2 (JC2-MP) en CentOS 7

Cómo instalar el servidor Just Cause 2 (JC2-MP) en CentOS 7

En este tutorial, aprende bien cómo configurar un servidor multijugador Just Cause 2. Requisitos previos Asegúrese de que el sistema esté completamente actualizado antes de comenzar

Cómo instalar Starbound Server en CentOS 7

Cómo instalar Starbound Server en CentOS 7

¿Usando un sistema diferente? En este tutorial, explicaré cómo configurar un servidor Starbound en CentOS 7. Requisitos previos Necesitas tener este juego contigo

Instalación y configuración de ZNC en CentOS 7

Instalación y configuración de ZNC en CentOS 7

ZNC es un enlace IRC gratuito y de código abierto que permanece permanentemente conectado a una red para que los clientes puedan recibir mensajes enviados mientras están desconectados. Thi

ZPanel y Sentora en CentOS 6 x64

ZPanel y Sentora en CentOS 6 x64

ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Esta guía completa le mostrará cómo configurar un servidor Counter-Strike 1.6 en Linux, optimizando el rendimiento y la seguridad para el mejor juego. Aprende los pasos más recientes aquí.

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición

ReactOS: ¿Es este el futuro de Windows?

ReactOS: ¿Es este el futuro de Windows?

ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

¿Qué es un sistema de archivos de diario y cómo funciona?

¿Qué es un sistema de archivos de diario y cómo funciona?

Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.