我读到 ZFS 和 Btrfs 使用校验和来防止数据降级,并且我读到 Git 通过对每次提交的所有内容进行散列来实现完整性。
我打算在带有 Btrfs RAID 1 的 Linux NAS 上使用 Git 服务器进行存储,但是如果 Git 具有完整性,我想这不是必需的(至少如果我想要防止数据降级的话,则不需要)。
问题: 那么 Git 的完整性虽然在每次提交时对所有内容进行散列,但是否可以防止或帮助防止位腐烂?
我有一个 BTRFS 文件系统,其中包含一组子卷。到现在为止还挺好。我需要更改子卷的名称,不幸的是btrfs
程序不允许我重命名子卷。用谷歌搜索得到了一些结果,一个说我可以mv
,另一个说我可以换snapshot
一个新名字并删除旧的子卷。在我崩溃我的分区并必须从备份中重新加载它之前(它非常大),我的问题是:
mv
这样可以吗,还是会使某些内部结构无效?我知道一切都还处于试验阶段,但就我的目的而言,它一直运行良好(到目前为止,我每天都有增量备份)。
我正在阅读几篇指南,介绍如何将 btrfs 快照与 rsync 结合使用,以创建具有历史记录的高效备份解决方案。然而,这一切都取决于是rsync --inplace
只修改实际更改的文件部分,还是按顺序覆盖整个文件。如果它写入整个文件,那么似乎 btrfs 将始终创建该文件的新副本,这会使该想法的效率大大降低。
我有一个关于 BTRFS 文件系统上不可恢复的错误的问题。具体来说,我最近在我的一个内存条出现问题后运行了 BTRFS Scrub,它似乎发现了 4 个无法纠正的错误。这是输出:
scrub status for <UUID>
scrub started at Thu Dec 25 15:19:22 2014 and was aborted after 89882 seconds
total bytes scrubbed: 1.87TiB with 4 errors
error details: csum=4
corrected errors: 0, uncorrectable errors: 4, unverified errors: 0
Run Code Online (Sandbox Code Playgroud)
幸运的是,我已将所有内容备份在第三级备份中,因此我并不特别担心丢失文件(我很清楚与 BTRFS 的实验状态相关的问题,我有多个备份来保证我的数据安全,并决心继续使用它,所以请不要:“解决方案;不要使用 BTRFS”帖子)。
但是,我想知道如何确定哪些文件与无法纠正的错误相关联?我想找到它们,删除它们,然后用它们的备份副本替换它们。
如果有人知道如何执行此操作,我很乐意听取您的意见。
先感谢您。
btrfs 擦洗究竟有什么作用?根据完全不清楚的手册页,它会进行一些错误检查。什么样的错误检查?它有多可靠?它能够恢复一些错误吗?它是如何工作的?它适用于每个 btrfs 磁盘吗?
如何在 btrfs 分区上取消删除(恢复)已删除的文件?
我还没有拍摄快照,所以我无法使用该功能。我知道有一些 适用于其他 Linux 文件系统的工具,但 google 还没有找到任何特定于 btrfs 的东西。我曾模糊地提到 btrfs 包含一个取消删除工具,但我找不到它。在为另一个文件系统尝试工具之前,我在这里问。
rsync
命令错误删除。如何制作btrfs 文件系统内容的完整副本?通过完全复制我的意思不仅是当前的数据,而且不同的子体积与他们的快照,保存最好母牛结构(即:不与相同内容重复的块。
似乎块级副本(例如 with dd
)不是一个好主意,因为它复制了 UUID,并且显然没有办法轻松更改它。
如果我要创建一个多设备 btrfs 文件系统。文档中的官方建议似乎是在原始设备上创建它;即/dev/sdb
,,/dev/sdc
等等,但这没有解释。
是否有任何优点首先创建这些设备上的一个分区表,无论是GPT或MBR,然后上创建文件系统/dev/sdb1
,/dev/sdc1
等等?为 btrfs 提供整个设备是否具有某些特殊优势,或者这些基本上是等效的?
这个操作序列有什么问题,在带有 Btrfs 文件系统的 Debian Squeeze 系统上运行?
$ dd if=/dev/zero of=swapfile2 bs=1024 count=524288
$ sudo mkswap swapfile2
$ sudo chown root:root swapfile2
$ sudo chmod 0600 swapfile2
$ sudo swapon -v -f swapfile2
swapon on swapfile2
swapon: /home/mathieu/swapfile2: found swap signature: version 1, page-size 4, same byte order
swapon: /home/mathieu/swapfile2: pagesize=4096, swapsize=536870912, devsize=536870912
swapon: swapfile2: swapon failed: Invalid argument
Run Code Online (Sandbox Code Playgroud)
我的文件系统是:
$ mount
/dev/mapper/voxbox-root on / type btrfs (rw)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs …
Run Code Online (Sandbox Code Playgroud) 我有一个 256GB 的 SSD 磁盘,我将 ext4 root FS 转换为 btrfs。我删除了 ext4 备份子卷,启用压缩并递归地进行碎片整理以在所有文件上启用它。
btrfs fi df /
有一个让我担心的输出:
Data: total=148.00GB, used=106.11GB
System: total=32.00MB, used=16.00KB
Metadata: total=65.00GB, used=2.04GB
Run Code Online (Sandbox Code Playgroud)
如果我正确理解输出,65GB(我磁盘的 1/4!)保留用于元数据,不可用于存储文件。如果这是正确的,那将是对我磁盘空间的巨大浪费。我理解正确吗?可以调整磁盘的元数据分配部分的大小吗?
btrfs ×10
backup ×4
linux ×4
filesystems ×3
git ×1
hard-drive ×1
partitioning ×1
raid ×1
rsync ×1
ssd ×1
storage ×1
swap ×1
zfs ×1