Ir para o conteúdoIr para navegação de página: página anterior [tecla de acesso p]/próxima página [tecla de acesso n]
documentation.suse.com / Documentação do SUSE Enterprise Storage 7.1 / Guia de Implantação / Implantando o cluster do Ceph / Implantando o cluster de boot usando ceph-salt
Aplica-se a SUSE Enterprise Storage 7.1

7 Implantando o cluster de boot usando ceph-salt

Esta seção orienta você pelo processo de implantação de um cluster básico do Ceph. Leia as subseções a seguir com atenção e execute os comandos incluídos na ordem indicada.

7.1 Instalando ceph-salt

O ceph-salt inclui ferramentas para implantar clusters do Ceph gerenciados pelo cephadm. O ceph-salt usa a infraestrutura do Salt para executar o gerenciamento de OS; por exemplo, atualizações de software ou sincronização de horário, e definir funções para os Minions Salt.

No Master Salt, instale o pacote ceph-salt:

root@master # zypper install ceph-salt

O comando acima instalou ceph-salt-formula como uma dependência que modificou a configuração do Master Salt inserindo arquivos adicionais no diretório /etc/salt/master.d. Para aplicar as mudanças, reinicie o salt-master.service e sincronize os módulos do Salt:

root@master # systemctl restart salt-master.service
root@master # salt \* saltutil.sync_all

7.2 Configurando as propriedades do cluster

Use o comando ceph-salt config para configurar as propriedades básicas do cluster.

Importante
Importante

O arquivo /etc/ceph/ceph.conf é gerenciado pelo cephadm e os usuários não devem editá-lo. Os parâmetros de configuração do Ceph devem ser definidos usando o novo comando ceph config. Consulte o Seção 28.2, “Banco de dados de configuração” para obter mais informações.

7.2.1 Usando o shell do ceph-salt

Se você executar o config sem nenhum caminho ou subcomando, digitará um shell interativo do ceph-saltceph-salt. O shell é prático se você precisa configurar várias propriedades em um lote e não deseja digitar a sintaxe completa do comando.

root@master # ceph-salt config
/> ls
o- / ............................................................... [...]
  o- ceph_cluster .................................................. [...]
  | o- minions .............................................. [no minions]
  | o- roles ....................................................... [...]
  |   o- admin .............................................. [no minions]
  |   o- bootstrap ........................................... [no minion]
  |   o- cephadm ............................................ [no minions]
  |   o- tuned ..................................................... [...]
  |     o- latency .......................................... [no minions]
  |     o- throughput ....................................... [no minions]
  o- cephadm_bootstrap ............................................. [...]
  | o- advanced .................................................... [...]
  | o- ceph_conf ................................................... [...]
  | o- ceph_image_path .................................. [ no image path]
  | o- dashboard ................................................... [...]
  | | o- force_password_update ................................. [enabled]
  | | o- password ................................................ [admin]
  | | o- ssl_certificate ....................................... [not set]
  | | o- ssl_certificate_key ................................... [not set]
  | | o- username ................................................ [admin]
  | o- mon_ip .................................................. [not set]
  o- containers .................................................... [...]
  | o- registries_conf ......................................... [enabled]
  | | o- registries .............................................. [empty]
  | o- registry_auth ............................................... [...]
  |   o- password .............................................. [not set]
  |   o- registry .............................................. [not set]
  |   o- username .............................................. [not set]
  o- ssh ............................................... [no key pair set]
  | o- private_key .................................. [no private key set]
  | o- public_key .................................... [no public key set]
  o- time_server ........................... [enabled, no server host set]
    o- external_servers .......................................... [empty]
    o- servers ................................................... [empty]
    o- subnet .................................................. [not set]

Como você pode ver na saída do comando ceph-saltls do , a configuração do cluster está organizada em uma estrutura de árvore. Para configurar uma propriedade específica do cluster no shell do ceph-salt, você tem duas opções:

  • Execute o comando a partir da posição atual e digite o caminho absoluto para a propriedade como o primeiro argumento:

    /> /cephadm_bootstrap/dashboard ls
    o- dashboard ....................................................... [...]
      o- force_password_update ..................................... [enabled]
      o- password .................................................... [admin]
      o- ssl_certificate ........................................... [not set]
      o- ssl_certificate_key ....................................... [not set]
      o- username .................................................... [admin]
    /> /cephadm_bootstrap/dashboard/username set ceph-admin
    Value set.
  • Mude para o caminho com a propriedade que você precisa configurar e execute o comando:

    /> cd /cephadm_bootstrap/dashboard/
    /ceph_cluster/minions> ls
    o- dashboard ....................................................... [...]
      o- force_password_update ..................................... [enabled]
      o- password .................................................... [admin]
      o- ssl_certificate ........................................... [not set]
      o- ssl_certificate_key ....................................... [not set]
      o- username ................................................[ceph-admin]
