#服务器准备
YashanDB已与多家服务器和操作系统厂商实现了兼容认证,具体可查阅官网所列YashanDB兼容列表 (opens new window)。
本文将列示在部署不同形态的YashanDB时,我们所建议或要求的环境相关配置。后续手册中所展示的操作步骤和示例命令也主要适配于这些配置环境,若在其他兼容环境中的实际步骤、命令等存在细微差异,建议参考对应操作系统的官方指引或联系系统服务商解决。
Caution:
若使用虚拟机安装YashanDB,必须将虚拟机的硬盘设置为独立-永久模式(例如,VMware中需在虚拟机的【硬盘高级设置】中勾选模式为【独立】-【永久】,具体配置方法请以各虚拟机平台实际为准),否则在断电等场景下会出现磁盘文件破坏的情况。
# 服务器配置
| 项目 | 推荐配置 | 最低配置 |
|---|---|---|
| 数量/用途 | * 单机部署:1台(单库)或多台(主备)用于部署数据库实例 * 共享集群部署:2台以上用于部署集群实例 * 分布式集群部署:2台以上作为计算节点;3台以上作为存储节点 * 存算一体分布式集群部署:3台以上MN+CN+DN服务器 | 1台 |
| 操作系统 | * Redhat Enterprise Linux 7、8、9 * CentOS 7.6及以上 * openEuler 22.03 LTS * KylinOS V10(ARM架构:推荐使用V10 SP3 2303的52.33内核、海光CPU:推荐使用V10 SP3 2303的52.45内核) | 如需使用大页内存,要求Linux内核版本为2.6及以上 如需使用NVMe over TCP传输协议,要求Linux内核版本为5.0及以上 |
| CPU | X86_64、ARM64、龙芯 超线程,非超线程 推荐4C及以上;共享集群推荐8C及以上 | CPU核数>2 |
| 内存 | 推荐16G及以上;共享集群推荐32G及以上 | >4G |
| 硬盘 | 推荐使用SSD,分布式集群要求为NVMe SSD 推荐存储空间50G及以上 | >4G |
| 文件系统 | ext4或xfs | 不能为tmpfs或者devtmpfs |
| 网络 | 千兆以上以太网,支持TCP和UDP;共享集群内部通信的私网要求10GE以上 | - |
| 网卡 | 推荐为每个子网(例如公网、私网,尤其是私网)配置多块网卡,通过Linux网络绑定技术bond给网卡做冗余 在部署共享集群时,如需使用SCAN或VIP功能,请确保同一集群中所有服务器用于配置公网子网的网卡支持ARP/NDP协议,且建议网卡名称保持一致便于运维 在部署分布式集群时,要求网卡类型为RDMA,并已安装相应的驱动,处于正常运行状态 | - |
# 存储设备配置
在部署共享集群或分布式集群时,除服务器外,还需准备专门的存储设备。其中,共享集群要求准备1台SAN共享存储;分布式集群则要求1套可搭建NVMe-oF分布式存储的NVMe SSD。
# SAN共享存储
仅共享集群部署需要使用SAN共享存储。
| 项目 | 推荐配置 |
|---|---|
| 硬盘 | SSD、HDD均可,品牌和介质不得交叉组合 |
| LUN | 4个或6个及以上LUN,分为系统盘和数据盘: * 系统盘:3个或5个LUN,容量1G及以上(当系统盘仅规划1个LUN且其AU Size配置需为32M时,容量至少为2G) * 数据盘:1个LUN及以上,容量50G及以上 |
| 接口 | 存储设备及操作系统支持Direct IO,支持512字节内存对齐和IO大小对齐 存储设备支持通过 pread64、pwrite64 接口一次性读写512字节整倍数,即支持一次性读写如下所有大小:512字节、1024字节、1536字节...32M |
| 协议 | 如需使用基于SCSI持久预留的I/O Fencing,要求支持SCSI-3协议(及以上)和SPC-3命令集(SCSI Primary Commands-3,及以上),且支持类型5的持久预留(Write Exclusive – Registrants Only) |
Caution:
共享集群(使用SAN共享存储时)支持两种I/O Fencing方法,推荐使用基于SCSI持久预留的I/O Fencing,但该方法对共享存储的能力有一定要求。在安装部署过程会自动调用fenceScsiCheck脚本检测共享存储等设备/环境是否符合要求。
fenceScsiCheck脚本检测报错时,并不会阻塞安装部署,但共享集群的I/O Fencing方法将被配置为在途I/O保护算法。如仍需使用基于SCSI持久预留的I/O Fencing,请根据相应的错误提示进行调整。
如果不使用基于SCSI持久预留的I/O Fencing,共享集群存在脑裂风险。
# NVMe-oF分布式存储
仅分布式集群部署需要使用NVMe-oF分布式存储。
| 项目 | 推荐配置 |
|---|---|
| 硬盘 | NVMe SSD,品牌不得交叉组合 |
| NVMe-oF盘 | 4个或6个及以上NVMe-oF盘,分为系统盘和数据盘: * 系统盘:3个或5个命名空间,容量1G及以上(当系统盘仅规划1个NVMe-oF盘且其AU Size配置需为32M时,容量至少为2G) * 数据盘:1个命名空间及以上,容量50G及以上 |
| 传输类型 | 支持以下类型: * NVMe over TCP:要求Linux内核版本为5.0及以上 * NVMe over RDMA:要求使用RDMA网卡并正确安装相应的驱动 |
# 安装示例服务器列表
以下将列出本手册中各安装示例所用到的服务器信息,所有服务器均为X86_64架构并安装CentOS 7.6操作系统。除共享集群部署以不同网段进行示例外,其他部署形态中的示例服务器均位于同一网段。
# 单机单库部署
单机单库部署中,YashanDB将只安装在一台服务器上,无备库。
| 服务器名称 | 服务器IP | 角色 |
|---|---|---|
| host0001 | 192.168.1.2 | 主 |
# 单机主备部署
单机主备部署将以三台服务器分别为主、备、备角色作为示例,搭建一主两备的高可用环境。
| 服务器名称 | 服务器IP | 角色 |
|---|---|---|
| host0001 | 192.168.1.2 | 主 |
| host0002 | 192.168.1.3 | 备 |
| host0003 | 192.168.1.4 | 备 |
# 单机级联备部署
单机级联备部署将以三台服务器分别为主、备、级联备角色作为示例,搭建一主一备一级联备的高可用环境。
| 服务器名称 | 服务器IP | 角色 |
|---|---|---|
| host0001 | 192.168.1.2 | 主 |
| host0002 | 192.168.1.3 | 备 |
| host0003 | 192.168.1.4 | 级联备 |
# 双复制组主备部署
双复制组主备部署将以六台服务器分别为主group(按节点部署1主2备)、备group(首节点为备,其他节点为级联备)作为示例,搭建两地双复制组的高可用环境。
| 服务器名称 | 服务器IP | 角色 |
|---|---|---|
| host0001(A机房) | 192.168.1.2 | 主group:1-1:1(主) |
| host0002(A机房) | 192.168.1.3 | 主group:1-2:2(同步备) |
| host0003(A机房) | 192.168.1.4 | 主group:1-3:3(同步备) |
| host0004(B机房) | 192.168.10.5 | 备group:2-1:4(异步备) |
| host0005(B机房) | 192.168.10.6 | 备group:2-2:5(级联备) |
| host0006(B机房) | 192.168.10.7 | 备group:2-3:6(级联备) |
# 共享集群部署
以两台服务器+一台共享存储,和两台服务器+一套NVMe-oF分布式存储为示例,搭建双实例单库的典型共享集群环境。
# 服务器
假设规划相互独立且隔离的公网和私网2个子网。
| 服务器名称 | 网段配置 | 服务器IP | 角色 |
|---|---|---|---|
| host0001 | 公网网卡ens192:192.168.1.0/24 私网网卡ens224:172.16.1.0/24 | ens192:192.168.1.2 ens224:172.16.1.2 | 数据库实例1 |
| host0002 | 公网网卡ens192:192.168.1.0/24 私网网卡ens224:172.16.1.0/24 | ens192:192.168.1.3 ens224:172.16.1.3 | 数据库实例2 |
预留IP地址
- 本手册以192.168.1.100、192.168.1.101以及192.168.1.102作为预留SCAN VIP。
- 本手册以192.168.1.62和192.168.1.63作为预留VIP。
# 存储设备
SAN共享存储上已按配置要求划分4个LUN。
| LUN名称 | LUN路径 | 磁盘用途 |
|---|---|---|
| LUN1 | /dev/mapper/lun03-sys0 | 系统盘 |
| LUN2 | /dev/mapper/lun03-sys1 | 系统盘 |
| LUN3 | /dev/mapper/lun03-sys2 | 系统盘 |
| LUN4 | /dev/mapper/lun01-data0 | 数据盘 |
# 主备集群部署
主备集群部署以四台服务器+两台共享存储为示例,搭建主备双实例的共享集群环境。
采用主备共享集群部署时,仅支持使用SAN共享存储。
# 服务器
假设不规划隔离子网。
| 服务器名称 | 网段配置 | 服务器IP | 角色 |
|---|---|---|---|
| host0001 | 网卡ens192:192.168.1.0/24 | 192.168.1.2 | 主集群数据库实例1 |
| host0002 | 网卡ens192:192.168.1.0/24 | 192.168.1.3 | 主集群数据库实例2 |
| host0003 | 网卡ens192:192.168.10.0/24 | 192.168.10.4 | 备集群数据库实例1 |
| host0004 | 网卡ens192:192.168.10.0/24 | 192.168.10.5 | 备集群数据库实例2 |
预留IP地址
- 本手册以192.168.1.100、192.168.1.101以及192.168.1.102作为预留SCAN VIP。
- 本手册以192.168.1.62和192.168.1.63作为预留VIP。
# 存储设备
每台SAN共享存储上已按配置要求分别划分4个LUN。
| 共享存储 | LUN名称 | LUN路径 | 磁盘用途 |
|---|---|---|---|
| 共享存储1 | LUN1 | /dev/mapper/lun03-sys0 | 主集群系统盘 |
| 共享存储1 | LUN2 | /dev/mapper/lun03-sys1 | 主集群系统盘 |
| 共享存储1 | LUN3 | /dev/mapper/lun03-sys2 | 主集群系统盘 |
| 共享存储1 | LUN4 | /dev/mapper/lun01-data0 | 主集群数据盘 |
| 共享存储2 | LUN1' | /dev/mapper/lun04-sys0 | 备集群系统盘 |
| 共享存储2 | LUN2' | /dev/mapper/lun04-sys1 | 备集群系统盘 |
| 共享存储2 | LUN3' | /dev/mapper/lun04-sys2 | 备集群系统盘 |
| 共享存储2 | LUN4' | /dev/mapper/lun02-data0 | 备集群数据盘 |
# 分布式集群部署
分布式集群部署以两台CN服务器+两台DN服务器为示例,搭建双实例单库的典型分布式集群环境。
| 服务器名称 | 服务器IP | 角色 | NVMe盘 |
|---|---|---|---|
| host0001 | 172.16.1.2 | 计算节点1 | - |
| host0002 | 172.16.1.3 | 计算节点2 | - |
| host0003 | 172.16.1.4 | 数据节点1 | 系统盘:/dev/nvme0n1、 /dev/nvme0n2 数据盘:/dev/nvme0n3 |
| host0004 | 172.16.1.5 | 数据节点2 | 系统盘:/dev/nvme0n1 数据盘:/dev/nvme0n3 |
# 存算一体分布式集群部署
示例一:以三台服务器,包含1个MN组(MN节点1主2备),2个CN,1个DN组(DN节点1主1备)的规格作为示例环境。
| 服务器名称 | 服务器IP | 角色 |
|---|---|---|
| host0001 | 192.168.1.2 | MN:1-1(主),DN:3-2(备) |
| host0002 | 192.168.1.3 | MN:1-2(备),CN:2-1 |
| host0003 | 192.168.1.4 | MN:1-3(备),CN:2-2,DN:3-1(主) |
示例二:以三台服务器,包含1个MN组,2个CN,1个DN组(DN组和MN组均为1主2备)的规格作为示例环境。
| 服务器名称 | 服务器IP | 角色 |
|---|---|---|
| host0001 | 192.168.1.2 | MN:1-1(主),DN:3-2(备) |
| host0002 | 192.168.1.3 | MN:1-2(备),CN:2-1,DN:3-3(备) |
| host0003 | 192.168.1.4 | MN:1-3(备),CN:2-2,DN:3-1(主) |

