From 700e09abb6c8e95199289345d41b736e85cf34bd Mon Sep 17 00:00:00 2001 From: Flowyi Date: Wed, 22 Mar 2023 18:56:42 +0800 Subject: [PATCH] Add TiFlash disaggregate architecture and S3 support (#13218) --- TOC.md | 1 + media/tiflash/tiflash-s3.png | Bin 0 -> 147794 bytes tiflash/tiflash-configuration.md | 15 ++ tiflash/tiflash-disaggregated-and-s3.md | 203 ++++++++++++++++++++++++ 4 files changed, 219 insertions(+) create mode 100644 media/tiflash/tiflash-s3.png create mode 100644 tiflash/tiflash-disaggregated-and-s3.md diff --git a/TOC.md b/TOC.md index 725ad4ea691d..9b7204b32573 100644 --- a/TOC.md +++ b/TOC.md @@ -614,6 +614,7 @@ - [使用 TiDB 读取 TiFlash](/tiflash/use-tidb-to-read-tiflash.md) - [使用 TiSpark 读取 TiFlash](/tiflash/use-tispark-to-read-tiflash.md) - [使用 MPP 模式](/tiflash/use-tiflash-mpp-mode.md) + - [TiFlash 存算分离架构与 S3 支持](/tiflash/tiflash-disaggregated-and-s3.md) - [使用 FastScan 功能](/tiflash/use-fastscan.md) - [TiFlash 支持的计算下推](/tiflash/tiflash-supported-pushdown-calculations.md) - [TiFlash 查询结果物化](/tiflash/tiflash-results-materialization.md) diff --git a/media/tiflash/tiflash-s3.png b/media/tiflash/tiflash-s3.png new file mode 100644 index 0000000000000000000000000000000000000000..2c17acf34975f8c6465bc0609a5c455395a827d6 GIT binary patch literal 147794 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�afrQ9X?cU$w|G% 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 z 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 w5zdlGqM&{)0|SGJr;B3mdKI;Vst0Nn-^rT_o{ literal 0 HcmV?d00001 diff --git a/tiflash/tiflash-configuration.md b/tiflash/tiflash-configuration.md index d2f181f34852..f0af9a9911ca 100644 --- a/tiflash/tiflash-configuration.md +++ b/tiflash/tiflash-configuration.md @@ -115,10 +115,25 @@ delta_index_cache_size = 0 ## auto_tune_sec 表示自动调整的执行间隔,单位为秒。设为 0 表示关闭自动调整。 # auto_tune_sec = 5 + ## 下面的配置只针对存算分离模式生效,详细请参考 TiFlash 存算分离架构与 S3 支持文档 https://docs.pingcap.com/zh/tidb/dev/tiflash-disaggregated-and-s3 + # [storage.s3] + # endpoint: http://s3.{region}.amazonaws.com # S3 的 endpoint 地址 + # bucket: mybucket # TiFlash 的所有数据存储在这个 bucket 中 + # root: /cluster1_data # S3 bucket 中存储数据的根目录 + # access_key_id: {ACCESS_KEY_ID} # 访问 S3 的 ACCESS_KEY_ID + # secret_access_key: {SECRET_ACCESS_KEY} # 访问 S3 的 SECRET_ACCESS_KEY + + # [storage.remote.cache] + # dir: /data1/tiflash/cache # TiFlash Compute Node 的本地数据缓存目录 + # capacity: 858993459200 # 800 GiB + [flash] tidb_status_addr = tidb status 端口地址 # 多个地址以逗号分割 service_addr = TiFlash raft 服务 和 coprocessor 服务监听地址 + ## 下面的配置只针对存算分离模式生效,详情请参考 TiFlash 存算分离架构与 S3 支持文档 https://docs.pingcap.com/zh/tidb/dev/tiflash-disaggregated-and-s3 + # disaggregated_mode = tiflash_write # 可选值为 tiflash_write 或者 tiflash_compute + # 多个 TiFlash 节点会选一个 master 来负责往 PD 增删 placement rule,通过 flash.flash_cluster 中的参数控制。 [flash.flash_cluster] refresh_interval = master 定时刷新有效期 diff --git a/tiflash/tiflash-disaggregated-and-s3.md b/tiflash/tiflash-disaggregated-and-s3.md new file mode 100644 index 000000000000..98e996b5654b --- /dev/null +++ b/tiflash/tiflash-disaggregated-and-s3.md @@ -0,0 +1,203 @@ +--- +title: TiFlash 存算分离架构与 S3 支持 +summary: 了解 TiFlash 存算分离架构与 S3 支持。 +--- + +# TiFlash 存算分离架构与 S3 支持 + +> **警告:** +> +> TiFlash 存算分离架构目前为实验特性,不建议在生产环境中使用。该功能可能会在未事先通知的情况下发生变化或删除。如果发现 bug,请在 GitHub 上提 [issue](https://github.com/pingcap/tiflash/issues) 反馈。 + +TiFlash 默认使用存算一体的架构进行部署,即 TiFlash 节点既是存储节点,也是计算节点。从 TiDB v7.0.0 开始,TiFlash 支持存算分离架构,并将数据存储在 Amazon S3 或兼容 S3 API 的对象存储中(比如 MinIO)。 + +## 架构介绍 + +![TiFlash Write and Compute Separation Architect](/media/tiflash/tiflash-s3.png) + +如图,在存算分离架构中,TiFlash 原有进程的不同部分的功能,被拆分到两种不同的节点中,分别是 Write Node 和 Compute Node。这两种节点可以分别部署,各自扩展,即你可以选择部署任意数量的 Write Node 或者 Compute Node。 + +- TiFlash Write Node + + 负责接收 TiKV 的 Raft logs 数据,将数据转换成列存格式,并每隔一小段时间将这段时间的所有数据更新打包上传到 S3 中。此外,Write Node 也负责管理 S3 上的数据,比如不断整理数据使之具有更好的查询性能,以及删除无用的数据等。 + + Write Node 利用本地磁盘(通常是 NVMe SSD)来缓存最新写入的数据,从而避免过多使用内存。 + + Write Node 比原来存算一体的 TiFlash 节点有更快的扩容和缩容速度,即增加或者删除 Write Node 后,数据能更快地在 Write Node 之间达到平衡。原理是 Write Node 把所有数据存储到了 S3,运行时只需要在本地存储很少的数据。扩容和缩容本质上是 Region Peer 在节点间的迁移。当某个 Write Node 要将某个 Region Peer 移动到自己之上管理时,它只需要从 Region Peer 所在的 Write Node 上传到 S3 的最新文件中下载少量关于此 Region 的元数据,再从 TiKV 同步最近的 Region 更新,就可以追上 Region Leader 的进度,从而完成 Region Peer 的迁移。 + +- TiFlash Compute Node + + 负责执行从 TiDB 节点发过来的查询请求。它首先访问 Write Node 以获取数据的快照 (data snapshots),然后分别从 Write Node 读取最新的数据(即尚未上传到 S3 的数据),从 S3 读取剩下的大部分数据。 + + Compute Node 利用本地磁盘(通常是 NVMe SSD)来作为数据文件的缓存,从而避免相同的数据反复从远端(Write Node 或者 S3)读取,以提高查询性能。 + + Compute Node 是无状态节点,它拥有秒级的扩容和缩容速度。你可以利用这个特性降低成本: + + - 在查询负载较低时,减少 Compute Node 的数量,从而节省成本。在没有查询时,甚至可以停掉所有 Compute Node。 + - 在查询负载变高时,快速增加 Compute Node 的数量,保证查询性能。 + +## 使用场景 + +TiFlash 存算分离架构适用于高性价比的数据分析服务的场景。在这个架构下,存储和计算资源可以单独按需扩展。在这些场景将会有较大收益: + +- 数据量虽然很大,但是只有少量数据被频繁查询;其他大部分数据属于冷数据,很少被查询。此时经常被查询的数据通常已被缓存在 Compute Node 的本地 SSD 上,可以提供较快查询性能;而其他大部分冷数据则存储在成本较低的 S3 或者其他对象存储上,从而节省存储成本。 + +- 计算资源需求有明显的波峰和波谷。比如重型的对账查询通常放在晚上执行,此时对计算资源要求较高,可以考虑临时扩展 Compute Node;其他时间可以用较少的 Compute Node 完成查询任务。 + +## 准备条件 + +1. 准备一个 S3 的 bucket,用于存储 TiFlash 数据。 + + 你也可以使用已有的 bucket,但需要为每个 TiDB 集群预留专门的 key 前缀。关于 S3 bucket 的更多信息,请参考 [AWS 文档](https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/creating-buckets-s3.html)。 + + 也可以使用兼容 S3 的其他对象存储,比如 [MinIO](https://min.io/)。 + + TiFlash 使用的 S3 API 接口列表包括: + + - PutObject + - GetObject + - CopyObject + - DeleteObject + - ListObjectV2 + - GetObjectTagging + - PutBucketLifecycle + +2. 给准备好的 S3 bucket 添加一个用于清理已删除数据的[生命周期](https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/object-lifecycle-mgmt.html): + + ```shell + "ID": "tiflash-clean", + "Expiration": { + "Days": 1 + }, + "Filter": { + "And": { + "Tags": [ + { + "Value": "tiflash_deleted", + "Key": "true" + } + ] + } + } + ``` + +## 使用方式 + +默认情况下,TiUP 会将 TiFlash 部署为存算一体架构。如需将 TiFlash 部署为存算分离架构,请参考以下步骤手动进行配置: + +1. 确保 TiDB 集群中没有任何 TiFlash 节点。如果有,则需要将所有表的 TiFlash 副本数设置为 0,然后缩容掉所有 TiFlash 节点。比如: + + ```sql + SELECT * FROM INFORMATION_SCHEMA.TIFLASH_REPLICA; # 查询所有带有 TiFlash 副本的表 + ALTER TABLE table_name SET TIFLASH REPLICA 0; # 将所有表的 TiFlash 副本数设置为 0 + ``` + + ```shell + tiup cluster scale-in mycuster -R tiflash # 缩容掉所有 TiFlash 节点 + tiup cluster display mycluster # 等待所有 TiFlash 节点进入 Tombstone 状态 + tiup cluster prune mycluster # 移除所有处于 Tombstone 状态的 TiFlash 节点 + ``` + +2. 准备 TiFlash 的拓扑配置文件,比如 scale-out.topo.yaml,配置内容如下: + + ```yaml + tiflash_servers: + # TiFlash 的拓扑配置中存在 storage.s3 配置,说明部署时使用存算分离架构 + # 配置了 flash.disaggregated_mode: tiflash_compute,则节点类型是 Compute Node; + # 配置了 flash.disaggregated_mode: tiflash_write,则节点类型是 Write Node + + # 172.31.8.1~2 是 TiFlash Write Node + - host: 172.31.8.1 + config: + flash.disaggregated_mode: tiflash_write # 这是一个 Write Node + storage.s3.endpoint: http://s3.{region}.amazonaws.com # S3 的 endpoint 地址 + storage.s3.bucket: mybucket # TiFlash 的所有数据存储在这个 bucket 中 + storage.s3.root: /cluster1_data # S3 bucket 中存储数据的根目录 + storage.s3.access_key_id: {ACCESS_KEY_ID} # 访问 S3 的 ACCESS_KEY_ID + storage.s3.secret_access_key: {SECRET_ACCESS_KEY} # 访问 S3 的 SECRET_ACCESS_KEY + storage.main.dir: ["/data1/tiflash/data"] # Write Node 的本地数据目录,和存算一体的配置方式相同 + - host: 172.31.8.2 + config: + flash.disaggregated_mode: tiflash_write # 这是一个 Write Node + storage.s3.endpoint: http://s3.{region}.amazonaws.com # S3 的 endpoint 地址 + storage.s3.bucket: mybucket # TiFlash 的所有数据存储在这个 bucket 中 + storage.s3.root: /cluster1_data # S3 bucket 中存储数据的根目录 + storage.s3.access_key_id: {ACCESS_KEY_ID} # 访问 S3 的 ACCESS_KEY_ID + storage.s3.secret_access_key: {SECRET_ACCESS_KEY} # 访问 S3 的 SECRET_ACCESS_KEY + storage.main.dir: ["/data1/tiflash/data"] # Write Node 的本地数据目录,和存算一体的配置方式相同 + + # 172.31.9.1~2 是 TiFlash Compute Node + - host: 172.31.9.1 + config: + flash.disaggregated_mode: tiflash_compute # 这是一个 Compute Node + storage.s3.endpoint: http://s3.{region}.amazonaws.com # S3 的 endpoint 地址 + storage.s3.bucket: mybucket # TiFlash 的所有数据存储在这个 bucket 中 + storage.s3.root: /cluster1_data # S3 bucket 中存储数据的根目录 + storage.s3.access_key_id: {ACCESS_KEY_ID} # 访问 S3 的 ACCESS_KEY_ID + storage.s3.secret_access_key: {SECRET_ACCESS_KEY} # 访问 S3 的 SECRET_ACCESS_KEY + storage.main.dir: ["/data1/tiflash/data"] # Compute Node 的本地数据目录,和存算一体的配置方式相同 + storage.remote.cache.dir: /data1/tiflash/cache # Compute Node 的本地数据缓存目录 + storage.remote.cache.capacity: 858993459200 # 800 GiB + - host: 172.31.9.2 + config: + flash.disaggregated_mode: tiflash_compute # 这是一个 Compute Node + storage.s3.endpoint: http://s3.{region}.amazonaws.com # S3 的 endpoint 地址 + storage.s3.bucket: mybucket # TiFlash 的所有数据存储在这个 bucket 中 + storage.s3.root: /cluster1_data # S3 bucket 中存储数据的根目录 + storage.s3.access_key_id: {ACCESS_KEY_ID} # 访问 S3 的 ACCESS_KEY_ID + storage.s3.secret_access_key: {SECRET_ACCESS_KEY} # 访问 S3 的 SECRET_ACCESS_KEY + storage.main.dir: ["/data1/tiflash/data"] # Compute Node 的本地数据目录,和存算一体的配置方式相同 + storage.remote.cache.dir: /data1/tiflash/cache # Compute Node 的本地数据缓存目录 + storage.remote.cache.capacity: 858993459200 # 800 GiB + ``` + + * 注意以上 `ACCESS_KEY_ID` 和 `SECRET_ACCESS_KEY` 是直接写在配置文件中的。你也可以选择使用环境变量的方式单独配置。如果两种方式都配置了,环境变量的优先级高于配置文件。 + + 如需通过环境变量配置,请在所有部署了 TiFlash 进程的机器上,切换到启动 TiFlash 进程的用户环境(通常是 `tidb`),然后修改 `~/.bash_profile`,增加这些配置: + + ```shell + export S3_ACCESS_KEY_ID={ACCESS_KEY_ID} + export S3_SECRET_ACCESS_KEY={SECRET_ACCESS_KEY} + ``` + + * `storage.s3.endpoint` 支持使用 `http` 模式和 `https` 模式连接 S3,可以直接通过修改 URL 来选择。比如 `https://s3.{region}.amazonaws.com`。 + +3. 执行扩容 TiFlash 节点,并重新设置 TiFlash 副本数: + + ```shell + tiup cluster scale-out mycluster ./scale-out.topo.yaml + ``` + + ```sql + ALTER TABLE table_name SET TIFLASH REPLICA 1; + ``` + +4. 修改 TiDB 配置,用存算分离的方式查询 TiFlash。 + + 1. 以编辑模式打开 TiDB 配置文件: + + ```shell + tiup cluster edit-config mycluster + ``` + + 2. 在 TiDB 配置文件中添加以下配置项: + + ```shell + server_configs: + tidb: + disaggregated-tiflash: true # 使用存算分离的方式查询 TiFlash + ``` + + 3. 重启 TiDB: + + ```shell + tiup cluster reload mycluster -R tidb + ``` + +## 使用限制 + +- TiFlash 不支持在存算一体架构和存算分离架构之间原地切换。在切换架构前,需要将原有 TiFlash 节点全部删除。 +- 从一种架构迁移到另外一种架构后,需要重新同步所有 TiFlash 的数据。 +- 同一个 TiDB 集群只允许存在相同架构的 TiFlash 节点,不允许两种架构同时存在。 +- 存算分离架构只支持使用 S3 API 的对象存储,存算一体架构只支持本地存储。 +- 使用 S3 存储的情况下,TiFlash 节点无法获取非本节点文件的密钥,因此无法启用[静态加密](/encryption-at-rest.md)功能。