GithubHelp home page GithubHelp logo

devdevmac / openzfs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openzfsonosx/illumos-openzfs

0.0 1.0 0.0 301.81 MB

OpenZFS is a storage platform that encompasses the functionality of traditional filesystems and volume managers, delivering enterprise reliability, modern functionality, and consistent performance in an easy to administer package on several operating system platforms.

Home Page: http://open-zfs.org

Shell 1.20% Groovy 0.01% Python 0.04% Ruby 0.01% Makefile 1.85% C 75.18% Objective-C 1.53% Assembly 1.31% Roff 2.67% C++ 15.52% Awk 0.01% Forth 0.09% DIGITAL Command Language 0.22% Batchfile 0.01% Perl 0.22% Yacc 0.12% Scilab 0.01% Lex 0.04% sed 0.01% RenderScript 0.01%

openzfs's Introduction

This is the OpenZFS source code repository.

OpenZFS is an outstanding storage platform that encompasses the functionality of traditional filesystems, volume managers, and more. OpenZFS provides consistent reliability, functionality and performance across all distributions, including illumos, FreeBSD, Linux, and OSX.

See http://open-zfs.org for more details.

This repo closely tracks illumos, and is the upstream for the above-mentioned distributions.

Directories of interest for ZFS:

  • usr/src/uts/common/fs/zfs

    • code for the ZFS kernel module
  • usr/src/common/zfs

    • code for both the kernel module and userland (libzfs)
  • usr/src/cmd/{zfs,zpool}

    • code for administrative commands
  • usr/src/cmd/{zdb,ztest,zstreamdump,zhack}

    • code for test/development commands
  • usr/src/lib/{libzfs,libzfs_core}

    • code for libraies used by administrative commands
  • usr/src/lib/libzpool

    • compiles kernel code into a userland module for testing (used by zdb, ztest)
  • usr/src/cmd/mdb/common/modules/zfs

    • zfs mdb module, provides ZFS-specific debugging commands
  • usr/src/test/zfs-tests

    • ZFS test suite

Relation to illumos, and integration requirements

This is a clone of illumos-gate, (see also http://illumos.org). All commits meet the requirements for integrating into illumos[*], including:

  • each commit fixes one or more illumos bugs
  • commit message format is one line for each bug fixed, plus one line for each reviewer
  • code has been reviewed by someone familiar with illumos code and practices

[*] An exception is made for changes that should never be ported to other platforms (including illumos). For example, changes to this README.

Code review requirements

Code changes must be reviewed by someone with experience in the area of code being changed (besides the change's author). Note that the reviewers need not be absolute experts, the review need not be conducted on github (or any public forum), and you need not make every change requested by reviewers. The thoroughness of the review will be evaluated by a committer.

Testing requirements

Most changes can be tested on any platform's port of OpenZFS (e.g. illumos, FreeBSD, Linux, OSX), and then be tested on OpenZFS/illumos simply by running the regression tests:

  • /usr/bin/ztest (typically for at least 2 hours)
  • the zfs test suite, /opt/zfs-tests/bin/zfstest
    • Note that there are some known failures on master. Therefore your results should be compared with results from master to determine if they are new failures.

Licensing requirements

Modifications to existing files must be licensed under that file's original licence terms (typically CDDL). New files may be licensed under more permissive licenses if desired.

How to contribute changes

Simply open a pull request. This will begin the code review and regression testing process.

Typically when bringing changes from a different platform, your workflow will include:

  • check out openzfs/master
  • apply patch, potentially changing file paths as appropriate
  • open an illumos bug
    • the description of the bug should include an analysis of problem and solution (similar to what might be included in the commit message in other repositories)
  • commit the change, using the illumos-style commit message
    • Optionally, for ease of reviewing, you may include freeform text following the illumos-style commit message. This text will be removed by the commiter when it is committed (and the Approved-by line will be added).
  • open a pull request against openzfs/master
  • respond to any code review feedback
    • Note that responding does not necessarily mean doing what the reviewer suggested. Often it means explaining your reasoning or answering a question.
  • look for automated regression test results and address and unexpected failures

Committers

Committers are experts in OpenZFS and illumos who can directly make changes to this repository. They are listed on the github account. If you are interested in becoming a committer, contact Matt Ahrens (@ahrens).

Further Discussion

The best way to reach the relevant members of this community is the [email protected] mailing list. You may also find folks on IRC in #openzfs on irc.freenode.net.

openzfs's People

Contributors

tsoome avatar richlowe avatar ahrens avatar rmustacc avatar mtelka avatar gwr avatar bcantrill avatar jjelinek avatar grwilson avatar zettabot avatar jgmills avatar pcd1193182 avatar alhazred avatar jeffpc avatar gdamore avatar andy-js avatar jclulow avatar avg-i avatar ikozhukhov avatar hrosenfeld avatar jwk404 avatar pzakha avatar pyhalov avatar citrus-it avatar ptribble avatar melloc avatar jurikm avatar pfmooney avatar bcoddens avatar asomers avatar

Watchers

James Cloos avatar

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.