cephx
Você pode operar serviços do Ceph usando o systemd
ou o DeepSea.
systemd
#
Use o comando systemctl
para operar todos os serviços relacionados ao Ceph. A operação é realizada no nó em que você efetuou login. Você precisa ter privilégios de root
para operar serviços do Ceph.
Para tornar mais simples iniciar, parar e reiniciar todos os serviços de determinado tipo (por exemplo, todos os serviços do Ceph, os MONs ou os OSDs) em um nó, o Ceph oferece os seguintes arquivos da unidade systemd
:
cephadm@adm >
ls /usr/lib/systemd/system/ceph*.target
ceph.target
ceph-osd.target
ceph-mon.target
ceph-mgr.target
ceph-mds.target
ceph-radosgw.target
ceph-rbd-mirror.target
Para iniciar/parar/reiniciar todos os serviços do Ceph no nó, execute:
root #
systemctl start ceph.targetroot #
systemctl stop ceph.targetroot #
systemctl restart ceph.target
Para iniciar/parar/reiniciar todos os OSDs no nó, execute:
root #
systemctl start ceph-osd.targetroot #
systemctl stop ceph-osd.targetroot #
systemctl restart ceph-osd.target
Os comandos para os outros destinos são semelhantes.
Você pode operar serviços individuais usando os seguintes arquivos parametrizados da unidade systemd
:
ceph-osd@.service ceph-mon@.service ceph-mds@.service ceph-mgr@.service ceph-radosgw@.service ceph-rbd-mirror@.service
Para usar esses comandos, primeiro você precisa identificar o nome do serviço que deseja operar. Consulte a Seção 5.1.3, “Identificando serviços individuais” para saber mais sobre a identificação de serviços.
Para iniciar/parar/reiniciar o serviço osd.1
, execute:
root #
systemctl start ceph-osd@1.serviceroot #
systemctl stop ceph-osd@1.serviceroot #
systemctl restart ceph-osd@1.service
Os comandos para os outros tipos de serviço são semelhantes.
Você pode descobrir nomes/números de um determinado tipo de serviço de várias maneiras. Os seguintes comandos apresentam resultados para os serviços do ceph*
. Você pode executá-los em qualquer nó do cluster do Ceph.
Para listar todos os serviços (até os inativos) do tipo ceph*
, execute:
root #
systemctl list-units --all --type=service ceph*
Para listar apenas os serviços inativos, execute:
root #
systemctl list-units --all --state=inactive --type=service ceph*
Você também pode usar o salt
para consultar serviços em vários nós:
root@master #
salt TARGET cmd.shell \
"systemctl list-units --all --type=service ceph* | sed -e '/^$/,$ d'"
Consultar apenas nós de armazenamento:
root@master #
salt -I 'roles:storage' cmd.shell \
'systemctl list-units --all --type=service ceph*'
É possível consultar o systemd
para saber o status dos serviços. Por exemplo:
root #
systemctl status ceph-osd@1.serviceroot #
systemctl status ceph-mon@HOSTNAME.service
Substitua HOSTNAME pelo nome de host no qual o daemon está em execução.
Se você não souber o nome/número exato do serviço, consulte a Seção 5.1.3, “Identificando serviços individuais”.
Após aplicar atualizações aos nós do cluster, os serviços relacionados ao Ceph afetados precisarão ser reiniciados. Normalmente, as reinicializações são executadas automaticamente pelo DeepSea. Esta seção descreve como reiniciar os serviços manualmente.
O processo de reinicialização do cluster pode levar algum tempo. Para observar os eventos, você pode usar o barramento de evento do Salt ao executar o comando:
root@master #
salt-run state.event pretty=True
Outro comando para monitorar tarefas ativas é
root@master #
salt-run jobs.active
Se os serviços relacionados ao Ceph, especificamente o iSCSI ou o NFS Ganesha, forem configurados como pontos únicos de acesso sem configuração de Alta Disponibilidade, a reinicialização deles resultará na interrupção temporária quando vistos do lado do cliente.
Como o DeepSea e o Ceph Dashboard não suportam implantações do Samba no momento, você precisa gerenciar os serviços relacionados ao Samba manualmente. Para ver mais detalhes, consulte o Capítulo 20, Exportando dados do Ceph por meio do Samba.
Para reiniciar todos os serviços no cluster, execute o seguinte comando:
root@master #
salt-run state.orch ceph.restart
Para o DeepSea anterior à versão 0.8.4, os serviços Servidor de Metadados, iSCSI Gateway, Object Gateway e NFS Ganesha são reiniciados em paralelo.
Para o DeepSea 0.8.4 e versões mais recentes, todas as funções configuradas são reiniciadas na seguinte ordem: Ceph Monitor, Ceph Manager, Ceph OSD, Servidor de Metadados, Object Gateway, iSCSI Gateway, NFS Ganesha. Para manter o tempo de espera baixo e detectar possíveis problemas o quanto antes, os nós são reiniciados sequencialmente. Por exemplo, apenas um nó de monitoramento é reiniciado de cada vez.
O comando aguardará a recuperação do cluster se ele estiver degradado, não saudável.
Para reiniciar um serviço específico no cluster, execute:
root@master #
salt-run state.orch ceph.restart.service_name
Por exemplo, para reiniciar todos os Object Gateways, execute:
root@master #
salt-run state.orch ceph.restart.rgw
Você pode usar os seguintes destinos:
root@master #
salt-run state.orch ceph.restart.mon
root@master #
salt-run state.orch ceph.restart.mgr
root@master #
salt-run state.orch ceph.restart.osd
root@master #
salt-run state.orch ceph.restart.mds
root@master #
salt-run state.orch ceph.restart.rgw
root@master #
salt-run state.orch ceph.restart.igw
root@master #
salt-run state.orch ceph.restart.ganesha
Há ocasiões em que você precisa parar todos os serviços relacionados ao Ceph no cluster na ordem recomendada e depois apenas iniciá-los novamente. Por exemplo, em caso de queda de energia planejada.
Para encerrar todo o cluster do Ceph, desabilite as medidas de segurança e execute o ceph.shutdown
:
root@master #
salt-run disengage.safetyroot@master #
salt-run state.orch ceph.shutdown
Para iniciar todo o cluster do Ceph, execute o ceph.startup
:
root@master #
salt-run state.orch ceph.startup