虚拟存储(Linux挂载点合并)

简介

在 Linux 中你有 3 块硬盘(或分区)分别为 100G、200G 和 300 G,如何在一个统一的路径下访问 600G 的视频文件夹呢?并且任何一个磁盘数据的损坏是不能影响其他两个磁盘中的数据,也不影响其他磁盘的正常访问。

相信大多数用户会想到几种解决办法:

        买个更大的硬盘 ̄□ ̄||

        使用 LVM

        组 RAID ......

今天我要介绍 mergerfs 工具,它可以将多个 Linux 分区(挂载点)或硬盘组合成一个虚拟驱动器。这样我们就可以将文件丢到 mergerfs  创建的虚拟驱动器中,它会自动将文件分布到不同的挂载点中,而用户看起来就像是放到了一个统一的路径。

该项目来自https://github.com/trapexit/mergerfs

README重要描述如下:

% mergerfs(1) mergerfs user manual# NAMEmergerfs - a featureful union filesystem# SYNOPSISmergerfs -o<options> <branches> <mountpoint># DESCRIPTION**mergerfs** is a union filesystem geared towards simplifying storage
and management of files across numerous commodity storage devices. It
is similar to **mhddfs**, **unionfs**, and **aufs**.mergerfs 是一个面向简化跨多个通用存储设备的文件存储和管理的联合文件系统。它类似于 mhddfs、unionfs 和 aufs# FEATURES* Configurable behaviors / file placement
* Ability to add or remove filesystems at will
* Resistance to individual filesystem failure
* Support for extended attributes (xattrs)
* Support for file attributes (chattr)
* Runtime configurable (via xattrs)
* Works with heterogeneous filesystem types
* Moving of file when filesystem runs out of space while writing
* Ignore read-only filesystems when creating files
* Turn read-only files into symlinks to underlying file
* Hard link copy-on-write / CoW
* Support for POSIX ACLs
* Misc other things
可配置的行为/文件放置
任意添加或移除文件系统的能力
抵抗单个文件系统故障
支持扩展属性(xattrs)
支持文件属性(chattr)
运行时可配置(通过 xattrs)
与异构文件系统类型兼容
写入时在文件系统空间不足时移动文件
创建文件时忽略只读文件系统
将只读文件转换为底层文件的符号链接
硬链接写时复制/CoW
支持 POSIX ACLs
其他杂项功能# HOW IT WORKSmergerfs logically merges multiple paths together. Think a union of
sets. The file/s or directory/s acted on or presented through mergerfs
are based on the policy chosen for that particular action. Read more
about policies below.
mergerfs 在逻辑上将多个路径合并在一起。可以将其视为集合的并集。通过 mergerfs 操作或呈现的文件或目录取决于为特定操作选择的策略
```
A         +      B        =       C
/disk1           /disk2           /merged
|                |                |
+-- /dir1        +-- /dir1        +-- /dir1
|   |            |   |            |   |
|   +-- file1    |   +-- file2    |   +-- file1
|                |   +-- file3    |   +-- file2
+-- /dir2        |                |   +-- file3
|   |            +-- /dir3        |
|   +-- file4        |            +-- /dir2
|                     +-- file5   |   |
+-- file6                         |   +-- file4|+-- /dir3|   ||   +-- file5|+-- file6
```mergerfs does **not** support the copy-on-write (CoW) or whiteout
behaviors found in **aufs** and **overlayfs**. You can **not** mount a
read-only filesystem and write to it. However, mergerfs will ignore
read-only filesystems when creating new files so you can mix
read-write and read-only filesystems. It also does **not** split data
across filesystems. It is not RAID0 / striping. It is simply a union of
other filesystems.mergerfs 不支持在 aufs 和 overlayfs 中发现的写时复制(CoW)或白出行为。你不能将只读文件系统挂载并对其进行写操作。然而,当创建新文件时,mergerfs 将忽略只读文件系统,因此你可以混合使用读写和只读文件系统。它也不会在文件系统之间分割数据。它不是 RAID0 / 切割。它只是其他文件系统的联合。
# TERMINOLOGY* branch: A base path used in the pool.
* pool: The mergerfs mount. The union of the branches.
* relative path: The path in the pool relative to the branch and mount.
* function: A filesystem call (open, unlink, create, getattr, rmdir, etc.)
* category: A collection of functions based on basic behavior (action, create, search).
* policy: The algorithm used to select a file when performing a function.
* path preservation: Aspect of some policies which includes checking the path for which a file would be created.
branch: 池中使用的基本路径。
pool: mergerfs 挂载点。分支的联合。
相对路径(relative path):相对于分支和挂载点在池中的路径。
function: 文件系统调用(打开、取消链接、创建、获取属性、删除目录等)。
category: 基于基本行为(动作、创建、搜索)的一组函数集合。
policy: 执行功能时用于选择文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/30030.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git 克隆 GitHub 仓库时遇到了 SSL 证书问题