Dica
Dica: Preenchimento automático de trechos da configuração

Enquanto estiver em um shell do ceph-salt, você poderá usar o recurso de preenchimento automático semelhante ao do shell normal do Linux (Bash). Ele preenche os caminhos de configuração, subcomandos ou nomes de Minion Salt. Ao preencher automaticamente um caminho de configuração, você tem duas opções:

  • Para permitir que o shell termine um caminho relativo à sua posição atual, pressione a tecla TAB →| duas vezes.

  • Para permitir que o shell termine um caminho absoluto, digite / e pressione a tecla TAB →| duas vezes.

Dica
Dica: Navegando com as teclas do cursor

Se você digitar cd no shell do ceph-salt sem nenhum caminho, o comando imprimirá uma estrutura de árvore da configuração do cluster com a linha do caminho atual ativo. Você pode usar as teclas do cursor para cima e para baixo para navegar pelas linhas individuais. Depois de confirmar com Enter, o caminho de configuração mudará para o último caminho ativo.

Importante
Importante: Convenção

Para manter a documentação consistente, usaremos uma única sintaxe de comando sem inserir o shell do ceph-salt. Por exemplo, você pode listar a árvore de configuração do cluster usando o seguinte comando:

root@master # ceph-salt config ls

7.2.2 Adicionando minions Salt

Inclua todos ou um subconjunto de Minions Salt que implantamos e aceitamos na Capítulo 6, Implantando o Salt na configuração do cluster do Ceph. Você pode especificar os Minions Salt usando os nomes completos ou as expressões glob “*” e “?” para incluir vários Minions Salt de uma vez. Use o subcomando add no caminho /ceph_cluster/minions. O seguinte comando inclui todos os Minions Salt aceitos:

root@master # ceph-salt config /ceph_cluster/minions add '*'

Verifique se os Minions Salt especificados foram adicionados:

root@master # ceph-salt config /ceph_cluster/minions ls
o- minions ................................................. [Minions: 5]
  o- ses-master.example.com .................................. [no roles]
  o- ses-min1.example.com .................................... [no roles]
  o- ses-min2.example.com .................................... [no roles]
  o- ses-min3.example.com .................................... [no roles]
  o- ses-min4.example.com .................................... [no roles]

7.2.3 Especificando minions Salt gerenciados pelo cephadm

Especifique os nós que pertencerão ao cluster do Ceph e serão gerenciados pelo cephadm. Inclua todos os nós que executarão os serviços do Ceph e também o Nó de Admin:

root@master # ceph-salt config /ceph_cluster/roles/cephadm add '*'

7.2.4 Especificando o nó de admin

O Nó de Admin é o nó em que o arquivo de configuração ceph.conf e o chaveiro admin do Ceph estão instalados. Geralmente, você executa os comandos relacionados ao Ceph no Nó de Admin.

Dica
Dica: Master Salt e nó de admin no mesmo nó

Em um ambiente homogêneo onde todos ou a maioria dos hosts pertencem ao SUSE Enterprise Storage, recomendamos manter o Nó de Admin no mesmo host que o Master Salt.

Em um ambiente heterogêneo onde uma infraestrutura do Salt hospeda mais de um cluster, por exemplo, o SUSE Enterprise Storage junto com o SUSE Manager, não coloque o Nó de Admin no mesmo host que o Master Salt.

Para especificar o Nó de Admin, execute o seguinte comando:

root@master # ceph-salt config /ceph_cluster/roles/admin add ses-master.example.com
1 minion added.
root@master # ceph-salt config /ceph_cluster/roles/admin ls
o- admin ................................................... [Minions: 1]
  o- ses-master.example.com ...................... [Other roles: cephadm]
Dica
Dica: Instalar o ceph.conf e o chaveiro admin em vários nós

