Filestore Configuration

JFrog Installation & Setup Documentation

Content Type
Installation & Setup
ft:sourceType
Paligo

The filestore is where Artifactory physically stores the binaries. Artifactory uses the filestore in conjunction with the database to manage binary storage.

You can manage filestore through the binarystore.xml configuration file located in the $JFROG_HOME/artifactory/var/etc/artifactory folder. You can modify this file to implement a variety of storage configurations including basic and customizable local and network-based file-systems, cloud storage, and redundant storage.

In addition to using different storage providers, you can also chain a series of storage providers together to build complex and scalable binary storage setups.

Click here to view the list of chain templates with you can configure binary providers.Chain Templates

Binary Provider

A binary provider is a storage element that is based on Checksum-Based Storage Implementation. You can use one or more binary providers to build your storage setup.

The binarystore.xml file can include a chain with a set of binary providers. You can embed binary providers into one another to form chains that represent a coherent filestore.

Take care when you modify binarystore.xml

Making changes to this file may result in losing binaries stored in Artifactory!

If you are not sure of what you are doing, contact JFrog Support for assistance.

Artifactory includes the following default binarystore.xml configuration.

<config version="v1">
        <chain template="file-system"/>
</config>
  • <config> The wrapper element containing a chain element. The binarystore.xml must start and end with this element.

  • <chain template> The structure of the filestore. To use one of the built-in filestores, the chain element needs to include the corresponding template attribute.

Note

The <config> tag is a marker element for versioning configurations. It does not affect Artifactory's settings.

Chain Templates

The following sections describe the basic chain templates come built-in with Artifactory and are ready for you to use out-of-the-box, as well as other binary providers that are included in the default chains.

Click on the template name to navigate to the corresponding binary provider template.

Template

Description

file-system

The most basic filestore configuration for Artifactory used for a local or mounted filestore.

cache-fs

Works the same way as filesystem but also caches download requests that are cleaned up using an LRU (Least Recently Used) protocol. Improves performance of instances with high IOPS (I/O Operations) or slow NFS access.

full-db

All the metadata and the binaries are stored as blobs in the Artifactory database with an additional layer of caching.

full-db-direct

All the metadata and the binaries are stored as blobs in the Artifactory database without caching.

s3-storage-v3-direct

A file store configuration to use S3 Cloud Storage using the official Amazon SDK.

You can optimize the JFrog Platform for the download of large binaries, such as Docker images, from cloud storage, by delegating its function as a registry so it responds to download requests with a link. For more information, see Direct Cloud Storage Download.

cluster-s3-storage-v3

A file store configuration where data is temporarily stored on the file system of each node using the Eventual-Cluster Binary Provider , and is then passed on to your S3 object storage for persistent storage

You can optimize the JFrog Platform for the download of large binaries, such as Docker images, from cloud storage, by delegating its function as a registry so it responds to download requests with a link. For more information, see Direct Cloud Storage Download.

s3-sharding

A file store configuration to use multiple S3 buckets in a sharded configuration.

google-storage-v2

The google-storage-v2 template is used for configuring Google Cloud Storage as the remote filestore using the Google native client.

azure-blob-storage-v2

This is the setting used for Azure Blob Storage v2 as the remote filestore.

double-shards

A pure sharding configuration that uses two physical mounts with one copy, which results in each artifact saved only once.

redundant-shards

A pure sharding configuration that uses two physical mounts with two copies, which results in each shard storing a copy of each artifact.

cluster-filesystem

A filestore configuration where each node has its own local filestore (just like the file-system chain) and is connected to all other nodes through dynamically allocated Remote Binary Providers using the Sharding-Cluster provider.

cluster-google-storage-v2

This is the setting used for Google Cloud Storage in a cluster configuration as the remote filestore.

cluster-azure-blob-storage-v2

This is the setting used for Azure Blob Storage. It is based on the sharding and dynamic provider logic that synchronizes the cluster-file-system.

Modify an existing chain template

To accommodate any specific requirements you may have for your filestore, modify one of the existing chain templates either by extending it with additional binary providers or by overriding one of its attributes.

For example, the built-in filesystem chain template stores binaries under the $JFROG_HOME/artifactory/var/data/artifactory/filestore directory. To modify the template so that it stores binaries under $FILESTORE/binaries you could extend it as follows:

<!-- file-system chain template structure  -->  
<config version="v1">   
        <chain template="file-system"/>
        <provider id="file-system" type="file-system">                                <!-- Modify the "file-system" binary provider -->
                <baseDataDir>$FILESTORE/binaries</baseDataDir>              <!-- Override the <baseDataDir> attribute -->
        </provider>
</config>

Create a custom filestore from scratch

In addition to the built-in filestore chain templates below, you can construct custom chain templates to accommodate any filestore structure you need.

Since the different binary providers in the filestore must be compatible with each other, misconfiguration might lead to data loss. For configuring a custom filestore, contact JFrog Support.