Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Distribuire un cluster HA Samba con Windows Active Directory su OCI
Introduzione
Discuteremo come configurare l'alta disponibilità (HA) con il failover automatico di Samba sulle istanze Ubuntu in Oracle Cloud Infrastructure (OCI). Questa soluzione è un'infrastruttura di file server solida e affidabile, che sfrutta la potenza di un'impostazione SMB (Server Message Block (SMB) in cluster e completamente priva di licenza. Il costo è correlato solo al consumo (oCPU e dimensione del volume a blocchi).
I vantaggi dell'implementazione di un servizio di file server SMB in cluster in un'organizzazione sono i seguenti:
-
Affidabilità: la configurazione in cluster garantisce l'alta disponibilità, riducendo al minimo il rischio di tempi di inattività e garantendo un accesso costante ai file critici.
-
Tolleranza agli errori: in caso di errore del server, l'impostazione in cluster fornisce il failover automatico, garantendo l'accesso ininterrotto ai file e mantenendo la continuità aziendale.
-
Utilizzo delle risorse: un'allocazione efficiente delle risorse garantisce un utilizzo ottimale delle risorse del server, massimizzando la produttività e riducendo al minimo i costi operativi.
-
High Performance: l'implementazione di un file server SMB in cluster è un passo strategico verso la creazione di un ambiente IT resiliente e ad alte prestazioni su misura per soddisfare le esigenze aziendali in continua evoluzione.
Architettura
Obiettivo
- Distribuire un file server affidabile in HA che supporta il protocollo SMB integrato con Windows Active Directory.
Prerequisiti
-
Accesso a una tenancy OCI.
-
Due Linux Ubuntu VM.
-
Un solo volume a blocchi.
Task 1: Impostare l'ambiente
-
Crea due istanze di computazione Ubuntu 22.04.
-
In entrambe le istanze di computazione, stabilire la directory in cui si intende memorizzare i file e configurare il server Samba. Ad esempio:
/mnt/smb
. -
Crea un volume a blocchi con la dimensione necessaria per il data store SMB e collegalo a entrambe le istanze di computazione (iSCSI, di lettura/scrittura, condivisibile). Per ulteriori informazioni, vedere Collegamento di un volume a più istanze.
-
Prendere nota del nome dev assegnato al volume a blocchi collegato utilizzando il comando seguente.
sudo lsblk
-
Assegnare un indirizzo IP privato secondario nel primo nodo. Questo è un indirizzo IP mobile. Ad esempio:
10.10.1.254
. -
Aggiornare il file
/etc/hosts
in entrambe le istanze Ubuntu in modo da includere gli indirizzi IP e i nomi host di tutti i nodi, incluso il server Windows Active Directory che verrà utilizzato per l'autenticazione degli utenti. Ad esempio:10.10.1.60 smb1
,10.10.1.29 smb2
,10.10.1.59 ad.testad.oci testad.oci AD
. -
Configurare
iptables
su entrambe le istanze Ubuntu in base alle esigenze.Nota: le istanze Ubuntu sono dotate di iptables preconfigurato. La sesta regola nella sezione INPUT rifiuta tutto il resto, quindi è possibile eliminarla o aggiungere protocolli e porte specifici consentiti prima di questa regola.
-
Installare e configurare l'interfaccia della riga di comando di Oracle Cloud Infrastructure (OCI CLI) su entrambe le istanze Ubuntu. Per ulteriori informazioni, vedere Installare l'interfaccia CLI OCI e configurarla (comando di configurazione: oci setup config).
Nota: installare l'interfaccia CLI OCI in
/usr/bin
o nel percorso utente per evitare problemi di autorizzazione, per impostazione predefinita è root.bash -c "$(curl -L https://raw.githubusercontent.com/oracle/ocicli/master/scripts/install/install.sh)"
Task 2: configurare Oracle Cluster File System versione 2 (OCFS2)
Oracle Cluster File System versione 2 (OCFS2) è un file system su disco condiviso per uso generico sviluppato da Oracle Corporation e rilasciato sotto la GNU General Public License.
Per gestire un volume a blocchi scrivibile condiviso, è necessario distribuire OCFS2. Per ulteriori informazioni, vedere A Simple Guide to Oracle Cluster File System (OCFS2) using iSCSI on Oracle Cloud Infrastructure.
-
Eseguire il comando seguente su entrambi i nodi.
sudo apt-get install ocfs2-tools -y
-
Aggiornare il valore di
O2CB_ENABLED
da false a true nel file/etc/default/o2cb
.O2CB_ENABLED=true
-
Immettere il codice seguente nel file
/etc/ocfs2/cluster.conf
.Nota: gestire il rientro e il formato del file.
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
-
Avviare il servizio
o2cb
.sudo /etc/init.d/o2cb start
-
Formatta il dispositivo del volume a blocchi con il file system OCFS2. Eseguire il comando seguente solo sul primo nodo.
Nota: il percorso del dispositivo indicato al passo 3.
sudo mkfs.ocfs2 "MyOCFS2Cluster" /dev/sd*
-
Registrare il cluster utilizzando il comando seguente.
sudo o2cb register-cluster ocfs2
-
Installare il volume a blocchi nella directory assegnata per il server Samba. Ad esempio:
/mnt/smb
.sudo mount /dev/sd* /mnt/smb
-
Controllare lo stato del cluster utilizzando il comando seguente.
sudo o2cb list-nodes ocfs2
-
Abilitare i servizi utilizzando il comando seguente.
sudo systemctl enable o2cb sudo systemctl enable ocfs2
-
Aggiornare il file
fstab
in/etc/fstab
per eseguire automaticamente il MOUNT del volume a blocchi all'avvio.Nota: regolare il dispositivo
/dev/sd\*
in base al nome del dispositivo./dev/sd* /mnt/smb ocfs2 _netdev,defaults 0 0
Task 3: Impostare il cluster Samba
Samba consente la condivisione di file e stampa tra computer in esecuzione su Microsoft Windows e Unix. Si tratta di un'implementazione di decine di servizi e protocolli, tra cui: NetBIOS su TCP/IP (NBT) e SMB - a volte indicato come Common Internet File System (CIFS).
-
Installare Samba e Cluster Trivial Database (CTDB) su entrambi i nodi utilizzando il seguente comando.
sudo apt-get install ctdb samba samba-common winbind smbclient -y
-
Modificare il file di configurazione Samba.
sudo nano /etc/samba/smb.conf
Copiare e incollare i seguenti parametri.
Nota:
- È necessario configurarlo di conseguenza con l'ambiente e le finestre
domain/workgroup
. - Il parametro
netbios name
deve essere lo stesso per tutti i nodi.
[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
- È necessario configurarlo di conseguenza con l'ambiente e le finestre
-
Per impostare il cluster, modificare il file di configurazione CTDB.
sudo nano /etc/ctdb/ctdb.conf
Copiare e incollare i seguenti parametri.
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
-
Modificare il file di configurazione dei nodi per la configurazione del cluster.
sudo nano /etc/ctdb/nodes
Aggiungere gli indirizzi IP dei nodi.
10.10.1.60 10.10.1.29
-
Modificare il file di configurazione dell'indirizzo pubblico CTDB (l'indirizzo IP mobile).
Sudo nano /etc/ctdb/public_addresses
Aggiungere un indirizzo IP mobile.
10.10.1.254/0 ens3
-
Dobbiamo aggiungere lo script per gestire l'indirizzo IP mobile a livello OCI ed eseguirne la migrazione automatica in caso di failover.
Sudo nano /etc/ctdb/functions
Aggiungere il codice seguente dopo la sezione add_ip_to_iface ().
Nota: modificare l'OCID (Oracle Cloud Identifier) e il nome host con l'OCID delle VNIC dei nodi e il nome 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
-
Utilizzare il comando seguente per risolvere i problemi relativi alla migrazione dell'indirizzo IP mobile se non funziona.
sudo journalctl -u ctdb.service
Task 4: Integrare Windows Active Directory
-
Per integrare l'accesso utente con il server Windows Active Directory, è necessario installare Kerberos su entrambi i nodi.
sudo apt -y install winbind libpam-winbind libnss-winbind krb5-config samba-dsdb-modules samba-vfs-modules
-
Utilizzare il comando riportato di seguito per configurare Kerberos.
sudo nano /etc/krb5.conf
-
Controllare il file di configurazione con il codice seguente.
Nota: ricordarsi di utilizzare il dominio o il realm Windows configurato nell'ambiente.
[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
-
L'ultimo passo è unire entrambi gli host nel dominio Windows utilizzando il seguente comando.
Sudo net ads join -U Administrator -S testad.oci
Ora, prova a connettere il tuo client al server Samba utilizzando l'indirizzo IP mobile e gli utenti di Windows Active Directory (ad esempio: //10.10.1.254/samba_test
) e verifica la continuità aziendale se un nodo viene chiuso o riavviato.
Il nuovo cluster Samba è pronto!
Collegamenti correlati
Conferme
- Autore - Marco Santucci (Architetto EMEA Enterprise Cloud Solution)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Deploy an HA Samba Cluster with Windows Active Directory on OCI
F92342-02
February 2024
Copyright © 2024, Oracle and/or its affiliates.