Ceph

    PLEASE NOTE: This document applies to an unreleased version of Rook. It is strongly recommended that you only use official releases of Rook, as unreleased versions are subject to changes and incompatibilities that will not be supported in the official releases.

    If you are using an official release version of Rook, you should refer to the documentation for your specific version.

    Documentation for other releases can be found by using the version selector in the bottom left of any doc page.

    Rook Toolbox

    The Rook toolbox is a container with common tools used for rook debugging and testing. The toolbox is based on CentOS, so more tools of your choosing can be easily installed with yum.

    The toolbox can be run in two modes:

    1. Interactive: Start a toolbox pod where you can connect and execute Ceph commands from a shell
    2. One-time job: Run a script with Ceph commands and collect the results from the job log

    Prerequisite: Before running the toolbox you should have a running Rook cluster deployed (see the Quickstart Guide).

    Interactive Toolbox

    The rook toolbox can run as a deployment in a Kubernetes cluster where you can connect and run arbitrary Ceph commands.

    Launch the rook-ceph-tools pod:

    kubectl create -f deploy/examples/toolbox.yaml
    

    Wait for the toolbox pod to download its container and get to the running state:

    kubectl -n rook-ceph rollout status deploy/rook-ceph-tools
    

    Once the rook-ceph-tools pod is running, you can connect to it with:

    kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash
    

    All available tools in the toolbox are ready for your troubleshooting needs.

    Example:

    • ceph status
    • ceph osd status
    • ceph df
    • rados df

    When you are done with the toolbox, you can remove the deployment:

    kubectl -n rook-ceph delete deploy/rook-ceph-tools
    

    Toolbox Job

    If you want to run Ceph commands as a one-time operation and collect the results later from the logs, you can run a script as a Kubernetes Job. The toolbox job will run a script that is embedded in the job spec. The script has the full flexibility of a bash script.

    In this example, the ceph status command is executed when the job is created. Create the toolbox job:

    kubectl create -f deploy/examples/toolbox-job.yaml
    

    After the job completes, see the results of the script:

    kubectl -n rook-ceph logs -l job-name=rook-ceph-toolbox-job