Como relocar o diretório do banco de dados para o Red Hat Directory Server 9.0

1

Estou executando o RHDS em uma VM, mas gostaria de armazenar os dados e logs em um volume separado, ou seja, em uma SAN. A partição é ext4fs em / sdb1 e é montada como / data.

Eu tentei muitas variações das diferentes abordagens descritas aqui. Primeiro, após uma nova instalação do RHDS, antes de criar instâncias, criei as pastas em / data e as vinculei a partir de / var, da seguinte maneira:

mkdir /data/lib
mkdir /data/log
mkdir /data/lib/dirsrv
mkdir /data/log/dirsrv
rmdir /var/log/dirsrv
rmdir /var/lib/dirsrv
ln -s /data/lib/dirsrv/ /var/lib/
ln -s /data/log/dirsrv/ /var/log/

Quando eu crio uma instância (chamada esx02vm01) do diretório, recebo este erro:

[02/May/2013:09:51:45 -0400] - /etc/dirsrv/slapd-esx02vm01/dse.ldif:
nsslapd-errorlog: Cannot open errorlog file
"/var/log/dirsrv/slapd-esx02vm01/errors",
errors cannot be logged.  Exiting....

Eu achei que o RHDS poderia estar tendo problemas com os links simbólicos. Na minha segunda tentativa, instanciei com arquivos nos locais padrão. Depois de confirmar que o diretório estava funcionando, desliguei. Em seguida, movi as pastas de instâncias em / var / lib e / var / log para a pasta / data e modifiquei o arquivo dse.ldif para essa instância para apontar para os novos locais de pasta, da seguinte maneira:

mkdir /data/lib
mkdir /data/log
mkdir /data/lib/dirsrv
mkdir /data/log/dirsrv
cp -r --preserve=all /var/lib/dirsrv/slapd-esx02vm01 /data/lib/dirsrv/
cp -r --preserve=all /var/log/dirsrv/slapd-esx02vm01 /data/log/dirsrv/
vi /etc/dirsrv/slapd-esx02vm01/dse.ldif
* replace all /var/lib/dirsrv/slapd-esx02vm01 with /data/lib/dirsrv/slapd-esx02vm01*
:%s/\/var\/lib\/dirsrv\/slapd-esx02vm01\//\/data\/lib\/dirsrv\/slapd-esx02vm01\//g
* (6 substitutions on 6 lines)
* replace all /var/log/dirsrv/slapd-esx02vm01 with /data/log/dirsrv/slapd-esx02vm01
:%s/\/var\/log\/dirsrv\/slapd-esx02vm01\//\/data\/log\/dirsrv\/slapd-esx02vm01\//g
* (4 substitutions on 4 lines)
:qw
mv /var/lib/dirsrv/slapd-esx02vm01 /var/lib/dirsrv/old-slapd-esx02vm01
mv /var/log/dirsrv/slapd-esx02vm01 /var/log/dirsrv/old-slapd-esx02vm01
service dirsrv start

Eu recebi o mesmo erro ao tentar iniciar o diretório:

Starting dirsrv:
esx02vm01...[03/May/2013:08:56:00 -0400] - /etc/dirsrv/slapd-esx02vm01/dse.ldif:
nsslapd-errorlog: Cannot open errorlog file
"/data/log/dirsrv/slapd-esx02vm01/errors",
errors cannot be logged.  Exiting....

Em seguida, movi o arquivo de erro de volta para o local original, para que apenas o arquivo de banco de dados estivesse em / data. Esses erros são registrados quando o diretório é iniciado:

[03/May/2013:09:17:17 -0400] - 389-Directory/1.2.11.15 B2013.100.2247 starting up
[03/May/2013:09:17:17 -0400] - mkdir_p : error -5950 (File not found.)
[03/May/2013:09:17:17 -0400] - Can't start because the database directory
"/data/lib/dirsrv/slapd-esx02vm01/db" either doesn't exist, or is not accessible
[03/May/2013:09:17:17 -0400] - start: Failed to init database, err=-1 Unknown error: -1

Em cada caso, confirmei que os diretórios e arquivos relatados existem e que eles têm a mesma propriedade e permissões que os diretórios e arquivos originais. Quando criei a instância, executei o setup-ds-admin.pl como root, usando a conta rhds para a instância. Eu criei o usuário rhds com o comando:

useradd -M rhds

Qual é a maneira correta de realocar os bancos de dados para uma instância do Red Hat Directory Server?

-Luke

    
por Luke Koops 03.05.2013 / 16:03

1 resposta

0

O seguinte procedimento funciona com sucesso para mim com o 389-ds 1.2.9.14:

  1. crie uma nova instância
  2. verifique se o dirsrv está parado: service dirsrv stop
  3. move o diretório /var/lib/dirsrv/ para a partição de dados; no meu caso /mnt/389ds/data/
  4. crie um link simbólico de /var/lib/dirsrv/ para /mnt/389ds/data/
  5. move o diretório /var/log/dirsrv/ para a partição de dados; no meu caso /mnt/389ds/log/
  6. crie um link simbólico de /var/log/dirsrv/ para /mnt/389ds/log/
  7. inicie o servidor: service dirsrv start

Eu instalei vários servidores de produção dessa forma e eles estão todos funcionando bem!

    
por 21.05.2013 / 08:22