Você pode instalar o arquivo de configuração do Ceph e o chaveiro admin em vários nós, se sua implantação exigir isso. Por motivos de segurança, evite instalá-los em todos os nós do cluster.

7.2.5 Especificando o primeiro nó MON/MGR

Você precisa especificar qual dos Minions Salt do cluster inicializará o cluster. Esse minion será o primeiro a executar os serviços Ceph Monitor e Ceph Manager.

root@master # ceph-salt config /ceph_cluster/roles/bootstrap set ses-min1.example.com
Value set.
root@master # ceph-salt config /ceph_cluster/roles/bootstrap ls
o- bootstrap ..................................... [ses-min1.example.com]

Além disso, você precisa especificar o endereço IP do MON de boot na rede pública para garantir que o parâmetro public_network seja definido corretamente, por exemplo:

root@master # ceph-salt config /cephadm_bootstrap/mon_ip set 192.168.10.20

7.2.6 Especificando perfis ajustados

Você precisa especificar quais dos minions do cluster têm os perfis ajustados ativamente. Para fazer isso, adicione estas funções explicitamente com os seguintes comandos:

Nota
Nota

Um minion não pode ter as duas funções latency e throughput.

root@master # ceph-salt config /ceph_cluster/roles/tuned/latency add ses-min1.example.com
Adding ses-min1.example.com...
1 minion added.
root@master # ceph-salt config /ceph_cluster/roles/tuned/throughput add ses-min2.example.com
Adding ses-min2.example.com...
1 minion added.

7.2.7 Gerando um par de chaves SSH

O cephadm usa o protocolo SSH para se comunicar com os nós do cluster. Uma conta do usuário chamada cephadm é criada automaticamente e usada para comunicação por SSH.

Você precisa gerar a parte particular e a pública do par de chaves SSH:

root@master # ceph-salt config /ssh generate
Key pair generated.
root@master # ceph-salt config /ssh ls
o- ssh .................................................. [Key Pair set]
  o- private_key ..... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]
  o- public_key ...... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]

7.2.8 Configurando o servidor de horário

Todos os nós do cluster precisam ter o horário sincronizado com uma fonte de horário confiável. Há vários cenários para realizar a sincronização de horário:

  • Se todos os nós do cluster já estiverem configurados para sincronizar o horário usando um serviço NTP de sua escolha, desabilite completamente o processamento do servidor de horário:

    root@master # ceph-salt config /time_server disable
  • Se o seu site já tiver uma fonte de horário única, especifique o nome de host dessa fonte:

     root@master # ceph-salt config /time_server/servers add time-server.example.com
  • Se preferir, o ceph-salt pode configurar um dos Minions Salt para agir como o servidor de horário para o restante do cluster. Esse recurso às vezes é chamado de “servidor de horário interno”. Nesse cenário, o ceph-salt configura o servidor de horário interno (que deve ser um dos Minions Salt) para sincronizar seu horário com um servidor de horário externo, como pool.ntp.org, e configura todos os outros minions para obter o horário do servidor de horário interno. Isso pode ser feito da seguinte maneira:

    root@master # ceph-salt config /time_server/servers add ses-master.example.com
    root@master # ceph-salt config /time_server/external_servers add pool.ntp.org

    A opção /time_server/subnet especifica a sub-rede da qual os clientes NTP têm permissão para acessar o servidor NTP. Ela é definida automaticamente quando você especifica /time_server/servers. Se você precisar mudá-la ou especificá-la manualmente, execute:

    root@master # ceph-salt config /time_server/subnet set 10.20.6.0/24

Verifique as configurações do servidor de horário:

root@master # ceph-salt config /time_server ls
o- time_server ................................................ [enabled]
  o- external_servers ............................................... [1]
  | o- pool.ntp.org ............................................... [...]
  o- servers ........................................................ [1]
  | o- ses-master.example.com ..................................... [...]
  o- subnet .............................................. [10.20.6.0/24]

Encontre mais informações sobre como configurar a sincronização de horário em https://documentation.suse.com/sles/15-SP3/html/SLES-all/cha-ntp.html#sec-ntp-yast.

7.2.9 Configurando as credenciais de login do Ceph Dashboard

O Ceph Dashboard estará disponível após a implantação do cluster básico. Para acessá-lo, você precisa definir um nome de usuário e uma senha válidos, por exemplo:

