QingTian Enclave:PTP配置实践

举报
heathjay 发表于 2026/05/22 15:27:35 2026/05/22
【摘要】 问题描述在业务稳定运行一段时间后,发现Enclave内部的系统时间出现漂移(enclave内部时间与primary VM系统时间不一致)。 解决方案可使用chrony配置定时读取设备/dev/ptp0提供的时间 具体操作安装git及qt-enclave-bootstrap qingtian-tool包yum install git make kernel-devel-$(uname -r)...

问题描述

在业务稳定运行一段时间后,发现Enclave内部的系统时间出现漂移(enclave内部时间与primary VM系统时间不一致)。

解决方案

可使用chrony配置定时读取设备/dev/ptp0提供的时间

具体操作

  1. 安装git及qt-enclave-bootstrap qingtian-tool包
yum install git make kernel-devel-$(uname -r)  qt-enclave-bootstrap qingtian-tool -y
  1. 编译并安装virtio-qtbox驱动
  • 从gitee获取开源代码
cd /home; git clone -b sync https://gitee.com/HuaweiCloudDeveloper/huawei-qingtian.git

  • 编译并安装virtio-qtbox驱动
cd /home/huawei-qingtian/virtio-qtbox; make
make install


3. 安装docker

pip3 install docker knack
yum install docker -y
  • 测试docker
docker version
docker run hello-world
  1. 制作QingTian Enclave的eif
  • 编译directShell作为调试程序
cp /home/huawei-qingtian/enclave/qtsm-sdk-c/tests/vsock_shell/vsock_shell.c /home/enclave_eif/
cd /home/enclave_eif/
gcc /home/enclave_eif/vsock_shell.c -o /home/enclave_eif/directShell
chmod 777 /home/enclave_eif/directShell
  • 提前准备chrony的相关配置带入docker镜像
vim /home/enclave_eif/chrony.conf
  • 使用以下配置作为chrony的配置
server ntp.myhuaweicloud.com minpoll 4 maxpoll 10 iburst
refclock PHC /dev/ptp0 poll 0 delay 0.000010 prefer
# Ignore stratum in source selection.
stratumweight 0.05

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Enable kernel RTC synchronization.
rtcsync

# In first three updates step the system clock instead of slew
# if the adjustment is larger than 10 seconds.
makestep 1.0 -1

# Allow NTP client access from local network.
#allow 192.168/16

# Listen for commands only on localhost.
bindcmdaddress 127.0.0.1
bindcmdaddress ::1

# Serve time even if not synchronized to any NTP server.
#local stratum 10

# Disable logging of client accesses.
noclientlog

# Send a message to syslog if a clock adjustment is larger than 0.5 seconds.
logchange 0.5

logdir /var/log/chrony
#log measurements statistics tracking
  • 使用以下Dockerfile文件
vim /home/enclave_eif/Dockerfile
FROM ubuntu:latest

RUN apt-get update && \
    apt-get install -y linuxptp chrony && \
    rm -rf /var/lib/apt/lists/*
COPY ./directShell /root/directShell
COPY ./chrony.conf /etc/chrony/chrony.conf

CMD ["/root/directShell"]
  • 构建eif以及拉起QingTian Enclave
docker build -f /home/enclave_eif/Dockerfile -t enclave-ptp .

systemctl restart qt-enclave-env
qt enclave make-img --docker-uri enclave-ptp --eif enclave-ptp.eif
qt enclave start --cpus 2 --mem 1024 --eif /home/enclave_eif/enclave-ptp.eif --cid 4 --debug-mode
qt enclave query --enclave-id 0
  • 使用nc-vsock登录调测chrony
cd /home
git clone https://github.com/stefanha/nc-vsock.git
cd /home/nc-vsock && make
/home/nc-vsock/nc-vsock 4 9999
  • 拉起chronyd进程(为调测解释,此处为手动拉起)
/usr/sbin/chronyd -f /etc/chrony/chrony.conf

  • 查看当前时间,修改当前时间,过一段时间再次查看,发现校回准确时间
date
date -s '+2 hours'
date

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。