Muitos sistemas de software que dependem de um cuidadoso sequenciamento de eventos se baseiam em um relógio de sistema estável e consistente, usando logs do sistema com carimbos de data/hora para garantir a sincronização de tempo e depurar problemas à medida que ocorrem. Para manter os relógios do sistema em sincronia, as instâncias de máquinas virtuais (VMs) do Compute Engine são pré-configuradas para usar o Network Time Protocol (NTP), uma solução integrada de hardware e software de sincronização de tempo. Se for importante para suas metas garantir a sincronização e o monitoramento precisos do tempo, configure o tempo preciso em vez do NTP para sincronizar o relógio da VM com o relógio do host usando chrony e ptp_kvm. Essa configuração foi projetada para alcançar uma precisão de 1 ms em configurações compatíveis.
Tipos de máquina compatíveis
Os seguintes tipos de máquina são compatíveis com a hora exata:
Sistemas operacionais compatíveis
Os seguintes sistemas operacionais (SO) oferecem suporte a hora precisa:
| SO | Versões | Imagens |
|---|---|---|
| CentOS Stream | 9 | centos-stream-9 |
| Container-Optimized OS | COS 105 LTS, COS 109 LTS, COS 113 LTS, COS 117 LTS | cos-105-lts, cos-109-lts, cos-113-lts, cos-117-lts |
| Debian | 11 (Bullseye), 12 (Bookworm) | debian-11, debian-12 |
| Fedora Cloud | 39 | fedora-cloud-39 |
| RHEL | 8 e 9 | rhel-8-4-sap-ha, rhel-8-6-sap-ha, rhel-8-8-sap-ha, rhel-8-10-sap-ha, rhel-9, rhel-9-0-sap-ha, rhel-9-2-sap-ha, rhel-9-4-sap-ha |
| Rocky Linux | 8 e 9 | rocky-linux-8, rocky-linux-8-optimized-gcp, rocky-linux-9-optimized-gcp, rocky-linux-9-optimized-gcp |
| SLES | 15 | sles-15, sles-15-sp2-byos, sles-15-sp2-sap, sles-15-sp3-byos, sles-15-sp3-sap, sles-15-sp4-byos, sles-15-sp4-sap, sles-15-sp5-byos, sles-15-sp5-sap |
| Ubuntu | 22.04 LTS (Jammy Jellyfish), 24.04 LTS (Noble Numbat) | ubuntu-2204-lts, ubuntu-2404-lts-amd64 |
| Ubuntu Pro | 2004 | ubuntu-pro-2004-lts, ubuntu-pro-2004-lts-amd64 |
Zonas disponíveis
As seguintes zonas são compatíveis com horário preciso:
| Zona | Local |
|---|---|
europe-west1-b |
St. Ghislain, Bélgica, Europa |
europe-west1-c |
St. Ghislain, Bélgica, Europa |
europe-west2-b |
Londres, Inglaterra, Europa |
europe-west3-a |
Frankfurt, Alemanha, Europa |
us-central1-a |
Council Bluffs, Iowa, América do Norte |
us-central1-b |
Council Bluffs, Iowa, América do Norte |
us-central1-c |
Council Bluffs, Iowa, América do Norte |
us-central1-f |
Council Bluffs, Iowa, América do Norte |
us-east1-b
|
Moncks Corner, Carolina do Sul, América do Norte |
us-east1-c
|
Moncks Corner, Carolina do Sul, América do Norte |
us-east4-c |
Ashburn, Virgínia, América do Norte |
us-east5-a |
Columbus, Ohio, América do Norte |
us-south1-a |
Dallas, Texas, América do Norte |
us-west1-b |
The Dalles, Oregon, América do Norte |
us-west2-a
|
Los Angeles, Califórnia, América do Norte |
us-west3-a |
Salt Lake City, Utah, América do Norte |
Configurar uma sincronização de horário precisa
Para configurar uma sincronização de tempo precisa para as VMs do seu projeto, conclua as tarefas a seguir para cada VM:
- Configure
chronypara usarptp-kvmcomo fonte de tempo. - Configure o Google Cloud Agente de operações para coleta e análise de dados.
Depois de concluir as duas tarefas, a sincronização precisa de tempo será configurada para as VMs no seu projeto.
Para um exemplo de script que cria uma VM e conclui as duas tarefas para configurar uma sincronização de tempo precisa, consulte o script de criação de VM no GitHub.
Configure chrony para usar ptp-kvm
Para configurar o chrony para usar o ptp-kvm como fonte de tempo, execute o seguinte script em cada uma das VMs do projeto Google Cloud :
Configurar o Google Cloud agente de operações na sua VM
Para configurar o Google Cloud Agente de operações para coleta e análise de dados, execute o seguinte script em cada uma das VMs do projeto Google Cloud :
Configurar o monitoramento da sincronização de horário
Para configurar o monitoramento da sincronização de tempo das VMs do projeto Google Cloud, execute o script de configuração de painel e geração de registros do projeto Google Cloud . Esse script ajuda você a concluir as seguintes tarefas para seu projeto do Google Cloud :
- Ele define as permissões adequadas na conta de serviço associada ao projeto Google Cloud da VM.
- Ele cria uma métrica com base em registros que o
chronyusa para garantir a precisão entre os relógios na VM e no servidor host. - Ele cria um painel que mede a rastreabilidade do relógio da VM para UTC combinando as seguintes métricas:
- A precisão do relógio do host da VM em relação ao UTC, que está disponível como uma métricaGoogle Cloud ,
instance/clock_accuracy/ptp_kvm/nanosecond_accuracy. - As métricas
chronyque medem a precisão do relógio da VM em relação ao relógio do host.
- A precisão do relógio do host da VM em relação ao UTC, que está disponível como uma métricaGoogle Cloud ,
Para realizar as tarefas anteriores, execute o seguinte script:
Depois que o script terminar de ser executado, use o painel criado para conferir os dados de acurácia do relógio das VMs do seu projeto.
A seguir
- Para ver um exemplo completo de código para configurar a hora exata, incluindo exemplos do Google Kubernetes Engine, acesse o repositório de exemplos.
- Revise as opções disponíveis para configurar a sincronização de horário da VM.