我使用 ZFS 并喜欢它。我知道 BtrFS 也支持校验和。有人告诉我在 Windows 2008 中可以使用校验和,但我一直无法验证这一点。
除了 ZFS 和 BtrFS 之外,在任何平台上是否还有校验和文件系统,尤其是 Windows?
我正在开展一个向青年教授 Linux 的项目。知道他们倾向于删除或损坏其主目录中的项目,我们正在寻找一个好的快照选项。我们将无法访问主要存储供应商提供的精美工具,并希望在文件系统级别找到解决方案。
我读了很多关于 btrfs 的书,但经验很少。我对 LVM 有一些经验,但我不熟悉它的快照功能。文件系统或其他文件系统是否可以选择按需或计划创建快照?然后让这些快照在没有 root 的情况下始终可用,就像每个主文件夹中的 .snapshot 文件夹一样?
理想情况下,该解决方案允许用户在 24 到 48 小时内按需自行恢复备份。我们将为系统进行另一个备份过程和更多的全局备份。但我们不希望这个过程被那些只是犯“错误”的学生使用。
我是 btrfs 的新手,我正在尝试删除我几个月前制作的一些快照。它们占用了大约 20GB 的空间,我需要收回这些空间。
这似乎列出了快照:
? sudo btrfs subvolume list /
ID 257 gen 82021 top level 5 path @
ID 258 gen 82021 top level 5 path @home
ID 263 gen 81983 top level 5 path @home/.ecryptfs/mlissner/.Private/ECRYPTFS_FNEK_ENCRYPTED.FWa8iOdaTukmNEROkGj4b5OZHZ0bKOqrvAQxu4dgX.2jUELJL22wpV94oU--/ECRYPTFS_FNEK_ENCRYPTED.FWa8iOdaTukmNEROkGj4b5OZHZ0bKOqrvAQxHunTlBS-30iHyukjeY9-EE--/root_post_install_2014-04-29
ID 364 gen 81986 top level 5 path @home/.ecryptfs/mlissner/.Private/ECRYPTFS_FNEK_ENCRYPTED.FWa8iOdaTukmNEROkGj4b5OZHZ0bKOqrvAQxu4dgX.2jUELJL22wpV94oU--/ECRYPTFS_FNEK_ENCRYPTED.FWa8iOdaTukmNEROkGj4b5OZHZ0bKOqrvAQxHunTlBS-30iHyukjeY9-EE--/root_post_install_2014-05-04
ID 376 gen 81996 top level 5 path @home/.ecryptfs/mlissner/.Private/ECRYPTFS_FNEK_ENCRYPTED.FWa8iOdaTukmNEROkGj4b5OZHZ0bKOqrvAQxu4dgX.2jUELJL22wpV94oU--/ECRYPTFS_FNEK_ENCRYPTED.FWa8iOdaTukmNEROkGj4b5OZHZ0bKOqrvAQxHunTlBS-30iHyukjeY9-EE--/root_post_install_2014-05-14
Run Code Online (Sandbox Code Playgroud)
如何删除它们?当我尝试显而易见的事情时,我收到一个错误:
? sudo btrfs subvolume delete root_post_install_2014-04-29
Delete subvolume '/home/mlissner/.btrfs/snapshots/root_post_install_2014-04-29'
ERROR: cannot delete '/home/mlissner/.btrfs/snapshots/root_post_install_2014-04-29' - Device or resource busy
Run Code Online (Sandbox Code Playgroud)
我感觉有点迷茫,谷歌搜索没有发现真正的帮助。如果这会有所帮助,我很高兴发布更多信息,但就目前而言,我对如何进行感到困惑。
我有一对 RAID1 磁盘,格式为btrfs.
磁盘会定期进行清理,我会收到结果通知。他们已经运行了大约 2-3 年,没有出现任何问题。
然而,我最近添加smartd到我的安装中,它立即抱怨其中一个驱动器中有少量不可读的扇区:
Device: /dev/sdc [SAT], 4 Currently unreadable (pending) sectors
Run Code Online (Sandbox Code Playgroud)
我对该驱动器进行了擦洗,发现并纠正了相同数量的错误,但智能错误消息并没有消失。对同一磁盘的后续擦洗不会显示任何错误。
我不确定这些工具中哪个最准确 - 是smartd显示误报,还是btrfs缺少坏扇区,或者也许我误解了结果?
验证磁盘运行状况的最佳方法是什么?
谢谢!
Btrfs 是否可以仅将 SSD 用于元数据并将批量数据保留在成本较低的存储(例如 HDD)上?我参考了这个页面Using_Btrfs_with_Multiple_Devices并且找不到解决方案。
谢谢!
尽管仍有数据和元数据空间,但我无法缩小 btrfs 文件系统:
$ sudo btrfs filesystem resize -11G /home;echo $?
Resize '/home' of '-11G'
ERROR: unable to resize '/home': No space left on device
1
Run Code Online (Sandbox Code Playgroud)
以下是一些 btrfs 文件系统信息/home:
$ sudo btrfs filesystem df /home | column -t
Data, single: total=92.01GiB, used=80.68GiB
System, DUP: total=8.00MiB, used=16.00KiB
System, single: total=4.00MiB, used=0.00B
Metadata, DUP: total=1.00GiB, used=631.41MiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=224.00MiB, used=0.00B
$ sudo btrfs filesystem show /home
Label: none uuid: c7ee56a8-ef45-46c8-86d1-13879201a1e7
Total devices 1 FS bytes used …Run Code Online (Sandbox Code Playgroud) 我确定我脑放屁的原因是因为太晚了,但是我如何对根分区执行 btrfs 检查?
需要卸载设备,这不可能发生,因为它是根分区...
谢谢
我对 btrfs 的新功能感到非常兴奋,并想开始测试它。在开始之前,我想问一下 btrfs 是否支持通过用更大的磁盘替换磁盘(而不是添加额外的磁盘)来增加 raid 容量。示例:由 8 个 2TB 驱动器组成的 RAID10 的容量为 8 TB。然后,每个 2TB 驱动器将替换为 6 TB 驱动器。每次更换磁盘后,都会执行重建/重新平衡。我想知道,在上次更换磁盘并重新平衡后,容量是否从 8TB 跃升至 24TB?
网上有一些关于它的讲座,但没有 100% 的说法,比如“是的,重新平衡后,容量增加了!”。 https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices#Adding_new_devices
Synology 的 NAS 设备完全支持我所询问的功能:https://www.synology.com/en-global/knowledgebase/DSM/help/DSM/StorageManager/volume_diskgroup_expand_replace_disk 但是,我不确定,如果这该功能是 btrfs 的本机功能,或者是 Synology 的开发人员专门为其 Disk Station 操作系统创建的功能。
我无法确定如何获得当前在 btrfs 子卷上设置的配额限制。 关于配额的 btrfs wiki似乎没有显示这一点。
这就是我认为我知道的:
btrfs qgroup limit 21G /pathbtrfs qgroup show /path但是如何检查已经设置的限制?
更新
所以经过长时间研究官方文档,我发现btrfs以每个1Gb为单位的块来分配空间,并且在使用单一模式时,这些块被分配在当前未分配空间最多的磁盘上。因此,数据在不同磁盘之间进行条带化,正如我所见,丢失一个磁盘将导致大于 1Gb 的文件完全丢失。
我的结论是,使用单一模式相对于 raid0(也受 btrfs 支持)的唯一好处是可以使用不同大小的磁盘。还有其他想法吗?
原帖
因此,我使用以下命令创建了一个由 3 个数据模式为 Single 的设备组成的 btrfs 文件系统:
sudo mkfs.btrfs -f -d single /dev/sdb7 /dev/sdb8 /dev/sdb9
Run Code Online (Sandbox Code Playgroud)
然后我将 fs 安装到文件夹 nonRaid 并使用创建了一个 10G 文件
fallocate -l 10G nonRaid/example
Run Code Online (Sandbox Code Playgroud)
我理解使用 raid0 和 single 之间的区别是,在我的情况下,raid0 会将数据条带化到 3 个设备上,而使用 single 模式,数据不会被条带化,而是像 NTFS 一样作为整个块保存在磁盘上。我的理解正确吗?
如果是这样,如何解释当使用
btrfs filesystem usage nonRaid/
Run Code Online (Sandbox Code Playgroud)
它向我显示以下输出:
Overall:
Device size: 59.98GiB
Device allocated: 13.02GiB
Device unallocated: 46.96GiB
Device missing: 0.00B
Used: 10.05GiB
Free (estimated): 47.91GiB (min: 24.43GiB)
Data ratio: 1.00
Metadata ratio: 2.00
Global …Run Code Online (Sandbox Code Playgroud)