We're happy to announce that a couple of weeks ago, we've submitted a few Github pull requests[1][2][3] adding initial Windows support. A big thank you to the people that have already reviewed the patches.


To bring some context about the scope and current status of our work: we're mostly targeting the client side, allowing Windows hosts to consume rados, rbd and cephfs resources.


We have Windows binaries capable of writing to rados pools[4]. We're using mingw to build the ceph components, mostly due to the fact that it requires the minimum amount of changes to cross compile ceph for Windows. However, we're soon going to switch to MSVC/Clang due to mingw limitations and long standing bugs[5][6]. Porting the unit tests is also something that we're currently working on.


The next step will be implementing a virtual miniport driver so that RBD volumes can be exposed to Windows hosts and Hyper-V guests. We're hoping to leverage librbd as much as possible as part of a daemon that will communicate with the driver. We're also aiming at cephfs and considering using Dokan, which is FUSE compatible.


Merging the open PRs would allow us to move forward, focusing on the drivers and avoiding rebase issues. Any help on that is greatly appreciated.


Last but not least, I'd like to thank Suse, who's sponsoring this effort!


Lucian Petrut

Cloudbase Solutions


[1] https://github.com/ceph/ceph/pull/31981

[2] https://github.com/ceph/ceph/pull/32027

[3] https://github.com/ceph/rocksdb/pull/42

[4] http://paste.openstack.org/raw/787534/

[5] https://sourceforge.net/p/mingw-w64/bugs/816/

[6] https://sourceforge.net/p/mingw-w64/bugs/527/