GreenPlum安装

GP的部署相对来讲是比较麻烦的,主要是为了最大化的利益系统资源,需要对数据盘、系统参数、机器互信等方面进行调整,大致过程如下:

安装前准备

网络规划

Greenplum数据库系统常见的拓扑图如上图所示,由Master主机和Segment主机组成。Master主机和Segment主机之间会组成一个内部网络(LAN)。 为了充分发挥Greenplum数据库并行处理的性能,对网络带宽要求较高。服务器会配置多个网卡,内部网需要配置多个网段的IP。需要对外连接的服务器需配置外部IP。 建议在Greenplum数据库系统安装之前,把网络配置规划好。

存储空间规划

首先,需要评估目标数据库数据所需要的空间容量。建议了解客户搭建Greenplum数据库的具体应用。举例:估计数据库所需空间为U,数据库需要启用Mirror,磁盘阵列总可用空间为D(Raid之后)。空间规划服务和如下公式: 2 * U + U / 3 = D * 70% 磁盘空间D平均分配到各个Segment服务器上。 Master需要相应的空间。使用服务器内置硬盘的计算方式类似。

数据库实例规划

规划每个Segment服务器上建立的数据库实例的数量(instance数量),通常建议每2个CPU内核(core)对应一个数据库实例。 如 :2*4核CPU的服务器,可配置4个实例。

操作系统规划

修改主机名

修改各台主机的主机名称。一般建议的命名规则如下:

Master: mdw
Standby Master: smdw
Segment Host: sdw1 sdw2 ...sdwn

修改hostname:

hostnamectl set-hostname mdw

2、修改/etc/hosts文件

21.104.138.21   mdw-ext1
192.168.1.254   mdw-1 mdw
192.168.2.254   mdw-2
192.168.3.254   mdw-3
192.168.4.254   mdw-4
192.168.5.254   mdw-5
192.168.6.254   mdw-6

关闭相关服务

service iptables save
service iptables stop
chkconfig iptables off
service ip6tables save
service ip6tables stop
chkconfig ip6tables off

修改系统参数

编辑系统文件/etc/sysctl.conf,Sysctl是一个允许您改变正在运行中的Linux系统的接口。它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项

kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 250 512000 100 2048
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_forward = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.ipv4.conf.default.arp_filter = 1
net.core.netdev_max_backlog = 10000
vm.overcommit_memory = 2
kernel.msgmni = 2048
net.ipv4.ip_local_port_range = 1025 65535

编辑系统文件/etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

修改磁盘预读配置

在参数文件/etc/rc.d/rc.local中增加下列内容:

DELL/IBM: blockdev --setra 16384 /dev/sd*
HP: blockdev --setra 16384 /dev/cciss/c?d?*

修改系统引导文件

编辑/boot/grub/menu.lst,Deadline scheduler 用 deadline 算法保证对于既定的 IO 请求以最小的延迟时间,从这一点理解,对于 DSS 应用应该会是很适合的

elevator=deadline

启动IPMI服务

IPMI(Intelligent Platform Management Interface)即智能平台管理接口是使硬件管理具备“智能化”的新一代通用接口标准。如果没有安装相关服务,建议安装

service ipmi start
chkconfig ipmi on

修改启动配置

编辑/etc/inittab,修改运行级别为3,多用户命令行模式

id:3:initdefault:

关闭selinux并重启机器

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

如果临时关闭,使用

setenforce 0

建立数据目录

Master以及Standby Master主机

分区及格式化:

mkfs.xfs /dev/sda3  # mkfs -t xfs /dev/sda3
mkdir -p /data/master # Master数据目录

在/etc/fstab文件中增加

/dev/sda3 /data xfs rw,noatime,inode64,allocsize=16m 1 1

把/data/master 赋予777权限

chmod -R 777 /data/master

Segment主机

分区及格式化:

mkfs.xfs  /dev/sda2  # mkfs -t xfs /dev/sda2
mkfs.xfs  /dev/sdb2
mkdir /data1  # Segment数据目录可根据实例和分配空间不同规划不同的目录
mkdir /data2

在/etc/fstab文件中增加

/dev/sda2 /data1 xfs rw,noatime,inode64,allocsize=16m 1 1
/dev/sdb2 /data2 xfs rw,noatime,inode64,allocsize=16m 1 1

把/data/master 赋予777权限

chmod -R 777 /data1
chmod -R 777 /data2

Master节点安装GreenPlum

Master机器运行安装文件

unzip greenplum-db-4.1.1.3-build-4-RHEL5-x86_64.zip
/bin/bash greenplum-db-4.1.1.3-build-4-RHEL5-x86_64.bin

安装完成后修改root用户home的~/.bashrc配置文件,增加

source /usr/local/greenplum-db/greenplum_path.sh

配置hostname文件(用于建立多机信任)

建议在安装目录下新建gpconfigs目录,包含所有master和segment主机名和别名的文件 多网卡可能如下,hostfile_exkeys:

mdw
mdw-1
smdw
smdw-1
sdw1-1
sdw1-2
sdw2-1
sdw2-2

单网卡可能如下,hostfile_exkeys:

mdw
smdw
sdw1
sdw2