fatal: unable to access GitHub - xxxxxxxxxxx: SSL certificate problem: unable to get local issuer certificate 使用 HTTP 代替 HTTPS: 如果 SSL 证书问题无法解决,您可以尝试使用 HTTP 克隆仓库(不推荐,因为不安全)。但请注…

Android device/xxx/system/common/overlay编译产物

MTK 如下代码编译的产物在 framework-res.apk 编译配置文件在device/mediatek/system/common/目录下的Android.bp device/mediatek/system/common/overlay/telephony/frameworks/base/core/res/res/values-mcc655-mnc01/config.xml 在Android U上面还在overlay目录中进行了产…

图像的高频和低频细节

在图像处理和计算机视觉中,"高频"和"低频"是用来描述图像中不同类型细节的术语。这些术语源自信号处理领域,其中频率的概念用于描述信号随时间变化的,但在图像处理中,它们被用来描述图像随空间变化的&#xf…

python是TIOBE编程语言排名第一的编程语言,它有什么优点?它的使用场景有哪些?用python打印数字1--100,用python打印九九乘法表怎么写?

Python是TIOBE编程语言排行榜排名第一的编程语言 。 python是一种解释性、交互式、面向对象的跨平台的语言。 python设计者及名称由来 Guido van Rossum 荷兰人---吉多范罗苏姆,是 Python 编程语言的最初设计者,在 Python 社区一直担当终身仁慈独裁者&…

教你如何安装 IntelliJ IDEA

