Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeur pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. A la fin de l'exercice, remplacez ces valeurs par des valeurs propres à votre environnement cloud.
Déploiement d'un cluster HA Samba avec Windows Active Directory sur OCI
Introduction
Nous expliquerons comment configurer la haute disponibilité avec le basculement automatique de Samba sur les instances Ubuntu dans Oracle Cloud Infrastructure (OCI). Cette solution est une infrastructure de serveur de fichiers robuste et fiable, tirant parti de la puissance d'une configuration SMB (Server Message Block (SMB) en cluster et sans licence complète. Le coût est uniquement lié à la consommation (taille d'OCPU et de volume de blocs).
Les avantages de l'implémentation d'un service de serveur de fichiers SMB en cluster dans une organisation sont les suivants :
-
Fiabilité : la configuration en cluster garantit une haute disponibilité, minimisant le risque de temps d'arrêt et garantissant un accès constant aux fichiers critiques.
-
Tolérance aux pannes : en cas de panne d'un serveur, la configuration en cluster assure un basculement automatique, garantissant un accès ininterrompu aux fichiers et assurant la continuité de l'activité.
-
Utilisation des ressources : une allocation efficace des ressources garantit une utilisation optimale des ressources du serveur, ce qui optimise la productivité tout en minimisant les coûts opérationnels.
-
Haute performance : l'implémentation d'un serveur de fichiers SMB en cluster constitue une avancée stratégique vers la création d'un environnement informatique résilient et hautes performances adapté aux besoins en constante évolution de l'entreprise.
Architecture
Objectif
- Déployez un serveur de fichiers fiable dans HA prenant en charge le protocole SMB intégré à Windows Active Directory.
Prérequis
-
Accès à une location OCI.
-
Deux machines virtuelles Ubuntu Linux.
-
Un volume de blocs.
Tâche 1 : configurer l'environnement
-
Créez deux instances de calcul Ubuntu 22.04.
-
Sur les deux instances de calcul, établissez le répertoire dans lequel vous souhaitez stocker les fichiers et configurez le serveur Samba. Exemple :
/mnt/smb
. -
Créez un volume de blocs avec la taille requise pour votre banque de données SMB, et attachez-le aux deux instances de calcul (iSCSI, lecture/écriture - partageable). Pour plus d'informations, reportez-vous à Attachement d'un volume à plusieurs instances.
-
Notez le nom de développement affecté au volume de blocs attaché à l'aide de la commande suivante.
sudo lsblk
-
Affectez une adresse IP privée secondaire au premier noeud. Il s'agit d'une adresse IP flottante. Exemple :
10.10.1.254
. -
Mettez à jour le fichier
/etc/hosts
sur les deux instances Ubuntu pour inclure les adresses IP et les noms d'hôte de tous les noeuds, y compris le serveur Windows Active Directory qui sera utilisé pour l'authentification de l'utilisateur. Par exemple :10.10.1.60 smb1
,10.10.1.29 smb2
,10.10.1.59 ad.testad.oci testad.oci AD
. -
Configurez
iptables
sur les deux instances Ubuntu en fonction des besoins.Remarque : les instances Ubuntu sont fournies avec des iptables préconfigurés. La sixième règle de la section INPUT rejette tout le reste. Vous avez donc la possibilité de la supprimer ou d'ajouter des protocoles et ports spécifiques autorisés avant cette règle.
-
Installez et configurez l'interface de ligne de commande Oracle Cloud Infrastructure (interface de ligne de commande OCI) sur les deux instances Ubuntu. Pour plus d'informations, reportez-vous à Installation de l'interface de ligne de commande OCI et configuration (commande de configuration : oci setup config).
Remarque : installez l'interface de ligne de commande OCI dans
/usr/bin
ou votre chemin utilisateur pour éviter les problèmes d'autorisation. Par défaut, il s'agit de l'interface racine.bash -c "$(curl -L https://raw.githubusercontent.com/oracle/ocicli/master/scripts/install/install.sh)"
Tâche 2 : configurer Oracle Cluster File System version 2 (OCFS2)
Oracle Cluster File System version 2 (OCFS2) est un système de fichiers de disque partagé à usage général développé par Oracle Corporation et publié sous la licence GNU General Public License.
Pour gérer un volume de blocs accessible en écriture partagé, nous devons déployer OCFS2. Pour plus d'informations, reportez-vous à Guide simplifié d'utilisation du système de fichiers Oracle Cluster (OCFS2) avec iSCSI sur Oracle Cloud Infrastructure.
-
Exécutez la commande suivante sur les deux noeuds.
sudo apt-get install ocfs2-tools -y
-
Mettez à jour la valeur de
O2CB_ENABLED
de false sur true dans le fichier/etc/default/o2cb
.O2CB_ENABLED=true
-
Entrez le code suivant dans le fichier
/etc/ocfs2/cluster.conf
.Remarque : prenez soin de l'indentation et du format du fichier.
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
-
Démarrez le service
o2cb
.sudo /etc/init.d/o2cb start
-
Formatez l'unité de volume de blocs avec le système de fichiers OCFS2. Exécutez la commande suivante uniquement sur le premier noeud.
Remarque : chemin du périphérique noté à l'étape 3.
sudo mkfs.ocfs2 "MyOCFS2Cluster" /dev/sd*
-
Enregistrez le cluster à l'aide de la commande suivante.
sudo o2cb register-cluster ocfs2
-
Montez le volume de blocs sur le répertoire affecté au serveur Samba. Exemple :
/mnt/smb
.sudo mount /dev/sd* /mnt/smb
-
Vérifiez le statut du cluster à l'aide de la commande suivante.
sudo o2cb list-nodes ocfs2
-
Activez les services à l'aide de la commande suivante.
sudo systemctl enable o2cb sudo systemctl enable ocfs2
-
Mettez à jour
fstab
dans/etc/fstab
pour monter automatiquement le volume de blocs au démarrage.Remarque : ajustez le périphérique
/dev/sd\*
en fonction de votre nom de développement./dev/sd* /mnt/smb ocfs2 _netdev,defaults 0 0
Tâche 3 : configurer le cluster Samba
Samba permet le partage de fichiers et d'impressions entre les ordinateurs fonctionnant sous Microsoft Windows et Unix. Il s'agit d'une implémentation de dizaines de services et de protocoles, notamment : NetBIOS sur TCP/IP (NBT) et SMB - parfois appelé Common Internet File System (CIFS).
-
Installez Samba et Cluster Trivial Database (CTDB) sur les deux noeuds à l'aide de la commande suivante.
sudo apt-get install ctdb samba samba-common winbind smbclient -y
-
Modifiez le fichier de configuration Samba.
sudo nano /etc/samba/smb.conf
Copiez et collez les paramètres suivants.
Remarque :
- Vous devez le configurer en conséquence avec votre environnement et Windows
domain/workgroup
. - Le paramètre
netbios name
doit être le même pour tous les noeuds.
[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
- Vous devez le configurer en conséquence avec votre environnement et Windows
-
Pour configurer le cluster, modifiez le fichier de configuration CTDB.
sudo nano /etc/ctdb/ctdb.conf
Copiez et collez les paramètres suivants.
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
-
Modifiez le fichier de configuration des noeuds pour configurer le cluster.
sudo nano /etc/ctdb/nodes
Ajoutez les adresses IP de vos noeuds.
10.10.1.60 10.10.1.29
-
Modifiez le fichier de configuration d'adresse publique CTDB (adresse IP flottante).
Sudo nano /etc/ctdb/public_addresses
Ajoutez une adresse IP flottante.
10.10.1.254/0 ens3
-
Nous devons ajouter le script pour gérer l'adresse IP flottante au niveau OCI et la migrer automatiquement en cas de basculement.
Sudo nano /etc/ctdb/functions
Ajoutez le code suivant après la section add_ip_to_iface ().
Remarque : modifiez l'OCID (identificateur Oracle Cloud) et le nom d'hôte avec l'OCID et le nom d'hôte de vos cartes d'interface réseau virtuelles de noeud.
##### 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
-
Utilisez la commande suivante pour dépanner la migration d'adresses IP flottantes si elle ne fonctionne pas.
sudo journalctl -u ctdb.service
Tâche 4 : intégration de Windows Active Directory
-
Pour intégrer l'accès utilisateur au serveur Windows Active Directory, nous devons installer Kerberos sur les deux noeuds.
sudo apt -y install winbind libpam-winbind libnss-winbind krb5-config samba-dsdb-modules samba-vfs-modules
-
Utilisez la commande suivante pour configurer Kerberos.
sudo nano /etc/krb5.conf
-
Vérifiez le fichier de configuration avec le code suivant.
Remarque : n'oubliez pas d'utiliser le domaine/domaine Windows configuré dans votre environnement.
[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
-
La dernière étape consiste à joindre les deux hôtes au domaine Windows à l'aide de la commande suivante.
Sudo net ads join -U Administrator -S testad.oci
Essayez maintenant de connecter votre client au serveur Samba à l'aide de l'adresse IP flottante et des utilisateurs Windows Active Directory (par exemple : //10.10.1.254/samba_test
) et de tester la continuité d'activité si un noeud est arrêté ou redémarré.
Le nouveau cluster Samba est prêt !
Liens connexes
Remerciements
- Auteur - Marco Santucci (architecte de solution EMEA Enterprise Cloud)
Ressources de formation supplémentaires
Parcourez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, rendez-vous sur education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Deploy an HA Samba Cluster with Windows Active Directory on OCI
F92341-02
February 2024
Copyright © 2024, Oracle and/or its affiliates.