原文链接:https://www.gbase.cn/community/post/4157
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。
文接上回。上一篇文章,已完成整体方案设计,本文将重点介绍该方案的环境规划准备以及安装部署前的检查工作。
南大通用GBase 8a MPP Cluster分析型数据库在某行业典型实施部署方案(一)
4.环境配置
4.1.服务器IP地址规划
6台主机建议coordinator节点规划3个,data节点5个、其中2台机器coordinator节点和data节点复用。由于集群JDBC自带自动路由功能,因此在web应用中间件中的JDBC配置URL中可将集群所有coordinator节点万兆网IP地址均配置到hostlist参数中,以便当有节点离线时,应用连接自动下发到可以使用的集群节点上,不影响应用正常使用集群。集群各节点IP地址规划目前分配如下,万兆网络IP地址用于数据内部通信使用。
4.2.Raid配置规划
考虑操作系统和数据文件存储分离,保障数据安全,将现有磁盘配置2个raid5 (均为物理分区,不做逻辑卷)。
Raid1:2块SSD盘,用于用户操作系统的安装以及swap分区的分配
raid5:22块SAS盘,用于数据的数据存储
data盘(raid5)的raid卡条带选择最大的。最小也要1MB以上。不要用默认。
Access Policy:设置为RW
Read Policy:设置为Ahead
Write Policy:设置为Write Back with BBU,允许RAID控制器自动切换为Write Through模式;
IO Policy:操作系统磁盘(RAID1)设置为Direct IO模式,集群安装磁盘(RAID50)设置为Cached IO模式;其他可采用默认设置。
参照方案,raid配置参考如下图表4-2:
4.3.操作系统配置规划
集群各节点操作系统均采用RedHat7.5系列 64位版本,版本信息如下:Description:Red Hat Enterprise Linux 7.5;Release:7.5。操作系统参考配置如下:
1.采取”桌面”或者”软件工作站点”的方式安装;
2.root用户口令:建议各省安装前统一root密码;
3.gbase用户口令:建议各省安装前统一gbase密码;
4.语言采用默认 english (后续需手工安装中文支持);
5.keyboard 选择 U.S.ENGLISH;
6.主机名定义:gbase0*
7.时区 选择 世界时间 GMT时间;
8.磁盘分区:
sda 480G [swap:128GB boot:960MB 根:剩余的分给根目录]
sdb 12TB [12TB全部分给data]
全部采用ext4 格式化;
9.安装方式:桌面或软件工作站, customize now 选择 语言 选择 chinese support。
10.操作系统重启后,无需新建用户;
11. 需要修改当前日期和时间;
12. 设置 enable kdump。
4.4.网络配置规划
安全集群的网络规划如下:
1.集群千兆网、万兆网(或者双万兆环境)地址,参考国家局建议统一规划。
2.集群节点需配置千兆和万兆网络IP地址(千兆连接办公网,万兆用于集群内部数据交换)万兆、千兆网络均需采用双网卡绑定,绑定模式为主备模式(mode=1),千兆2网口绑定分别连接千兆主备交换机,万兆2网口绑定分别连接万兆兆主备交换机。
3.网卡绑定必须设置成开机自动生效的。
4.千兆、万兆网络不建议配置在同一网段内。如万兆网络使用私网地址,千兆网络使用办公环境地址。
5.集群服务器、交换机部署在同一个机房及同一个IP局域网段内(或配置在同一vlan中),并避免集群节点的跨交换机级联部署方式。
6.6台主机建议分置2个不同机柜(同一机房内)。如左机柜3台,右机柜3台。
4.5.端口规划
以下端口号为gbase数据常用端口号,在集群操作系统配置防火墙的前提下,需要开启以下端口保证集群能后正常运行。
4.6.GBASE数据库版本规划
安装版本:GBase8a_MPP_Cluster-9.5.2.23-redhat7-x86;
集群架构规划:GBASE集群架构规划为6个节点,文件服务器(加载机)复用其中某一节点;
6台主机建议规划3个coordinator节点,5个data节点,其中2个data节点和coordinator节点复用;
8台主机建议规划3个coordinator节点,7个data节点,其中2个data节点和coordinator节点复用;
10台主机建议规划3个coordinator节点,9个data节点,其中2个data节点和coordinator节点复用。
4.7.应用连接资源规划
建议业务可以通过接入不同的管理节点以降低单节点压力。由于集群JDBC自带自动路由功能,因此在web应用中间件中的JDBC配置URL中可将集群所有coordinator节点均配置到hostlist参数中,以便当有节点离线时,应用连接自动下发到可以使用的集群节点上,不影响应用正常使用集群。
5.集群安装前检查
5.1.硬件配置检查
1.验证服务器硬件配置是否均与硬件配置清单项相符;
2.验证服务器硬件是否能正常工作、正常启动;
3.验证raid卡配置是否按照推荐配置进行了设置。
5.2.操作系统配置检查
1.验证操作系统版本是否采用了推荐版本。
2.验证是否进行了双卡绑定。
3.验证千兆、万兆网卡是否工作在正常的速率模式。
4.验证磁盘分区是否正确,分区大小、采用文件系统是否为推荐配置。
5.验证防火墙是否开放GBase8a集群相关服务端口。
6.验证各主机root口令是否设置一致。
7.验证各主机上集群相关端口是否被占用。
5.3.磁盘性能测试
采用dd和fio磁盘测试工具对/data目录进行磁盘IO性能测试,根据测试结果评估磁盘顺序、随机读写的性能是否正常;
写测试 执行命令“dd oflag=direct if=/dev/zero of=1.dat bs=2M count=200”
读测试 执行命令“dd iflag=direct if=1.dat of=/dev/null bs=2M count=200”
读写测试 执行命令“dd iflag=direct oflag=direct if=1.dat of=2.dat bs=2M count=200”
语法:dd [选项]
if =输入文件(或设备名称)。
of =输出文件(或设备名称)。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
测试脚本如下:
rm -rf /opt/1.dat
rm -rf /opt/2.dat
echo -e "-----begin 4k test-----\n" >> /root/dd.log
echo -e "-----begin 4k write-----\n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=4k count=262144 >> /root/dd.log 2>&1
echo -e "-----begin 4k read-----\n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=4k count=262144 >> /root/dd.log 2>&1
echo -e "-----begin 4k read and write-----\n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=4k count=262144 >> /root/dd.log 2>&1
echo -e "-----end 4k test-----\n" >> /root/dd.log
rm -rf /opt/1.dat
rm -rf /opt/2.dat
echo -e "-----begin 8k test-----\n" >> /root/dd.log
echo -e "-----begin 8k write-----\n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=8k count=131072 >> /root/dd.log 2>&1
echo -e "-----begin 8k read-----\n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=8k count=131072 >> /root/dd.log 2>&1
echo -e "-----begin 8k read and write-----\n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=8k count=131072 >> /root/dd.log 2>&1
echo -e "-----end 8k test-----\n" >> /root/dd.log
rm -rf /opt/1.dat
rm -rf /opt/2.dat
echo -e "-----begin 16k test-----\n" >> /root/dd.log
echo -e "-----begin 16k write-----\n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=16k count=65536 >> /root/dd.log 2>&1
echo -e "-----begin 16k read-----\n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=16k count=65536 >> /root/dd.log 2>&1
echo -e "-----begin 16k read and write-----\n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=16k count=65536 >> /root/dd.log 2>&1
echo -e "-----end 16k test-----\n" >> /root/dd.log
rm -rf /opt/1.dat
rm -rf /opt/2.dat
echo -e "-----begin 32k test-----\n" >> /root/dd.log
echo -e "-----begin 32k write-----\n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=32k count=32768 >> /root/dd.log 2>&1
echo -e "-----begin 32k read-----\n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=32k count=32768 >> /root/dd.log 2>&1
echo -e "-----begin 32k read and write-----\n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=32k count=32768 >> /root/dd.log 2>&1
echo -e "-----end 32k test-----\n" >> /root/dd.log
rm -rf /opt/1.dat
rm -rf /opt/2.dat
echo -e "-----begin 64k test-----\n" >> /root/dd.log
echo -e "-----begin 64k write-----\n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=64k count=16384 >> /root/dd.log 2>&1
echo -e "-----begin 64k read-----\n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=64k count=16384 >> /root/dd.log 2>&1
echo -e "-----begin 64k read and write-----\n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=64k count=16384 >> /root/dd.log 2>&1
echo -e "-----end 64k test-----\n" >> /root/dd.log
rm -rf /opt/1.dat
rm -rf /opt/2.dat
echo -e "-----begin 128k test-----\n" >> /root/dd.log
echo -e "-----begin 128k write-----\n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=128k count=8192 >> /root/dd.log 2>&1
echo -e "-----begin 128k read-----\n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=128k count=8192 >> /root/dd.log 2>&1
echo -e "-----begin 128k read and write-----\n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=128k count=8192 >> /root/dd.log 2>&1
echo -e "-----end 128k test-----\n" >> /root/dd.log
rm -rf /opt/1.dat
rm -rf /opt/2.dat
echo -e "-----begin 256k test-----\n" >> /root/dd.log
echo -e "-----begin 256k write-----\n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=256k count=4096 >> /root/dd.log 2>&1
echo -e "-----begin 256k read-----\n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=256k count=4096 >> /root/dd.log 2>&1
echo -e "-----begin 256k read and write-----\n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=256k count=4096 >> /root/dd.log 2>&1
echo -e "-----end 256k test-----\n" >> /root/dd.log
rm -rf /opt/1.dat
rm -rf /opt/2.dat
echo -e "-----begin 512k test-----\n" >> /root/dd.log
echo -e "-----begin 512k write-----\n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=512k count=2048 >> /root/dd.log 2>&1
echo -e "-----begin 512k read-----\n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=512k count=2048 >> /root/dd.log 2>&1
echo -e "-----begin 512k read and write-----\n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=512k count=2048 >> /root/dd.log 2>&1
echo -e "-----end 512k test-----\n" >> /root/dd.log
rm -rf /opt/1.dat
rm -rf /opt/2.dat
echo -e "-----begin 1M test-----\n" >> /root/dd.log
echo -e "-----begin 1M write-----\n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=1M count=1024 >> /root/dd.log 2>&1
echo -e "-----begin 1M read-----\n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=1M count=1024 >> /root/dd.log 2>&1
echo -e "-----begin 1M read and write-----\n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=1M count=1024 >> /root/dd.log 2>&1
echo -e "-----end 1M test-----\n" >> /root/dd.log
rm -rf /opt/1.dat
rm -rf /opt/2.dat
echo -e "-----begin 2M test-----\n" >> /root/dd.log
echo -e "-----begin 2M write-----\n" >> /root/dd.log
dd oflag=direct if=/dev/zero of=/opt/1.dat bs=2M count=512 >> /root/dd.log 2>&1
echo -e "-----begin 2M read-----\n" >> /root/dd.log
dd iflag=direct if=/opt/1.dat of=/dev/null bs=2M count=512 >> /root/dd.log 2>&1
echo -e "-----begin 2M read and write-----\n" >> /root/dd.log
dd iflag=direct oflag=direct if=/opt/1.dat of=/opt/2.dat bs=2M count=512 >> /root/dd.log 2>&1
echo -e "-----end 2M test-----\n" >> /root/dd.log
5.4.网络IO性能测试
采用netperf工具对千兆网络、万兆网络分别进行网络IO性能测试,根据测试结果评估千兆网络、万兆网络的性能是否正常。
Netperf 是一种网络性能测量工具,主要基于 TCP 或 UDP 的传输。工作原理:
Netperf 工具以 client/server 方式工作。server 端是 netserver,用来侦听来自 client 端的连接,client 端是 netperf ,用来向 server 发起网络测试。
原文链接:https://www.gbase.cn/community/post/4157
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。