All Projects → dm-vdo → Vdo

dm-vdo / Vdo

Licence: gpl-2.0
Userspace tools for managing VDO volumes.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Vdo

Kvdo
A pair of kernel modules which provide pools of deduplicated and/or compressed block storage.
Stars: ✭ 168 (+21.74%)
Mutual labels:  deduplication, storage, compression
dedupsqlfs
Deduplicating filesystem via Python3, FUSE and SQLite
Stars: ✭ 24 (-82.61%)
Mutual labels:  compression, deduplication
Frost
A backup program that does deduplication, compression, encryption
Stars: ✭ 25 (-81.88%)
Mutual labels:  compression, deduplication
localDataStorage
💼 A handy wrapper for HTML5 localStorage that seamlessly gets/sets primitive values (Array, Boolean, Date, Float, Integer, Null, Object or String); provides simple data scrambling; intelligently compresses strings; permits query by key as well as query by value and promotes shared storage segmentation in the same domain. Key names and values ar…
Stars: ✭ 42 (-69.57%)
Mutual labels:  compression, storage
zpaqfranz
Deduplicating archiver with encryption and paranoid-level tests. Swiss army knife for the serious backup and disaster recovery manager. Ransomware neutralizer. Win/Linux/Unix
Stars: ✭ 86 (-37.68%)
Mutual labels:  compression, deduplication
acid-store
A library for secure, deduplicated, transactional, and verifiable data storage
Stars: ✭ 48 (-65.22%)
Mutual labels:  compression, deduplication
Borgmatic
Simple, configuration-driven backup software for servers and workstations
Stars: ✭ 902 (+553.62%)
Mutual labels:  deduplication, compression
Cstore fdw
Columnar storage extension for Postgres built as a foreign data wrapper. Check out https://github.com/citusdata/citus for a modernized columnar storage implementation built as a table access method.
Stars: ✭ 1,642 (+1089.86%)
Mutual labels:  compression
Rucio
Rucio - Scientific Data Management
Stars: ✭ 131 (-5.07%)
Mutual labels:  storage
Cash
HTTP response caching for Koa. Supports Redis, in-memory store, and more!
Stars: ✭ 122 (-11.59%)
Mutual labels:  storage
Flatdata
Write-once, read-many, minimal overhead binary structured file format.
Stars: ✭ 121 (-12.32%)
Mutual labels:  storage
Lerc
Limited Error Raster Compression
Stars: ✭ 126 (-8.7%)
Mutual labels:  compression
Minify
CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.
Stars: ✭ 1,710 (+1139.13%)
Mutual labels:  compression
Synology
Cheatsheet and bash scripts sripts for Synology Nas Stations cheet cheat sheet nas networkdisk
Stars: ✭ 125 (-9.42%)
Mutual labels:  storage
Fsarchiver
file system archiver for linux
Stars: ✭ 135 (-2.17%)
Mutual labels:  compression
Diskover Web
Web file manager, disk space usage, storage search engine and file system analytics for diskover
Stars: ✭ 121 (-12.32%)
Mutual labels:  storage
Dbench
Benchmark Kubernetes persistent disk volumes with fio: Read/write IOPS, bandwidth MB/s and latency
Stars: ✭ 138 (+0%)
Mutual labels:  storage
Spring Backend Boilerplate
The modularized backend boilerplate based on Spring Boot Framework, easy to get started and add your business part.
Stars: ✭ 134 (-2.9%)
Mutual labels:  storage
Vuex Localstorage
Persist Vuex state with expires by localStorage or some else storage.
Stars: ✭ 129 (-6.52%)
Mutual labels:  storage
Ghost Storage Adapter S3
An AWS S3 storage adapter for Ghost
Stars: ✭ 128 (-7.25%)
Mutual labels:  storage

vdo

A set of userspace tools for managing pools of deduplicated and/or compressed block storage.

Background

