一个多月前,我开始遇到 C 盘可用空间的问题,因为它的可用空间突然开始每天减少。
TreeSize 或 Dirstat 等外部工具无法显示什么正在“占用”空间。
最后,事实证明,由于某种原因,NTFS/MFT 分配了巨大的空间,并且只有在服务器重启后(到 0 但增长很快)或在某人通过 RDP 会话登录到服务器后几分钟内才会释放它(这将减少保留空间显着)。
保留空间可通过 cmd 行和属性“总保留群集”查看。有人登录时的总保留大小约为 44gb,但如果我注销并等待几个小时,保留占用的空间将再增加几 GB。
我通过运行 chkdsk 检查了 c: 卷,但一切正常。驱动器上没有配额设置,也没有设置卷影副本。
在另一个 Win2022 服务器上,这个 NTFS 仅占用大约 1Gb,那么问题出在哪里?
你能给出建议吗?
此问题涉及:Windows Server 2022 Standard + Exchange 2019(本地)。
PS C:\Windows\system32> fsutil fsinfo ntfsinfo c:
NTFS Volume Serial Number : 0x0edc1ca0dc1c83dd
NTFS Version : 3.1
LFS Version : 2.0
Total Sectors : 429,705,215 (204.9 GB)
Total Clusters : 53,713,151 (204.9 GB)
Free Clusters : 27,462,030 (104.8 GB)
Total Reserved Clusters : 11,536,195 ( 44.0 GB)
Reserved For Storage Reserve : 0 ( 0.0 KB)
Bytes Per Sector : 512
Bytes Per Physical Sector : 512
Bytes Per Cluster : 4096 (4 KB)
Bytes Per FileRecord Segment : 1024
Clusters Per FileRecord Segment : 0
Mft Valid Data Length : 552.75 MB
Mft Start Lcn : 0x00000000000c0000
Mft2 Start Lcn : 0x0000000000000002
Mft Zone Start : 0x0000000002d20240
Mft Zone End : 0x0000000002d25180
MFT Zone Size : 79.25 MB
Max Device Trim Extent Count : 64
Max Device Trim Byte Count : 0x2000000
Max Volume Trim Extent Count : 62
Max Volume Trim Byte Count : 0x2000000
Resource Manager Identifier : 393C6EFA-7A42-11ED-BF42-AD3018B76F78
答案1
首先,我认为你是在制造一个问题,因为你所谓的自由空间问题与 MFT 保留空间无关。
运行 chkdsk,它会告诉你分配单元的大小和可用的分配块数量。这就是文件系统认为已用空间与可用空间的大小。
其次,MFT 保留或 MFT 区域实际上不占用任何磁盘空间。它是系统将尝试维护的区域,以便在需要时扩展 MFT。这纯粹是一种缓解 MFT 碎片的措施。
但是,如果由于您填满了 NTFS 卷而需要保留空间,则它将用于存储“普通”文件。MFT 保留空间 =/= 实际 MFT 的大小。
如果由于某种原因,文件被保存到保留区域,系统将简单地寻找另一个连续的可用空间块并将其保留以供将来的 MFT 增长。
第三,您可以设置用于MFT保留区域的空间量。
Run Registry Editor (Regedt32.exe), and go to the following subkey:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem
From the Edit menu, click Add Value.
Type the following information in the dialog box:
Value Name: NtfsMftZoneReservation
Data Type: REG_DWORD
Data: (valid range is 1-4)
Quit Registry Editor and restart your computer.
Setting 1, the default, reserves approximately 12.5 percent of the volume.
Setting 2 reserves approximately 25 percent.
Setting 3 reserves approximately 37.5 percent.
Setting 4 reserves approximately 50 percent.
答案2
您的“总保留集群”为 44 GB。
似乎某个程序创建了大量文件并导致 MFT 膨胀。这些文件可能是临时文件并且从未关闭,因此在程序终止后它们被丢弃,MFT 中没有留下任何痕迹。删除文件条目时 MFT 永远不会缩小。
除了格式化分区外,我不知道还有什么方法可以减少 MFT。
答案3
所以,我想我或多或少知道发生了什么,因为我最终设法将保留空间减少到只有 5.5 GB。我通过关闭几个文件夹的压缩来实现这一点。正如我提到的,服务器安装了 Exchange 角色,因此 c:\ 驱动器上存储了大量日志。我通过 powershell 脚本自动删除了一些日志,但仍然有很多日志启用了压缩。一旦我禁用压缩,占用的空间就会显著减少。
PS C:\Windows\system32> fsutil fsinfo ntfsinfo c:
NTFS Volume Serial Number : 0x0edc1ca0dc1c83dd
NTFS Version : 3.1
LFS Version : 2.0
Total Sectors : 429,705,215 (204.9 GB)
Total Clusters : 53,713,151 (204.9 GB)
Free Clusters : 28,127,049 (107.3 GB)
**Total Reserved Clusters : 1,449,010 ( 5.5 GB)**
Reserved For Storage Reserve : 0 ( 0.0 KB)
Bytes Per Sector : 512
Bytes Per Physical Sector : 512
Bytes Per Cluster : 4096 (4 KB)
Bytes Per FileRecord Segment : 1024
Clusters Per FileRecord Segment : 0
Mft Valid Data Length : 552.75 MB