为 U4 Compute Engine 实例配置准确时间
本页面介绍了如何为 U4 Compute Engine 实例配置准确时间,以及如何配置监控,以便查看时间同步的准确性。
工作原理
Google Cloud 超低延迟 (ULL) 解决方案使用 Firefly 时钟同步协议来提供纳秒级同步。Firefly 会自动执行以下操作:
- 执行内部同步,以将所有 U4 实例宿主服务器的物理网卡 (NIC) 时钟彼此同步。
- 执行外部同步,以将所有 U4 实例宿主服务器的物理 NIC 时钟同步到协调世界时 (UTC)。
由于运行 U4 实例的主机服务器的物理 NIC 时钟会自动通过 Firefly 进行同步,因此您可以通过将实例的系统时钟同步到其主机服务器的物理 NIC 时钟来为实例配置准确的时间。
如需详细了解 Firefly,请参阅以下 Google Cloud 博文:了解 Firefly 时钟同步协议。
准备工作
在为 U4 Compute Engine 实例配置准确时间之前,您必须满足以下要求。
创建 U4 实例
如果您尚未创建 U4 Compute Engine 实例,请创建一个。请参阅与您的使用场景对应的步骤:
- 如需创建 U4P 或 U4C 实例,请参阅创建超低延迟 Compute Engine 实例。
- 如需创建 U4S 实例,请参阅为辅助工作负载创建非 ULL Compute Engine 实例。
确保没有其他时钟同步服务正在运行
本页面上的过程使用 chrony 作为推荐的时钟同步客户端。在开始之前,请确保您的实例上没有运行其他时钟同步服务,例如 ntpd、systemd-timesyncd 或 phc2sys。与这些服务进行意外互动可能会导致 chrony 配置出现错误。
在 chrony 版本 4.7 及更高版本中,您可以运行以下命令来检查其他时钟同步服务的 chronyd 警告日志:
journalctl -u chronyd
如果另一个时钟同步服务正在运行,输出会包含一条警告消息,例如 System clock interference detected (another NTP client?)。
配置 chrony 以仅在网络驱动程序稳定后加载
在某些情况下,systemd 可能会在网络接口驱动程序完成初始化之前加载 chrony,这可能会导致 chrony 无法启动,因为它无法初始化 PTP 硬件时钟 (PHC) 设备。
为避免上述问题,请替换 chrony 的 systemd 单元文件,以等待 PHC 设备就绪:
运行 edit 命令:
systemctl edit chronyd
添加与您的实例类型对应的替换项:
对于 U4P 和 U4C 实例:
[Unit] After=dev-ptp0.device dev-ptp1.device dev-ptp2.device Requires=dev-ptp0.device dev-ptp1.device dev-ptp2.device
对于 U4S 实例:
[Unit] After=dev-ptp0.device Requires=dev-ptp0.device
重启服务。虽然您之前运行的
systemctl edit命令会自动重新加载守护程序,但我们建议您运行以下命令,以确保chrony在您做出更改后正常运行。systemctl restart chronyd
获取网络接口名称
获取由客机操作系统分配的实例虚拟网络接口 (vNIC) 的名称。虽然 Google Cloud 使用 nic0 和 nic1 等名称,但客机操作系统命名格式有所不同,例如 enp22s0f0 和 ens8f0。
如需按顺序列出 vNIC 名称,请运行以下命令:
find /sys/class/net -type l -not -lname '*virtual*' -printf '%l %f\n' | sort | awk '{print $2}'
将 chrony 配置为使用 Firefly 同步的物理 NIC 时钟
本部分介绍如何配置 chrony,以将实例的系统时钟与实例宿主服务器上已由 Firefly 同步的物理 NIC 时钟同步。
U4 实例的虚拟网络接口 (vNIC)(如客机操作系统中的 enp22s0f0)会映射到实例宿主服务器上的物理 NIC。给定的 vNIC 可以通过使用相应的 PTP 硬件时钟 (PHC) 设备来访问物理 NIC 时钟:
Linux 中的 PHC 设备名称采用以下格式:
/dev/ptpNUMBER,其中NUMBER由 Linux 内核根据设备初始化顺序确定。 例如,请参阅以下 PHC 设备名称:/dev/ptp0、/dev/ptp1、/dev/ptp2。如需指定物理 NIC 时钟作为同步源,
chrony配置必须使用或解析为相应的 PHC 设备。
以下各部分分别提供了根据上述要求配置 chrony 的示例。请参阅与您的实例类型和 chrony 版本对应的部分:
- 在 U4P 和 U4C 实例上配置
chrony4.7 及更高版本 - 在 U4P 和 U4C 实例上配置
chrony4.6.1 及更低版本 - 在 U4S 实例上配置
chrony4.7 及更高版本
在 U4P 和 U4C 实例上配置 chrony 4.7 及更高版本
chrony 4.7 及更高版本支持将 vNIC 名称指定为时钟源,并自动将其解析为表示物理 NIC 时钟的相应 PTP 硬件时钟 (PHC) 设备。
如需在 U4P 或 U4C 实例上配置 chrony 版本 4.7 及更高版本,请执行以下操作:
将以下内容添加到
chrony配置文件/etc/chrony.conf中。 该文件必须仅包含以下配置。确保您移除或覆盖文件的所有预先存在的内容。# Record the rate at which the system clock gains/loses time. driftfile /var/lib/chrony/drift # Allow the system clock to be stepped in the first three updates # if its offset is larger than 1 micro-second. makestep 0.0000001 3 # Specify directory for log files. logdir /var/log/chrony # Select which information is logged. log measurements statistics tracking refclocks # U4 Compute Engine instance clocks are 200ppb accurate maxclockerror 0.2 # Configure all clocks for tracking, but select only one of them as source. refclock PHC NIC0:nocrossts poll -1 noselect refclock PHC NIC1:nocrossts poll -1 refclock PHC NIC2:nocrossts poll -1 noselect # The following lines opportunistically enable Precision Time Measurement (PTM) based clock synchronization. # Note that PTM can potentially result in a (constant) clock skew of up to 700 nanoseconds # which is not accounted for in chrony's accuracy metrics. refclock PHC NIC0 poll -1 noselect refclock PHC NIC1 poll -1 noselect refclock PHC NIC2 poll -1 noselect
将
NIC0、NIC1、NIC2替换为您之前获得的相应名称。如有需要,请参阅获取网络接口名称。如需应用配置,请运行以下命令来重启
chrony:systemctl restart chronyd
chrony使用NIC1的 PTP 硬件时钟作为时间源,将时钟同步统计信息记录到/var/log/chrony/tracking.log。
在 U4P 和 U4C 实例上配置 chrony 4.6.1 及更早版本
chrony 版本 4.6.1 及更低版本要求您在配置文件中手动指定 PTP 硬件时钟 (PHC) 设备名称。
如需在 U4P 或 U4C 实例上配置 chrony 版本 4.6.1 及更低版本,请执行以下操作:
获取与 vNIC 关联的 PHC 设备的索引号。以下示例使用第一个 vNIC。
ethtool -T NIC0
将
NIC0替换为您之前获得的相应名称,例如enp22s0f0。如有需要,请参阅获取网络接口名称。查看
PTP Hardware Clock:NUMBER的输出此示例输出显示了
PTP Hardware Clock: 1,它对应于/dev/ptp1。Time stamping parameters for enp22s0f0: Capabilities: hardware-receive software-receive software-system-clock hardware-raw-clock PTP Hardware Clock: 1 Hardware Transmit Timestamp Modes: off Hardware Receive Filter Modes: none all
将以下内容添加到
chrony配置文件/etc/chrony.conf中。 该文件必须仅包含以下配置。确保您移除或覆盖文件的所有预先存在的内容。上一步中的
ethtool输出显示enp22s0f0使用/dev/ptp1。以下示例通过指定refclock PHC /dev/ptp1:nocrossts poll -1将系统时钟同步到enp22s0f0的相应物理 NIC 时钟。# Record the rate at which the system clock gains/loses time. driftfile /var/lib/chrony/drift # Allow the system clock to be stepped in the first three updates # if its offset is larger than 1 micro-second. makestep 0.0000001 3 # Enable kernel synchronization of the real-time clock (RTC). rtcsync # Save NTS keys and cookies. ntsdumpdir /var/lib/chrony # Specify directory for log files. logdir /var/log/chrony # Select which information is logged. log measurements statistics tracking refclocks # U4 Compute Engine instance clocks are 200ppb accurate maxclockerror 0.2 # Configure all clocks for tracking, but select only one of them as source. refclock PHC /dev/ptp0:nocrossts poll -1 noselect refclock PHC /dev/ptp1:nocrossts poll -1 refclock PHC /dev/ptp2:nocrossts poll -1 noselect # The following lines opportunistically enable Precision Time Measurement (PTM) based clock synchronization. # Note that PTM can potentially result in a (constant) clock skew of up to 700 nanoseconds # which is not accounted for in chrony's accuracy metrics. refclock PHC /dev/ptp0 poll -1 noselect refclock PHC /dev/ptp1 poll -1 noselect refclock PHC /dev/ptp2 poll -1 noselect
如需应用配置,请运行以下命令来重启
chrony:systemctl restart chronyd
chrony使用enp22s0f0的 PTP 硬件时钟作为时间源,将时钟同步统计信息记录到/var/log/chrony/tracking.log。
在 U4S 实例上配置 chrony 4.7 及更高版本
我们建议您为 U4S 实例使用 chrony 版本 4.7 及更高版本。使用旧版本可能会导致频繁出错,因为虚拟机 (VM) 实例的 Compute Engine 时钟同步设备 (ptp_kvm) 可能会导致 PTP 硬件时钟 (PHC) 设备的索引号发生变化。
此 U4S 实例的配置示例与用于 U4P 和 U4C 实例的配置示例类似,但存在以下差异:
- 此示例包含单个 vNIC。一个 U4S 实例可以有多个 vNIC,但所有 vNIC 都由同一个物理 NIC 提供支持,并访问同一个物理 NIC 时钟。
- 精确时间测量 (PTM) 不可用。
如需在 U4S 实例上配置 chrony 版本 4.7 及更高版本,请执行以下操作:
将以下内容添加到
chrony配置文件/etc/chrony.conf中。 该文件必须仅包含以下配置。确保您移除或覆盖文件的所有预先存在的内容。# Record the rate at which the system clock gains/loses time. driftfile /var/lib/chrony/drift # Allow the system clock to be stepped in the first three updates # if its offset is larger than 1 micro-second. makestep 0.0000001 3 # Specify directory for log files. logdir /var/log/chrony # Select which information is logged. log measurements statistics tracking refclocks # U4 Compute Engine instance clocks are 200ppb accurate maxclockerror 0.2 # Configure all clocks for tracking, but select only one of them as source. refclock PHC NIC0:nocrossts poll -1
将
NIC0替换为您之前获得的相应名称,例如enp22s0f0。如有需要,请参阅获取网络接口名称。如需应用配置,请运行以下命令来重启
chrony:systemctl restart chronyd
chrony使用NIC0的 PTP 硬件时钟作为时间源,将时钟同步统计信息记录到/var/log/chrony/tracking.log。
验证 chrony 配置
如需验证 chrony 是否已正确配置,请运行以下命令:
chronyc sourcestats
成功配置后,系统会输出类似以下内容:
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ============================================================================== PHC0 5 3 2 -0.002 0.014 +9ns 2ns PHC1 5 3 2 -0.003 0.007 -0ns 1ns PHC2 5 3 2 -0.004 0.016 +33ns 2ns PHC3 5 5 2 +0.002 0.078 +135ns 10ns PHC4 5 3 2 -0.005 0.077 +130ns 9ns PHC5 5 5 2 -0.006 0.131 +123ns 16ns
如果该命令返回意外输出,请参阅问题排查。
修改 chrony 配置
如果您想修改将实例的系统时钟同步到的物理 NIC,可以按如下方式更新配置:
- 从包含您要使用相应物理 NIC 时钟的 vNIC 名称的行中移除
noselect。 - 将
noselect添加到包含您要停止使用相应物理 NIC 时钟的 vNIC 名称的行中。 - 通过重启
chronyd应用新配置:systemctl restart chronyd。
监控时间同步
本部分介绍了可用于时间同步的指标,以及如何使用这些指标来监控时间同步准确性。
可用于时间同步的指标
您可以使用以下指标来监控时间同步:
| 衡量 | 可用指标和说明 |
|---|---|
| 实例系统时钟到物理 NIC 时钟 |
logging.googleapis.com/user/phc-clock-max-error
此指标用于衡量实例系统时钟与其宿主服务器上的物理 NIC 时钟同步的准确性。 您必须通过从 Ops Agent 收集此指标并创建基于日志的指标来配置此指标,如为实例系统时钟配置自定义指标中所述,此操作还会创建自定义信息中心。此外,您还可以在使用 Cloud Monitoring 指标中所述的程序中使用此指标。 |
| 将物理 NIC 时钟设置为 UTC |
compute.googleapis.com/instance/time/firefly_utc_traceable_uncertainty
此指标表示物理 NIC 时钟与实际世界协调时间 (UTC) 相比的最大误差界限。系统会自动向 Cloud Monitoring 报告。 您可以按照使用 Cloud Monitoring 指标中所述查看此指标、定义提醒政策和创建自定义信息中心。 |
| 物理 NIC 时钟的一般健康状况 |
compute.googleapis.com/instance/time/firefly_nic_sync_healthy
此布尔值指标表示物理 NIC 时钟的总体健康状况,包括 NIC 到 NIC 和 NIC 到 UTC 的同步。系统会自动向 Cloud Monitoring 报告这些指标。 您可以按照使用 Cloud Monitoring 指标中所述查看此指标、定义提醒政策和创建自定义信息中心。 |
如需了解 Cloud Monitoring 保留指标数据的时间长度,请参阅 Cloud Monitoring 配额和限制中的数据保留。如需了解如何导出指标以进行长期分析,请参阅 Cloud 架构中心文档中的 Cloud Monitoring 指标导出。
为实例系统时钟配置自定义指标
本部分提供了一个监控配置示例,该配置可执行以下操作:
- 配置 Ops Agent 以从您的实例收集
chrony的日志,从而提高同步准确性 - 将 Cloud Monitoring 配置为从项目中的所有实例注入相应的日志作为基于日志的指标
在实例上配置 Google Cloud Ops Agent
如需配置 Ops Agent 以收集监控所需的指标,请执行以下操作:
如果您尚未在实例上安装 Ops Agent,请先安装。
将以下配置添加到
/etc/google-cloud-ops-agent/config.yaml文件中:logging: receivers: chrony_tracking_receiver: type: files include_paths: - /var/log/chrony/tracking.log processors: chrony_tracking_processor: type: parse_regex regex: "^.*PHC.* (?<max_error>[-\d\.eE]+)$" service: pipelines: chrony_tracking_pipeline: receivers: [chrony_tracking_receiver] processors: [chrony_tracking_processor]
通过运行以下命令重启 Ops Agent:
systemctl restart google-cloud-ops-agent
在项目中配置基于日志的指标和信息中心
如需为项目中的实例配置时间同步监控,请运行以下日志记录和信息中心设置脚本。此脚本可帮助您完成以下任务:
- 它会为与实例项目关联的服务账号设置适当的权限。该脚本假设实例使用的服务账号是项目的默认服务账号。如果需要,请将
SERVICE_ACCOUNT_EMAIL替换为其他值。 - 它会创建一个基于日志的指标,用于衡量实例的系统时钟与实例宿主服务器上的物理 NIC 时钟之间的时间同步准确性。
- 它会创建一个信息中心,用于根据相应指标显示时间同步的准确性。
如需完成上述任务,请运行以下脚本。脚本运行完毕后,使用其创建的控制面板查看项目实例的时钟准确度数据。
#!/bin/bash if [ -z "$1" ]; then echo "Usage: setup_logging.sh <project_id>" >&2 exit 1 fi PROJECT_ID="$1" PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)") SERVICE_ACCOUNT_EMAIL=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com # Grant permissions: gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${SERVICE_ACCOUNT_EMAIL}" \ --role="roles/compute.instanceAdmin" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${SERVICE_ACCOUNT_EMAIL}" \ --role="roles/monitoring.metricWriter" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${SERVICE_ACCOUNT_EMAIL}" \ --role="roles/logging.logWriter" # Configure log-based metric METRIC_CONF=' { "name": "phc-clock-max-error", "description": "Maximum error of the VM clock from the host clock exposed by ptp_kvm", "filter": "logName=~\".*/logs/chrony_tracking_receiver\"", "metricDescriptor": { "metricKind": "DELTA", "valueType": "DISTRIBUTION", "unit": "s", "labels": [ { "key": "instance_id", "valueType": "STRING", "description": "Instance ID for the source instance" } ] }, "valueExtractor": "REGEXP_EXTRACT(jsonPayload.max_error, \"(.*)\")", "bucketOptions": { "explicitBuckets": { "bounds": [ 0.0, 1.0E-6, 5.0E-6, 1.0E-5, 1.0E-4, 0.001, 0.01, 0.1, 1.0 ] } }, "labelExtractors": { "instance_id": "REGEXP_EXTRACT(resource.labels.instance_id, \"(.*)\")" } } ' echo "$METRIC_CONF" > /tmp/clock-error-metric.json gcloud logging metrics create --project=${PROJECT_ID} phc-clock-max-error --config-from-file=/tmp/clock-error-metric.json # Create a dashboard plotting the clock accuracy DASHBOARD_CONF=' { "displayName": "Chrony Accuracy", "dashboardFilters": [], "labels": {}, "mosaicLayout": { "columns": 48, "tiles": [ { "height": 28, "width": 28, "widget": { "xyChart": { "chartOptions": { "displayHorizontal": false, "mode": "COLOR" }, "dataSets": [ { "plotType": "LINE", "targetAxis": "Y1", "timeSeriesQuery": { "prometheusQuery": "(\n histogram_quantile(\n 1,\n sum by (le, instance_id, monitored_resource) (\n increase(\n logging_googleapis_com:user_phc_clock_max_error_bucket{monitored_resource=\"gce_instance\"}[1m]\n )\n )\n ) * 1000000000\n)", "unitOverride": "ns" } } ], "thresholds": [], "yAxis": { "label": "Clock Accuracy", "scale": "LINEAR" } } } } ] } } ' echo "$DASHBOARD_CONF" > /tmp/metrics-dashboard.json gcloud monitoring dashboards create --project=${PROJECT_ID} --config-from-file=/tmp/metrics-dashboard.json
使用 Cloud Monitoring 指标
以下部分介绍了如何使用 Cloud Monitoring 指标。您可以在以下各部分中使用可用于时间同步的各项指标。
除了 Google Cloud 控制台,您还可以通过 Monitoring API 创建自定义信息中心、设置提醒和查询指标。
在 Monitoring 中查看指标
本部分介绍了如何在 Monitoring 中查看指标。
控制台
如需使用 Metrics Explorer 查看受监控资源的指标,请执行以下操作:
-
在 Google Cloud 控制台中,前往 leaderboard Metrics Explorer 页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 在 Google Cloud 控制台的工具栏中,选择您的 Google Cloud 项目。对于 App Hub 配置,请选择 App Hub 宿主项目或已启用应用的文件夹的管理项目。
- 在指标元素中,展开选择指标菜单,在过滤栏中输入
VM instance,然后使用子菜单选择一个特定资源类型和指标:- 在活跃资源菜单中,选择虚拟机实例。
- 如需选择指标,请使用活跃指标类别和活跃指标菜单。 如需查看可用指标的列表,请参阅时间同步的可用指标。
- 点击应用。
如需添加用于从查询结果中移除时序的过滤条件,请使用过滤条件元素。
- 配置数据的查看方式。
默认情况下,显示屏会汇总所有实例和物理网卡的指标。
如需显示每个 NIC、每个实例的指标,请执行以下操作:在汇总元素中,选择未汇总。
如需详细了解如何配置图表,请参阅使用 Metrics Explorer 时选择指标。
定义提醒政策
本部分介绍了如何定义提醒政策。
在配置 Monitoring 在数据停止到达时如何评估条件时,我们建议选择缺失的数据点被视为违反政策条件的值,这有助于捕获静默数据丢失。不过,此设置会在删除实例时导致误报。
控制台
您可以创建提醒政策来监控指标的值,当这些指标违反条件时便会通知您。
-
在 Google Cloud 控制台中,前往 notifications提醒页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 如果您尚未创建通知渠道并希望收到通知,请点击修改通知渠道并添加通知渠道。添加渠道后,返回到提醒页面。
- 在提醒页面中,点击创建政策。
- 如需选择指标,请展开选择指标菜单,然后执行以下操作:
- 如需将菜单限制为相关条目,请在过滤条件栏中输入
VM Instance。如果过滤菜单后没有显示任何结果,请停用仅显示活跃的资源和指标切换开关。 - 在资源类型部分,选择虚拟机实例。
- 在指标类别部分,选择实例。
- 对于指标,请从可用于时间同步的指标列表中选择一个指标。
- 选择应用。
- 如需将菜单限制为相关条目,请在过滤条件栏中输入
- 点击下一步。
- 配置提醒触发器页面中的设置决定了何时触发提醒。 选择条件类型,并在必要时指定阈值。如需了解详情,请参阅创建指标阈值提醒政策。
- 点击下一步。
- 可选:如需将通知添加到您的提醒政策中,请点击通知渠道。在对话框中,从菜单中选择一个或多个通知渠道,然后点击确定。
- 可选:更新突发事件自动关闭持续时间。此字段用于确定在缺少指标数据的情况下 Monitoring 何时关闭突发事件。
- 可选:点击文档,然后添加您希望包含在通知消息中的任何信息。
- 点击提醒名称,然后输入提醒政策的名称。
- 点击创建政策。
创建自定义 Monitoring 信息中心
本部分介绍如何创建自定义信息中心。如需查看使用 PromQL 查询的具体示例,请参阅示例:创建可合并准确率指标的自定义信息中心。
控制台
-
在 Google Cloud 控制台中,前往 信息中心页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 点击创建信息中心
- 可选:使用信息中心的描述性名称更新信息中心标题。
对于要添加到信息中心的每个 widget,请点击添加 widget,完成对话框,然后选择应用。
如需详细了解如何添加微件,请参阅以下页面:
示例:创建可合并准确率指标的自定义信息中心
Monitoring 允许您创建自定义信息中心。信息中心可以使用任何可用于时间同步的指标。
本部分包含一个示例 PromQL 查询,您可以将其粘贴到自定义 Monitoring 信息中心内。如需详细了解 PromQL,请参阅 PromQL for Cloud Monitoring。
本部分中的查询通过组合以下各项来生成总体准确率指标:
- 该指标用于衡量实例系统时钟相对于物理 NIC 时钟 (
phc-clock-max-error) 的准确性 用于衡量物理 NIC 时钟相对于 UTC 的准确性的指标 (
firefly_utc_traceable_uncertainty)
控制台
按照步骤访问 PromQL 代码编辑器。
在文本字段中输入以下查询:
histogram_quantile( 1, sum by (le, instance_id) ( increase({"__name__"="logging.googleapis.com/user/phc-clock-max-error_bucket", monitored_resource="gce_instance"}[${__interval}]) ) ) + on(instance_id) max by (instance_id) ( max_over_time({"__name__"="compute.googleapis.com/instance/time/firefly_utc_traceable_uncertainty", monitored_resource="gce_instance"}[${__interval}]) )点击 Run Query。
如需详细了解如何使用编辑器和保存图表,请参阅使用 PromQL 代码编辑器。
问题排查
在验证 chrony 配置时,您可能会收到意外的输出,例如以下输出表明 chrony 启动失败:
506 Cannot talk to daemon
为了帮助您排查问题,请检查 chrony 的 journald 日志:
journalctl -u chronyd.service
以下示例输出显示了在实例上安装了旧版 chrony 的情况下,应用旨在用于 chrony 4.7 及更高版本的配置时发生的错误。
Feb 19 06:19:42 host-name systemd[1]: Starting chronyd.service - NTP client/server... Feb 19 06:19:42 host-name chronyd[35160]: chronyd version 4.6.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 +DEBUG) Feb 19 06:19:42 host-name chronyd[35160]: Setting filter length for PHC0 to 1 Feb 19 06:19:42 host-name chronyd[35160]: Could not open eth0 : No such file or directory Feb 19 06:19:42 host-name chronyd[35160]: Fatal error : Could not open PHC Feb 19 06:19:42 host-name chronyd[35157]: Could not open PHC Feb 19 06:19:42 host-name systemd[1]: chronyd.service: Control process exited, code=exited, status=1/FAILURE Feb 19 06:19:42 host-name systemd[1]: chronyd.service: Failed with result 'exit-code'. Feb 19 06:19:42 host-name systemd[1]: Failed to start chronyd.service - NTP client/server.