Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse en una cuenta gratuita, consulte Introducción a la capa gratuita de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al completar el laboratorio, sustituya estos valores por otros específicos de su entorno en la nube.
Despliegue de un cluster de HA Samba con Windows Active Directory en OCI
Introducción
Analizaremos cómo configurar la alta disponibilidad (HA) con failover automático de Samba en instancias de Ubuntu en Oracle Cloud Infrastructure (OCI). Esta solución es una infraestructura de servidor de archivos sólida y fiable, que aprovecha la potencia de una configuración de bloque de mensajes de Server Message Block (SMB) en cluster y está completamente libre de licencia. El costo solo está relacionado con el consumo (oCPU y tamaño de volumen en bloque).
Las ventajas de implementar un servicio de servidor de archivos SMB en cluster en una organización son:
-
Fiabilidad: la configuración en cluster garantiza una alta disponibilidad, minimizando el riesgo de tiempo de inactividad y garantizando un acceso constante a los archivos críticos.
-
Tolerancia a fallos: en caso de fallo del servidor, la configuración en cluster proporciona failover automático, lo que garantiza un acceso ininterrumpido a los archivos y mantiene la continuidad del negocio.
-
Uso de recursos: la asignación eficiente de recursos garantiza una utilización óptima de los recursos del servidor, maximizando la productividad y minimizando los costos operativos.
-
Alto rendimiento: la implantación de un servidor de archivos SMB en cluster es un paso estratégico hacia la creación de un entorno de TI resistente y de alto rendimiento adaptado a las cambiantes necesidades empresariales.
Arquitectura
Objetivo
- Implemente un servidor de archivos confiable en el protocolo SMB compatible con HA integrado con Windows Active Directory.
Requisitos
-
Acceso a un arrendamiento de OCI.
-
Dos máquinas virtuales de Linux Ubuntu.
-
Un volumen en bloque.
Tarea 1: Configuración del entorno
-
Cree dos instancias informáticas de Ubuntu 22.04.
-
En ambas instancias informáticas, establezca el directorio donde desea almacenar los archivos y configure el servidor Samba. Por ejemplo:
/mnt/smb
. -
Cree un volumen en bloque con el tamaño necesario para el almacén de datos de SMB y asócielo a ambas instancias informáticas (iSCSI, lectura/escritura - compartible). Para obtener más información, consulte Asociación de un volumen a varias instancias.
-
Observe el nombre del dispositivo asignado al volumen en bloque asociado mediante el siguiente comando.
sudo lsblk
-
Asigne una dirección IP privada secundaria en el primer nodo. Esta es una dirección IP flotante. Por ejemplo:
10.10.1.254
. -
Actualice el archivo
/etc/hosts
en ambas instancias de Ubuntu para incluir las direcciones IP y los nombres de host de todos los nodos, incluido el servidor de Windows Active Directory que se utilizará para la autenticación de usuarios. Por ejemplo:10.10.1.60 smb1
,10.10.1.29 smb2
,10.10.1.59 ad.testad.oci testad.oci AD
. -
Configure
iptables
en ambas instancias de Ubuntu según las necesidades.Nota: Las instancias de Ubuntu incluyen iptables preconfigurados. La sexta regla de la sección INPUT rechaza todo lo demás, por lo que tiene la opción de suprimirla o agregar protocolos y puertos específicos permitidos antes de esta regla.
-
Instale y configure la interfaz de línea de comandos (CLI de OCI) de Oracle Cloud Infrastructure en ambas instancias de Ubuntu. Para obtener más información, consulte Instalación de la CLI de OCI y configuración (comando de configuración: configuración de oci).
Nota: Instale la CLI de OCI en
/usr/bin
o en la ruta de usuario para evitar problemas de permisos, por defecto es raíz.bash -c "$(curl -L https://raw.githubusercontent.com/oracle/ocicli/master/scripts/install/install.sh)"
Tarea 2: Configuración de Oracle Cluster File System versión 2 (OCFS2)
Oracle Cluster File System versión 2 (OCFS2) es un sistema de archivos de disco compartido de uso general desarrollado por Oracle Corporation y lanzado bajo la Licencia Pública General de GNU.
Para gestionar un volumen en bloque de escritura compartida, tenemos que desplegar OCFS2. Para obtener más información, consulte Guía sencilla para el sistema de archivos de Oracle Cluster (OCFS2) mediante iSCSI en Oracle Cloud Infrastructure.
-
Ejecute el siguiente comando en ambos nodos.
sudo apt-get install ocfs2-tools -y
-
Actualice el valor de
O2CB_ENABLED
de false a true en el archivo/etc/default/o2cb
.O2CB_ENABLED=true
-
Introduzca el siguiente código en el archivo
/etc/ocfs2/cluster.conf
.Nota: Tenga cuidado con la sangría y el formato del archivo.
cluster: name = ocfs2 heartbeat_mode = local node_count = 2 node: cluster = ocfs2 number = 0 ip_port = 7777 ip_address = 10.10.1.60 name = smb1 node: cluster = ocfs2 number = 1 ip_port = 7777 ip_address = 10.10.1.29 name = smb2
-
Ahora, inicie el servicio
o2cb
.sudo /etc/init.d/o2cb start
-
Aplique formato al dispositivo de volumen en bloque con el sistema de archivos OCFS2. Ejecute el siguiente comando sólo en el primer nodo.
Nota: La ruta del dispositivo que hemos anotado en el paso 3.
sudo mkfs.ocfs2 "MyOCFS2Cluster" /dev/sd*
-
Registre el cluster con el siguiente comando.
sudo o2cb register-cluster ocfs2
-
Monte el volumen en bloque en el directorio asignado para el servidor Samba. Por ejemplo:
/mnt/smb
.sudo mount /dev/sd* /mnt/smb
-
Compruebe el estado del cluster con el siguiente comando.
sudo o2cb list-nodes ocfs2
-
Active los servicios con el siguiente comando.
sudo systemctl enable o2cb sudo systemctl enable ocfs2
-
Actualice
fstab
en/etc/fstab
para montar el volumen en bloque automáticamente al iniciar.Nota: Ajuste el dispositivo
/dev/sd\*
según el nombre del dispositivo./dev/sd* /mnt/smb ocfs2 _netdev,defaults 0 0
Tarea 3: Configuración del cluster de Samba
Samba permite compartir archivos e impresiones entre equipos que se ejecutan en Microsoft Windows y Unix. Es una implementación de docenas de servicios y protocolos, que incluyen: NetBIOS sobre TCP/IP (NBT) y SMB, a veces denominado Sistema Común de Archivos de Internet (CIFS).
-
Instale la base de datos trivial de cluster y Samba (CTDB) en ambos nodos mediante el siguiente comando.
sudo apt-get install ctdb samba samba-common winbind smbclient -y
-
Edite el archivo de configuración de Samba.
sudo nano /etc/samba/smb.conf
Copie y pegue los siguientes parámetros.
Nota:
- Debe configurarlo en consecuencia con el entorno y las ventanas
domain/workgroup
. - El parámetro
netbios name
debe ser el mismo para todos los nodos.
[global] server string = samba_server workgroup = TESTAD password server = ad.testad.oci realm = testad.oci winbind enum groups = yes winbind enum users = yes winbind use default domain = yes security = ADS debuglevel = 2 wins support = no idmap config TESTAD : backend = rid idmap config TESTAD : range = 10000 - 50000 idmap config * : backend = tdb idmap config * : range = 1000-9999 template shell = /bin/false winbind offline logon = false interfaces = lo ens3 clustering = yes guest ok = yes bind interfaces only = no disable netbios = no netbios name = sambacluster1 smb ports = 445 log file = /var/log/samba/smb.log max log size = 10000 veto files = /._*/.DS_Store/.Trashes/.TemporaryItems/ delete veto files = yes nt acl support = yes inherit acls = yes map acl inherit = yes map archive = yes map hidden = yes map read only = yes map system = yes store dos attributes = yes inherit permissions = yes unix extensions = no [samba_test] path = /mnt/smb browseable = yes writeable = yes read only = no public = yes inherit acls = no admin users = "testad.oci\administrator" create mask = 0744 directory mask = 0755
- Debe configurarlo en consecuencia con el entorno y las ventanas
-
Para configurar el cluster, edite el archivo de configuración de CTDB.
sudo nano /etc/ctdb/ctdb.conf
Copie y pegue los siguientes parámetros.
CTDB_NODES=/etc/ctdb/nodes CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses CTDB_RECOVERY_LOCK="/mnt/Samba/ctdb/.ctdb.lock" CTDB_MANAGES_SAMBA=yes CTDB_MANAGES_WINBIND=yes CTDB_SERVICE_SMB=smbd
-
Edite el archivo de configuración de nodos para configurar el cluster.
sudo nano /etc/ctdb/nodes
Agregue las direcciones IP de los nodos.
10.10.1.60 10.10.1.29
-
Edite el archivo de configuración de la dirección pública de CTDB (la dirección IP flotante).
Sudo nano /etc/ctdb/public_addresses
Agregue una dirección IP flotante.
10.10.1.254/0 ens3
-
Tenemos que agregar el script para gestionar la dirección IP flotante en el nivel de OCI y migrarlo automáticamente en caso de failover.
Sudo nano /etc/ctdb/functions
Agregue el siguiente código después de la sección add_ip_to_iface ().
Nota: Cambie el identificador de Oracle Cloud (OCID) y el nombre de host con el OCID de las VNIC de los nodos y el nombre de host.
##### OCI vNIC variables server="`hostname -s`" smb1vnic="ocid1.vnic.oc1.eu-frankfurt-1.YOUR_NODE1_VNIC_OCID" smb2vnic="ocid1.vnic.oc1.eu-frankfurt-1.YOUR_NODE2_VNIC_OCID" vnicip="10.10.1.254" #export LC_ALL=C.UTF-8 #export LANG=C.UTF-8 #touch /tmp/vip.log ##### OCI/IPaddr Integration if [ $server = "smb1" ]; then /usr/bin/oci network vnic assign-private-ip --unassign-if-already-assigned --vnic-id $smb1vnic --ip-address $vnicip 2>/dev/null else /usr/bin/oci network vnic assign-private-ip --unassign-if-already-assigned --vnic-id $smb2vnic --ip-address $vnicip 2>/dev/null fi
-
Utilice el siguiente comando para solucionar problemas de migración de direcciones IP flotantes si no funciona.
sudo journalctl -u ctdb.service
Tarea 4: Integración de Windows Active Directory
-
Para integrar el acceso de usuario con el servidor de Windows Active Directory, tenemos que instalar Kerberos en ambos nodos.
sudo apt -y install winbind libpam-winbind libnss-winbind krb5-config samba-dsdb-modules samba-vfs-modules
-
Utilice el siguiente comando para configurar Kerberos.
sudo nano /etc/krb5.conf
-
Compruebe el archivo de configuración con el siguiente código.
Nota: Recuerde utilizar el dominio/dominio de Windows configurado en el entorno.
[libdefaults] default_realm = TESTAD.OCI # The following krb5.conf variables are only for MIT Kerberos. kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true # The following encryption type specification will be used by MIT Kerberos. # if uncommented. In general, the defaults in the MIT Kerberos code are # correct and overriding these specifications only serves to disable new # encryption types as they are added, creating interoperability problems. # The only time when you might need to uncomment these lines and change # the enctypes is if you have local software that will break on ticket # caches containing ticket encryption types it doesn't know about (such as # old versions of Sun Java). # default_tgs_enctypes = des3-hmac-sha1 # default_tkt_enctypes = des3-hmac-sha1 # permitted_enctypes = des3-hmac-sha1 # The following libdefaults parameters are only for Heimdal Kerberos. fcc-mit-ticketflags = true [realms] TESTAD.OCI = { kdc = ad.testad.oci admin_server = ad.testad.oci
-
El último paso es unir ambos hosts al dominio de Windows mediante el siguiente comando.
Sudo net ads join -U Administrator -S testad.oci
Ahora, intente conectar el cliente al servidor Samba utilizando la dirección IP flotante y los usuarios de Windows Active Directory (por ejemplo: //10.10.1.254/samba_test
) y pruebe la continuidad del negocio si se cierra o se reinicia un nodo.
¡El nuevo cluster de Samba ya está listo!
Enlaces relacionados
Agradecimientos
- Autor: Marco Santucci (Arquitecto de soluciones en la nube empresarial de EMEA)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Deploy an HA Samba Cluster with Windows Active Directory on OCI
F92340-02
February 2024
Copyright © 2024, Oracle and/or its affiliates.