
scylladb/scylla-nightlyScyllaDB是一个高性能NoSQL数据库系统,完全兼容Apache Cassandra。ScyllaDB根据GNU Affero通用公共许可证第3版和Apache许可证发布,是免费开源软件。
ScyllaDB
!logo
scylla服务器实例console$ docker run --name some-scylla --hostname some-scylla -d scylladb/scylla-nightly
nodetool工具console$ docker exec -it some-scylla nodetool status Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 172.17.0.2 125.51 KB 256 100.0% c9155121-786d-44f8-8667-a8b915b95665 rack1
cqlsh工具console$ docker exec -it some-scylla cqlsh Connected to Test Cluster at 172.17.0.2:9042. [cqlsh 5.0.1 | Cassandra 2.1.8 | CQL spec 3.2.1 | Native protocol v3] Use HELP for help. cqlsh>
console$ docker run --name some-scylla2 --hostname some-scylla2 -d scylladb/scylla-nightly --seeds="$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' some-scylla)"
首先,创建docker-compose.yml文件,内容如下:
yamlversion: '3' services: some-scylla: image: scylladb/scylla-nightly container_name: some-scylla some-scylla2: image: scylladb/scylla-nightly container_name: some-scylla2 command: --seeds=some-scylla some-scylla3: image: scylladb/scylla-nightly container_name: some-scylla3 command: --seeds=some-scylla
然后,启动3节点集群:
consoledocker-compose up -d
scylla日志console$ docker logs some-scylla | tail INFO 2016-08-04 06:57:40,836 [shard 5] database - Setting compaction strategy of system_traces.events to SizeTieredCompactionStrategy INFO 2016-08-04 06:57:40,836 [shard 3] database - Setting compaction strategy of system_traces.events to SizeTieredCompactionStrategy INFO 2016-08-04 06:57:40,836 [shard 1] database - Setting compaction strategy of system_traces.events to SizeTieredCompactionStrategy INFO 2016-08-04 06:57:40,836 [shard 2] database - Setting compaction strategy of system_traces.events to SizeTieredCompactionStrategy INFO 2016-08-04 06:57:40,836 [shard 4] database - Setting compaction strategy of system_traces.events to SizeTieredCompactionStrategy INFO 2016-08-04 06:57:40,836 [shard 7] database - Setting compaction strategy of system_traces.events to SizeTieredCompactionStrategy INFO 2016-08-04 06:57:40,837 [shard 6] database - Setting compaction strategy of system_traces.events to SizeTieredCompactionStrategy INFO 2016-08-04 06:57:40,839 [shard 0] database - Schema version changed to fea14d93-9c5a-34f5-9d0e-2e49dcfa747e INFO 2016-08-04 06:57:40,839 [shard 0] storage_service - Starting listening for CQL clients on 172.17.0.2:9042... INFO 2016-08-04 06:57:40,840 [shard 0] storage_service - Thrift server listening on 172.17.0.2:9160 ...
可使用Docker卷提升Scylla性能。在主机上创建Scylla数据目录/var/lib/scylla,供容器存储所有数据:
console$ sudo mkdir -p /var/lib/scylla/data /var/lib/scylla/commitlog /var/lib/scylla/hints /var/lib/scylla/view_hints
使用Docker的--volume选项将主机目录挂载为容器数据卷,并禁用Scylla开发者模式以在启动前运行I/O调优:
console$ docker run --name some-scylla --volume /var/lib/scylla:/var/lib/scylla -d scylladb/scylla-nightly --developer-mode=0
Scylla Docker镜像默认以过度配置模式运行,不会应用CPU固定优化(非容器环境中默认启用)。为获得更好性能,建议使用--smp、--memory、--cpuset命令行选项配置容器资源限制,并按“命令行选项”部分说明禁用过度配置标志。
Docker镜像使用supervisord管理Scylla进程,可通过以下命令重启容器中的Scylla:
consoledocker exec -it some-scylla supervisorctl restart scylla
Scylla镜像支持多种通过docker run命令传递的命令行选项。
--seeds SEEDS--seeds选项配置Scylla的种子节点。未指定时,Scylla使用自身IP地址作为种子。例如,配置两个种子节点192.168.0.100和192.168.0.200:
console$ docker run --name some-scylla -d scylladb/scylla-nightly --seeds 192.168.0.100,192.168.0.200
--listen-address ADDR配置Scylla实例监听其他节点连接的IP地址。例如,设置监听地址10.0.0.5:
console$ docker run --name some-scylla -d scylladb/scylla-nightly --listen-address 10.0.0.5
自:1.4版本起
--broadcast-address ADDR配置Scylla实例告知集群中其他节点连接的IP地址。例如,设置广播地址10.0.0.5:
console$ docker run --name some-scylla -d scylladb/scylla-nightly --broadcast-address 10.0.0.5
--broadcast-rpc-address ADDR配置Scylla实例告知客户端连接的IP地址。例如,设置RPC广播地址10.0.0.5:
console$ docker run --name some-scylla -d scylladb/scylla-nightly --broadcast-rpc-address 10.0.0.5
--smp COUNT限制Scylla使用COUNT个CPU,不指定具体CPU placement。如需指定CPU,使用--cpuset选项。例如,限制使用2个CPU:
console$ docker run --name some-scylla -d scylladb/scylla-nightly --smp 2
--memory AMOUNT限制Scylla使用的最大内存,支持M(兆字节)和G(千兆字节)单位。例如,限制使用4GB内存:
console$ docker run --name some-scylla -d scylladb/scylla-nightly --memory 4G
--overprovisioned ENABLE启用/禁用过度配置环境下的优化。未指定时默认启用;若未指定且设置--cpuset,会自动禁用。例如,启用静态分区环境优化:
console$ docker run --name some-scylla -d scylladb/scylla-nightly --overprovisioned 0
--cpuset CPUSET限制Scylla仅运行在CPUSET指定的CPU上,支持单个CPU(如--cpuset 1)、范围(如--cpuset 2-3)、列表(如--cpuset 1,2,5)或组合(如--cpuset 1-2,5)。例如,限制在物理CPU 0-2和4上运行:
console$ docker run --name some-scylla -d scylladb/scylla-nightly --cpuset 0-2,4
--developer-mode ENABLE启用开发者模式,放宽XFS等检查,允许在不支持的配置上运行(通常性能欠佳)。未指定时默认启用。生产环境强烈建议禁用以确保最佳性能。例如,禁用开发者模式:
console$ docker run --name some-scylla -d scylladb/scylla-nightly --developer-mode 0
--experimental ENABLE启用实验模式。未指定时默认禁用。生产环境强烈建议禁用。例如,启用实验模式:
console$ docker run --name some-scylla -d scylladb/scylla-nightly --experimental 1
自:2.0版本起
--disable-version-check禁用版本验证检查。
自:2.2版本起
--authenticator AUTHENTICATOR指定Scylla使用的认证器类。默认使用AllowAllAuthenticator(不检查凭据),可选PasswordAuthenticator(基于用户名/密码认证)。
自:2.3版本起
--authorizer AUTHORIZER指定Scylla使用的授权器类。默认使用AllowAllAuthorizer(允许所有用户执行任何操作),可选CassandraAuthorizer(权限存储在system_auth.permissions表中)。
自:2.3版本起
错误报告请使用Scylla在GitHub上的issue跟踪器。提交前请阅读如何报告Scylla问题页面。
一般帮助请参阅Scylla的文档。问题和评论请使用Scylla的邮件列表。
如需贡献补丁,我们欢迎审阅和合并您的代码。请参阅Scylla贡献指南
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务