安装 IntelliJ IDEA 的步骤通常如下,这里提供的是基于 Windows 系统的安装指南。 下载 IntelliJ IDEA 1. 访问 JetBrains 官方网站:[https://www.jetbrains.com/idea/download/](Download IntelliJ IDEA – The Leading Java and Kotlin IDE) 2. 选择适…

vue+echarts实现tooltip轮播

效果图如下: 实现步骤如下: 定义一个定时器 timer:null, len: 0,页面一加载就清空定时器,此操作是为了防止重复加载时会设置多个定时器在setOption后设置定时器 this.myChart.clear() this.myChart.setOption(option); this.autoShowTool…

java 面试题--基础

文章目录 基础java SE 、 EE 、 ME 的区别jdk 和 jre 区别?java 的日志级别基本数据类型 特性关键字finalabstractsuperswitchfortry catch 接口和抽象类的区别接口抽象类适用场景 类的加载循序静态代码块 传参问题访问修饰符运算符 反射java 里的应用为什么反射的性…

禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》Chapter 10插图

禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》 Chapter 10插图

YOLOv8旋转目标检测Yolov8n-obb详细实例+rolabelimg

一、Yolov8环境搭建 首先创建虚拟环境下载安装(其实就是yolov8的环境)再大概写一下步骤,没有想详细的看本人另外一篇:YOLOv8环境搭建_yolov8环境配置-CSDN博客 1、下载安装anaconda 2、创建虚拟环境 conda create -n my_yolov8…

二分查找算法模板

在算法题中&#xff0c;二分查找是一个很基础的能力&#xff0c;但是很多情况下都有可能因为一些小条件导致整题的错误&#xff0c;所以我们需要学习并记忆正确的写法&#xff0c;本篇列出了三种情况下的写法 闭区间写法 int lower_bound(vector<int> &nums, int ta…

【Gradio】Chatbot | 如何使用 Gradio Blocks 创建自定义聊天机器人

简介 重要提示&#xff1a;如果您刚开始接触&#xff0c;我们建议使用 gr.ChatInterface 来创建聊天机器人——它是一个高级抽象&#xff0c;使得可以快速创建漂亮的聊天机器人应用程序&#xff0c;往往只需一行代码。在这里了解更多信息。 本教程将展示如何使用 Gradio 的低级…

vue3中实现3D地图——three.js

需求点 地图区域大小随着父盒子大小变动&#xff0c;窗口缩放自动适配每个区域显示不同颜色和高度&#xff0c;描边每个区域显示名字label和icon点击区域改变其透明度&#xff0c;并且弹窗显示信息窗口点击点也可以可以自由放大缩小&#xff0c;360度旋转 包 npm install d3^…

单链表的插入及销毁

分数 5 作者 李卫明 单位 杭州电子科技大学 1.1编写程序&#xff0c;建立2个带头结点单链表&#xff0c;输入若干整数将正整数插入第1个单链表&#xff0c;将负整数插入第2个单链表&#xff0c;插入前和插入后单链表保持递增或相等次序&#xff0c;显示2个单链表&#xff0c…

背景渐变动画登录页

b站视频演示效果: 效果图: 完整代码: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>背景…

Python基础-函数

Python函数 函数是组织好的&#xff0c;可重复使用的&#xff0c;用来实现单一&#xff0c;或相关联功能的代码段。 函数能提高应用的模块性&#xff0c;和代码的重复利用率。你已经知道Python提供了许多内建函数&#xff0c;比如print()。但你也可以自己创建函数&#xff0c…

大模型商业化:李开复向左,张亚勤向右

文&#xff5c;白 鸽 “零一万物坚决做To C&#xff0c;不做赔钱的To B&#xff0c;要做能赚钱的To B。”2024年6月14日&#xff0c;在智源大会上&#xff0c;零一万物创始人李开复如此坚定地说道。 而与之相对&#xff0c;中国工程院院士、清华大学智能产业研究院&…

@property 详解

定义 python装饰器接受一个可调用对象作为输入&#xff0c;并返回一个新的可调用对象 比较 函数装饰器类装饰器方法装饰器参数接受函数作为参数接受类作为参数接受方法&#xff08;类的函数成员&#xff09;作为参数返回值返回一个新函数返回一个新类&#xff08;通常是原始…

掌握PostgreSQL:从安装到高级查询的全面教程

感谢您阅读本文&#xff0c;欢迎“一键三连”。作者定会不负众望&#xff0c;按时按量创作出更优质的内容。 ❤️ 1. 毕业设计专栏&#xff0c;毕业季咱们不慌&#xff0c;上千款毕业设计等你来选。 PostgreSQL是一种功能强大、开源的关系型数据库管理系统&#xff0c;广泛应用…

我的选择与思考

深度挖掘与扩展&#xff1a;专业选择的重要性及其长远影响 在面对高考后的大学与专业选择时&#xff0c;很多考生和家长可能会陷入纠结。究竟是追求名校的光环&#xff0c;还是选择一个真正适合自己、有发展前景的专业&#xff1f;这一问题背后涉及到的不仅仅是四年的大学生活…

2024/06/18--代码随想录算法8/17| 股票问题

121.买卖股票的最佳时机 力扣链接 动规五部曲 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i][0] 表示第i天持有股票所得最多现金,dp[i][1] 表示第i天不持有股票所得最多现金确定递推公式 dp[i][0] max(dp[i-1][0], -price[i]) dp[i][1]max(dp[i-1][1], …