Skip to main content

安装部署

理解 ArcGraph 图数据库部署

ArcGraph 可以提供多种灵活的部署方案,从公有云到私有云,从单机集群到分布式集群,从物理机、虚拟机到 Kubernetes/Docker ,从 X86、ARM 到国产信创生态,都可以支持。

ArcGraph 提供完整的运维工具和平台,可以帮助用户快速部署和管理 ArcGraph 集群,包括集群的创建、扩容、缩容、升级、备份、恢复、监控、告警等。

high-level-deployment-arch.png

部署环境

ArcGraph 既可以在用户的私有网络环境中部署,也可以在用户提供的公有云环境中部署,支持国内所有主流云厂商。

deployment-env.png

ArcGraph HTAP 架构

ArcGraph 图数据库包含了一套完整独立的图数据库(ArcGraph OLTP 引擎)和一套完整独立的图计算(ArcGraph OLAP 引擎)服务,并且提供了 HTAP(Hybrid Transactional and Analytical Processing)的能力,可以在图数据库中调用图计算,简化了用户的开发和运维工作。

arcgraph-computing-arch.png

ArcGraph OLTP 架构

ArcGraph 支持多种灵活的数据库架构,既可以在一台机器上快速安装,用于开发和测试,也可以在多台机器上部署分布式集群,用于生产环境。

单机和分布式集群在数据的存储结构和应用程序的访问接口上均保持一致,基于单机架构编写的应用程序,可以无缝地迁移到分布式集群上运行,而不需要任何修改。

单机架构中存储的数据,也可以很方便地迁移到分布式架构中。

database-archs.png

各版本图数据库对比如下:

单机版敏捷版
节点(机器)数13
数据量1-10亿1-100亿
Partition 策略
数据可靠性依赖硬件可靠性三副本冗余

ArcGraph 多租户与多集群架构

ArcGraph 图管理平台是 ArcGraph 官方提供的一站式数据库全生命周期管理平台,该平台可以将多个集群按需部署在多台服务器中,采用容器技术对CPU、内存和磁盘等计算存储资源进行隔离,确保集群间不会互相影响,提高系统的稳定性和健壮性。

arcgraph-manager-deployment.png

多租户隔离架构: multi-tenant-isolation-architecture.png

高可用性

分布式与多副本机制

ArcGraph 采用分布式架构和多副本机制确保高可用性。

high-availability.png

  • 全分布式设计,避免单点故障
    • 存储层基于 Raft 协议实现多副本冗余,保障数据可靠性。
    • ArcGraph OLTP 查询支持灵活配置图的副本数(默认3),Partition 的每个副本分布在不同机器上。
    • ArcGraph OLAP 分析支持多个ArcGraph OLAP 节点并行处理,同时完成在线或者离线任务,自动容错和重试,保障业务连续性。
  • 故障切换时数据零丢失,支持秒级故障切换,确保业务连续性不受影响

两地三中心等容灾部署

ArcGraph 提供了机房级和地域(城市)级的高可用容灾能力。

机房级高可用部署方案

cross-idc.png

地域(城市)级的高可用部署方案

cross-region.png

部署方案说明
应对的故障类型机房条件 (数量)部署方案成本 (副本数)RTORPO
单点故障1分布式集群3<30秒0
机房级故障3【推荐】同城三机房(方案1)3<30秒0
2同城两机房(方案2:主备模式)3+1或3+3<30秒<5秒
地域(城市)级故障3【推荐】两地三中心(方案1)5(2+2+1)<60秒<5秒
2两地两机房(方案2:主备模式)3+1或3+3<60秒<5秒

需要什么样的服务器配置

根据预设的图数据:

  1. 点边数量:包含 1 千万个点和 1 亿条边。
  2. 属性数量:每个点或边平均具有 5 个属性(Property),其中包括 1 个 64 位整数(INT64),3 个长度为 200 的字符串(STRING 200),以及 1 个日期时间类型(DATETIME)。
  3. Workload:设定数据库中,90% 的查询是单点查询和简单的一跳查询,剩余 10% 是复杂的多跳查询,类似 LDBC SNB 标准 中的 Short Query 和 Complex Query。

在这些条件下,为了确保图数据库能够高效运行,其服务器配置应至少满足以下要求:

  1. 内存总量:32GiB (与点边数量成正比)
  2. CPU核数 = 总的 QPS(query per seconds) / 200
  3. 磁盘总量 = 内存总量 * 2
  4. CPU:内存 = 1:8

如果您选择的是单机模式,那么每台机器都应该遵循上述配置要求。而对于分布式模式,整个集群中所有机器的配置总和应等同于上述推荐配置乘以副本数,其中默认副本数为 3。这意味着,分布式环境下每台机器的配置可能不高,但整体集群配置应达到推荐配置的三倍。

如果您需要额外的图计算服务,建议您为此专门配备独立的服务器资源。这样做能有效避免图计算对图数据库性能的潜在影响。在图计算服务中,不同算法对 CPU 和内存的需求差异明显,因此很难提供一个一概而论的配置建议。不过,一般来说,图计算所需的服务器配置不应低于图数据库所用的配置。

