跳到主要内容

虚拟机 · 云端安装

下面整理了在物理硬件之外的 VM(VMware / Hyper-V / KVM / Proxmox)或 公有云(AWS EC2 / Azure VM / GCP)环境中安装网关时的差异要点。基本安装流程请参考 在线安装。

在 VM 中使用 Docker

2026.05 及以后的容器模式在 VM 内部同样可以正常工作 —— Docker 基于 cgroup/namespace 而非嵌套虚拟化, 因此它在 VM 上的性能与原生环境相同。如果 cgroup MemoryMax=12G 超过了 VM 的内存上限, 则需要调整(可通过 systemd drop-in 实现,参考 MemoryMax=6G 等)。


1. 规格要求​

等级vCPU内存磁盘备注
小(≤ 1k 标签)4 vCPU8 GB100 GB SSD开发/测试
中(1k–10k 标签)8 vCPU16 GB256 GB SSD + 1 TB生产标准
大(10k+ 标签)16 vCPU32 GB512 GB NVMe + 2 TB大规模

注意 CPU 超分配 —— 如果宿主机 CPU 超分配比例超过 1:4,Cassandra 的 commitlog flush 会被延迟,并以报警的形式出现。建议设置 CPU 预留(dedicate)。


2. 磁盘配置 —— 推荐做法​

将 /opt 和 /data1 分离到独立磁盘(或独立的 LVM 卷)上,可以:

  • 升级时替换 /opt/kopens,但保留 /data1/pp-data(用户 flows / Cassandra / 备份)
  • 隔离磁盘 IO 负载(Cassandra commitlog 与 sstable)
/dev/sda → / (OS) ~ 50 GB
/dev/sdb → /opt ~ 100 GB SSD (게이트웨이 코드)
/dev/sdc → /data1 ~ 1 TB+ (시계열 데이터)

3. VMware vSphere​

推荐配置
虚拟硬件版本 ≥ 14(ESXi 6.7+)
VMXNET3 网卡(比 Intel E1000 更快)
paravirtual SCSI(比 LSI Logic 处理能力更强)
启用 CPU 预留(保障 Cassandra 稳定性)
启用内存预留 —— 固定大小(禁用内存气球)
安装 tools.guestlib.enableHostInfo = TRUE —— 进行宿主机时间同步

4. KVM / Proxmox​

推荐配置
使用 cpu host 模式(直通)
使用 virtio 网卡 + virtio-blk / virtio-scsi
安装 qemu-guest-agent(客户机健康检查)
禁用 内存气泡(保障 Cassandra 堆内存稳定性)
磁盘缓存模式 = none(降低延迟)或 writeback(提升吞吐量)

5. Hyper-V​

推荐配置
第 2 代(UEFI)
禁用 动态内存(Cassandra 堆内存可变 → 引发交换)
使用最新版本的集成服务(时间同步)
虚拟网卡的 适配器类型 = Synthetic(而非 Legacy)

6. 公有云​

6.1 AWS EC2​

项目推荐配置
实例类型m5.xlarge(4 vCPU / 16 GB)—— 中小型 / m5.2xlarge(8/32)—— 生产环境
AMIAmazon Linux 2(出厂镜像基于 Fedora 系列,但与 RHEL 系列兼容)
磁盘gp3(/opt 100 GB),gp3(/data1 1 TB+)—— io1/io2 用于 Cassandra commitlog
安全组入站 80 / 443 / 22(仅管理员 IP),MQTT 1883 / OPC-UA 12000(如需 —— 通常限于 VPC 内部)
EFA / 增强网络启用(降低延迟)
放置策略集群放置组(大规模场景)

通过 AWS PrivateLink / VPC Peering 与 本地 PLC 网络 连接。

6.2 Azure VM​

项目推荐配置
规格D4s_v5(4 vCPU / 16 GB)—— 中小型 / D8s_v5 —— 生产环境
磁盘高级 SSD(P30 / P40)用于 /data1
加速网络启用
ExpressRoute / VPN与本地 PLC 网络连接

6.3 GCP​

项目推荐配置
机型e2-standard-4 —— 中小型 / n2-standard-8 —— 生产环境
磁盘pd-ssd(确保 Cassandra commitlog 1000 IOPS)
Cloud Interconnect / VPN本地连接

7. 云端-本地 PLC 网络连接​

PLC 通常位于本地(工厂内部),如果网关部署在云端,则无法直接通信。有两种模式:

模式 A —— 云端网关 + 本地网关​

[PLC] ─── [온프레 게이트웨이] ─── (Sparkplug B / MQTT) ─── [클라우드 게이트웨이] ─── [상위 플랫폼]

本地网关负责 PLC 数据采集并发布 Sparkplug,云端网关负责接收/集成。推荐模式。

模式 B —— 通过 VPN / SD-WAN 直接访问 PLC 网络​

[PLC] ─── [VPN 게이트웨이] ──VPN── [클라우드 게이트웨이] ─── [상위 플랫폼]

延迟增加 + 线路成本增加。仅建议用于 1-2 个小站点。


8. 启动自动化(cloud-init)​

在 VM / 云环境中,实例启动时自动安装 —— 以下为 cloud-init user-data 示例:

#cloud-config
package_update: true
write_files:
- path: /root/pp-edge-install.env
owner: root:root
permissions: '0600'
content: |
export EDGE_ID=EDGE_VM_001
export SITE_ID=SITE_00001
export SERVER_HOST=192.168.0.41
export SERVER_API_KEY=<platform-api-key>
runcmd:
- mkdir -p /data1 /opt/kopens
- . /root/pp-edge-install.env && bash < <(curl -fsSL https://product.kopens.io/plantpulse-edge/install.sh)
- bash /opt/kopens/install/bin/health.sh

在生产环境中,应在 cloud-init 中显式指定 固定 edge.id / 固定 site.id。


9. 常见误区(VM / 云环境特有)​

症状原因 / 解决方法
Cassandra 频繁宕机内存气球机制处于启用状态。改为固定内存配置
MQTT keepalive 频繁超时云 NAT 空闲超时时间较短。将 app.properties 的 keepalive 从 60 秒改为 30 秒
启动后时间显示为 1970 年虚拟时间同步未启用。安装 VMware tools / qemu-guest-agent
磁盘 IO 性能差使用了 gp2 / 标准 HDD。改用 gp3 或 SSD
OPC-UA 证书频繁无效虚拟主机名变化(DHCP)。在证书 SAN 中包含所有可能的 IP / 主机名
网络吞吐量不足未启用 virtio / VMXNET3 / 加速网络

10. 了解更多​