root@master # ceph-salt config /cephadm_bootstrap/dashboard/username set admin
root@master # ceph-salt config /cephadm_bootstrap/dashboard/password set PWD
Dica
Dica: Forçando atualização da senha

Por padrão, o primeiro usuário do painel de controle será forçado a mudar sua senha ao efetuar o primeiro login. Para desabilitar esse recurso, execute o seguinte comando:

root@master # ceph-salt config /cephadm_bootstrap/dashboard/force_password_update disable

7.2.10 Usando o registro do container

O cluster do Ceph precisa ter acesso a um registro de container para que possa fazer download e implantar os serviços do Ceph em container. Há duas maneiras de acessar o registro:

  • Se o cluster puder acessar o registro padrão em registration.suse.com (diretamente ou por proxy), você poderá apontar o ceph-salt diretamente para esse URL sem criar um registro local. Continue seguindo as etapas na Seção 7.2.10.2, “Configurando o caminho para imagens de container”.

  • Se o cluster não puder acessar o registro padrão, por exemplo, para uma implantação isolada (air-gapped), você precisará configurar um registro de container local. Depois que o registro local for criado e configurado, você precisará apontar o ceph-salt para ele.

7.2.10.1 Criando e configurando o registro local (opcional)

Importante
Importante

Há vários métodos de criação de um registro local. As instruções nesta seção são exemplos de criação de registros seguros e não seguros. Para obter informações gerais sobre a execução de um registro de imagem de container, consulte https://documentation.suse.com/sles/15-SP3/single-html/SLES-container/#sec-docker-registry-installation.

Dica
Dica: Posicionamento e uso de porta

Implante o registro em uma máquina acessível a todos os nós no cluster. Recomendamos o Nó de Admin. Por padrão, o registro escuta na porta 5000.

No nó de registro, use o seguinte comando para garantir que a porta esteja livre:

ss -tulpn | grep :5000

Se outros processos (como iscsi-tcmu) já estiverem escutando na porta 5000, determine outra porta livre que possa ser usada para mapear para a porta 5000 no container de registro.