建立all_hosts_only,只包含主机名,不包含各个网段对应的hostname,用于gpssh命令,all_hosts_only:

mdw
smdw
sdw1
sdw2

建立多机互信

root用户建立多机信任

source /usr/local/greenplum-db/greenplum_path.sh
gpssh-exkeys -f ./hostfile_exkeys

注意:对于RHEL6.x版本,建议先关闭OPENSSL_CONF环境变量并设置selinuxdisabled再做多机互信 如建立多机信任时出现permission denied(publickey.gssapi-with-mic)或者类似的错误,需要修改每台机器的/etc/ssh/sshd_config文件

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile.ssh/authorized_keys

默认使用的22端口,如果22端口没开建议先打开22端口

建立用户以及用户组

gpssh -f ./all_hosts_only
=>groupadd -g 3030 gpadmin
=>groupadd -g 3040 gpmon
=>useradd -u 3030 -g gpadmin -m -s /bin/bash gpadmin
=>useradd -u 3040 -g gpmon -m -s /bin/bash gpmon
=>echo gpadmin | passwd  gpadmin --stdin
=>echo gpmon | passwd  gpmon --stdin
=>chown -R gpadmin:gpadmin /data

修改gpadmin用户配置

使用gpadmin用户操作,对于Master和Standby Master主机,修改 ~/.bashrc文件,添加如下内容:

source /usr/local/greenplum-db/greenplum_path.sh
MASTER_DATA_DIRECTORY=/data/master/gpseg-1
export MASTER_DATA_DIRECTORY  # gpstart默认启动的目录

对于Segment主机,修改 ~/.bashrc文件,添加如下内容:

source /usr/local/greenplum-db/greenplum_path.sh

gpadmin用户建立多机信任

使用gpadmin用户在Master主机上操作,提示密码,输入gpadmin

gpssh-exkeys -f ./hostfile_exkeys

时钟同步

所有涉及到的机器之间使用NTP做时钟同步

其他机器安装GP

配置hostname文件

其他机器的安装主要操作时把安装在Master主机上的GP安装文件打包传到其他各台机器中。因此,需要配置一个hostname文件包含Standbymaster和各台Segment主机,配置文件stby_all_segs内容参考如下:

smdw
smdw-1
sdw1-1
sdw1-2
sdw2-1
sdw2-2

并行安装

安装gzip,在Master主机上,使用root用户操作:

chmod 777 /usr/local
gpseginstall -f ./stby_all_segs -p gpadmin

系统检查

配置检测

gpcheck -f /usr/local/greenplum-db/gpconfigs/all_hosts_single -m mdw -s smdw

网络性能检测

gpcheckperf -f /usr/local/greenplum-db/gpconfigs/all_net_1 -r N -d /tmp > checknetwork.out
gpcheckperf -f /usr/local/greenplum-db/gpconfigs/all_net_2 -r N -d /tmp > checknetwork.out

磁盘性能检测

gpcheckperf -f /usr/local/greenplum-db/gpconfigs/all_hosts_single -r ds -D -d /data1/primary -d /data2/primary -d /data1/mirror -d /data2/mirror > checkio.out

初始化数据库

获取初始化配置

请注意,Greenplum3.x版本和4.x版本的初始化配置文件格式存在差异,配置时建议从 $GPHOME/docs/cli_help/gpconfigs/ 目录中获取样例文件,然后进行修改。

配置样例

获取配置文件样例:

cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config  $GPHOME/gpconfigs/

修改配置文件:

ARRAY_NAME="EMC Greenplum DW"
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(/data1 /data1 /data1 /data1)   # 主实例
MASTER_HOSTNAME=mdw    # 主机名
MASTER_DIRECTORY=/data/master
MASTER_PORT=5432
TRUSTED SHELL=ssh
CHECK_POINT_SEGMENT=8
ENCODING=UNICODE
MIRROR_PORT_BASE=50000
REPLICATION_PORT_BASE=41000
MIRROR_REPLICATION_PORT_BASE=51000
declare -a MIRROR_DATA_DIRECTORY=(/data2 /data2 /data2 /data2)    # 备实例
MACHINE_LIST_FILE=/usr/local/greenplum-db/gpconfigs/all_segs  # segment主机列表文件

整理实例列表

只列出各个网段IP的主机名称,不能添加sdw1、sdw2等

sdw1-1
sdw1-2
sdw2-1
sdw2-2
sdw3-1
sdw3-2
sdw4-1
sdw4-2

初始化

gpinitsystem -c /usr/local/greenplum-db/gpconfigs/gpinitsystem_config -s smdw

修改访问权限

修改Master数据目录(MASTER_DATA_DIRECTORY)下pg_hba.conf文件。需要了解客户实际情况,有多少客户端的IP地址以及角色需要访问数据库。举例如下:

host     all         gpadmin         10.32.38.0/16          trust

IP范围格式:IP 地址/CIDR,如:10.32.38.0/16255.0.0.0表示 IPv4 CIDR 掩码长度 8,255.255.255.0表示 IPv4 CIDR 掩码长度 24,而 255.255.255.255 表示 CIDR 掩码长度 32;32就表示指定IP,24就表示小子网。 修改完后数据库重载参数文件:

gpstop -u