GithubHelp home page GithubHelp logo

ketor / ceph-dokan Goto Github PK

View Code? Open in Web Editor NEW
71.0 71.0 58.0 2.28 MB

CephFS Client on Win32 based on Dokan 0.6.0

License: GNU General Public License v2.0

Makefile 0.23% C 7.82% C++ 91.71% Objective-C 0.25%

ceph-dokan's People

Contributors

dexter-xiong avatar ketor avatar ukernel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ceph-dokan's Issues

Move source files under "src/" directory

We're looking to make ceph-dokan build more easily relative to original ceph source.

That is, we'd like to be able to build ceph-dokan with minimal changes to original ceph source (or, if possible, by having ceph as a git submodule under ceph-dokan).

I think that a good first step would be to move all C/C++ source under a src/ directory. This should make it easier to do diffs later on between ceph source and ceph-dokan.

ceph-dokan return signal 88 (core dump) - ceph_mount error!

My ceph cluster was deployed with all auth = cephx.
The ceph cluster version is Hammer 0.94.6
I made the ceph-dokan.exe .
When I execute: ceph-dokan -c ceph.conf -l m, i got:
ceph_conf_read_file OK

..but after some minutes return signal 88 (core dump)
if I check netsat output commnad, I can see: local address - foreign address:6789 - states TIME_WAIT

so.. I could not have my drive mounted. What I need to do ..

tks in advance
image

image
image

Makefile:55: recipe for target 'libcephfs.dll' failed

Hello,
No problem to build deph-dokan.exe using mingw32-make. A big file of 93 MB is well generated but the dll is missing.

In other words, libcephfs.dll is not generated and if I try to specify the libcephfs.dll using the command line : "mingw32-make libcephfs.dll", I get : "undefined references to 'boost::system::generic_category() and system_category()"

Any help appreciated...
Thanks in advance.

mingw32-make libcephfs.dll
g++ -D__USE_FILE_OFFSET64 -DHAVE_CONFIG_H -I. -D__CEPH__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GN
_SOURCE -fno-strict-aliasing -fsigned-char -Wno-invalid-offsetof -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-built
n-free -g -DPIC -I./ -I./global -I./mingw_include -IC:\boost_1_63_0  -shared -o libcephfs.dll libcephfs.o global/global_context.o global
global_init.o global/pidfile.o global/signal_handler.o common/types.o common/TextTable.o common/io_priority.o common/hobject.o common/ce
h_frag.o common/addr_parsing.o common/Readahead.o common/histogram.o include/uuid.o common/ceph_fs.o common/bloom_filter.o common/ceph_h
sh.o common/ceph_strings.o common/assert.o common/BackTrace.o common/buffer.o common/ceph_argparse.o common/ceph_context.o common/lockde
.o common/Clock.o common/ceph_crypto.o common/code_environment.o common/common_init.o common/ConfUtils.o common/DecayCounter.o common/do
t.o common/entity_name.o common/environment.o common/errno.o common/Finisher.o common/Formatter.o common/hex.o common/LogEntry.o common/
utex.o common/page.o common/perf_counters.o common/PrebufferedStreambuf.o common/RefCountedObj.o common/signal.o common/snap_types.o com
on/str_list.o common/strtol.o common/Thread.o common/Throttle.o common/Timer.o common/util.o common/config.o common/armor.o common/crc32
.o common/crc32c-intel.o common/TrackedOp.o common/escape.o common/mime.o common/safe_io.o common/sctp_crc32.o common/secret.o common/ut
8.o common/LogClient.o common/version.o log/Log.o log/SubsystemMap.o auth/AuthAuthorizeHandler.o auth/AuthClientHandler.o auth/AuthMetho
List.o auth/AuthServiceHandler.o auth/AuthSessionHandler.o auth/Crypto.o auth/KeyRing.o auth/RotatingKeyRing.o auth/none/AuthNoneAuthori
eHandler.o auth/cephx/CephxSessionHandler.o auth/cephx/CephxAuthorizeHandler.o auth/cephx/CephxProtocol.o auth/cephx/CephxClientHandler.
 auth/cephx/CephxServiceHandler.o auth/cephx/CephxKeyServer.o crush/CrushCompiler.o crush/CrushWrapper.o crush/builder.o crush/crush.o c
