- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
VoltDB installation checklist
1.检查操作系统与平台软件系统的版本
服务器:
X86 64位 物理机或虚拟机
2.添加sudo权限
展开查看详情
1 . VoltDB Installation Checklist 1. 检查操作系统与平台软件系统的版本 服务器: X86 64 位 物理机或虚拟机 操作系统 操作系统 版本 CentOS 7.0 or later 8.0 or later Red Hat (RHEL) 7.0 or later 8.0 or later Ubuntu 14.04 16.04 18.04 平台软件 平台软件 版本 Java 1.8 (VoltDB V9.3 以上版本推荐使 用 jdk11) Python 2.7
2 .2. 添加 sudo 权限 VOLTDB 安装之前需要设置系统环境,配置这些系统项多数情况下需要 root 权限。 另外,在 VOLTDB 启动时需要创建 socket 连接,在 ubuntu 中这也需要 sudo 权限 才能正常建立,因此如果您为 voltdb 建立了专有用户,您需要为该用户赋予 sudo 权 限。 方法: 在/etc/sudoers 文件末尾添加如下行,其中 voltdb 为自定义的用户名称,需使用实 际用户替换。 voltdb ALL=(ALL)ALL 或 voltdb ALL=(ALL:ALL) NOPASSWD:ALL 3. 检查 ulimit 操作系统管理了几个资源限制,每个用户的默认值针对分时系统进行了优化,但对于 专用应用程序(如 VoltDB)来说,这些限制可能太过严格。特别是,尽管 voldb 是一个
3 . 内存中的数据库,但进程线程需要大量的文件描述符,以至于文件描述符限制可能会 干扰 voldb 的操作。 建议您增加启动 VoltDB 服务器的进程和文件描述符的限制。您可以在启动 VoltDB 之前使用 ulimit shell 命令来实现这一点。建议进程和文件描述符的最小限制分别为 8192 和 16384。注意,这些是最高限制,因此在专用服务器上,将这些值设置得更 高不会有任何缺陷。您可以这样设置: ulimit -u 10000 ulimit -n 40000 4. 使用 voltdb check 命令检查环境项 通过执行内置命令 voltdb check,可以了解当前系统中有哪些配置需要修改,以满足 voltdb 运行的需要。为运行 voltdb check 命令,您需要首先下载 voltdb 安装包,并 解压到合适的目录下。 执行命令: cd voltdb_home_path/bin ./voltdb check
4 . 输出说明 该命令共检查 16 项与 voltdb 相关的系统配置。输出结果中: 第一列:检查项名称 第二列:检查结果,如果检查结果不是 pass 状态,需要修改相关配置。 第三列:检查结果说明 系统配置修改方法: 1. 操作系统位数 要求使用 64 位操作系统,如果不符合请更换操作系统 2. generic receive offload (GRO) 在 一 定 条 件 下 , 使 用 TCP segmentation offload (TSO) 和 generic receive offload (GRO)会导致节点随机退出集群。这些设置允许系统对网络数据包进行批 处理,从而产生不必要的延迟,并干扰 VoltDB 数据库集群节点之间的必要通信。
5 . 建议禁用 TSO 和 GRO。禁用卸载的命令如下,其中 N 替换为以太网卡的名称ß: ethtool -K ethN gro off 注意,这些命令同样只是暂时禁用。您必须在每次节点重新引导时发出这些命令, 或者最好将它们放在启动配置文件/etc/rc.d/rc.loacl 中。 vi /etc/rc.d/rc.local 将如下内容添加到文件末尾,其中 ethN 替换为以太网卡的名称: ethtool -K ethN gro off 3. hostname 为服务器自定义一个机器名,符合操作系统的命名规范即可。 4. java 检查 jdk 版本,请使用 java 1.8 版本 5. 内存大小 推荐内存大于 4G,具体值依据数据而定。 6. 启用 Overcommit 在 Linux 上通过设置系统参数 vm 来完成的。overcommit_memory 的值为“1”。 $ sysctl -w vm.overcommit_memory=1
6 . 或者将您的新设置添加到文件中/etc/sysctl.conf,以确保在重新启动系统时它们 是有效的。 vi /etc/sysctl.conf 添加如下内容 vm.overcommit_memory=1 执行一下命令是配置立即生效 sysctl -p 7. NTP 为了协调集群节点之间的活动,VoltDB 依赖于同步的系统时钟。VoltDB 中的许 多函数(比如集群启动、节点重新连接和模式更新等)对集群中节点之间的时间值的 变化 很敏感。因此,在集群中保持时 钟同步 是很重 要的。可是使用 ntp 或 者 chrony 软件进行时钟同步。使集群各节点服务器同步误差小于 200 毫秒 启动 ntp 定时同步 0-59/10 * * * * /usr/sbin/ntpdate 182.119.174.56 && /sbin/hwclock -w 8. OS 和 OS release 请使用以下操作系统
7 . 操作系统 版本 CentOS 7.0 or later 8.0 or later Red Hat (RHEL) 7.0 or later 8.0 or later Ubuntu 14.04 16.04 18.04 9. Python 请安装使用 Python2.7 10.Swapping Swapping 是一个操作系统特性,当运行多个进程时,通过交替的将内存中的进程 调出和调入来优化内存使用。但是,任何内存争用(包括 Swapping)都会对 VoltDB 的性能和功能产生非常负面的影响。当使用 VoltDB 数据库时,应该禁用 Swapping。 要禁用 Linux 系统上的 Swapping 功能,请使用 swapoff 命令。 #swapoff –a
8 .11.Swappiness 如果已经执行了 swapoff 命令,可以忽略该配置项。否则,您需要设置内核参数 vm.swappiness 为零。 vi /etc/sysctl.conf 添加如下内容 vm.swappiness=0 执行一下命令是配置立即生效 sysctl -p 12.memory map count vi /etc/sysctl.conf 添加如下内容 vm.max_map_count=1048576 执行一下命令是配置立即生效 sysctl -p 13.TCP Retries2 设置 TCP_RETRIES2 过低(低于 8)可能导致类似的不可预测超时。建议值是 15。
9 .14.TCPSegOffload (TSO) 在一定条件下,使用 TCP segmentation offload (TSO)和 generic receive offload (GRO)会导致节点随机退出集群。这些设置允许系统对网络数据包进行批 处理,从而产生不必要的延迟,并干扰 VoltDB 数据库集群节点之间的必要通信。 建议禁用 TSO 和 GRO。禁用卸载的命令如下,其中 N 替换为以太网卡的数量: ethtool -K ethN tso off 注意,这些命令同样只是暂时禁用。您必须在每次节点重新引导时发出这些命令, 或者最好将它们放在启动配置文件/etc/rc.d/rc.local 中。 vi /etc/rc.d/rc.local 将如下内容添加到文件末尾,其中 ethN 替换为以太网卡的名称: ethtool -K ethN tso off 15.TransparentHugePage 透明大页(THP)是另一个操作系统特性,它可以为具有大量内存的系统优化内存使 用。THP 更改内存映射以使用更大的物理页面。这对于运行多个进程的通用计算 很有帮助。然而,对于内存密集型应用程序,如 VoltDB, THP 实际上会对性能产
10 .生负面影响。因此,在运行 VoltDB 的服务器上禁用透明大页面非常重要。运行以 下命令,禁用 THP: $ echo never >/sys/kernel/mm/transparent_hugepage/enabled $ echo never >/sys/kernel/mm/transparent_hugepage/defrag Or: $ echo madvise >/sys/kernel/mm/transparent_hugepage/enabled $ echo madvise >/sys/kernel/mm/transparent_hugepage/defrag 在 RHEL 操作系统(包括 CentOS),使用"redhat_transparent_hugepage"替 换” transparent_hugepage”。 但是请注意,这些命令只在服务器运行时禁用 THP。服务器重新启动后,THP 会 再启用。因此,我们建议您在启动过程中永久禁用 THP。例如,您可以将以下命 令添加到服务器启动脚本(例如/ etc/rc.local): #!/bin/bash for f in /sys/kernel/mm/*transparent_hugepage/enabled; do if test -f $f; then echo never > $f; fi done
11 . for f in /sys/kernel/mm/*transparent_hugepage/defrag; do if test -f $f; then echo never > $f; fi done 同时给予该文件执行权限 chmod +x /etc/rc.d/rc.local THP 在 Ubuntu 14.04 和更高版本以及 RHEL 6.x 7.x 中默认启用。若要查看当前 系统是否启用了这些命令,请使用以下命令之一: $ cat /sys/kernel/mm/transparent_hugepage/enabled $ cat /sys/kernel/mm/transparent_hugepage/defrag $ cat /sys/kernel/mm/redhat_transparent_hugepage/enabled $ cat /sys/kernel/mm/redhat_transparent_hugepage/defrag 如果 THP 被禁用,前面命令的输出应该是“always madvise [never]”或 “always [madvise] never”。 16.最后,如果修改了 rc.local 文件,您可能需要为它添加执行权限 chmod +x /etc/rc.d/rc.local
12 .5. 配置使用域名解析服务器,或者在/etc/hosts 中进行域名的解 析配置,解析 voltdb 集群各节点服务器及需要与 voltdb 进行 数据交换的服务器。 6. 对 VoltDB 使用的网络端口进行授权 voltdb 使用如下网络端口与客户端和集群节点进行通信,请确保网络防火墙开放 这些端口。 端口用途 端口号 Admin 端口 21211 Client 端口 21212 web 端口 8080 Web ssl 加密端口 8443 Internal server 端口 3021 Replication 端口 5555
13 .Zookeeper 端口 7181 7. 检查 VoltDB 使用的相关配置文件 deployment.xml 中保存了 voltdb 所需要对所有定制化配置,请在初 始化数据库实例之前,确保集群所有节点上的该文件内容完全一致。 License.xml 是否已经获得,对过期时间进行管理,并在过期之前更新 license.xml。 8. 确保 voltdb 有磁盘读写权限 voltdb 包含多个持久化选项,并支持为不同的持久化选项制定各自的存储路径。 如果您计划开启这些选项,请确保 voltdb 用户具有这些存储路径的读写权限,可 能的存储路径包括: VoltDB 根 快照路径 导出溢出路径
14 . 命令日志路径 命令日志快照路径