不同发行版
服务端名称 | Linux系统发行版 |
aerospike-server-community-3.5.9-debian6.tgz | Debian 6 |
aerospike-server-community-3.5.9-debian7.tgz | Debian 7 |
aerospike-server-community-3.5.9-el6.tgz | Centos 6 |
aerospike-server-community-3.5.9-ubuntu12.04.tgz | Ubuntu 12.04 |
aerospike-server-community-3.5.9.tar.gz | 所有linux |
服务端安装
访问aerospike的官网地址:www.aerospike.com/artifacts/,从中获取所需的安装资源。
下图为www.aerospike.com/artifacts/a…中的内容:
root安装
在centos中使用rpm包安装比较方便,可以同时安装server和tools包。但是rpm安装需要root权限,只能在有root权限时才能使用。安装包为特性linux发行版的安装包,如centos 6使用aerospike-server-community-3.5.9-el6.tgz,debian7上使用aerospike-server-community-3.5.9-debian7.tgz。
使用rpm安装比较简单,解压后运行asinstall脚本即可。
非root安装
没有root权限时,需要使用非root权限的安装方式。安装包为linux通用版安装包,如:aerospike-server-community-3.5.9.tar.gz。
安装后默认生成的配置文件中,最大文件描述符个数为15000个(参数proto-fd-max),可能会超过机器的配置,故在没有root权限时会无法启动。我们可以把配置文件中的参数改小,或者把系统最大文件描述符改大。不修改的错误日志如下:
Jan 09 2016 15:05:39 GMT: INFO (config): (cfg.c::3104) } Jan 09 2016 15:05:39 GMT: CRITICAL (config): (cfg.c:as_config_post_process:3119) 1024 system file descriptors not enough, config specified 15000 Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::93) SIGABRT received, aborting Aerospike Community Edition build 3.5.15 Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: found 9 frames Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 0: /home/wg/aerospike-server/bin/bin/asd(as_sig_handle_abort+0x59) [0x4542b1] Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 1: /lib/x86_64-linux-gnu/libc.so.6(+0x36ff0) [0x7fa4fa4ccff0] Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 2: /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x39) [0x7fa4fa4ccf79] Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 3: /lib/x86_64-linux-gnu/libc.so.6(abort+0x148) [0x7fa4fa4d0388] Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 4: /home/wg/aerospike-server/bin/bin/asd(cf_fault_event+0x271) [0x4e7604] Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 5: /home/wg/aerospike-server/bin/bin/asd(as_config_post_process+0x232) [0x439589] Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 6: /home/wg/aerospike-server/bin/bin/asd(main+0x203) [0x434ab9] Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 7: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7fa4fa4b7ec5] Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 8: /home/wg/aerospike-server/bin/bin/asd() [0x4337e9]
把配置文件中文件描述符的个数从15000改成1024就可以启动了。
service { user wg group wg run-as-daemon paxos-single-replica-limit 1 # Number of nodes where the replica count is automatically reduced to 1. pidfile /home/alvin/aerospike-server/bin/var/run/aerospike.pid transaction-queues 8 transaction-threads-per-queue 8 proto-fd-max 1024 work-directory /home/alvin/aerospike-server/bin/var }
启动一段时间后,日志正常。文件描述符个数改小后会影响系统性能。
配置文件
配置文件地址:/etc/aerospike/aerospike.conf
Aerospike安装完成后,主要需要配置两个部分的内容:集群和命名空间(namespace)
集群
Aerospike的集群支持两种模式:
multicast(多播) :,基于UDP协议,集群中所有节点同时在同一个地址发布自己的信息和在该地址监听其他节点的信息,这样所有节点都能知道其他节点的存在了。因此,该模式下只需要配置一个UDP地址即可。
mesh(点播) :基于TCP协议,集群中的每个节点都和其他节点建立一对一的连接(所以称为点播),用于完成节点的发现。因此,在这种模式下,配置文件中需要配置集群中每个节点的地址。但是,当集群添加节点时,由于添加的这个节点的地址之前是不知道的,所以老的节点一般是没有配置新加节点的地址,这时也不需要重启老的节点,只需要在新加入的节点中配置集群中其他节点的地址就可以了。
multicast配置
mesh配置
mode mesh port 3002 mesh-seed-address-port 10.100.1.22 3002 mesh-seed-address-port 10.100.1.23 3002 mesh-seed-address-port 10.100.1.24 3002 interval 250 timeout 10
1.3.2 命名空间(namespace)
Aerospike的数据分为4个层次:namespace(类比关系数据库的schema)、set(类比关系数据库的table)、key(类比关系数据库的一行)、bin(类比关系数据库的一列,Aerospike对bin有一些限制:bin的名称不可以超过14个字节、bin的数目不可以超过65536)。
其中,namespace是不能动态创建的,需要在配置文件中配置后才能使用。另外,集群中每个节点关于命名空间的配置要完全相同(包括命名空间的个数,和每个命名空间的配置)
命名空间的常用配置项配置大致如下(部分参数需要根据具体环境调整):
namespace bsfit { #bsift为命名空间的名称 replication-factor 2 #复制因子,代表每条数据在集群中保留的个数。如2表示每条数据存两份,集群中某个节点挂掉后不会丢数据 memory-size 4G #最大可以使用的内存数量 default-ttl 30d #ttl(time to live:数据存活时间)30 天, 0表示永不过期 high-water-memory-pct 70 #内存使用率达到70%,将启动LRU,清理设置过期时间的数据。默认60% stop-writes-pct 90 #内存使用率达到90%,将不可以再写入(可以删除)。默认90% storage-engine memory #数据存储模式,memory表示数据全部存放在内存中,这也是流立方最推荐的配置方式 # https://discuss.aerospike.com/t/why-aerospike-evicted-data/165 }
1.3.3 绑定网卡
当部署的服务器有多张网卡时,需要指定aerospike服务端监听的网卡。这个需要通过如下参数配置:
例如:
access-address 10.100.1.23
1.3.4 关闭Aerospike telemetry功能
社区版本的 AS,在通过 rpm/deb 包默认安装的时候,默认打开了 telemetry 的功能。默认配置是每 10 分钟,向服务器地址telemetry.aerospike.com发送 as 的使用情况。请各项目在实施部署后,关闭此功能。
关闭的方式:找到/etc/aerospike/telemetry.conf,把disable = false那行换成disable = true。完成以后重启 as 服务,并检查/var/log/aerospike/aerospike.log, 确认 telemetry 功能关闭。
[asd] config-file = /etc/aerospike/aerospike.conf [logging] logfile = /var/log/aerospike/telemetry.log loglevel = info [main] disable = false interval = 600 home-url = https://telemetry.aerospike.com user = aerospike group = aerospike
把disable = false那行换成disable = true。完成以后重启 as 服务,并检查/var/log/aerospike/aerospike.log, 确认 telemetry 功能关闭。
日志显示:Aerospike Telemetry Agent: Aerospike anonymous data collection is INACTIVE. For further information, see
www.aerospike.com/aerospike-t…
(CentOS7.x上可执行 journalctl -u aerospike -a -o cat --since "2019-06-26" --until "2019-06-27" | grep Telemetry)
管理日志文件
日志时间
从3.7.0.1版本开始支持,在service域中提供了参数log-local-time,默认为false。
默认情况下,Aerospike服务器日志在GMT中带有时间戳。将此配置设置true为将日志设置为具有本地时间戳(还显示GMT的偏移量)。
例: Dec 12 2015 18:52:39 GMT-0800: INFO (as): (as.c::494) service ready: soon there will be cake!
log-local-time从3.7.0.1版本开始支持,默认为false。