Migração do IBM Tivoli Directory Server da versão 5.2 para a 6.1 1. Introdução Nilson Thomé Cechetto Especialização em Redes e Segurança de Sistemas PUCPR 12 de Novembro de 2009 O IBM Tivoli Directory Server ITDS - é o servidor de diretório da IBM. Utiliza o protocolo LDAP, que é um acrônimo para Lightweight Directory Access Protocol. Em tradução livre, significa Protocolo Leve de Acesso a Diretórios. É compatível com o IBM WebSphere Application Server WAS - e também é o recomendado e suportado para uso em conjunto com o mesmo. A atualização do produto WAS implica na atualização de toda a infra-estrutura conectada. Entre alguns componentes que precisam ser atualizados no pacote, podemos citar o IBM HTTPServer (IHS), o banco de dados DB2 utilizado para sessão ou persistência de dados e o servidor de LDAP. O objeto deste trabalho será o LDAP. O WAS, neste ambiente, está sendo atualizado da versão 5.1 para a 6.0 e as versões de ITDS respectivamente compatíveis (e suportadas) são as 5.2 e 6.1. Este documento contemplará esta atualização da versão 5.2 para 6.1. Vale lembrar que as versões suportadas de WAS e ITDS não têm o mesmo número. A versão atualmente instalada do ITDS 5.2 - está sem suporte nativo do fornecedor (IBM) desde setembro de 2007, devido ao End of Service do produto. O ITDS 5.2 está coberto por um contrato de extensão de suporte associado ao WAS 5.1. O contrato tem a seguinte condição: o produto será suportado na modalidade melhor esforço, isto é, qualquer problema com os produtos será pesquisado na base de chamados antigos e na base de conhecimentos, mas não serão abertos chamados no laboratório, e novos fixes não serão desenvolvidos para este produto. Esta modalidade é considerada um risco operacional, visto que temos 12 LDAPs instalados, 4 destes em produção, sendo o maior deles com aproximadamente 1.500.000 entradas, todas elas com dados de autenticação de clientes. O fornecedor foi contatado para oferecer o serviço de mentoring para a instalação do produto. A IBM orçou em R$ 16.000,00 (Dezesseis mil Reais) as primeiras 40 horas necessárias de acompanhamento técnico para elaboração do plano de migração do produto. E o treinamento de administrador para esta versão do produto foi orçado em R$ 5.000,00 (Cinco mil Reais) Em meio à crise financeira, o autor deste foi o escolhido para elaborar o plano sem ônus adicional a empresa. O escopo do projeto é atualizar os 12 servidores LDAP da empresa, imediatamente após a atualização dos WAS, para manter os ambientes 100% compatíveis. Os 12 ITDS se dividem em 4 instâncias de desenvolvimento, 4 de homologação e 4 de produção. E estes 4 repetidos por ambiente são os servidores de diretório e autenticação da intranet da empresa, do portal de treinamentos e, os dois maiores restantes, são os diretórios dos dois maiores produtos da empresa, onde os clientes estão listados. 2. Escolha justificada das tecnologias
Como o produto WebSphere Application Server é da IBM, é altamente recomendado que o servidor de diretório associado seja do mesmo fornecedor. Isso facilita tanto a integração quanto o suporte. E por isso a escolha do IBM Tivoli Directory Server. A versão 6.1 do ITDS foi escolhida porque é completamente compatível com todo o novo ambiente da empresa, que está sendo atualizado para o WAS 6.0 O ITDS persiste todos os seus dados em DB2, que também é da IBM. O DB2 é um banco de dados altamente confiável e está incluso no suporte do ITDS. A última versão do ITDS persiste os dados na última versão do DB2, 9.X, o que torna todo o conjunto mais confiável. 3. Descrição do Contexto O ITDS, na sua versão 5.2, está sem suporte da IBM desde setembro de 2007. Isso implica em um risco para a continuidade do negócio. Se tivermos problema em algum dos LDAPs, clientes internos e/ou externos podem ser impactados. Todo o ambiente WAS está em processo de migração para a versão 6.0 e a IBM só suporta todo o conjunto oficialmente quando o LDAP estiver acima da versão 6.0 também. A janela de indisponibilidade negociada para os ambientes de produção é da 1:00 as 6:00 de domingos, então todas as migrações devem ser feitas neste intervalo. Não há verba para contratação de mentoring do fornecedor. No final do projeto, os 12 LDAPs devem estar na versão 6.1, o que significa que todo o ambiente WAS + ITDS estará suportado pelo fornecedor. A versão 6.1 não tem previsão de End of Support (EoS) pela IBM. 4. Descrição do Projeto IHS IBM HTTPServer o servidor HTTP da IBM cluster em dois sites com SuSE Linux 10.3 em Intel WAS Websphere Application Server o servidor de aplicações web da IBM diversas máquinas SuSE Linux 10.3 em Intel DB2 Banco de dados de sessão para ser utilizado com o WAS e o repositório dos dados do ITDS AiX 5.3, cluster Veritas hot/warm ITDS LDAP da IBM. Será o objeto de estudo deste projeto. AiX 5.3, cluster Veritas hot/warm Processo de instalação. Foram realizados os seguintes passos: 1) Solicitação à equipe DBA para instalação do DB2 v.9.1 nos servidores destino 2) Criação dos seguintes filesystems, em cada máquina: - /var/ldap, com 2Gb - /opt/ibm/ldap, com 1Gb 3) Cópia do conteúdo dos CDs 1 e 3 do IBM Tivoli Directory Server 6.1 para diretório temporário no servidor de destino 4) Passo que a IBM não mencionou na lista de pré-requisitos do produto: instale o pacote "bos.loc.iso.en_us" no servidor destino. Após algumas tentativas falhas de instalação e um chamado aberto, o fornecedor enviou a resposta de que seria necessário este pacote. 5) Execução da instalação: bash-2.05b#./install_tds.sh Launching IBM Tivoli Directory Server V6.1 installation.
bash-2.05b# Como esta fase da instalação se resume a next, next, finish, ela não será completamente detalhada. As tela abaixo aparecerão após alguns passos. Já que o DB2 já foi instalado, escolha apenas os itens Embedded WebSphere Apllication Server, C Client 6.1, Java Client 6.1, Web Administration Tool 6.1 e Server 6.1 6) Instale também o último fix disponível: bash-2.05b# cd 6.1.0.3-TIV-ITDS-AIX-IF0004/ bash-2.05b# ls -l total 56 -rwxr-xr-- 1 root system 23622 Jun 1 18:26 idsinstall drwxr-xr-x 2 root system 4096 Jun 1 18:27 images drwxr-xr-x 4 root system 256 Jun 1 18:27 whitepages bash-2.05b#./idsinstall -u Updating package=idsldap.cltbase61 to version=06.01.0000.0026 Updating package=idsldap.msg61.en_us to version=06.01.0000.0026 Updating package=idsldap.clt64bit61 to version=06.01.0000.0026 Updating package=idsldap.clt_max_crypto64bit61 to version=06.01.0000.0026 Updating package=idsldap.cltjava61 to version=06.01.0000.0026 Updating package=idsldap.srvbase64bit61 to version=06.01.0000.0026 Updating package=idsldap.srv_max_cryptobase64bit61 to version=06.01.0000.0026 Updating package=idsldap.srv64bit61 to version=06.01.0000.0026 Updating package=idsldap.webadmin61 to version=06.01.0000.0026 Updating package=idsldap.webadmin_max_crypto61 to version=06.01.0000.0026 All packages were installed successfully! See the log file: /tmp/idsinstall_07-27-09_11-11-31.log for more details bash-2.05b# 7) Migre os arquivos de configuração, através de processos automatizados e de edição de arquivos: Na máquina origem: bash-2.05b#./migbackup /usr/ldap/ /tmp/nilson/ Backing up schema and configuration files... Copying: file /usr/ldap//etc/v3.ibm.at. Copying: file /usr/ldap//etc/v3.ibm.oc. Copying: file /usr/ldap//etc/v3.system.at. Copying: file /usr/ldap//etc/v3.system.oc. Copying: file /usr/ldap//etc/v3.user.at. Copying: file /usr/ldap//etc/v3.user.oc. Copying: file /usr/ldap//etc/v3.modifiedschema. Copying: file /usr/ldap//etc/ibmslapd.conf. Copying: file /usr/ldap//etc/v3.config.at. Copying: file /usr/ldap//etc/v3.config.oc. Copying: file /usr/ldap//etc/v3.ldapsyntaxes. Copying: file /usr/ldap//etc/v3.matchingrules. Found db2 symbolic link in /usr/ldap Creating: file /tmp/nilson//etc/db2info.
Na máquina destino: bash-2.05b# cd /var/ldap/ bash-2.05b# mkdir confs-5.2-ib bash-2.05b# cd confs-5.2-ib/ bash-2.05b# tar xvf /tmp/ldap-52.tar x etc x etc/v3.ibm.at, 257112 bytes, 503 tape blocks x etc/v3.ibm.oc, 52817 bytes, 104 tape blocks x etc/v3.system.at, 54062 bytes, 106 tape blocks x etc/v3.system.oc, 8327 bytes, 17 tape blocks x etc/v3.user.at, 114894 bytes, 225 tape blocks x etc/v3.user.oc, 31171 bytes, 61 tape blocks x etc/v3.modifiedschema, 11696 bytes, 23 tape blocks x etc/ibmslapd.conf, 8179 bytes, 16 tape blocks x etc/v3.config.at, 51646 bytes, 101 tape blocks x etc/v3.config.oc, 7049 bytes, 14 tape blocks x etc/v3.ldapsyntaxes, 1753 bytes, 4 tape blocks x etc/v3.matchingrules, 2019 bytes, 4 tape blocks x etc/db2info, 82 bytes, 1 tape blocks Nos arquivos de configuração da versão anterior bash-2.05b# diff db2info db2info.original 2c2 < currentdb2installpath=/opt/ibm/db2/v9.1 --- > currentdb2installpath=/usr/opt/db2_08_01 bash-2.05b# bash-2.05b# diff ibmslapd.conf ibmslapd.conf.original 144c144 < ibm-slapddbalias: ldplb501 --- > ibm-slapddbalias: ldplb601 146c146 < ibm-slapddbinstance: ildpu05 --- > ibm-slapddbinstance: db2ldph6 148,149c148,149 < ibm-slapddbuserid: ildpu05 < ibm-slapddbuserpw: db2ldap. --- > ibm-slapddbuserid: db2ldph6 > ibm-slapddbuserpw: >14n8OICLy7U9mAeRiGMKYC/ssv9V31ciunE6Hq09n+qBSZ348cD9adIWTic1LEQn2HIC0 rzqrncrqknq9czrsk8colcnpjxm3owuwbljq1rsji38bjuwvklmxpquhwvekdb9pur4rs2 jbap8smnanxlrwe6ci7u3yl< Trocar o password do user ildpu05 e mudar a senha para db2ldap. Remover o flag de expiração de senha usando pwdadm c ildpu05 8) Migre a base: bash-2.05b# cd /opt/ibm/ldap/v6.1/sbin/ bash-2.05b#./idsxinst & [1] 3403902
bash-2.05b# Clique em Create. Preencha com os valores:
Caso não tenha inserido o dono da base de dados no grupo idsldap, faça, usando o smitty:
Caso o usuario root não seja membro do grupo do ITDS, insira, utilizando o smitty também. Ignorar mensagem de version check abaixo:
Não teste o software neste ponto. A subida do serviço criará entradas que atrapalharão a importação dos dados. 9) Importe os dados: 10) Inicie o ITDS:
bash-2.05b# /opt/ibm/ldap/v6.1/bin/ibmdirctl -D cn=root -w senhaderoot start Start operation succeeded bash-2.05b# Diagrama geral do projeto: 5. Procedimentos de Teste e Avaliação O sucesso da atualização de versão foi avaliado sob dois pontos de vista. O primeiro foi o da estabilidade. Imediatamente após a migração de versão anterior a esta, tivemos dois problemas, um com timeout de conexões SSL e outro com ulimits do servidor. Para o timeout de SSL, o fornecedor enviou um Limited Availability fix, onde poderia ser inserido um parâmetro no arquivo de configuração e ajustar o timeout do SSL. Sobre o problema com ulimit, todas as vezes que o cache era populado, ao chegar em aproximadamente 250.000 entradas, o processo era terminado pelo sistema operacional. Foi verificado que o ulimit do usuário do processo estava subdimensionado. Estes dois problemas foram mitigados através de um j-unit que foi desenvolvido para disparar diversas conexões SSL contra a nova versão, lendo todas as entradas da base e as colocando em cache. No momento de pico do teste foi mantida 1050 conexões, com o cache de entradas inteiro em memória. Nenhum problema de performance ou de instabilidade foi notado nessa versão e não foi necessário nenhum fix do fornecedor. Existia outro problema de instabilidade na versão anterior. Em situações de pico, quando o servidor do MKS Source Integrity subia e tentava se conectar com o LDAP, gerava uma condição de carga anômala em que o processo do LDAP era derrubado. Como a versão estava sem suporte do fornecedor, o problema persistiu até a atualização da versão. Até a data de conclusão deste documento, o problema não voltou a ocorrer.
O segundo ponto de vista foi a performance. Utilizando o Wily Introscope, verificamos que o tempo médio de acesso direto aos LDAPs manteve-se nos mesmos 5ms (valor registrado inteiro), mas o de execução das aplicações onde podem ocorrer vários acessos ao LDAP diminuiu de 21ms para 19ms. A maior melhora foi sentida nos tempos de backup, que se reduziram a 1/3 (um terço) do tempo anterior. 6. Conclusão A atualização de versão do produto, apesar do esforço para concluí-la, trouxe apenas benefícios. Sem pagar nada por isso, pois até mesmo a licença de uso é a mesma do WAS. Os benefícios mais importantes foram a exclusão do risco operacional, a estabilidade e a melhora da performance. Também se acredita que utilizando uma das últimas versões do produto, a maioria dos problemas de funcionalidade e de segurança já esteja resolvida. Isso faz com que todos os envolvidos, desde a área de negócio, projetos e até a de IT sintam-se mais seguros em relação ao produto. Para as próximas atualizações, espera-se contratar o fornecedor para suportar a elaboração do plano ou ao menos que o analista responsável pelo projeto faça o treinamento, para que todas as dicas e segredos do processo de migração não sejam descobertos apenas no momento da realização da atividade no ambiente de produção, mitigando todos os problemas e minimizando o impacto de algum possível erro. 7. Referências Directory Server Version 6.1 information Center - http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=/com.ibm.ibmd S.doc_6.1/welcome.htm - diversos acessos, último em 7/11/2009 Error GLPCRY007E occurs after migration - http://www- 01.ibm.com/support/docview.wss?rs=767&context=SSVJJU&dc=DB560&dc=DB520&uid=swg2 1382642&loc=en_US&cs=UTF-8&lang=en&rss=ct767tivoli acesso em 20/09/2009 Errors installing ITDS 6.1 on AIX 5.3 - http://www- 01.ibm.com/support/docview.wss?uid=swg21298181 acesso em 7/11/2009 IBM Tivoli Directory Server Messages Guide - http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/topic/com.ibm.ibmds.doc/mess ages.pdf - acesso em 08/10/2009 IO11223: Migration failure in TDS6.1 - http://www- 01.ibm.com/support/docview.wss?rs=767&context=SSVJJU&uid=swg1IO11223&loc= en_us&cs=utf-8&lang=en acesso em 10/11/2009 LDAP - http://pt.wikipedia.org/wiki/ldap - acesso em 10/10/2009