Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se cadastrar em uma conta gratuita, consulte Conceitos básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Implantar um Cluster HA Samba com o Windows Active Directory no OCI
Introdução
Discutiremos como configurar alta disponibilidade (HA) com failover automático do Samba em instâncias do Ubuntu na Oracle Cloud Infrastructure (OCI). Esta solução é uma infraestrutura de servidor de arquivos robusta e confiável, aproveitando o poder de uma configuração de Server Message Block (SMB) em cluster e completamente livre de licença. O custo está relacionado apenas ao consumo (tamanho de OCPU e volume em blocos).
Os benefícios de implementar um serviço de servidor de arquivos SMB clusterizado em uma organização são:
-
Confiabilidade: A configuração em cluster garante alta disponibilidade, minimizando o risco de tempo de inatividade e garantindo acesso constante a arquivos críticos.
-
Tolerância a Falhas: No caso de uma falha no servidor, a configuração clusterizada fornece failover automático, garantindo acesso ininterrupto a arquivos e mantendo a continuidade dos negócios.
-
Utilização de Recursos: A alocação eficiente de recursos garante a utilização ideal dos recursos do servidor, maximizando a produtividade e minimizando os custos operacionais.
-
Alto Desempenho: A implementação de um servidor de arquivos SMB clusterizado é um movimento estratégico para criar um ambiente de TI resiliente e de alto desempenho adaptado para atender às necessidades de negócios em evolução.
Arquitetura
Objetivo
- Implante um servidor de arquivos confiável no HA com suporte ao protocolo SMB integrado ao Windows Active Directory.
Pré-requisitos
-
Acesso a uma tenancy do OCI.
-
Duas VMs do Linux Ubuntu.
-
Um volume em blocos.
Tarefa 1: Configurar o Ambiente
-
Crie duas instâncias de computação do Ubuntu 22.04.
-
Em ambas as instâncias de computação, estabeleça o diretório no qual você pretende armazenar arquivos e configure o servidor Samba. Por exemplo:
/mnt/smb
. -
Crie um volume em blocos com o tamanho necessário para seu armazenamento de dados SMB e anexe-o às duas instâncias de computação (iSCSI, leitura/gravação - compartilhável). Para obter mais informações, consulte Anexando um Volume a Várias Instâncias.
-
Observe o nome do dispositivo designado ao volume em blocos anexado usando o comando a seguir.
sudo lsblk
-
Designe um endereço IP privado secundário no primeiro nó. Este é um endereço IP flutuante. Por exemplo:
10.10.1.254
. -
Atualize o arquivo
/etc/hosts
em ambas as instâncias do Ubuntu para incluir os endereços IP e os nomes de host de todos os nós, incluindo o servidor do Windows Active Directory que será usado para autenticação do usuário. Por exemplo:10.10.1.60 smb1
,10.10.1.29 smb2
,10.10.1.59 ad.testad.oci testad.oci AD
. -
Configure o
iptables
nas duas instâncias do Ubuntu de acordo com as necessidades.Observação: As instâncias do Ubuntu vêm com o iptables pré-configurado. A sexta regra na seção INPUT rejeita todo o resto, portanto, você tem a opção de excluí-la ou adicionar protocolos e portas específicos que são permitidos antes dessa regra.
-
Instale e configure a CLI (Command Line Interface) do Oracle Cloud Infrastructure em ambas as instâncias do Ubuntu. Para obter mais informações, consulte Instalar a CLI do OCI e configurá-la (comando de configuração: oci setup config).
Observação: Instale a CLI do OCI em
/usr/bin
ou no caminho do usuário para evitar problemas de permissão; por padrão, ela é root.bash -c "$(curl -L https://raw.githubusercontent.com/oracle/ocicli/master/scripts/install/install.sh)"
Tarefa 2: Configurar o Oracle Cluster File System versão 2 (OCFS2)
O Oracle Cluster File System versão 2 (OCFS2) é um sistema de arquivos de disco compartilhado para fins gerais desenvolvido pela Oracle Corporation e lançado sob a GNU General Public License.
Para gerenciar um volume em blocos gravável compartilhado, temos que implantar OCFS2. Para obter mais informações, consulte Um Guia Simples do Sistema de Arquivos do Oracle Cluster (OCFS2) usando iSCSI no Oracle Cloud Infrastructure.
-
Execute o comando a seguir em ambos os nós.
sudo apt-get install ocfs2-tools -y
-
Atualize o valor de
O2CB_ENABLED
de false para true no arquivo/etc/default/o2cb
.O2CB_ENABLED=true
-
Informe o código a seguir no arquivo
/etc/ocfs2/cluster.conf
.Observação: cuide do recuo e do formato do arquivo.
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
-
Agora, inicie o serviço
o2cb
.sudo /etc/init.d/o2cb start
-
Formate o dispositivo de volume em blocos com o sistema de arquivos OCFS2. Execute o comando a seguir somente no primeiro nó.
Observação: O caminho do dispositivo que anotamos na etapa 3.
sudo mkfs.ocfs2 "MyOCFS2Cluster" /dev/sd*
-
Registre o cluster usando o comando a seguir.
sudo o2cb register-cluster ocfs2
-
Monte o volume em blocos no diretório designado para o servidor Samba. Por exemplo:
/mnt/smb
.sudo mount /dev/sd* /mnt/smb
-
Verifique o status do cluster usando o comando a seguir.
sudo o2cb list-nodes ocfs2
-
Ative os serviços usando o comando a seguir.
sudo systemctl enable o2cb sudo systemctl enable ocfs2
-
Atualize o
fstab
em/etc/fstab
para montar o volume em blocos automaticamente na inicialização.Observação: Ajuste o dispositivo
/dev/sd\*
de acordo com o seu nome de desenvolvimento./dev/sd* /mnt/smb ocfs2 _netdev,defaults 0 0
Tarefa 3: Configurar o Cluster do Samba
O Samba permite o compartilhamento de arquivos e impressões entre computadores em execução no Microsoft Windows e no Unix. É uma implementação de dezenas de serviços e protocolos, incluindo: NetBIOS sobre TCP/IP (NBT) e SMB - às vezes referido como Common Internet File System (CIFS).
-
Instale o Samba e o Cluster Trivial Database (CTDB) em ambos os nós usando o comando a seguir.
sudo apt-get install ctdb samba samba-common winbind smbclient -y
-
Edite o arquivo de configuração do Samba.
sudo nano /etc/samba/smb.conf
Copie e cole os parâmetros a seguir.
Observação:
- Você precisa configurá-lo adequadamente com seu ambiente e janelas
domain/workgroup
. - O parâmetro
netbios name
deve ser o mesmo para todos os seus nós.
[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
- Você precisa configurá-lo adequadamente com seu ambiente e janelas
-
Para configurar o cluster, edite o arquivo de configuração do CTDB.
sudo nano /etc/ctdb/ctdb.conf
Copie e cole os parâmetros a seguir.
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 o arquivo de configuração de nós para configurar o cluster.
sudo nano /etc/ctdb/nodes
Adicione os endereços IP dos seus nós.
10.10.1.60 10.10.1.29
-
Edite o arquivo de configuração do endereço público CTDB (o endereço IP flutuante).
Sudo nano /etc/ctdb/public_addresses
Adicionar endereço IP flutuante.
10.10.1.254/0 ens3
-
Temos que adicionar o script para gerenciar o endereço IP flutuante no nível do OCI e migrá-lo automaticamente em caso de failover.
Sudo nano /etc/ctdb/functions
Adicione o código a seguir após a seção add_ip_to_iface ().
Observação: Altere o OCID (Oracle Cloud Identifier) e o nome do host com o OCID das VNICs dos seus nós e o nome do 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
-
Use o comando a seguir para diagnosticar e solucionar problemas de migração de endereço IP flutuante se ele não funcionar.
sudo journalctl -u ctdb.service
Tarefa 4: Integrar o Windows Active Directory
-
Para integrar o acesso do usuário ao servidor do Windows Active Directory, temos que instalar o Kerberos em ambos os nós.
sudo apt -y install winbind libpam-winbind libnss-winbind krb5-config samba-dsdb-modules samba-vfs-modules
-
Use o comando a seguir para configurar o Kerberos.
sudo nano /etc/krb5.conf
-
Verifique o arquivo de configuração com o código a seguir.
Observação: Lembre-se de usar o domínio/realm do Windows configurado em seu 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
-
A última etapa é unir os dois hosts ao domínio do Windows usando o comando a seguir.
Sudo net ads join -U Administrator -S testad.oci
Agora, tente conectar seu cliente ao servidor Samba usando o endereço IP flutuante e os usuários do Windows Active Directory (por exemplo: //10.10.1.254/samba_test
) e teste a continuidade dos negócios se um nó for encerrado ou reiniciado.
O novo cluster do Samba está pronto agora!
Links Relacionados
Confirmações
- Autor - Marco Santucci (Arquiteto de Soluções em Nuvem Empresarial da EMEA)
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Deploy an HA Samba Cluster with Windows Active Directory on OCI
F92345-02
February 2024
Copyright © 2024, Oracle and/or its affiliates.