Greenplum集群安装配置及最佳实践
总体原则
1.1 硬件平衡
- 性能
- 成本
- 容量
1.2 高可用
- 节点
- 网络
- 磁盘
1.3 部署方案
- Master与Standby Master分级部署
- Primary Segment与Mirror Segment 分机部署
- Segment Mirroring 部署方案
- Group Mirroring
- Spread Mirroring
- Group + Spread Mirroring
- Pivotal Supported Greenplum 必须部署Mirroring Segment
- Pivotal Supported Greenplum 必须部署Mirroring Segment
- 同一主机Segment个数
- CPU/Core 数据
- 查询并发数
- 单机Primary Segment 总数不能过多
1.3.1 Group Mirroring 部署方案
按照以下4台机器Group Mirroring的部署方案总结
缺点: 一台机器down掉后,会把流量全部放在下一个节点,下一个节点的流量会变成2倍的流量
优点: down掉一台机器后,集群能正常的提供服务,如果再down掉第二台集群就不可用
1.3.2 Spread Mirroring 部署方案
按照以下4台机器Spread Mirroring的部署方案总结
缺点: 一台机器down掉后,会把流量全部放在下两个节点
优点: down掉一台机器后,集群能正常的提供服务,如果再down掉第二台集群就不可用
1.3.3 Group + Spread Mirroring 部署方案
如果集群比较大建议使用Group + Spread Mirroring部署方案,如果集群由down流量会分流道其他的机器上,集群不可用的几率比较小。
2 硬件选型
2.1 Master 节点
- 网卡
- 2块万兆网卡内部互联
- 1-2块千兆网卡带外管理及接入客户网络
- 内存
- DDR4 64GB以上,建议256G
- 磁盘
- 6块600G/900G 10k RPM SAS盘
- 采用RAID5或RAID10
- 单独预留hotspare 盘
- 1块RAID卡,cache 1GB以上,带有掉电保护功能
- CPU
- 2路8核及以上
- 主频2.5G HZ以上
2.2 Segment 节点
- 网卡
- 2块万兆网卡内部互联
- 1-2块千兆网卡带外管理及接入客户网络
- 内存
- DDR4 64GB以上,建议256G
- 磁盘
- 24块600G/900G 10k RPM SAS盘
- 采用RAID5或RAID10
- 单独预留hotspare 盘
- 1-2块RAID卡,cache 1GB以上,带有掉电保护功能
- CPU
- 2路8核及以上
- 主频2.5G HZ以上
2.3 节点配置示例
2.4 经验总结
- 磁盘故障是Greenplum集群最常见故障
- 分析性查询:SAS盘>SATA盘
- 高并发IO查询:优先SSD或者NVMe
- RAID级别
- RAID5 VS RAID 10
容量 90% VS 50%
可靠性高
坏盘后性能保证
性价比
- RAID卡一定带Cache功能
- 硬件监控
- 预留灾备机
3 硬件配置
3.1 主机配置
3.2 网络配置
每个网卡都配置流量网卡,保证流量网卡的均匀。
3.3 交换机配置
交换机配置是双机。
4 存储规划
4.1磁盘可用空间
- 原始磁盘容量
- raw_capacity=disk_capacity*number_of_disks
- 文件系统开销
- 文件系统格式(10%)
- RAID级别
- RAID5:10%
- RAID10:50%
- formatted_disk_space=(raw_capacity*0.9)/2
- 性能因素
- 磁盘容量保持在70%最佳
- usable_disk_space=formatted_disk_space*0.7
- 用户数据空间及临时空间
- 用户数据容量U,临时空间容量U/3
- With Mirror:usable_disk_space=2*U+U/3
- Without Mirror:usable_disk_space=U+U/3
4.2 用户数据容量
- 数据库用户数据=原始用户数据*1.4(为什么会增加)
- Page开销
- 每32KB的Page需要20字节Header开销
- Tuple开销
- 每个heap Tuple需要24字节Header开销
- 每个AO Tuple需要4字节Header开销
- Attribute开销
- 类型有关
- Index开销
- Btree索引与唯一数目有关
4.3 系统数据容量
- Catalog
- 每个Segment约300MB
- Write Ahead Log
- WAL分为多个64MB的段文件
- 段文件数据最多为2*checkpoint_segment+1(默认checkpoint_segment为8个)
- 每个Segment上WAL最多(2*8+1)*64MB=1088MB
- Database Log文件
- Log Rotation机制
4.4 容量总结
| |
RAID parity/mirroing | • Depends on RAID type chosen; i.e., 50% of storage for RAID 10 |
Greenplum Database segment mirrors | • 50% of storage |
File system overhead | • About 10% of storage |
Used capacity | • Less than 70% recommended |
Raw data size and database storage overhead | • Raw data may be 1.4 times larger on disk; depends on table types, indexes, compressions, etc. |
System metadata | • About 20 MB per segment and master instance |
Write ahead log (WAL) | • About 1088 MB per segment and master instance |
Greenplum Database log files | • About 10 MB per segment and master instance |
5 集群配置
5.1 最近系统要求
以下是系统的最近的配置
Operating System | SUSE Linux Enterprise Server 64-bit 11 SP4, 12 SP2 and SP3 with kernel version greater than 4.4.73-5. • CentOS 64-bit 6.x or 7.x • Red Hat Enterprise Linux (RHEL) 64-bit 6.x or 7.x • Oracle Linux 64-bit 7.4, using the Red Hat Compatible Kernel (RHCK) |
Minimum CPU | • Pentium Pro compatible (P3/Athlon and above) |
Memory | • 1 GB RAM per CPU core / 16 GB RAM per Server (The recommended amount of memory for optimal performance is 8-16GB per CPU core) |
File Systems | • xfs required for data storage on SUSE Linux and Red Hat (ext3 supported for root file system, can be up to 60% slower than xfs on production-level workloads) |
Disk Requirement | • 150MB per host for Greenplum installation • Approximately 300MB per segment instance for meta data • Appropriate free space for data with disks at no more than 70% capacity • High-speed, local storage |
Network Requirement | • 10 Gigabit Ethernet within the array • Dedicated, non-blocking switch • NIC bonding is recommended when multiple interfaces are present |
Software and Utilities | • zlib compression libraries, bash shell, perl, secure shell • GNU tars, GNU zip, GNU sed (used by Greenplum Database gpinitsystem) |
5.2 系统配置
详细配置请看5.10集群安装文档
6 集群安装
6.1 安装方式
RPM安装
Binary安装