VDO (which includes kvdo and vdo) is software that provides inline block-level deduplication, compression, and thin provisioning capabilities for primary storage. VDO installs within the Linux device mapper framework, where it takes ownership of existing physical block devices and remaps these to new, higher-level block devices with data-efficiency capabilities.

Deduplication is a technique for reducing the consumption of storage resources by eliminating multiple copies of duplicate blocks. Compression takes the individual unique blocks and shrinks them with coding algorithms; these reduced blocks are then efficiently packed together into physical blocks. Thin provisioning manages the mapping from LBAs presented by VDO to where the data has actually been stored, and also eliminates any blocks of all zeroes.

With deduplication, instead of writing the same data more than once each duplicate block is detected and recorded as a reference to the original block. VDO maintains a mapping from logical block addresses (used by the storage layer above VDO) to physical block addresses (used by the storage layer under VDO). After deduplication, multiple logical block addresses may be mapped to the same physical block address; these are called shared blocks and are reference-counted by the software.

With VDO's compression, multiple blocks (or shared blocks) are compressed with the fast LZ4 algorithm, and binned together where possible so that multiple compressed blocks fit within a 4 KB block on the underlying storage. Mapping from LBA is to a physical block address and index within it for the desired compressed data. All compressed blocks are individually reference counted for correctness.

Block sharing and block compression are invisible to applications using the storage, which read and write blocks as they would if VDO were not present. When a shared block is overwritten, a new physical block is allocated for storing the new block data to ensure that other logical block addresses that are mapped to the shared physical block are not modified.

This public source release of VDO includes two kernel modules, and a set of userspace tools for managing them. The "kvdo" module implements fine-grained storage virtualization, thin provisioning, block sharing, and compression; the "uds" module provides memory-efficient duplicate identification. The userspace tools include a pair of python scripts, "vdo" for creating and managing VDO volumes, and "vdostats" for extracting statistics from those volumes.

Documentation

Releases

Each branch on this project is intended to work with a specific release of Enterprise Linux (Red Hat Enterprise Linux, CentOS, etc.). We try to maintain compatibility with active Fedora releases, but some modifications may be required.

Version Intended Enterprise Linux Release Supported With Modifications
6.1.x.x EL7 (3.10.0-*.el7)
6.2.x.x EL8 (4.18.0-*.el8) Fedora 28, Fedora 29, Fedora 30, Rawhide
  • Pre-built versions with the required modifications for the referenced Fedora releases can be found here and can be used by running dnf copr enable rhawalsh/dm-vdo.

Status

VDO was originally developed by Permabit Technology Corp. as a proprietary set of kernel modules and userspace tools. This software and technology has been acquired by Red Hat, has been relicensed under the GPL (v2 or later), and this repository begins the process of preparing for integration with the upstream kernel.

While this software has been relicensed there are a number of issues that must still be addressed to be ready for upstream. These include:

  • Conformance with kernel coding standards
  • Use of existing EXPORT_SYMBOL_GPL kernel interfaces where appropriate
  • Refactoring of primitives (e.g. cryptographic) to appropriate kernel subsystems
  • Support for non-x86-64 platforms
  • Refactoring of platform layer abstractions and other changes requested by upstream maintainers

We expect addressing these issues to take some time. In the meanwhile, this project allows interested parties to begin using VDO immediately. The technology itself is thoroughly tested, mature, and in production use since 2014 in its previous proprietary form.

Building

In order to build the user-level programs, invoke the following command from the top directory of this tree:

    make

After building the user-level programs, they may be installed in the standard locations by invoking the following command from the top directory of this tree, as the root user:

    make install

Communication channels

Community feedback, participation and patches are welcome to the [email protected] mailing list -- subscribe here.

Contributing

This project is currently a stepping stone towards integration with the Linux kernel. As such, contributions are welcome via a process similar to that for Linux kernel development. Patches should be submitted to the [email protected] mailing list, where they will be considered for inclusion. This project does not accept pull requests.

Licensing

GPL v2.0 or later. All contributions retain ownership by their original author, but must also be licensed under the GPL 2.0 or later to be merged.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].