ScyllaDB是一个高性能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贡献指南
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429