Ceph Windows support is currently a work in progress. For now, the main focus is the client side, allowing Windows hosts to consume rados, rbd and cephfs resources.
At the moment, mingw gcc is the only supported compiler for building ceph components for Windows. Support for msvc and clang will be added soon.
win32_build.sh can be used for cross compiling Ceph and its dependencies. It may be called from a Linux environment, including Windows Subsystem for Linux. MSYS2 and CygWin may also work but those weren't tested.
The script accepts the following flags:
Flag | Description | Default value |
---|---|---|
CEPH_DIR | The Ceph source code directory. | The same as the script. |
BUILD_DIR | The directory where the generated artifacts will be placed. | $CEPH_DIR/build |
DEPS_DIR | The directory where the Ceph dependencies will be built. | $CEPH_DIR/build.deps |
NUM_WORKERS | The number of workers to use when building Ceph. | The number of vcpus available |
NINJA_BUILD | Use Ninja instead of make. | |
CLEAN_BUILD | Clean the build directory. | |
SKIP_BUILD | Run cmake without actually performing the build. |
The rados and rbd binaries and libs compile successfully and can be used on Windows, successfully connecting to the cluster and consuming pools.
The libraries have to be built statically at the moment. The reason is that
there are a few circular library dependencies or unspecified dependencies,
which isn't supported when building DLLs. This mostly affects cls
libraries.
A significant number of tests from the tests
directory have been port,
providing adequate coverage.