github.com/swiftstack/ProxyFS@v0.0.0-20210203235616-4017c267d62f/docs/source/architecture/access.rst (about)

     1  Access Modules & Interfaces
     2  ===========================
     3  
     4  In this section we will discuss the various access methods for ProxyFS.
     5  
     6  
     7  .. image:: /_static/ProxyFS-components.png
     8   :width: 575pt
     9  
    10  Local filesystem access – FUSE
    11  ------------------------------
    12  
    13  ProxyFS includes a FUSE module to provide a local filesystem capable of
    14  being mounted on the system upon which a ProxyFS process is running.
    15  
    16  NFS Access – nfsd
    17  -----------------
    18  
    19  The local FUSE mount point can be configured in conjunction with an nfsd
    20  to export the filesystem volume via NFS.
    21  
    22  ProxyFS API – JSON RPC interface
    23  --------------------------------
    24  
    25  In addition to providing a FUSE module for local filesystem, ProxyFS
    26  includes a direct interface for other system components to more directly
    27  interact with a volume. This interface is utilized directly for SMB
    28  access via ProxyFS’s Samba VFS module. The Swift Proxy server processes
    29  also leverage this API for direct access to the filesystem metadata tree
    30  for object API (AWS S3 and Swift) access.
    31  
    32  SMB Access – ProxyFS Samba VFS
    33  ------------------------------
    34  
    35  ProxyFS provides a Samba VFS module written in C that integrates
    36  directly with the Samba server processes. This module is provided in a
    37  separate repository called
    38  `proxyfs-vfs <https://github.com/swiftstack/proxyfs-vfs>`__. A ProxyFS
    39  JSON RPC client is provided in a separate repository called
    40  `proxyfs-jrpc-client <https://github.com/swiftstack/proxyfs-jrpc-client>`__.
    41  
    42  The ProxyFS Samba VFS module utilizes the ProxyFS JSON RPC interface for
    43  direct access into ProxyFS for a given volume.
    44  
    45  Swift ProxyFS Middleware
    46  ------------------------
    47  
    48  The Swift Proxy server is an interface to the object back end. The Proxy
    49  server is responsible for the public-facing API requests for AWS S3 and
    50  OpenStack Swift APIs. Much of the API functionality is provided through
    51  Swift extensible middleware capabilities.
    52  
    53  ProxyFS provides object API access through a set of middleware which
    54  interfaces with the APIs provided by the ProxyFS JSON RPC interface.
    55  
    56  This interaction is similar the ProxyFS Samba VFS module, however only
    57  filesystem metadata is exchanged – *not* file data.