ush/hash.o crush/mapper.o msg/simple/Accepter.o msg/simple/PipeConnection.o msg/simple/DispatchQueue.o msg/Message.o msg/Messenger.o msg
msg_types.o msg/simple/Pipe.o msg/simple/SimpleMessenger.o osd/HitSet.o osd/OSDMap.o osd/OpRequest.o osd/osd_types.o mon/MonClient.o mon
MonMap.o mon/MonCap.o mds/flock.o mds/MDSMap.o mds/mdstypes.o mds/inode_backtrace.o osdc/Filer.o osdc/Journaler.o osdc/ObjectCacher.o os
c/Objecter.o osdc/Striper.o client/Client.o client/ClientSnapRealm.o client/Dentry.o client/Inode.o client/MetaRequest.o client/MetaSess
on.o client/Trace.o -lws2_32                                                                                                            
libcephfs.o: In function `_static_initialization_and_destruction_0':                                                                    
C:/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'                              
msg/Message.o: In function `_static_initialization_and_destruction_0':                                                                  
C:/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'                              
mds/flock.o: In function `_static_initialization_and_destruction_0':                                                                    
C:/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'                              
mds/MDSMap.o: In function `_static_initialization_and_destruction_0':                                                                   
C:/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'                              
mds/mdstypes.o: In function `_static_initialization_and_destruction_0':                                                                 
C:/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'                              
mds/inode_backtrace.o: In function `_static_initialization_and_destruction_0':                                                          
C:/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'                              
client/Client.o: In function `_static_initialization_and_destruction_0':                                                                
C:/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'                              
client/Dentry.o: In function `_static_initialization_and_destruction_0':                                                                
C:/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'                              
client/Inode.o: In function `_static_initialization_and_destruction_0':                                                                 
C:/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'                              
client/MetaRequest.o: In function `_static_initialization_and_destruction_0':                                                           
C:/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'                              
client/MetaSession.o: In function `_static_initialization_and_destruction_0':                                                           
C:/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'                             
C:/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'                              
collect2.exe: error: ld returned 1 exit status                                                                                          
Makefile:55: recipe for target 'libcephfs.dll' failed                                                                                   
mingw32-make: *** [libcephfs.dll] Error 1                                                                                               

Error compile ceph-dokan in Windows Server 2016

I've followed the give to compile ceph-dokan but, this error is ocurring when I exec mingw32-make inside the project folder:

c:\ceph-dokan-master>mingw32-make
gcc -D__USE_FILE_OFFSET64 -DHAVE_CONFIG_H -I. -D__CEPH__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -fno-strict-aliasing -fsigned-char -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -g -DPIC -w -c -I./ -I./global -I./mingw_include -IC:\boost_1_63_0 dokan/ceph_dokan.c -o dokan/ceph_dokan.o
dokan/ceph_dokan.c: In function 'DbgPrintW':
dokan/ceph_dokan.c:151:9: error: too few arguments to function 'vswprintf'
         vswprintf(buffer, format, argp);
         ^
In file included from C:/TDM-GCC-64/x86_64-w64-mingw32/include/stdio.h:824:0,
                 from dokan/ceph_dokan.c:10:
C:/TDM-GCC-64/x86_64-w64-mingw32/include/swprintf.inl:23:5: note: declared here
 int vswprintf (wchar_t *__stream, size_t __count, const wchar_t *__format, __builtin_va_list __local_argv)
     ^
dokan/ceph_dokan.c: In function 'AlwaysPrintW':
dokan/ceph_dokan.c:167:5: error: too few arguments to function 'vswprintf'
     vswprintf(buffer, format, argp);
     ^
In file included from C:/TDM-GCC-64/x86_64-w64-mingw32/include/stdio.h:824:0,
                 from dokan/ceph_dokan.c:10:
C:/TDM-GCC-64/x86_64-w64-mingw32/include/swprintf.inl:23:5: note: declared here
 int vswprintf (wchar_t *__stream, size_t __count, const wchar_t *__format, __builtin_va_list __local_argv)
     ^
Makefile:48: recipe for target 'dokan/ceph_dokan.o' failed
mingw32-make: *** [dokan/ceph_dokan.o] Error 1

ceph mount error -2

I'm trying to mount cephfs under windows. I have my key and my config and ceph-dokan seems to see it, well it makes noises to that effect. However it just returns -2 and doesn't say what that means or what it can't find/do

What am I missing? CephFS is working and mounted on my other linux based nodes.

direct IO support for ceph-dokan

Does ceph-dokan support direct IO? I find no codes, either in dokan or ceph-dokan. The I/O performance doesn't change much when I disable direct io or enable direct io.

Can't initialize Dokan driver.

Hello,

I have a CephFS on Proxmox VE, and mount CephFS on Linux OS works well. however, the mount on Windows didn't work... I tried to multiply Ceph.conf the return error from the .\ceph-dokan.exe -l x command is:

2022-04-12T10:36:06.669W. Europe Daylight Time 1  0 ceph-dokan: Mounted cephfs directory: /. Mountpoint: x
2022-04-12T10:36:06.669W. Europe Daylight Time 1 -1 ceph-dokan: Can't initialize Dokan driver.

Using -d flag for debug mode returns:

2022-04-12T10:40:35.282W. Europe Daylight Time 1  0 ceph version 16.2.5 (0883bdea7337b95e4b611c768c0279868462204a) pacific (stable), process ceph-dokan, pid 2384
2022-04-12T10:40:35.326W. Europe Daylight Time 1  0 ceph-dokan: Mounted cephfs directory: /. Mountpoint: x
2022-04-12T10:40:35.326W. Europe Daylight Time 1 -1 ceph-dokan: Can't initialize Dokan driver.

Does this issue can be fixed as a workaround? or I do have an issue on my ceph config?

bellow you will see my ceph.conf:

[global]
    log to stderr = true
    ; Uncomment the following to use Windows Event Log
    ; log to syslog = true
 
    run dir = C:/ProgramData/ceph/out
    crash dir = C:/ProgramData/ceph/out
 
    ; Use the following to change the cephfs client log level
    ; debug client = 2
[client]
    keyring = C:/ProgramData/ceph/keyring
    ; log file = C:/ProgramData/ceph/out/$name.$pid.log
    admin socket = C:/ProgramData/ceph/$name.$pid.asok
 
    ; client_permissions = true
    ; client_mount_uid = 1000
    ; client_mount_gid = 1000
[global]
    ; mon host = a-pve6 b-pve6

ceph_conf_read_file when trying to connect.

This looks like a great project but i can't connect to my cluster.
I read that cephx is not supported yet and and i have dipabled that.
But i get the error ceph_conf_read_file when i try to run ceph-dokan.exe /c c:\temp\ceph.conf /l n -s and I have tried putting the ceph.conf in the same directory as the exe file and just using the parameters from the example file in the repository but always the same error.
Is the error refering to not being able to read the file at all or is it some parameter error in the file or something else?

ceph_conf_read_file error!

hello,
i have copy ceph.conf and run "ceph-dokan.exe -c ceph.conf -l m",but it can't work,what should i do?

Update Dokan to Dokany

Thank you for this project based on Dokan.
In attempt to unify the Dokan community after several years of shutdown, please be aware that Dokan is still alive on Dokany, a fork we started at the end 2014. There is several critical bug fixes avoiding BSOD, new features and signed drivers are provided for Windows >= 7.
Be aware that api compatibility is broken since 0.8.0 release, see this page.

I'm contacting Dokan file system projects that are still using the deprecated Dokan 0.6.0 to avoid abandon because they think Dokan is dead. Feel free to use Dokany or not, and ask questions if needed of course 😉.

File Size Error

Hi,
I upload a file with the size of 113MB through ceph-dokan. After finishing, ceph virtual disk show the size is 544PB. And I can't copy it to local disk because of there is not such large space left.

dokan 0.6.0_x64
ceph-dokan: master (least commit on Jan 18, 2017 ) compile with TDM-gcc 5.1.0.3_32bit
OS: windows server 2008 R2 sp1

No cephx support

Hi,
I had ceph-dokan compiled and the copied the ceph.conf to windows, but the command line just kept throwing "ceph_mount error!", what did i miss?
please give me some hint~

Which libraries are needed / How to compile?

Hi,

I can't get it to compile... Which sources from where do i need? I have tried to compile with windows libraries from mingw32msvc and from wine 1-6 but they error out during compilation :-(

Regards, Stan

Ceph_Mount Error!

Hello,

I am having some trouble configuring my ceph.conf file to mount on windows. I am running ceph version 0.94.2
I have copied the ceph.conf from linux to windows and modify both before attempting to mount the drive.

By changing some of the auth settings, either Windows cannot mount the drive or Linux cannot see the cluster.

This config will allow me to access the cluster from linux but windows fails with "Ceph_Mount Error!" :

auth client required = cephx

This config will allow me to run the windows command which ultimately hangs, but my nodes cannot see the cluster (ie: ceph health commend yields error (95) Operation not supported) :

auth client required = none

Any input would be appreciated, thanks!

性能问题

麻烦问下,这个在windows下的性能怎么样,目前有没有数据?

ceph-dokan crashed when mds are overloaded

The ceph-dokan crashed when the mds are overloaded.
Our experiment is:
10 osd server, 3 mds, 14 ceph-dokan client(2, 4, 16 concurrent IO per client).

The following are windbg output:
20 Id: b2cc.116c0 Suspend: 0 Teb: 7ef6a000 Unfrozen
ChildEBP RetAddr Args to Child
04ef14ec 75500bdd 00000002 04ef153c 00000001 ntdll_773b0000!ZwWaitForMultipleObjects+0x15
04ef1588 74fb1a2c 04ef153c 04ef15b0 00000000 KERNELBASE!WaitForMultipleObjectsEx+0x100
04ef15d0 74fb4208 00000002 7efde000 00000000 kernel32!WaitForMultipleObjectsExImplementation+0xe0
04ef15ec 74fd80a4 00000002 04ef1620 00000000 kernel32!WaitForMultipleObjects+0x18
04ef1658 74fd7f63 04ef1738 00000001 00000001 kernel32!WerpReportFaultInternal+0x186
04ef166c 74fd7858 04ef1738 00000001 04ef1708 kernel32!WerpReportFault+0x70
04ef167c 74fd77d7 04ef1738 00000001 b921b0ed kernel32!BasepReportFault+0x20
04ef1708 774274df 00000000 774273bc 00000000 kernel32!UnhandledExceptionFilter+0x1af
04ef1710 774273bc 00000000 04efffd4 773dc530 ntdll_773b0000!__RtlUserThreadStart+0x62
04ef1724 77427261 00000000 00000000 00000000 ntdll_773b0000!_EH4_CallFilterFunc+0x12
04ef174c 7740b459 fffffffe 04efffc4 04ef1888 ntdll_773b0000!_except_handler4+0x8e
04ef1770 7740b42b 04ef1838 04efffc4 04ef1888 ntdll_773b0000!ExecuteHandler2+0x26
04ef1794 7740b3ce 04ef1838 04efffc4 04ef1888 ntdll_773b0000!ExecuteHandler+0x24
04ef1820 773c0133 01ef1838 04ef1888 04ef1838 ntdll_773b0000!RtlDispatchException+0x127
04ef182c 04ef1838 04ef1888 c0000005 00000000 ntdll_773b0000!KiUserExceptionDispatcher+0xf
WARNING: Frame IP not in any known module. Following frames may be wrong.
04ef1b98 64fecc6e 00000000 0064003b 04ef1bc8 0x4ef1838
04ef1bc8 64fcf81c 00000000 00000000 00000098 libcephfs!ZN5Inode11caps_issuedEPi+0x4a
04ef1ca8 64fded05 0064001f 04ef1dd8 00000000 libcephfs!ZN6Client9fill_statEP5InodeP9stat_cephP11frag_info_tP11nest_info_t+0x50a
04ef1d88 64e82858 00000b4b 04ef1dd8 04efff70 libcephfs!ZN6Client5fstatEiP9stat_ceph+0x161
04ef1da8 004049d1 00a0a8a8 00000b4b 04ef1dd8 libcephfs!ceph_fstat+0x38

The bug is quite tricky. The mds is overloaded, so the ceph_fstat requests doesn't return back. Ceph-dokan hangs on fstat->getattr->make_request for 300sec. But ceph-dokan has
set timeout ( DokanResetTimeout(CEPH_DOKAN_IO_TIMEOUT, DokanFileInfo).
CEPH_DOKAN_IO_TIMEOUT is 120 sec. So the dokan driver cleanuped up inode unexpectly.

Client MDS
getattr ...
make_request ...
wait mds receive request
.... BUSY
timeout, cleanup and release_fh BUSY
.... send message back.
mds return
access invalid fh and crash ...

So, ketor, can we cancel DokanResetTimeout to fix this bug?

$ mingw32-make g++ -D__USE_FILE_OFFSET64 -DHAVE_CONFIG_H -I. -D__CEPH__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -fno-strict-aliasing -fsigned-char -Wno-invalid-offsetof -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -g -DPIC -c -I./ -I./global dokan/posix_acl.cc -o dokan/posix_acl.o In file included from dokan/posix_acl.cc:3:0: ./common/ceph-mingw-type.h:13:24: fatal error: parts/time.h: No such file or directory compilation terminated. Makefile:10: recipe for target 'dokan/posix_acl.o' failed mingw32-make: *** [dokan/posix_acl.o] Error 1

tag 0.92
win7
defualt complie command: mingw32-make
miss file :"parts/time.h"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.