跳到主要内容

虚拟机 / 云端安装

本文仅整理在非物理硬件环境,即 VM(VMware / Hyper-V / KVM / Proxmox)或 公有云(AWS EC2 / Azure VM / GCP)上部署网关时的差异点。新装的基本流程请参见 快速安装(2026.05+ 容器版)。H/W 完整安装 仅供 legacy native 主机的运维参考。

在 VM 中使用 Docker

2026.05+ 容器模式在 VM 内同样可正常运行 —— Docker 基于 cgroup/namespace 而非嵌套虚拟化,因此在 VM 上也能获得与 native 相当的性能。若 cgroup MemoryMax=12G 超过 VM 的内存上限,则需要调整(通过 systemd drop-in,如 MemoryMax=6G 等)。


1. 规格要求

等级vCPURAM磁盘备注
小(≤ 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 会延迟,并以报警形式表现出来。建议独占分配。


2. 磁盘配置 —— 推荐

/opt/data1 分离到独立磁盘(或独立 LVM 卷)后:

  • 升级时即使替换 /opt/kopens,也能保留 /data1/pp-data(用户 flows / Cassandra / 备份)
  • 分离磁盘 IO 负载(Cassandra commitlog vs 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 reservation(保障 Cassandra 稳定性)
启用 Memory reservation —— 按满配预留(禁用内存气球)
添加 tools.guestlib.enableHostInfo = TRUE —— 与宿主机时间同步

4. KVM / Proxmox

推荐
cpu host 模式(passthrough)
virtio 网卡 + virtio-blk / virtio-scsi
安装 qemu-guest-agent(客户机健康检查)
禁用 Memory ballooning(保障 Cassandra heap 稳定性)
磁盘缓存模式 = none(延迟 ↓)或 writeback(吞吐量 ↑)

5. Hyper-V

推荐
Generation 2(UEFI)
禁用 Dynamic Memory(Cassandra heap 波动 → 触发 swap)
Integration Services 最新版本(时间同步)
虚拟网卡的 Adapter Type = Synthetic(非 Legacy)

6. 公有云

6.1 AWS EC2

项目推荐
实例m5.xlarge(4 vCPU / 16 GB)—— 中小规模 / m5.2xlarge(8/32)—— 生产
AMIAmazon Linux 2(优先推荐 Fedora 38,但 RHEL 系兼容)
磁盘gp3(/opt 100 GB)、gp3(/data1 1 TB+)—— io1/io2 用于 Cassandra commitlog
Security Groupinbound 80 / 443 / 22(仅限管理员 IP),MQTT 1883 / OPC-UA 12000(按需 —— 通常在 VPC 内部)
EFA / 增强联网enabled(降低延迟)
PlacementCluster placement group(大规模)

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

6.2 Azure VM

项目推荐
规格D4s_v5(4 vCPU / 16 GB)—— 中小规模 / D8s_v5 —— 生产
磁盘Premium SSD(P30 / P40)用于 /data1
Accelerated Networkingenabled
ExpressRoute / VPN与本地 PLC 连接

6.3 GCP

项目推荐
机型e2-standard-4 —— 中小规模 / n2-standard-8 —— 生产
磁盘pd-ssd(保障 Cassandra commitlog 1k 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 频繁崩溃启用了内存 ballooning。改为固定内存
MQTT keepalive 频繁超时云端 NAT idle timeout 过短。将 app.properties 的 keepalive 由 60 改为 30 秒
启动后时间显示为 1970 年未启用虚拟时间同步。安装 VMware tools / qemu-guest-agent
磁盘 IO 缓慢使用了 gp2 / standard HDD。改用 gp3 或 SSD
OPC-UA 证书每次都 invalid虚拟主机名变更(DHCP)。在证书 SAN 中包含所有可能的 IP/主机名
网络吞吐量不足未启用 virtio / VMXNET3 / Accelerated Networking

10. 了解更多