/rook

Open, Cloud Native, and Universal Distributed Storage

Primary LanguageGoApache License 2.0Apache-2.0

logo

Build Status

Open, Cloud Native, and Universal Distributed Storage

What is Rook?

Rook is a distributed storage system designed for cloud native applications. It exposes file, block, and object storage on top of shared resource pools. Rook has minimal dependencies and can be deployed in dedicated storage clusters or converged clusters. It's self-managing, self-protecting, self-healing, and is designed to just work without teams of engineers managing it. It scales from a single node, to multi-PB clusters spread geographically.

It is based on the Ceph project that has over 10 years of production deployments in some of the largest storage clusters in the world.

Rook integrates deeply into popular container environments like Kubernetes and leverages facilities for lifecycle management, resource management, scale-out and upgrades. Rook also integrates into the Kubernetes API to expose a uniform surface area for management.

Status

Rook is in alpha state. We're just getting started. Not all planned features are complete. The API and other user-facing objects are subject to change. Backward-compability is not supported for this release. See our Roadmap and Issues. Please help us by Contributing to the project.

Quickstart Guides

There are a few different options for running a Rook cluster for your storage needs. Kubernetes is the recommended way because of the rich orchestration and scheduling that Kubernetes provides via the Rook operator.

  1. Kubernetes (recommended)
  2. Standalone

Using Rook

Once you have a Rook cluster running, you can use the rook tool to create and manage storage as shown in the following guide:

Advanced Configuration and Troubleshooting

Our Rook toolbox container is available to aid with troubleshooting and advanced configuration of your Rook cluster. It automatically configures a Ceph client suite to work with your Rook deployment, and additional tools are just an apt-get away.

To get started please see the toolbox readme. Also see our advanced configuration document for helpful maintenance and tuning examples.

Building

See Building in the wiki for more details.

Contributing

We welcome contributions. See Contributing to get started.

Report a Bug

For filing bugs, suggesting improvements, or requesting new features, help us out by opening an issue.

Contact

Please use the following to reach members of the community:

Licensing

Rook and Etcd are under the Apache 2.0 license. Ceph is mostly under the LGPL 2.0 license. Some portions of the code are under different licenses. The appropriate license information can be found in the headers of the source files.