我在各种 Linux 服务器上将 XFS 文件系统作为数据/增长分区运行了近 10 年。
我注意到最近运行 6.2+ 版本的 CentOS/RHEL 服务器有一个奇怪的现象。
从 EL6.0 和 EL6.1 迁移到较新的操作系统版本后,稳定的文件系统使用变得高度可变。最初安装 EL6.2+ 的系统表现出相同的行为;显示 XFS 分区上磁盘利用率的剧烈波动(请参见下图中的蓝线)。
我开始检查文件系统中是否有大文件和失控进程(可能是日志文件?)。我发现我最大的文件报告的值与du和不同ls。du使用和不使用--apparent-size开关运行说明了差异。
# du -skh SOD0005.TXT
29G SOD0005.TXT
# du -skh --apparent-size SOD0005.TXT
21G SOD0005.TXT
Run Code Online (Sandbox Code Playgroud)
在整个文件系统中使用ncdu 实用程序进行快速检查,结果如下:
Total disk usage: 436.8GiB Apparent size: 365.2GiB Items: 863258
Run Code Online (Sandbox Code Playgroud)
文件系统充满了稀疏文件,与之前版本的操作系统/内核相比,损失了近 70GB 的空间!
我仔细阅读了Red Hat Bugzilla并更改了日志,以查看是否有任何关于 XFS 的相同行为或新公告的报告。
纳达。
我在升级过程中从内核版本 …
我还是 ZFS 的新手。我一直在使用 Nexenta,但我正在考虑切换到 OpenIndiana 或 Solaris 11 Express。现在,我正在考虑将 ZFS 服务器虚拟化为 ESXi、Hyper-V 或 XenServer 中的客户机(我还没有决定哪一个 - 我倾向于使用 ESXi 来支持 VMDirectPath 和 FreeBSD)。
主要原因是我似乎有足够的资源可以轻松地同时运行 1-3 个其他 VM。主要是 Windows 服务器。也可能是 Linux/BSD VM。我希望虚拟化 ZFS 服务器托管其他 VM 的所有数据,以便它们的数据可以保存在与 ZFS 磁盘分离的物理磁盘上(以 iscsi 或 nfs 安装)。
该服务器目前有一个 AMD Phenom II,总共有 6 个内核(2 个未锁定)、16GB RAM(最大)和一个 LSI SAS 1068E HBA,连接了 (7) 个 1TB SATA II 磁盘(计划在带热备件的 RAIDZ2 上)。我还有 (4) 个 32GB SATA II SSD 连接到主板。我希望将两个 SSD 镜像到引导镜像(用于虚拟主机),并将另外两个 SSD 留给 ZIL 和 L2ARC(用于 ZFS VM 来宾)。我愿意再添加两个磁盘来存储 VM 来宾并将所有七个当前磁盘分配为 ZFS …
我们想使用 XFS 来格式化服务器中的一些分区。高性能当然是我们的目标,但我们更喜欢稳定性。例如,如果发生断电,我们希望快速恢复 FS。在这种情况下,如果分区损坏并且不能再使用,这是不可接受的。我们可以更改 mkfs.xfs 的选项以提高稳定性吗?
有些人建议这样做:
mkfs.xfs –b size=4096 –s size=4096 /dev/sdx -f
Run Code Online (Sandbox Code Playgroud)
我的问题是:
块 4096 字节是否对性能来说太小了?如果我改进它,是否会影响稳定性?
扇区大小应该由低级块设备驱动程序考虑,为什么 XFS 也有“扇区大小”?如果系统是具有传统 512 字节扇区支持的 Linux,将其设置为 4096 字节有什么问题吗?