{"id":13435983,"url":"https://github.com/ceph/ceph","last_synced_at":"2025-05-13T10:51:38.778Z","repository":{"id":37359541,"uuid":"2310495","full_name":"ceph/ceph","owner":"ceph","description":"Ceph is a distributed object, block, and file storage platform ","archived":false,"fork":false,"pushed_at":"2025-05-13T06:12:31.000Z","size":832566,"stargazers_count":14982,"open_issues_count":848,"forks_count":6058,"subscribers_count":651,"default_branch":"main","last_synced_at":"2025-05-13T06:21:02.921Z","etag":null,"topics":["block-storage","cloud-storage","distributed-file-system","distributed-storage","erasure-coding","fuse","hdfs","high-performance","highly-available","iscsi","kubernetes","nfs","nvme-over-fabrics","object-store","posix","replication","s3","smb","software-defined-storage","storage"],"latest_commit_sha":null,"homepage":"https://ceph.io","language":"C++","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ceph.png","metadata":{"files":{"readme":"README.FreeBSD","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2011-09-01T21:41:26.000Z","updated_at":"2025-05-13T05:25:52.000Z","dependencies_parsed_at":"2025-05-05T20:20:16.867Z","dependency_job_id":null,"html_url":"https://github.com/ceph/ceph","commit_stats":{"total_commits":104601,"total_committers":1707,"mean_commits":61.27768014059754,"dds":0.7372013651877133,"last_synced_commit":"3faae3181318f2139d9a7620c80dc1ffdc013451"},"previous_names":[],"tags_count":400,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceph%2Fceph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceph%2Fceph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceph%2Fceph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceph%2Fceph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ceph","download_url":"https://codeload.github.com/ceph/ceph/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253885706,"owners_count":21978914,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["block-storage","cloud-storage","distributed-file-system","distributed-storage","erasure-coding","fuse","hdfs","high-performance","highly-available","iscsi","kubernetes","nfs","nvme-over-fabrics","object-store","posix","replication","s3","smb","software-defined-storage","storage"],"created_at":"2024-07-31T03:00:41.675Z","updated_at":"2025-05-13T10:51:33.759Z","avatar_url":"https://github.com/ceph.png","language":"C++","readme":"\nLast updated: 2017-04-08\n\nThe FreeBSD build will build most of the tools in Ceph.\nNote that the (kernel) RBD dependent items will not work\n\nI started looking into Ceph, because the HAST solution with CARP and \nggate did not really do what I was looking for. But I'm aiming for \nrunning a Ceph storage cluster on storage nodes that are running ZFS.\nIn the end the cluster would be running bhyve on RBD disk that are stored in \nCeph.\n\nThe FreeBSD build will build most of the tools in Ceph.\n\t\nProgress from last report:\n==========================\n\nMost important change:\n  -\tA port is submitted: net/ceph-devel.\n\nOther improvements:\n\n\t* A new ceph-devel update will be submitted in April\n\n  -\tCeph-Fuse works, allowing to mount a CephFS on a FreeBSD system and do\n\tsome work on it. \n  -\tCeph-disk prepare and activate work for FileStore on ZFS, allowing \n\teasy creation of OSDs.\n  -\tRBD is actually buildable and can be used to manage RADOS BLOCK \n\tDEVICEs.\n  -\tMost of the awkward dependencies on Linux-isms are deleted only\n\t/bin/bash is there to stay.\n\nGetting the FreeBSD work on Ceph:\n=================================\n\n\tpkg install net/ceph-devel\n\nOr:\n\tcd \"place to work on this\"\n\tgit clone https://github.com/wjwithagen/ceph.git\n\tcd ceph\n\tgit checkout wip.FreeBSD\n\nBuilding Ceph\n=============\n  - \tGo and start building\n\t  ./do_freebsd.sh\n\t\nParts not (yet) included:\n=========================\n\n - KRBD\n\t Kernel Rados Block Devices is implemented in the Linux kernel\n\t And perhaps ggated could be used as a template since it does some of \n\t the same, other than just between 2 disks. And it has a userspace \n\t counterpart.\n - BlueStore.\n\t FreeBSD and Linux have different AIO API, and that needs to be made \n\t compatible Next to that is there discussion in FreeBSD about \n\t aio_cancel not working for all devicetypes\n - CephFS as native filesystem\n\t (Ceph-fuse does work.)\n\t Cython tries to access an internal field in dirent which does not \n\t compile\nBuild Prerequisites\n===================\n\n\tCompiling and building Ceph is tested on 12-CURRENT, but I guess/expect \n\t11-RELEASE will also work. And Clang is at 3.8.0.\n\tIt uses the CLANG toolset that is available, 3.7 is no longer tested, \n\tbut was working when that was with 11-CURRENT. \n\tClang 3.4 (on 10.2-STABLE) does not have all required capabilities to \n\tcompile everything\n\nThe following setup will get things running for FreeBSD:\n\t\n\tThis all require root privilidges.\n\n -\tInstall bash and link it in /bin\n\tsudo pkg install bash\n\tsudo ln -s /usr/local/bin/bash /bin/bash\n\nGetting the FreeBSD work on Ceph:\n=================================\n\n - \tcd \"place to work on this\"\n\tgit clone https://github.com/wjwithagen/ceph.git\n\tcd ceph\n\tgit checkout wip.FreeBSD.201702\n\nBuilding Ceph\n=============\n - \tGo and start building\n\t./do_freebsd.sh\n\t\nParts not (yet) included:\n=========================\n\n -\tKRBD\n\tKernel Rados Block Devices is implemented in the Linux kernel\n\tIt seems that there used to be a userspace implementation first.\n\tAnd perhaps ggated could be used as a template since it does some of \n\tthe same, other than just between 2 disks. And it has a userspace \n\tcounterpart.\n -\tBlueStore.\n\tFreeBSD and Linux have different AIO API, and that needs to be made \n\tcompatible Next to that is there discussion in FreeBSD about \n\taio_cancel not working for all devicetypes\n -\tCephFS\n\tCython tries to access an internal field in dirent which does not \n\tcompile\n\nTests that verify the correct working of the above are also excluded \nfrom the testset\n\nTests not (yet) include:\n=======================\n\n -  \tNone, although some test can fail if running tests in parallel and there is\n    \tnot enough swap. Then tests will start to fail in strange ways.\n \nTask to do:\n===========\n -\tBuild an automated test platform that will build ceph/master on \n\tFreeBSD and report the results back to the Ceph developers. This will \n\tincrease the maintainability of the FreeBSD side of things. \n\tDevelopers are signalled that they are using Linux-isms that will not\n\tcompile/run on FreeBSD Ceph has several projects for this: Jenkins, \n\tteuthology, pulpito, ...\n\tBut even just a while { compile } loop and report the build data on a \n\tstatic webpage would do for starters.\n\n -\tRun integration tests to see if the FreeBSD daemons will work with a \n\tLinux Ceph platform.\n\n -\tCompile and test the user space RBD (Rados Block Device).\n\n -\tInvestigate and see if an in-kernel RBD device could be developed a la \n\t'ggate'\n\n -\tInvestigate the keystore, which could be kernel embedded on Linux an \n\tcurrently prevents building Cephfs and some other parts.\n\n -\tScheduler information is not used atm, because the schedulers work \n\trather different. But at a certain point in time, this would need some \n\tattention:\n\tin: ./src/common/Thread.cc\n\n -\tImprove the FreeBSD /etc/rc.d initscripts in the Ceph stack. Both \n\tfor testing, but mainly for running Ceph on production machines.\n\tWork on ceph-disk and ceph-deploy to make it more FreeBSD and ZFS \n\tcompatible. \n\n -\tBuild test-cluster and start running some of the teuthology integration \n\ttests on these.\n\tTeuthology want to build its own libvirt and that does not quite work\n\twith all the packages FreeBSD already has in place. Lots of minute \n\tdetails to figure out\n\n -\tDesign a virtual disk implementation that can be used with behyve and \n\tattached to an RBD image. \n","funding_links":[],"categories":["HarmonyOS","C++","\u003ca name=\"cpp\"\u003e\u003c/a\u003eC++","Operation System","kubernetes","数据库、分布存储相关","S3","Interaction","Project/Product","Real-World Projects","Storage server and tools","Projects","Programming","Table of Contents","File Sharing","Application Recommendation","Storage \u0026 Data Management"],"sub_categories":["Windows Manager","Network Distributed File System","Network Distributed File Systems","Distributed Systems","Storage","☁️ Cloud storage","Storage engines \u003ca name=\"storage\"\u003e\u003c/a\u003e"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceph%2Fceph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fceph%2Fceph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceph%2Fceph/lists"}