O service de sincronização de tempo PTP sincroniza o relógio de uma instância ECS com uma source de relógio atômico da Alibaba Cloud por meio do Precision Time Protocol (PTP). Use o PTP para cargas de trabalho que exigem alinhamento de relógio mais preciso do que os protocolos de tempo de rede baseados em software podem oferecer, como negociações financeiras de alta frequência.
O que é PTP
O PTP é um protocolo de sincronização de tempo de rede de alta precisão baseado no padrão IEEE 1588. Protocolos tradicionais, como o NTP, limitam-se à precisão de milissegundos, principalmente devido à latência de processamento de software e ao jitter de rede. O PTP supera essa limitação e sincroniza os relógios de dispositivos em um sistema distribuído usando carimbos de data/hora via hardware, compensação dinâmica de caminho e negociação inteligente de relógio mestre-escravo.
Em comparação com o NTP, o PTP transfere o processamento de carimbos de data/hora para o hardware, reduzindo a sobrecarga de CPU e de rede, além de melhorar a precisão:
|
Recurso |
PTP |
NTP |
|
Precisão |
Submicrossegundo |
Milissegundo |
|
Implementação de carimbo de data/hora |
Suporte de hardware (como dispositivos PHC) |
Implementação via software |
|
Ambiente de rede |
Rede local ou baixa latência |
Rede de longa distância |
|
Consumo de recursos |
Baixo (frequência de mensagens controlável) |
Alto (depende de trocas frequentes de mensagens) |
|
Aplicação típica |
Controle industrial, negociações financeiras e comunicações 5G |
Servidores de internet, dispositivos gerais |
Como o PTP funciona na Alibaba Cloud
A Alibaba Cloud implanta relógios atômicos redundantes no modo ativo-standby no nível da zona. O relógio atômico primário sincroniza com o horário GPS e constrói uma topologia hierárquica de sincronização de tempo baseada no protocolo de relógio de borda PTP IEEE 1588, fornecendo sinais de tempo às instâncias ECS nível por nível.
Por padrão, as instâncias ECS usam Chrony ou NTP para sincronização de tempo.
Casos de uso
Negociações financeiras de alta frequência — A precisão de submicrossegundo e os carimbos de data/hora via hardware do PTP mantêm o tempo das ordens estritamente alinhado entre as bolsas de valores, evitando disputas de sequência de negociação causadas por desvio de relógio. Combinado com o controle de jitter de submicrossegundo em redes de baixa latência, o PTP atende aos rigorosos requisitos de conformidade e equidade de tempo para negociações de alta frequência.
Pré-requisitos
Antes de ativar o service de sincronização de tempo PTP para uma instância ECS, confirme se o acesso ao service, os recursos da instância e o ambiente interno atendem aos seguintes requisitos.
Acesso ao service
Visualização mediante convite — O recurso de sincronização de tempo PTP está atualmente em visualização mediante convite. Para usar este recurso, envie um ticket para solicitar o acesso.
Recursos da instância
Regiões e zonas
O PTP é compatível nas seguintes regiões e zonas:
|
Nome da região |
ID da região |
Nome da zona |
ID da zona |
|
China (Hong Kong) |
cn-hongkong |
Zone B (Invitational Preview) |
cn-hongkong-b |
|
Zone C (Invitational Preview) |
cn-hongkong-c |
||
|
Zone D (Invitational Preview) |
cn-hongkong-d |
Famílias de instâncias
As seguintes famílias de instâncias oferecem suporte ao PTP:
general-purpose instance family g9i, compute-optimized instance family c9i e memory-optimized instance family r9i (visualização mediante convite)
Famílias de instâncias ECS Bare Metal de uso geral ebmg9i, ebmc9i e ebmr9i (visualização mediante convite)
-
High-clock speed compute-optimized instance family hfc9i, high-clock speed general-purpose instance family hfg9i e high-clock speed memory-optimized instance family hfr9i
Para verificar se um tipo específico de instância oferece suporte ao PTP, chame a operação DescribeInstanceTypes. Se o parâmetro
PtpSupportdentro do parâmetroClockda resposta estiver definido comosupported, o tipo de instância suporta PTP. Caso contrário, o parâmetroPtpSupportnão será incluído na resposta.
Imagens
Há suporte para imagens Linux. Recomenda-se o uso de uma versão oficial de imagem mantida. A tabela a seguir lista as versões de sistemas operacionais compatíveis.
|
Sistema operacional |
Versões suportadas |
|
Alibaba Cloud Linux |
2 a 4 |
|
Anolis OS |
8 |
|
Debian |
11 a 13 |
|
Ubuntu |
18.04 LTS a 26.04 LTS |
|
AlmaLinux |
8 a 10 |
|
Rocky Linux |
8 a 10 |
|
CentOS Stream |
8 a 10 |
|
RHEL |
9 a 10 |
|
Fedora |
33 a 44 |
|
OpenSUSE |
15,6, 16,0 |
|
SLES |
15SP2 a SP7, 16,0 |
Versão do kernel
A versão do kernel Linux deve ser 4.12 ou superior.
Ambiente interno da instância
Cloud Assistant — Os métodos de comando público e plugin exigem o Cloud Assistant, pré-instalado em imagens públicas. Se o Cloud Assistant não estiver instalado, consulte install the Cloud Assistant Agent.
Acesso à internet — O método de pacote de instalação baixa o script
ptp-monitorpela internet. Certifique-se de que a instância tenha acesso à internet.
Etapa 2: Criar ou adicionar instâncias ECS no conjunto de implantação
Todas as instâncias ECS em um conjunto de implantação são implantadas dentro do mesmo escopo de topologia de rede (PSW) na mesma zona, o que reduz a latência da rede. As instâncias também são distribuídas em diferentes servidores físicos sempre que possível, minimizando o impacto nos negócios em caso de falha de um único servidor.
Crie instâncias ECS com o service de sincronização de tempo PTP ativado no conjunto de implantação ou ative o service para instâncias ECS existentes e adicione-as ao conjunto:
console
O tipo de instância, a região e o número de instâncias ECS devem obedecer às limitações. Para mais informações, consulte Limitations.
-
Criar uma nova instância em um conjunto de implantação:
Na página de lista de conjuntos de implantação, localize o conjunto desejado. Na coluna Actions, clique em Create Instance. Na página Custom Launch, conclua a configuração da instância.
Adicionar uma instância existente a um conjunto de implantação: Consulte Change instance deployment set.
API
Criar uma nova instância em um conjunto de implantação: Chame a operação RunInstances e especifique o parâmetro
DeploymentSetId.-
Adicionar uma instância existente a um conjunto de implantação: Chame a operação ModifyInstanceDeployment e especifique os parâmetros
InstanceIdeDeploymentSetId.NotaSe o conjunto de implantação especificado usar a estratégia
AvailabilityGroup(estratégia de grupo de alta disponibilidade), use o parâmetroDeploymentSetGroupNopara especificar o número do grupo da instância dentro do conjunto.
Etapa 3: configure o PTP para as instâncias no conjunto de implantação
instale o driver PTP em cada instância do conjunto e configure o relógio PTP no chrony. Para obter instruções, consulte Enable the PTP time synchronization service.
Ative o service de sincronização de tempo PTP
A ativação do PTP para uma instância ECS ocorre em duas etapas. Na Etapa 1, ative o service de sincronização de tempo PTP para a instância no console ECS. Na Etapa 2, instale o driver PTP e configure o chrony dentro da instância. A instância não utilizará a source de relógio PTP até que ambas as etapas sejam concluídas.
Etapa 1: Ative o PTP para a instância no console ECS
crie uma instância com o PTP ativado
acesse a página Guia Custom Launch no console ECS. selecione uma região, um tipo de instância e uma imagem que ofereçam suporte ao PTP e, em seguida, ative o service de sincronização de tempo PTP na seção Advanced Options.
Ative o PTP para uma instância existente
Se o servidor físico atual da instância não oferecer suporte ao PTP, reinicie a instância para migrá-la para um servidor compatível e, depois, ative o PTP.
acesse o e clique em no ID da instância alvo para ir à página de detalhes da instância.
Na página Instance Details, escolha All Operations > Instance Settings > Configure PTP Clock Synchronization Service.
Na caixa de diálogo Configure PTP Clock Synchronization Service, ative o service de sincronização de tempo PTP e clique em OK. A janela PTP Time Synchronization Task será exibida.
-
clique em no ID da tarefa para visualize o progresso. Após a conclusão, a caixa de diálogo fecha automaticamente e o PTP é ativado para a instância.
A Etapa 1 apenas habilita a capacidade PTP na instância. Prossiga para a Etapa 2 para que a source de relógio PTP entre em vigor.
Etapa 2: instale o driver PTP e configure o chrony na instância
-
Escolha um método de configuração e conclua as etapas na aba correspondente.
Comandos públicos e recursos de plugin exigem o Cloud Assistant. A tabela a seguir descreve quando usar cada método:
|
Método |
Quando usar |
Requisitos |
|
Comandos comuns do Cloud Assistant (Recomendado) |
Quando você deseja ativar o PTP pelo console em uma única operação, sem fazer login na instância. |
Cloud Assistant instalado na instância. |
|
Plugin do Cloud Assistant |
Ideal para execute cada ação separadamente, como verifique o dispositivo PHC ou controlar o service ptp-monitor. |
Cloud Assistant |
|
Pacote de instalação |
Recomendado quando a instância não utiliza uma imagem pública. |
Acesso à internet a partir da instância para baixe o pacote de scripts. |
Comandos comuns do Cloud Assistant
acesse a Console ECS - Página do Cloud Assistant e clique em na aba Common Commands.
Localize o comando
ACS-ECS-EnablePTP-for-linux.she clique em Run na coluna Actions.selecione a instância em execução e clique em Run.
Após a conclusão do comando, confirme se a instância está usando o relógio de hardware PTP. Para instruções, consulte Verify and monitor PTP synchronization.
Plugin do Cloud Assistant
-
verifique se o dispositivo de hardware PHC existe.
lspci | grep 500cDepois que o service de sincronização de tempo PTP for ativado, o comando retornará as seguintes informações:
[root@ixxx ~]# lspci | grep 500c 00:07.0 Unclassified device [00ff]: Alibaba (China) Co., Ltd. Device 500cSe o dispositivo de hardware PHC não existir, envie um ticket.
-
execute o comando do Cloud Assistant para verifique sua versão.
acs-plugin-manager --versionA versão deve ser
2.2.3.631ou superior. Se for anterior, upgrade Cloud Assistant. -
confirme se o plugin do Cloud Assistant está disponível na região atual.
acs-plugin-manager --list | grep ACS-PTP-MonitorSe o plugin do Cloud Assistant não existir, envie um ticket.
-
instale o driver com o Cloud Assistant. O comando geralmente é concluído em até 10 minutos.
acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --install --timeout 0Se a instalação não for concluída, consulte Why does the "dkms: command not found" error occur when I install the driver? para obter o caminho do log de instalação do driver e as causas comuns.
-
Inicie o service ptp-monitor. Isso atualize a configuração do chrony, reinicia o chronyd, habilita a inicialização automática do ptp-monitor e inicia o service.
acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --start confirme se a instância está usando o relógio de hardware PTP. Para instruções, consulte Verify and monitor PTP synchronization.
Pacote de instalação
-
execute o seguinte comando para verifique o dispositivo de hardware PHC.
lspci | grep 500cDepois que o service de sincronização de tempo PTP for ativado, o comando retornará as seguintes informações:
[root@ixxx ~]# lspci | grep 500c 00:07.0 Unclassified device [00ff]: Alibaba (China) Co., Ltd. Device 500c -
execute o comando abaixo para baixe o pacote compactado de scripts. É necessário acesso à internet. Após a ativação do PTP em uma instância ECS, o script
ptp-monitorconclui a implantação e a configuração em uma única operação.wget https://ptp-monitor-hk.oss-cn-hongkong.aliyuncs.com/ptp-monitor/ptp-monitor-latest.zip -
instale o
unzipe descompacte o pacote. Em sistemas operacionais que usamyum, execute os seguintes comandos:yum install -y unzip unzip ptp-monitor-latest.zip -d ptp-monitor-latest cd ptp-monitor-latestEm sistemas operacionais como Ubuntu e Debian, execute os seguintes comandos:
sudo apt update && sudo apt install unzip unzip ptp-monitor-latest.zip -d ptp-monitor-latest cd ptp-monitor-latest -
execute o comando a seguir para compilar e instale o driver.
bash ptp-monitor.sh --installSe a instalação falhar, consulte Why does the "dkms: command not found" error occur when I install the driver? para obter o caminho do log de instalação do driver e as causas comuns.
-
execute o comando abaixo para confirme se o driver PTP está instalado. O
ptp-monitorcompila o driver PTP com base na versão atual do sistema operacional. O driver é nomeadoptp_cipu.lsmod | grep ptp_cipu -
execute o seguinte comando para confirme se o arquivo de dispositivo PTP foi gerado.
ls -l /dev/ptp*Se as informações do arquivo de dispositivo forem retornadas, o driver estará funcionando corretamente:
[root@xxxxxxxxxx ~]# ll /dev/ptp* crw------- 1 root root 247, 0 Jul 30 11:22 /dev/ptp0 execute o comando a seguir para configure o chrony, reiniciar o service chronyd e execute o service ptp-monitor.
bash ptp-monitor.sh --start
Após reiniciar o service chronyd, a source de relógio PTP entra em vigor em algumas dezenas de segundos. Você pode verifique isso através de viewing the PTP synchronization status.
verifique e monitorar a sincronização PTP
Após ativar o service de sincronização de tempo PTP, utilize os comandos chronyc para confirme se a instância ECS usa o relógio de hardware PTP e acompanhar a integridade do relógio.
visualize o status de sincronização PTP
execute chronyc sources para ver o status das fontes de tempo configuradas (PTP e NTP). A sincronização PTP está funcionando quando a source PHC0 estiver marcada com #*.
Saída de exemplo:
O exemplo a seguir mostra uma instância com o service de sincronização de tempo PTP ativado e configurado. A instância usa o relógio de hardware PTP como source primária de sincronização, e o deslocamento medido está no nível de nanossegundos:
[root@iZxxx Z ptp-monitor-latest]# chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
#* PHC0 0 4 56 37 -28ns[ -13ns] +/- 320ns
MS: identificador da source de tempo.PHC0indica o relógio de hardware PTP. Um endereço IP indica um NTP server.#*marca a source de sincronização atual, significando que a instância está usando o relógio de hardware PTP.Stratum: camada da source de tempo. Um valor menor indica maior precisão (0 é um relógio atômico ou GPS, e 1 é uma source de alta precisão diretamente conectada).Poll: expoente do intervalo de sondagem. O intervalo atual é de2^Pollsegundos. Por exemplo,Poll=4indica 16 segundos.Reach: valor octal que indica a taxa de sucesso das últimas oito tentativas de sincronização.LastRx: tempo decorrido desde a última resposta recebida, em segundos.Last sample: deslocamento do relógio da última medição, no formatooffset [raw offset] +/- error, refletindo a diferença entre o horário do sistema e o da source.
Monitorar a integridade da sincronização PTP
execute chronyc tracking para monitorar e avaliar a integridade do relógio do sistema, incluindo métricas dinâmicas como viés de tempo, erro de frequência e latência de rede, garantindo confiabilidade para aplicações sensíveis ao tempo, como negociações financeiras.
Saída de exemplo:
No exemplo a seguir, o viés de tempo medido está no nível de nanossegundos (System time = 1 ns, RMS offset = 1,175 ns), atendendo aos requisitos de alta precisão, e o erro de frequência é baixo (5.213 ppm), indicando uma operação estável do relógio de hardware:
[root@iZ*** ptp-monitor-latest]# chronyc tracking
Reference ID : 50484330 (PHC0)
Stratum : 1
Ref time (UTC) : Fri Aug 08 02:52:40 2025
System time : 0.000000001 seconds fast of NTP time
Last offset : -0.000000973 seconds
RMS offset : 0.000001175 seconds
Frequency : 5.213 ppm slow
Residual freq : -0.001 ppm
Skew : 0.031 ppm
Root delay : 0.000000001 seconds
Root dispersion : 0.000038351 seconds
Update interval : 16.0 seconds
Leap status : Normal
System time: viés atual entre o relógio do sistema e o relógio de hardware PTPPHC0.slowsignifica que o horário do sistema está 1 nanossegundo atrasado (1 ns = 10⁻⁹ s).RMS offset: raiz quadrática média do deslocamento de longo prazo, que é de 1,175 nanossegundos neste exemplo, refletindo a estabilidade da sincronização.Frequency: viés de frequência do relógio do sistema.slowsignifica que o relógio local roda 5.213 microssegundos por segundo mais devagar que o relógio de hardware PTPPHC0(ppm = partes por milhão).Root delay: latência total de rede até a source de tempo raiz. A latência extremamente baixa na figura indica um ambiente de rede altamente estável.
Desativar o service de sincronização de tempo PTP
Desativar o PTP exige as mesmas duas etapas da ativação. Na Etapa 1, desative o service de sincronização de tempo PTP para a instância no console ECS. Na Etapa 2, remova a source de relógio PTP dentro da instância.
Etapa 1: Desativar o PTP para a instância no console ECS
acesse o e clique em no ID da instância alvo para ir à página de detalhes da instância.
Na página Instance Details, escolha All Operations > Instance Settings > Configure PTP Clock Synchronization Service.
Na caixa de diálogo Configure PTP Clock Synchronization Service, desative o service de sincronização de tempo PTP e clique em OK. A janela PTP Time Synchronization Task será exibida.
clique em no ID da tarefa para visualize o progresso. Após a conclusão, a caixa de diálogo fecha automaticamente e o PTP é desativado para a instância.
Etapa 2: Remover a source de relógio PTP na instância
Desativar o PTP remove o dispositivo PTP. Isso atualize o arquivo de configuração do chrony para remover a source de relógio de hardware PTP, reinicia o service chronyd para restaurar serviços de relógio padrão como NTP e interrompe o programa ptp-monitor.
-
Escolha um método e conclua as etapas na aba correspondente.
Comandos públicos e recursos de plugin exigem o Cloud Assistant. O Cloud Assistant vem pré-instalado em imagens públicas. Para uma instância que não usa imagem pública, utilize o pacote de instalação.
Comandos comuns do Cloud Assistant
acesse a Console ECS - Página do Cloud Assistant e clique em na aba Common Commands.
Localize o comando
ACS-ECS-DisablePTP-for-linux.she clique em Run na coluna Actions.selecione a instância em execução e clique em Run.
Plugin do Cloud Assistant
execute o seguinte comando para parar o service ptp-monitor.
acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --stop
Pacote de instalação
execute o seguinte comando para desativar a source de relógio PTP.
bash ptp-monitor.sh --stop
confirme que o PTP está desativado
execute chronyc sources para confirme que a source PHC0 não está mais listada e que a instância está sincronizada com um servidor NTP. Para instruções, consulte View the PTP synchronization status.
Para usar o PTP novamente na instância, repita o procedimento em Enable the PTP time synchronization service. Para remover o driver PTP da instância, consulte How do I uninstall the PTP driver?.
Perguntas frequentes
Posso ativar ou desativar o service de sincronização de tempo PTP usando a OpenAPI?
Sim. Use a operação de criação de instância para novas instâncias e a operação de opções de relógio para instâncias existentes e, em seguida, execute remotamente os comandos de configuração interna.
crie uma instância: chame a operação RunInstances e defina
PtpStatusemClockOptionscomoenabledoudisabledpara crie uma instância ECS com o service de sincronização de tempo PTP ativado ou desativado.-
Para uma instância existente: chame a operação ModifyInstanceClockOptions e defina
PtpStatuscomoenabledoudisabledpara ativar ou desativar o service de sincronização de tempo PTP para a instância.Em caso de sucesso, um ID de tarefa (
TaskId) é retornado. Você pode chamar a operação DescribeTasks comTaskActiondefinido comoModifyInstanceClockOptionseTaskIdsdefinido como o ID da tarefa correspondente para consultar o status de execução da operação de ativação ou desativação em tempo real. verifique o resultado: chame a operação DescribeInstances com
AdditionalAttributesdefinido comoCLOCK_OPTIONSpara confirme se o service de sincronização de tempo PTP está ativado para a instância.configure a instância: chame a operação RunCommand para execute os comandos relevantes e concluir a configuração.
O PTP pode ser usado junto com o NTP?
Sim. O PTP não afeta o NTP. O chronyd usa um algoritmo interno para selecione a melhor source de relógio e prioriza o PTP com base na configuração.
Por que o erro "dkms: command not found" ocorre ao instalar o driver?
A instalação do driver PTP instala primeiro os pacotes de ferramentas necessários, sendo o dkms um deles, portanto você deve resolver o problema de instalação do pacote dkms. Para logs detalhados sobre a falha na instalação do driver, consulte /var/log/ptp-cipu-ptp-monitor.log.
Cenário 1: a configuração da source do repositório pode estar desatualizada. atualize a source do repositório e tente novamente.
Cenário 2: obtenha o pacote de instalação correspondente no site oficial do dkms.
Como ativar ou desativar a inicialização automática do programa ptp-monitor?
O ptp-monitor é um componente de O&M executado dentro da instância. Manter sua execução é recomendado, mas não obrigatório. Após a instalação, o componente inicia automaticamente na inicialização por padrão.
Desative a inicialização automática na inicialização do sistema.
acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --disable-service
Ative a inicialização automática na inicialização do sistema.
acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --enable-service
Como desinstalar o driver PTP?
O driver PTP chama-se ptp_cipu. Esse driver é necessário para o recurso PTP, e sua instalação não afeta a instância. Para desinstalar o driver PTP, execute o seguinte comando do Cloud Assistant:
acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --uninstall