Procedimento 7.1: Criando o registro local
  1. Verifique se a extensão Containers Module está habilitada:

    > SUSEConnect --list-extensions | grep -A2 "Containers Module"
    Containers Module 15 SP3 x86_64 (Activated)
  2. Verifique se os seguintes pacotes estão instalados: apache2-utils (no caso de habilitar um registro seguro), cni, cni-plugins, podman, podman-cni-config e skopeo.

  3. Colete as seguintes informações:

    • Nome de domínio completo e qualificado do host de registro (REG_HOST_FQDN).

    • Um número de porta disponível usado para mapear para a porta 5000 do container de registro (REG_HOST_PORT).

    • Se o registro será seguro ou não seguro (insecure=[true|false]).

  4. Para iniciar um registro não seguro (sem criptografia SSL), siga estas etapas:

    1. Configure o ceph-salt para o registro não seguro:

      cephuser@adm > ceph-salt config containers/registries_conf enable
      cephuser@adm > ceph-salt config containers/registries_conf/registries \
       add prefix=REG_HOST_FQDN insecure=true \
       location=REG_HOST_PORT:5000
    2. Inicie o registro não seguro criando o diretório necessário (por exemplo, /var/lib/registry) e iniciando o registro com o comando podman:

      # mkdir -p /var/lib/registry
      # podman run --privileged -d --name registry \
       -p REG_HOST_PORT:5000 -v /var/lib/registry:/var/lib/registry \
       --restart=always registry:2
    3. Para que o registro seja iniciado após uma reinicialização, crie um arquivo da unidade systemd para ele e habilite-o:

      > sudo podman generate systemd --files --name registry
      > sudo mv container-registry.service /etc/systemd/system/
      > sudo systemctl enable container-registry.service
  5. Para iniciar um registro seguro, siga estas etapas:

    1. Crie os diretórios necessários:

      # mkdir -p /var/lib/registry/{auth,certs}
    2. Gere um certificado SSL:

      # openssl req -newkey rsa:4096 -nodes -sha256 \
       -keyout /var/lib/registry/certs/domain.key -x509 -days 365 \
       -out /var/lib/registry/certs/domain.crt
      Nota
      Nota

      Defina o valor CN=[value] como o nome de domínio completo e qualificado do host ([REG_HOST_FQDN]).

    3. Copie o certificado para todos os nós do cluster e atualize o cache do certificado:

      # salt-cp '*' /var/lib/registry/certs/domain.crt \
       /etc/pki/trust/anchors/
      # salt '*' cmd.shell "update-ca-certificates"
    4. Gere uma combinação de nome de usuário e senha para autenticação no registro:

      # htpasswd2 -bBc /var/lib/registry/auth/htpasswd \
       REG_USERNAME REG_PASSWORD
    5. Inicie o registro seguro. Use o flag REGISTRY_STORAGE_DELETE_ENABLED=true para que você possa apagar imagens posteriormente com o comando skopeo delete.

      podman run --name myregistry -p REG_HOST_PORT:5000 \
       -v /var/lib/registry:/var/lib/registry \
       -v /var/lib/registry/auth:/auth:z \
       -e "REGISTRY_AUTH=htpasswd" \
       -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
       -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
       -v /var/lib/registry/certs:/certs:z \
       -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt" \
       -e "REGISTRY_HTTP_TLS_KEY=/certs/domain.key" \
       -e REGISTRY_STORAGE_DELETE_ENABLED=true \
       -e REGISTRY_COMPATIBILITY_SCHEMA1_ENABLED=true -d registry:2
    6. Teste o acesso seguro ao registro:

      > curl https://REG_HOST_FQDN:REG_HOST_PORT/v2/_catalog \
       -u REG_USERNAME:REG_PASSWORD
  6. Quando o registro local é criado, você precisa sincronizar as imagens de container do registro oficial do SUSE em registry.suse.com com o registro local. Você pode usar o comando skopeo sync incluído no pacote skopeo para essa finalidade. Para obter mais detalhes, consulte a página de manual (man 1 skopeo-sync). Considere estes exemplos:

    Exemplo 7.1: Vendo arquivos de manifesto
    skopeo inspect docker://registry.suse.com/ses/7.1/ceph/ceph | jq .RepoTags
    skopeo inspect docker://registry.suse.com/ses/7.1/ceph/grafana | jq .RepoTags
    skopeo inspect docker://registry.suse.com/ses/7.1/ceph/prometheus-server:2.32.1 | jq .RepoTags
    skopeo inspect docker://registry.suse.com/ses/7.1/ceph/prometheus-node-exporter:1.1.2 | jq .RepoTags
    skopeo inspect docker://registry.suse.com/ses/7.1/ceph/prometheus-alertmanager:0.21.0 | jq .RepoTags
    Exemplo 7.2: Sincronizar com um diretório

    Sincronizar todas as imagens do Ceph:

    skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/ceph /root/images/

    Sincronizar apenas as imagens mais recentes:

    skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/ceph:latest /root/images/
    Exemplo 7.3: Sincronizar as imagens do Grafana:
    skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/grafana /root/images/

    Sincronizar apenas as imagens mais recentes do Grafana:

    skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/grafana:latest /root/images/
    Exemplo 7.4: Sincronizar as imagens mais recentes do Prometheus
    skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/prometheus-server:2.32.1 /root/images/
    skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/prometheus-node-exporter:1.1.2 /root/images/
    skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/prometheus-alertmanager:0.21.0 /root/images/
Procedimento 7.2: Configurar o registro local e as credenciais de acesso
  1. Configure o URL do registro local:

    cephuser@adm > ceph-salt config /containers/registry_auth/registry set REG_HOST_URL
  2. Configure o nome de usuário e a senha para acessar o registro local:

    cephuser@adm > ceph-salt config /containers/registry_auth/username set REG_USERNAME
    cephuser@adm > ceph-salt config /containers/registry_auth/password set REG_PASSWORD
Dica
Dica: Cache de registro

Para evitar a ressincronização do registro local quando novos containers atualizados forem exibidos, você pode configurar um cache de registro.

7.2.10.2 Configurando o caminho para imagens de container

Importante
Importante

Esta seção ajuda você a configurar o caminho para as imagens de container do cluster de boot (implantação do primeiro par de Ceph Monitor e Ceph Manager). O caminho não se aplica a imagens de container de serviços adicionais, por exemplo, a pilha de monitoramento.

Dica
Dica: Configurando o proxy HTTPS

