系统相关
首页 > 系统相关> > linux – ZVOL上的ZFS / ext4的可靠性,在低内存系统上不用于性能而是用于透明压缩?

linux – ZVOL上的ZFS / ext4的可靠性,在低内存系统上不用于性能而是用于透明压缩?

作者:互联网

我在互联网上的低内存系统上阅读了很多关于ZFS的争议性陈述,但大部分用例都是针对高性能数据存储.

我想使用ZFS不是出于性能原因,而是因为它支持透明压缩和重复数据删除(后者可能是可选的),并且似乎仍然比BTRFS更成熟.我不想使用任何RAID配置.

我想在便携式计算机上使用它,用于root和home文件系统,存储空间和数据安全性(断电后的可恢复性或其他随机不一致性,由于低RAM导致的极低的损坏风险等)比磁盘性能.我想要与ext2 / 3/4相同的安全性.

我想在ZVOL上使用ext4 ontop.

所以,问题是:

>如果不考虑IO性能/缓存,并且不需要RAID功能,ZFS可以配置为使用“低RAM”可靠地工作吗?
>如果我不将ZFS用作文件系统本身,那么RAM需要如何改变,而只是使用ZVOLs,我把另一个文件系统放在上面?
>如何在启用重复数据删除的情况下更改RAM?如果打开重复数据删除并且RAM开始变低,它是否仍然安全 – ZFS可以暂停重复数据删除并使用更少的RAM吗?
>是否可以停用自动重复数据删除,但是可以手动运行它?
>即使在低RAM情况下,ZVOL的ext4 ontop可以可靠地存储我的数据,如果发生不一致,修复的成功机会很高(与ext2 / 3/4一样)? ZVOL的ext4 ontop是否会增加rubustness,因为它增加了ext4的鲁棒性,或者数据是否与底层ZVOL一样强大?

系统规格:

> Linux
> 8 GiB RAM(与显卡共享),但大多数(至少7 GiB)应该可用于用户空间软件,
>用于ZFS的大约700 GiB SSD存储,
>也许在用于ZFS的另一个系统128 GiB的eMMC上.
>当前磁盘使用情况(/中更大目录的du -sh)(/是ext4,/ on mount ontop是reiserfs)(想要将其移动到具有透明压缩的存储):

74M     /etc
342G    /home
5.0G    /opt
1.5G    /root
261M    /tmp
35G     /usr
30G     /var

或者,只是使用BTRFS(已经读过严重/难以恢复数据丢失可能由于“错误”而发生,但这是有争议的……)?

解决方法:

简短回答:

>是的,它可以成功地使用低RAM(~1 GB)和ZFS.
>您不应该使用重复数据删除,但RAID和压缩通常都可以.
>启用重复后,它适用于所有新写入的数据,您无法轻易摆脱它.
>您无法启用重复数据删除活动,因为它仅适用于在线数据.
>没有充分理由,你的想法是不必要的复杂,所以我建议只使用ZFS并称之为一天.

答案很长:

Can ZFS be configured to work reliably with “low RAM” if IO performance/ caching is not of concern, and no RAID funtionality is wanted?

是的,即使启用了RAID功能也是如此.你需要的东西比人们在网上声称的要少得多,比如看看这个用FreeBSD运行快速文件服务器,2核和768 MB虚拟化的人.或者查看SolarisInternals Guide(目前仅通过archive.org提供),其中512 MB被提及为最低限度,1 GB作为最低建议,2 GB作为完整推荐.

不过,我会远离重复数据删除.不是因为它因分页内存而变慢,而是因为如果系统停止运行,你就不能回到非重复数据删除.此外,它是RAM和磁盘之间的交易,在预算系统上你没有,所以你将获得不多.

How does the RAM needed change if I do not use ZFS as a filesystem itself, but just use ZVOLs where I put another filesystem ontop?

您需要额外的内存用于第二个文件系统和ZFS以上的层,具体取决于您计划访问它的方式(虚拟化如KVM,FUSE,iSCSI等)

How does RAM needed change with deduplication turned on? If deduplication is turned on and RAM starts to get low, is it still safe — can ZFS just suspend deduplication and use less RAM?

您无法暂停重复数据删除,但您的数据仍然是安全的.会有很多内存交换和等待,所以它可能不是很有用.重复数据删除是在线的,因此要禁用它,您需要关闭重复数据删除并再次写入所有数据(这实质上是将所有数据复制到新文件系统并销毁旧文件系统).

Is it possible to deactivate automatic deduplication, but run it from time to time manually?

不,因为它不会影响静止的数据.如果您有重复数据删除并且想要写一个块,ZFS会查看它是否存在于重复数据删除表中.如果是,则丢弃写入并将引用添加到重复数据删除表中.如果不是,则写入并添加第一个引用.这意味着您的旧数据不会受到重复数据删除的影响,并且在不编写任何新块的情况下将其打开也不会影响旧数据的使用大小.

Can ext4 ontop of a ZVOL reliably store my data even on low RAM situations, and if inconsistencies happen, success chances for repairs are high (as it is with ext2/3/4)? Does ext4 ontop of a ZVOL increase rubustness because it adds ext4’s robustness, or is data as robust as the underlying ZVOL is?

在我看来,这是不必要的复杂性,因为你不会得到任何新功能(例如在下面的ext4和ZFS在顶部的相反情况,例如快照),并且还获得一些新的职责,如fsck和更多的fdisk格式化练习.

我会做这样的事情的唯一用例是,如果有一个特殊的应用程序需要特定的文件系统的低级功能或具有硬编码的假设(幸运的是,这种行为似乎已经在最近的时候死亡).

标签:linux,filesystems,ram,zfs,laptop
来源: https://codeday.me/bug/20190810/1641258.html