ZFS 是跨数据集还是仅在单个数据集内进行重复数据删除?换句话说,如果我有两个几乎相同的卷,它们会被重复数据删除吗?
我正在阅读rmlint手册,其中一个重复的处理程序是 clone 和 reflink:
·克隆:仅限btrfs。尝试使用 BTRFS_IOC_FILE_EXTENT_SAME ioctl(3p) 克隆这两个文件。这将物理删除重复的范围。至少需要内核 4.2。
· reflink:尝试将重复文件重新链接到原始文件。另请参阅 man 1 cp 中的 --reflink。如果文件系统不支持,则失败。
这个克隆到底做了什么,它与引用链接有什么不同?BTRFS_IOC_FILE_EXTENT_SAME ioctl 有什么作用?
我目前在小型个人 Linux 服务器上设置了 4TB RAID 1,该服务器在 LVM 中格式化为 XFS。我对启用reflinkXFS的功能很感兴趣,但是当我第一次创建文件系统时我没有这样做(我使用了默认值)。
有没有一种方法可以打开该reflink功能,而无需备份和重新创建文件系统?如果没有,我是否可以期望在未来实现该功能?
该文件的大小为 962,120,335 字节。
HP-UX ******B.11.31 U ia64 ***** 无限制用户许可证
hostname> what /usr/bin/awk
/usr/bin/awk:
main.c $Date: 2009/02/17 15:25:17 $Revision: r11.31/1 PATCH_11.31 (PHCO_36132)
run.c $Date: 2009/02/17 15:25:20 $Revision: r11.31/1 PATCH_11.31 (PHCO_36132)
$Revision: @(#) awk R11.31_BL2010_0503_1 PATCH_11.31 PHCO_40052
hostname> what /usr/bin/sed
/usr/bin/sed:
sed0.c $Date: 2008/04/23 11:11:11 $Revision: r11.31/1 PATCH_11.31 (PHCO_38263)
$Revision: @(#) sed R11.31_BL2008_1022_2 PATCH_11.31 PHCO_38263
hostname>perl -v
This is perl, v5.8.8 built for IA64.ARCHREV_0-thread-multi
hostname:> $ file /usr/bin/perl
/usr/bin/perl: ELF-32 executable object file - IA64
hostname:> $ file /usr/bin/awk
/usr/bin/awk: ELF-32 executable …Run Code Online (Sandbox Code Playgroud) 我怎样才能tar(或Linux上常见的任何其他程序,例如pax)在存档创建过程中即时硬链接重复内容?
也就是说,我想避免预先进行硬链接,而是想tar处理它。
那可能吗?如何?
很简单,当在磁盘上制作 tar 文件时,这些范围是否可以与 tar 内部和/或外部的范围进行重复数据删除?我在理论上问,所以如果数据的范围在 tar 内是相同的(没有移位,或在范围内分裂以进行压缩)那么理论上,范围将与 tar 外的范围相等,因此可以重复数据删除.
例如,如果我要对目录进行 tar 处理,然后使用块级重复数据删除,那么 tar 的有效大小会是附加标头、元数据和存档结束标记的大小。
显然我在谈论未压缩的 tar,特别是 GNU tar。我已经查看了GNU tar 标准,它似乎确实保留了我所阅读的原始块数据,但也许我误解了我所阅读的内容。
我在 BTRFS 卷中有一些长期数据。我一直在使用btrfs-dedupe重复数据删除技术,并且能够在文件系统压缩和重复数据删除之间节省大量磁盘空间。
为了满足我的组织的冗余要求,我需要将此数据存储在多个位置。到目前为止,rsync它有助于将存储的数据复制到其他介质。
考虑到我的数据集的大小(几 TB,所以它不是大得离谱,但仍然足够大,重复数据删除需要几天时间),重复数据删除需要很长时间。我想,如果我只是rsync在媒体之间进行文件删除,我将丢失所有已完成的重复数据删除,因为我正在离线执行重复数据删除。
有没有办法让我将此文件系统备份到另一个设备而无需重做重复数据删除?
我在 Linux 系统上有一个.tsv(制表符分隔的列)文件,其中包含以下列,其中包含以逗号分隔的不同类型的值(字符串、数字):
col1 col2
. NS,NS,NS,true,true
. 12,12,12,13
1,1,1,2 door,door,1,1
Run Code Online (Sandbox Code Playgroud)
我想保留独特的价值观(不幸的是我尝试过但不能)。这将是输出:
col1 col2
. NS,true
. 12,13
1,2 door,1
Run Code Online (Sandbox Code Playgroud) cp --reflink=auto 显示以下 MacOS 输出:
cp: 非法选项 -- --
HFS 是否支持写时复制或重复数据删除?如何使用 HFS COW 大文件?
如果文件中不存在这些行,如何将多行追加到文件中?
例如,要添加多个全局别名,/etc/bash.bashrc我使用heredocument:
cat <<-"BASHRC" >> /etc/bash.bashrc
alias rss="/etc/init.d/php*-fpm restart && systemctl restart nginx.service"
alias brc="nano /etc/bash.bashrc"
BASHRC
Run Code Online (Sandbox Code Playgroud)
我被批评说这个操作不包括检查行是否已经存在的方法,如果错误地重新执行这里文档,我可能会导致冗余和冲突。
deduplication ×10
btrfs ×3
reflink ×2
tar ×2
file-copy ×1
filesystems ×1
hfs+ ×1
ioctl ×1
large-files ×1
linux ×1
rmlint ×1
shell-script ×1
xfs ×1
zfs ×1