Se você precisa usar um proxy para se comunicar com o servidor de registro do container, execute as seguintes etapas de configuração em todos os nós do cluster:

  1. Copie o arquivo de configuração dos containers:

    > sudo cp /usr/share/containers/containers.conf /etc/containers/containers.conf
  2. Edite o arquivo recém-copiado e adicione a configuração http_proxy a esta seção [engine], por exemplo:

    > cat /etc/containers/containers.conf
     [engine]
     http_proxy=proxy.example.com
     [...]

O cephadm precisa saber um caminho de URI válido para as imagens de container. Verifique a configuração padrão executando:

root@master # ceph-salt config /cephadm_bootstrap/ceph_image_path ls

Se você não precisa de um registro alternativo ou local, especifique o registro de container do SUSE padrão:

root@master # ceph-salt config /cephadm_bootstrap/ceph_image_path set registry.suse.com/ses/7.1/ceph/ceph

Se a implantação exigir um caminho específico, por exemplo, um caminho para um registro local, configure-o da seguinte maneira:

root@master # ceph-salt config /cephadm_bootstrap/ceph_image_path set LOCAL_REGISTRY_PATH

7.2.11 Habilitando a criptografia de dados em trânsito (msgr2)

O Messenger v2 (MSGR2) é o protocolo on-wire do Ceph. Ele oferece um modo de segurança que criptografa todos os dados que passam pela rede, encapsulamento de payloads de autenticação e habilitação da integração futura de novos modos de autenticação (como Kerberos).

Importante
Importante

Atualmente, o msgr2 não é suportado pelos clientes Ceph do kernel do Linux, como CephFS e Dispositivo de Blocos RADOS.

Os daemons do Ceph podem se vincular a várias portas, permitindo que os clientes Ceph legados e os novos clientes compatíveis com a versão 2 se conectem ao mesmo cluster. Por padrão, os MONs agora se vinculam à nova porta 3300 atribuída pela IANA (CE4h ou 0xCE4) para o novo protocolo v2 e também à porta antiga padrão 6789 para o protocolo v1 legado.

O protocolo v2 (MSGR2) suporta dois modos de conexão:

modo crc

Uma autenticação inicial forte quando a conexão é estabelecida e uma verificação de integridade CRC32C.

modo seguro

Uma autenticação inicial forte quando a conexão é estabelecida e a criptografia completa de todo o tráfego pós-autenticação, incluindo uma verificação de integridade criptográfica.

Para a maioria das conexões, há opções que controlam os modos que são usados:

ms_cluster_mode

O modo de conexão (ou modos permitidos) usado para comunicação intracluster entre os daemons do Ceph. Se houver vários modos na lista, a preferência será dos que forem listados primeiro.

ms_service_mode

Uma lista de modos permitidos para os clientes usarem na conexão com o cluster.

ms_client_mode

Uma lista de modos de conexão, em ordem de preferência, para os clientes usarem (ou permitirem) na comunicação com um cluster do Ceph.

Há um conjunto paralelo de opções que se aplicam especificamente aos monitores, permitindo que os administradores definam requisitos diferentes (geralmente mais seguros) para comunicação com os monitores.

ms_mon_cluster_mode

O modo de conexão (ou modos permitidos) que será usado entre os monitores.

ms_mon_service_mode

Uma lista de modos permitidos para clientes ou outros daemons do Ceph usarem na conexão com monitores.

ms_mon_client_mode

Uma lista de modos de conexão, em ordem de preferência, para clientes ou daemons que não são de monitor usarem na conexão com monitores.

Para habilitar o modo de criptografia MSGR2 durante a implantação, você precisa adicionar algumas opções à configuração do ceph-salt antes de executar o ceph-salt apply.

Para usar o modo secure, execute os comandos a seguir.

Adicione a seção global ao ceph_conf na ferramenta de configuração do ceph-salt:

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf add global

Defina as seguintes opções:

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_cluster_mode "secure crc"
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_service_mode "secure crc"
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_client_mode "secure crc"
Nota
Nota

Certifique-se de que secure venha antes de crc.

Para forçar o modo secure, execute os seguintes comandos:

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_cluster_mode secure
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_service_mode secure
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_client_mode secure
Dica
Dica: Atualizando as configurações

Para mudar qualquer uma das configurações acima, defina as mudanças de configuração no armazenamento de configuração do monitor. Isso é feito usando o comando ceph config set.

root@master # ceph config set global CONNECTION_OPTION CONNECTION_MODE [--force]

Por exemplo:

root@master # ceph config set global ms_cluster_mode "secure crc"

