ZFS、L2ARC和ARC缓存
ZFS、L2ARC和ARC缓存
ZFS是一个由Sun Microsystems最初开发的高级文件系统和卷管理器。它以其数据完整性功能、快照和复杂的缓存而闻名。与NTFS或ext4等传统文件系统不同,ZFS将文件系统和卷管理器合二为一,从而对数据的存储和缓存方式有更多的控制。
ARC代表自适应替换缓存,是ZFS的主要读取缓存。ARC位于系统RAM中,存储频繁访问的数据。自适应部分意味着ARC会自动调整以适应您的工作负载,学习哪些数据被最频繁地访问并将其保留在内存中。更多的RAM意味着更大的ARC,这意味着频繁访问的文件的性能更好。
L2ARC(二级ARC)通过使用快速SSD作为二级缓存来扩展ARC。当数据由于最近未被访问而从ARC中逐出时,可以将其存储在L2ARC驱动器上,而不是完全丢弃。如果再次需要这些数据,可以从快速SSD而不是较慢的主存储池中读取。L2ARC不如RAM快,但比从硬盘池读取要快得多。
ZFS也有一个称为ZIL(ZFS意图日志)的写入缓存。ZIL确保同步写入(如数据库事务)在断电时不会丢失。您可以通过使用称为SLOG设备的单独快速SSD来加速ZIL。SLOG不存储实际数据,只存储意图日志,因此不需要很大,但需要非常快速且具有断电保护。
设置ZFS缓存需要仔细规划。ARC使用系统RAM,如果允许,ZFS会愉快地使用所有可用RAM,这可能会使其他应用程序饥饿。您可以设置最大ARC大小来防止这种情况。L2ARC也会使用一些RAM作为其索引,大约每100GB L2ARC需要1GB RAM。对于家庭NAS,一个合理的设置是16GB RAM用于ARC,256GB SSD用于L2ARC。