请注意,上述配置建议仅供参考。实际所需配置应根据您的具体业务场景和数据规模来确定。这些数据只是为评估服务器配置和容量提供一个基准,不应作为性能指标的直接依据。

部署单机版 ArcGraph OLTP 引擎

如果只有一台服务器,那么推荐使用 Docker 部署单机版 ArcGraph OLTP 引擎。

使用 Docker 部署

先决条件

硬件和操作系统要求

  • 机器数量:1台
  • 机器配置:
    • Unix/Linux/Windows:
      • CPU配置: >= 2 核(推荐 >= 8 核)
      • 内存配置: >= 4 GiB(推荐 >= 32 GiB)
      • 磁盘配置: 8 GiB(推荐 >= 16 GiB)
    • MacBook Air/Pro:
      • CPU: M1/M2/M3/Intel
      • 内存: >= 8 GiB
      • 磁盘: >= 8 GiB
  • 操作系统:
    • Unix/Linux:CentOS 7.6 及以上版本、Ubuntu 18.04 及以上版本

    • Windows:Windows 10 及以上版本

    • macOS: macOS 10.15 及以上版本

软件版本要求

  • Docker >= 19.03.0

安装 ArcGraph OLTP 引擎

Docker 镜像

镜像名称:docker-reg.infra.fabarta.com:5000/fabarta-ga/engine-arcgraph-tp:<tag>

<tag> 版本:

架构处理器示例<tag> 示例
X86_64- MacBook Intel 芯片
- Intel(R) Xeon(R) Platinum
- AMD EPYC™ Genoa 9T24
- 海光
v2.1.0-20240301-x86_64
ARM- MacBook M1/M2/M3
- 鲲鹏 920
v2.1.0-20240301-arm64

说明:

  • 安装 ArcGraph OLTP 引擎前请联系 我们 获取 Docker 镜像。
  • 如果在安装时未指定 <tag> 版本,则默认使用 X86_64 架构版本的 <tag>
  • 不同版本的 ArcGraph OLTP 引擎所对应的 Docker 镜像会有所差异。本章节所展示的仅为示例,旨在为用户提供安装 ArcGraph OLTP 引擎的指导。如需了解具体的 Docker 镜像信息,请参考 版本及对应 Docker 镜像 章节。

运行容器,启动 ArcGraph OLTP 引擎
在服务器的终端中登录 Docker 后执行如下命令,以部署 ArcGraph OLTP 引擎。

docker run -d -p 8182:8182 \
docker-reg.infra.fabarta.com:5000/fabarta-ga/engine-arcgraph-tp:v2.1.0-20240301-x86_64 # 若为 ARM 架构,请将 `:v2.1.0-20240301-x86_64` 替换为 `:v2.1.0-20240301-arm64`。

运行参数说明
-p 8182:8182:将容器内的 8182 端口映射到宿主机的 8182 端口。

端口说明
8182:ArcGraph OLTP 引擎的端口号,采用 gRPC 协议。

连接 ArcGraph OLTP 引擎

ArcGraph 图数据库支持使用以下两种方式连接 ArcGraph OLTP 引擎,请根据实际情况选择。

方式一:使用 ArcGraph 图数据库的客户端工具 连接

示例

docker run --net=host --rm -it  docker-reg.infra.fabarta.com:5000/fabarta-ga/engine-arcgraph-tp:v2.1.0-20240301-x86_64 client -u arcgraph -p arcgraph -e 127.0.0.1:8182   # 若为 ARM 架构,请将 `:v2.1.0-20240301-x86_64` 替换为 `:v2.1.0-20240301-arm64`。

运行参数说明

  • docker run:启动 Docker 容器。
  • --rm:(可选)设置 --rm 后,在容器退出时自动删除此容器。
  • -it:(可选)设置 -it 后将在交互模式下运行容器,并分配一个伪终端。
  • docker-reg.infra.fabarta.com:5000/fabarta-ga/engine-arcgraph-tp:v2.1.0-20240301-x86_64:这是要运行的 Docker 镜像的名称和标签。
  • client:以客户端模式运行。
  • -u arcgraph:登录用户名为 arcgraph
  • -p arcgraph:登录密码为 arcgraph
  • -e 127.0.0.1:8182:客户端连接的 ArcGraph OLTP 引擎地址 127.0.0.1:8182

方式二:使用 ArcGraph 图开发平台连接

在进行此操作之前,请确保您已经在本地成功部署 ArcGraph 图开发平台,并已获取了“docker-compose-studio.yaml”文件。

  1. 运行容器,启动 ArcGraph 图开发平台的服务器。

    docker-compose -f docker-compose-studio.yaml up -d
  2. 在浏览器地址栏中输入 ArcGraph 图开发平台的访问地址(例如:http://localhost:8080),按【Enter】键。

  3. 输入登录信息及验证码,单击“登录”,访问 ArcGraph 图开发平台。

    • 默认用户名和密码为“arcgraph”。

    • 输入数据库主机地址。