Para verificar o valor atual, incluindo o valor padrão, execute o seguinte comando:

root@master # ceph config get CEPH_COMPONENT CONNECTION_OPTION

Por exemplo, para obter o ms_cluster_mode dos OSD's, execute:

root@master # ceph config get osd ms_cluster_mode

7.2.12 Configurando a rede do cluster

Opcionalmente, se você executar uma rede de cluster separada, talvez seja necessário definir o endereço IP da rede do cluster seguido pela parte da máscara de sub-rede após a barra, por exemplo, 192.168.10.22/24.

Execute os seguintes comandos para habilitar cluster_network:

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf add global
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set cluster_network NETWORK_ADDR

7.2.13 Verificando a configuração do cluster

A configuração mínima do cluster foi concluída. Verifique se há erros óbvios:

root@master # ceph-salt config ls
o- / ............................................................... [...]
  o- ceph_cluster .................................................. [...]
  | o- minions .............................................. [Minions: 5]
  | | o- ses-master.example.com .................................. [admin]
  | | o- ses-min1.example.com ......................... [bootstrap, admin]
  | | o- ses-min2.example.com ................................. [no roles]
  | | o- ses-min3.example.com ................................. [no roles]
  | | o- ses-min4.example.com ................................. [no roles]
  | o- roles ....................................................... [...]
  |   o- admin .............................................. [Minions: 2]
  |   | o- ses-master.example.com ....................... [no other roles]
  |   | o- ses-min1.example.com ................. [other roles: bootstrap]
  |   o- bootstrap ................................ [ses-min1.example.com]
  |   o- cephadm ............................................ [Minions: 5]
  |   o- tuned ..................................................... [...]
  |     o- latency .......................................... [no minions]
  |     o- throughput ....................................... [no minions]
  o- cephadm_bootstrap ............................................. [...]
  | o- advanced .................................................... [...]
  | o- ceph_conf ................................................... [...]
  | o- ceph_image_path .............. [registry.suse.com/ses/7.1/ceph/ceph]
  | o- dashboard ................................................... [...]
  |   o- force_password_update ................................. [enabled]
  |   o- password ................................... [randomly generated]
  |   o- username ................................................ [admin]
  | o- mon_ip ............................................ [192.168.10.20]
  o- containers .................................................... [...]
  | o- registries_conf ......................................... [enabled]
  | | o- registries .............................................. [empty]
  | o- registry_auth ............................................... [...]
  |   o- password .............................................. [not set]
  |   o- registry .............................................. [not set]
  |   o- username .............................................. [not set]
  o- ssh .................................................. [Key Pair set]
  | o- private_key ..... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]
  | o- public_key ...... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]
  o- time_server ............................................... [enabled]
    o- external_servers .............................................. [1]
    | o- 0.pt.pool.ntp.org ......................................... [...]
    o- servers ....................................................... [1]
    | o- ses-master.example.com .................................... [...]
    o- subnet ............................................. [10.20.6.0/24]
Dica
Dica: Status da configuração do cluster

Você pode verificar se a configuração do cluster é válida executando o seguinte comando:

root@master # ceph-salt status
cluster: 5 minions, 0 hosts managed by cephadm
config: OK

7.2.14 Exportando as configurações do cluster

Depois de configurar o cluster básico e sua configuração estiver válida, convém exportá-la para um arquivo:

root@master # ceph-salt export > cluster.json
Atenção
Atenção

A saída do comando ceph-salt export inclui a chave privada SSH. Se você estiver preocupado com as implicações de segurança, não execute esse comando sem tomar as devidas precauções.

Caso você danifique a configuração do cluster e tenha de reverter para um estado de backup, execute:

root@master # ceph-salt import cluster.json

7.3 Atualizando os nós e o cluster mínimo de boot

Antes de implantar o cluster, atualize todos os pacotes de software em todos os nós:

root@master # ceph-salt update

Se um nó relatar que a Reinicialização é necessária durante a atualização, os pacotes importantes do OS, como o kernel, foram atualizados para uma versão mais recente, e você precisa reinicializar o nó para aplicar as mudanças.

Para reinicializar todos os nós que exigem reinicialização, anexe a opção --reboot

root@master # ceph-salt update --reboot

Se preferir, reinicialize-os em uma etapa separada:

root@master # ceph-salt reboot
Importante
Importante

