外观
TDSQL 软件依赖
操作系统依赖
支持的操作系统
TDSQL支持多种Linux操作系统,以下是官方推荐的操作系统版本:
| 操作系统 | 版本 | 架构 | 支持状态 |
|---|---|---|---|
| CentOS | 7.6-7.9 | x86_64, ARM64 | 推荐 |
| Red Hat Enterprise Linux | 7.6-7.9, 8.2-8.6 | x86_64, ARM64 | 推荐 |
| Ubuntu Server | 18.04 LTS, 20.04 LTS | x86_64, ARM64 | 推荐 |
| 中标麒麟 | 高级服务器操作系统V7.0, V7.5 | x86_64, ARM64 | 兼容 |
| 银河麒麟 | 高级服务器操作系统V10 | x86_64, ARM64 | 兼容 |
| Debian | 10, 11 | x86_64, ARM64 | 兼容 |
操作系统配置要求
内核版本
- 推荐内核版本:3.10.0-1160.el7.x86_64或更高
- 最低内核版本:3.10.0-514.el7.x86_64
- 内核参数优化:见下文内核参数配置
文件系统
- 推荐使用XFS或EXT4文件系统
- 文件系统挂载参数建议:
- noatime:禁用文件访问时间记录
- nodiratime:禁用目录访问时间记录
- nobarrier:禁用写屏障(仅适用于带电池缓存的RAID卡)
SELinux和防火墙
- SELinux:建议设置为permissive或disabled
- 防火墙:根据需要配置,确保必要端口开放
核心依赖组件
数据库引擎依赖
TDSQL支持多种数据库引擎,不同引擎有不同的依赖要求:
MySQL兼容版依赖
- MySQL客户端库:libmysqlclient 5.7或更高
- OpenSSL:1.0.2或更高版本
- zlib:1.2.7或更高版本
- libatomic:用于原子操作支持
PostgreSQL兼容版依赖
- PostgreSQL客户端库:libpq 10或更高
- OpenSSL:1.0.2或更高版本
- zlib:1.2.7或更高版本
- libxml2:2.9.1或更高版本
- libxslt:1.1.28或更高版本
分布式组件依赖
分布式事务组件
- 依赖Paxos/Raft共识算法实现
- 无需额外安装外部组件,内置实现
分片管理组件
- 内置分片管理模块
- 依赖元数据管理组件
元数据管理组件
- 基于分布式KV存储实现
- 支持etcd或内置KV存储
网络组件依赖
网络库
- 支持TCP/IP和UDP协议
- 依赖操作系统网络栈
- 支持SSL/TLS加密通信
负载均衡组件
- 内置Proxy组件
- 支持LVS、HAProxy等外部负载均衡器
管理工具依赖
命令行工具依赖
TDSQL CLI工具
- 依赖Python 3.6或更高版本
- 依赖pip包管理工具
- 依赖requests、paramiko等Python库
监控工具依赖
内置监控工具
- 内置Prometheus和Grafana集成
- 无需额外安装
第三方监控集成
- 支持Zabbix、Nagios等监控系统
- 依赖相应的监控插件
GUI管理工具依赖
TDSQL控制台
- 基于Web的管理界面
- 支持主流浏览器:Chrome 80+, Firefox 75+, Safari 13+, Edge 80+
- 依赖JavaScript运行环境
内核参数配置
网络相关参数
bash
# 优化TCP连接
et.ipv4.tcp_max_syn_backlog = 65536
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_max_tw_buckets = 65536
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 1024 65535
# 优化网络缓冲区
net.core.somaxconn = 65536
net.core.netdev_max_backlog = 65536
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216文件系统相关参数
bash
# 优化文件描述符限制
fs.file-max = 655360
fs.aio-max-nr = 1048576
# 优化inode缓存
vm.vfs_cache_pressure = 50内存相关参数
bash
# 优化内存管理
vm.swappiness = 10
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10
vm.dirty_expire_centisecs = 3000
vm.dirty_writeback_centisecs = 500
# 优化NUMA
vm.zone_reclaim_mode = 0进程相关参数
bash
# 优化进程调度
kernel.sched_migration_cost_ns = 5000000
kernel.sched_autogroup_enabled = 0系统资源限制
用户资源限制
在/etc/security/limits.conf文件中添加以下配置:
bash
# TDSQL进程资源限制
tdsql soft nofile 65536
tdsql hard nofile 65536
tdsql soft nproc 65536
tdsql hard nproc 65536
tdsql soft stack 8192
tdsql hard stack 8192
tdsql soft core unlimited
tdsql hard core unlimitedPAM配置
确保/etc/pam.d/login和/etc/pam.d/sshd文件中包含以下配置:
bash
session required pam_limits.so依赖安装方法
CentOS/RHEL系统
bash
# 更新系统
yum update -y
# 安装基础依赖
yum install -y epel-release
yum install -y gcc gcc-c++ make cmake autoconf automake libtool
# 安装数据库相关依赖
yum install -y libmysqlclient-devel libpq-devel openssl-devel zlib-devel
# 安装Python相关依赖
yum install -y python3 python3-pip python3-devel
# 安装其他依赖
yum install -y libxml2-devel libxslt-devel libatomic_ops-develUbuntu/Debian系统
bash
# 更新系统
apt update -y
apt upgrade -y
# 安装基础依赖
apt install -y build-essential cmake autoconf automake libtool
# 安装数据库相关依赖
apt install -y libmysqlclient-dev libpq-dev libssl-dev zlib1g-dev
# 安装Python相关依赖
apt install -y python3 python3-pip python3-dev
# 安装其他依赖
apt install -y libxml2-dev libxslt1-dev libatomic1容器化部署依赖
Docker依赖
- Docker版本:19.03或更高
- 推荐Docker Engine - Community或Docker Engine - Enterprise
- 支持Docker Compose 1.27或更高
Kubernetes依赖
Kubernetes版本:1.18或更高
支持主流Kubernetes发行版:
- TKE (腾讯云容器服务)
- EKS (Amazon Elastic Kubernetes Service)
- GKE (Google Kubernetes Engine)
- 开源Kubernetes
依赖组件:
- CoreDNS
- etcd
- kube-proxy
- Container Network Interface (CNI)插件
Helm依赖
- Helm版本:3.0或更高
- 用于部署TDSQL Helm Chart
依赖管理最佳实践
依赖版本管理
- 使用固定版本的依赖组件,避免版本波动
- 建立依赖组件的版本矩阵
- 定期更新依赖组件,修复安全漏洞
依赖隔离
- 考虑使用容器化部署,实现依赖隔离
- 对于非容器化部署,考虑使用虚拟环境
- 避免系统依赖和应用依赖冲突
依赖监控
- 监控依赖组件的状态和性能
- 建立依赖组件的告警机制
- 定期检查依赖组件的安全漏洞
依赖备份
- 备份依赖组件的配置文件
- 备份依赖组件的数据(如etcd数据)
- 建立依赖组件的恢复机制
常见依赖问题及解决方案
依赖版本冲突
问题现象:安装或运行TDSQL时,出现依赖版本不兼容错误
解决方案:
- 使用指定版本的依赖组件
- 考虑使用容器化部署,隔离依赖环境
- 升级或降级相关依赖组件
依赖缺失
问题现象:安装或运行TDSQL时,提示缺少某个依赖组件
解决方案:
- 按照依赖要求安装缺失的组件
- 检查软件源配置,确保可以访问到所需依赖
- 考虑使用离线安装包,包含所有依赖组件
依赖组件性能问题
问题现象:依赖组件(如etcd)性能不佳,影响TDSQL运行
解决方案:
- 优化依赖组件的配置
- 增加依赖组件的资源分配
- 考虑使用高可用部署方式
依赖组件安全漏洞
问题现象:依赖组件存在安全漏洞,需要更新
解决方案:
- 及时更新依赖组件到安全版本
- 临时措施:配置防火墙规则,限制访问
- 考虑使用安全扫描工具,定期检查依赖组件的安全状态
常见问题(FAQ)
Q1: TDSQL 支持哪些操作系统?
A1: TDSQL支持多种Linux操作系统,包括CentOS 7.6-7.9、Red Hat Enterprise Linux 7.6-7.9/8.2-8.6、Ubuntu Server 18.04/20.04 LTS、中标麒麟V7.0/V7.5、银河麒麟V10、Debian 10/11等。推荐使用CentOS或Red Hat Enterprise Linux,这些操作系统在生产环境中经过广泛验证。
Q2: TDSQL 对内核版本有什么要求?
A2: TDSQL推荐使用内核版本3.10.0-1160.el7.x86_64或更高,最低要求3.10.0-514.el7.x86_64。内核版本过低可能会影响系统性能和稳定性,建议使用推荐的内核版本。
Q3: 如何优化操作系统内核参数?
A3: TDSQL提供了推荐的内核参数配置,包括网络参数、文件系统参数、内存参数和进程参数等。可以将这些参数添加到/etc/sysctl.conf文件中,然后执行sysctl -p命令使其生效。具体配置见上文内核参数配置部分。
Q4: TDSQL 容器化部署需要什么依赖?
A4: TDSQL容器化部署需要Docker 19.03或更高版本,推荐使用Docker Compose 1.27或更高版本。对于Kubernetes部署,需要Kubernetes 1.18或更高版本,以及CoreDNS、etcd、kube-proxy等依赖组件,还需要CNI插件提供网络支持。
Q5: 如何处理依赖版本冲突问题?
A5: 处理依赖版本冲突问题的方法包括:使用指定版本的依赖组件、采用容器化部署实现依赖隔离、升级或降级相关依赖组件等。建议在部署前进行充分的测试,确保所有依赖组件版本兼容。对于生产环境,推荐使用固定版本的依赖组件,避免版本波动。
