Casync

Last updated

casync
Original author(s) Lennart Poettering
Initial releaseJune 20, 2017;22 months ago (2017-06-20)
Stable release
1.0 [1]
Repository github.com/systemd/casync/
Written in C
Operating system Linux
Type Data transfer
License LGPLv2.1
Website github.com/systemd/casync/

casync ( content-addressable synchronisation) is a Linux software utility designed to distribute frequently-updated file system images over the Internet. [2] [3]

Content-addressable storage, also referred to as associative storage or abbreviated CAS, is a way to store information so it can be retrieved based on its content, not its location. It has been used for high-speed storage and retrieval of fixed content, such as documents stored for compliance with government regulations. Content-addressable storage is like content-addressable memory.

Linux Family of free and open-source software operating systems based on the Linux kernel

Linux is a family of free and open-source software operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution.

File system way of storing all data on a data storage device

In computing, a file system or filesystem controls how data is stored and retrieved. Without a file system, information placed in a storage medium would be one large body of data with no way to tell where one piece of information stops and the next begins. By separating the data into pieces and giving each piece a name, the information is easily isolated and identified. Taking its name from the way paper-based information systems are named, each group of data is called a "file". The structure and logic rules used to manage the groups of information and their names is called a "file system".

Contents

Utility

According to the creator Lennart Poettering, casync is inspired by rsync and Git, [4] as well as tar. [5] casync is aimed to be used for Internet of things (IoT), container, virtual machine (VM), portable services, and operating system (OS) images, as well as backups and home directory synchronization. [3] casync splits images into variable size segments, uses sha256 checksums, and aims to work with content delivery networks (CDNs). [5] [4] Available for Linux only, [4] packages are available for Ubuntu, Fedora and Arch Linux. [5]

Lennart Poettering German computer programmer

Lennart Poettering is a German software engineer who created PulseAudio, Avahi, and systemd.

rsync file synchronization protocol and software

rsync is a utility for efficiently transferring and synchronizing files between a computer and an external hard drive and across networked computers by comparing the modification times and sizes of files. It is commonly found on Unix-like operating systems. The rsync algorithm is a type of delta encoding, and is used for minimizing network usage. Zlib may be used for additional data compression, and SSH or stunnel can be used for security.

Git Free and open source revision control software

Git is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files. Its goals include speed, data integrity, and support for distributed, non-linear workflows.

Similar software

Similar software that delivers file system images are: [4]

See also

BitTorrent peer-to-peer file sharing protocol

BitTorrent is a communication protocol for peer-to-peer file sharing (P2P) which is used to distribute data and electronic files over the Internet.

In computing, data deduplication is a technique for eliminating duplicate copies of repeating data. A related and somewhat synonymous term is single-instance (data) storage. This technique is used to improve storage utilization and can also be applied to network data transfers to reduce the number of bytes that must be sent. In the deduplication process, unique chunks of data, or byte patterns, are identified and stored during a process of analysis. As the analysis continues, other chunks are compared to the stored copy and whenever a match occurs, the redundant chunk is replaced with a small reference that points to the stored chunk. Given that the same byte pattern may occur dozens, hundreds, or even thousands of times, the amount of data that must be stored or transferred can be greatly reduced.

Flatpak system for application virtualization

Flatpak is a software utility for software deployment, package management, and application virtualization for Linux desktop computers. It provides a sandbox environment in which users can run applications in isolation from the rest of the system. Applications using Flatpak need permission from the user to control hardware devices or access the user's files.

Related Research Articles

Linux distribution Operating system based on the Linux kernel

A Linux distribution is an operating system made from a software collection, which is based upon the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one of the Linux distributions, which are available for a wide variety of systems ranging from embedded devices and personal computers to powerful supercomputers.

This is a list of operating systems specifically focused on security. General-purpose operating systems may be secure in practice, without being specifically "security-focused".

LWN.net

LWN.net is a computing webzine with an emphasis on free software and software for Linux and other Unix-like operating systems. It consists of a weekly issue, separate stories which are published most days, and threaded discussion attached to every story. Most news published daily are short summaries of articles published elsewhere, and are free to all viewers. Original articles are usually published weekly on Thursdays and are available only to subscribers for one week, after which they become free as well. LWN.net is part of Eklektix, Inc.

Linux kernel interfaces

The Linux kernel provides several interfaces to user-space applications that are used for different purposes and that have different properties by design. There are two types of application programming interface (API) in the Linux kernel that are not to be confused: the "kernel–user space" API and the "kernel internal" API.

PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, various BSD distributions such as FreeBSD and OpenBSD, macOS, as well as Illumos distributions and the Solaris operating system. Microsoft Windows was previously supported via the MinGW toolchain. The Windows port has not been updated since 2011, however.

Phoronix

Phoronix is a technology website that offers insights regarding the development of the Linux kernel, product reviews, interviews, and news regarding free and open-source software by monitoring the Linux kernel mailing list or interviews.

systemd init system and system/service manager for Linux systems

The systemd software suite provides fundamental building blocks for a Linux operating system. It includes the systemd "System and Service Manager", an init system used to bootstrap user space and manage user processes.

perf is a performance analyzing tool in Linux, available from Linux kernel version 2.6.31. Userspace controlling utility, named perf, is accessed from the command line and provides a number of subcommands; it is capable of statistical profiling of the entire system.

gummiboot is an open-source boot manager. Its final independent release is version 48. It has since been merged into systemd as its systemd-boot component and maintained as such.

Trojitá free software email client

Trojitá is a free software IMAP and SMTP email client developed using the Qt C++ library. The design goals of the maintainers are to develop a fast e-mail client which respects open standards, is cross-platform and uses the available resources very efficiently.

Elliptics is a distributed key-value data storage with open source code. By default it is a classic distributed hash table (DHT) with multiple replicas put in different groups. Elliptics was created to meet requirements of multi-datacenter and physically distributed storage locations when storing huge amount of medium and large files.

git-annex is a distributed file synchronization system written in Haskell. It aims to solve the problem of sharing and synchronizing collections of large files independent from a commercial service or even a central server.

Windows Subsystem for Linux Compatibility layer for running Linux binary executables natively on Windows

Windows Subsystem for Linux (WSL) is a compatibility layer for running Linux binary executables natively on Windows 10 and Windows Server 2019.

Zstandard compression algorithm

Zstandard is a lossless data compression algorithm developed by Yann Collet at Facebook. Zstd is the reference implementation in C. Version 1 of this implementation was released as free software on 31 August 2016.

The NOVA file system is an open-source, log-structured file system for byte-addressable persistent memory for Linux.

Container Linux is an open-source lightweight operating system based on the Linux kernel and designed for providing infrastructure to clustered deployments, while focusing on automation, ease of application deployment, security, reliability and scalability. As an operating system, Container Linux provides only the minimal functionality required for deploying applications inside software containers, together with built-in mechanisms for service discovery and configuration sharing.

References

  1. "casync: Content-Addressable Data Synchronization Tool". 23 June 2017 via GitHub.
  2. "The casync filesystem image distribution tool [LWN.net]". lwn.net.
  3. 1 2 "Lennart Poettering Announces New Project: casync - Phoronix". Phoronix .
  4. 1 2 3 4 "casync — A tool for distributing file system images". 0pointer.net.
  5. 1 2 3 "Synchronisationsprogramm casync in erster Version - Pro-Linux". www.pro-linux.de.