O Master Salt nunca é reinicializado pelos comandos ceph-salt update --reboot ou ceph-salt reboot. Se o Master Salt precisar ser reinicializado, você deverá reinicializá-lo manualmente.

Após a atualização dos nós, inicialize o cluster mínimo:

root@master # ceph-salt apply
Nota
Nota

Quando a inicialização for concluída, o cluster terá um Ceph Monitor e um Ceph Manager.

O comando acima abrirá uma interface do usuário interativa que mostra o andamento atual de cada minion.

Implantação de um cluster mínimo
Figura 7.1: Implantação de um cluster mínimo
Dica
Dica: Modo não interativo

Se você precisa aplicar a configuração de um script, também há um modo de implantação não interativo. Ele também é útil para implantar o cluster de uma máquina remota, porque a atualização constante das informações de andamento na tela pela rede pode provocar distração:

root@master # ceph-salt apply --non-interactive

7.4 Revisando as etapas finais

Após a conclusão do comando ceph-salt apply, você deverá ter um Ceph Monitor e um Ceph Manager. Você deve conseguir executar o comando ceph status com êxito em qualquer um dos minions que receberam a função admin como root ou o usuário cephadm por meio do sudo.

As próximas etapas envolvem o uso do cephadm para implantar mais Ceph Monitor, Ceph Manager, OSDs, Pilha de Monitoramento e Gateways.

Antes de continuar, revise as novas configurações de rede do cluster. Neste ponto, a configuração public_network foi preenchida com base no que foi inserido para /cephadm_bootstrap/mon_ip na configuração do ceph-salt. No entanto, essa configuração foi aplicada apenas ao Ceph Monitor. Você pode revisá-la com o seguinte comando:

root@master # ceph config get mon public_network

Esse é o mínimo necessário para o Ceph funcionar, mas recomendamos tornar essa configuração public_network global, o que significa que ela será aplicada a todos os tipos de daemons do Ceph, e não apenas aos MONs:

root@master # ceph config set global public_network "$(ceph config get mon public_network)"
Nota
Nota

Essa etapa não é obrigatória. No entanto, se você não usar essa configuração, os Ceph OSDs e outros daemons (exceto o Ceph Monitor) escutarão em todos os endereços.

Para que seus OSDs se comuniquem entre si usando uma rede completamente separada, execute o seguinte comando:

root@master # ceph config set global cluster_network "cluster_network_in_cidr_notation"

A execução desse comando garante que os OSDs criados em sua implantação usem a rede de cluster pretendida desde o início.

Se o cluster estiver definido para ter nós densos (mais de 62 OSDs por host), atribua portas suficientes aos Ceph OSDs. Atualmente, a faixa padrão (6800-7300) não permite mais do que 62 OSDs por host. Para um cluster com nós densos, ajuste a configuração ms_bind_port_max para um valor adequado. Cada OSD consumirá oito portas adicionais. Por exemplo, um host definido para executar 96 OSDs requer 768 portas. ms_bind_port_max deve ser definido, no mínimo, como 7568 executando o seguinte comando:

root@master # ceph config set osd.* ms_bind_port_max 7568

Você precisará ajustar as configurações de firewall de acordo para que isso funcione. Consulte o Section 13.7, “Firewall settings for Ceph” para obter mais informações.

7.5 Desabilitar clientes não seguros

Desde o Pacific v15.2.11, um novo aviso de saúde foi implementado para informar a você que clientes não seguros têm permissão para ingressar no cluster. Por padrão, esse aviso está ativado. O Ceph Dashboard mostrará o cluster no status HEALTH_WARN, e a verificação do status do cluster na linha de comando informará o seguinte:

cephuser@adm > ceph status
cluster:
  id:     3fe8b35a-689f-4970-819d-0e6b11f6707c
  health: HEALTH_WARN
  mons are allowing insecure global_id reclaim
[...]

Esse aviso significa que os Ceph Monitors ainda permitem que clientes antigos e sem patch se conectem ao cluster. Isso garante que os clientes existentes ainda consigam se conectar durante o upgrade do cluster, mas avisa você de que há um problema que precisa ser resolvido. Quando o upgrade do cluster e de todos os clientes for feito para a versão mais recente do Ceph, execute o seguinte comando para não permitir os clientes sem patch:

cephuser@adm > ceph config set mon auth_allow_insecure_global_id_reclaim false