EC2 - Deseja montar antes do início do serviço

2

Estou usando o AWS EC2 e adicionei um volume EBS extra. Atualmente, ele é montado como um novo dispositivo.

MySQL e amp; O Redis DB armazena seus dados no novo volume do EBS e eles são registrados no chkconfig . Portanto, preciso que o volume seja montado ANTES de iniciar o serviço chkconfig .

Mas eu não quero adicioná-lo no meu /etc/fstab , como dito no fórum abaixo. link

Por isso, adicionei mount /dev/xvdf /data no meu /etc/rc.d/rc.local e reiniciei o sistema.

Mas, aparentemente, chkconfig services é iniciado ANTES de /etc/rc.d/rc.local e, portanto, a inicialização do MySQL e do Redis falha.

Eu quero saber onde posso escrever um script de inicialização chamado BEFORE chkconfig service starts.

Obrigado antecipadamente.

    
por ashiina 24.03.2013 / 22:48

2 respostas

2

Como você deve ter notado, o rc.local é geralmente o último script executado durante o processo de inicialização. Isto é afirmado nos comentários do script.

A julgar pela menção de chkconfig em sua pergunta, acho que você está rodando o CentOS, o Linux baseado no RHEL da Amazon ou outro derivado do Red Hat (ou Fedora). Se for esse o caso, você pode simplesmente desconsiderar o que a Cindy @ AWS disse nesse segmento.

A montagem de sistemas de arquivos locais no RHEL é feita pelo script /etc/rc.sysinit que monta todos os sistemas de arquivos que não são NFS, CIFS (SMB) ou algum outro sistema de arquivos baseado em rede. Isso é feito executando a seguinte linha no script:

    action $"Mounting local filesystems: " mount -a -t nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev

Esta linha executa a montagem e instrui-a a tentar montar todos os dispositivos que não correspondam a nenhum dos nfs, nfs4, smbfs, ncpfs, cifs, gfs ou gfs2 como seu tipo de sistema de arquivos. Além disso, ele ignora todos os dispositivos com o _netdev em suas opções no fstab.

Quando o mount tenta montar qualquer sistema de arquivos que não existe ele não bloqueia, mas falha com a seguinte mensagem de erro:

# mount -a -t nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev'
mount: special device /dev/fhsd does not exist

No meu caso / dev / fhsd é uma linha no fstab que se parece com isso:

/dev/fhsd /mnt ext4 defaults 0 0

Como você pode ver esta falha não está bloqueando o processo de montagem e o sistema operacional não bloqueará a espera pelo dispositivo, ele simplesmente falhará.

Existe outro script que cuida da montagem de sistemas de arquivos baseados em rede em /etc/init.d/netfs e todos os sistemas de arquivos que possuem _netdev em suas opções são manipulados por ele.

Há um problema com dispositivos ausentes no Ubuntu e você precisa adicionar nobootwait (veja também esta pergunta sobre nobootwait e nofail no Unix.SE) para especificar que o processo de inicialização do sistema operacional não deve falhar se o dispositivo estiver ausente, mas no Ubuntu a montagem é executada pelo mountall (1) .

    
por 25.03.2013 / 00:15
1

Você pode dizer ao chkconfig em que ordem executar init.d scripts, através de um comentário no script.

Escreva um script init.d para montar / desmontar e executá-lo antes do MySQL e Redis na inicialização, e após o MySQL e Redis no desligamento.

    
por 24.03.2013 / 23:10