Hi,
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/