符号存储文件夹树

支持 SMB 和 HTTP 请求的符号服务器,是驻留在本地磁盘上的文件夹树。

为了简化管理,子文件夹名称(例如符号)也可用作文件共享名称和虚拟目录名称。 如果要添加新的符号存储区,则会在 D:\SymStore 下创建新的子文件夹,并将该名称的新文件共享和虚拟目录公开给客户端。

应仔细选择文件夹树的位置以及磁盘的文件系统。 在缓存来自(内部)生成服务器和 Internet 的文件时,符号存储可能会变得非常大(TB)。 文件夹树应驻留在能够进行大量读取和少量写入的磁盘上。 文件系统可能会影响性能 - ReFS 的性能可能优于 NTFS,应该针对大型部署进行调查。 同样,服务器的网络速度应足够快,以处理来自客户端的负载,并应付从上游符号库检索符号以进行缓存填充时的负载。

符号存储 Single-Tier 或 Two-Tier 结构

通常,文件放置在单个层目录结构中,其中缓存的每个文件名存在一个子目录。 在每个文件名文件夹下,将创建其他文件夹来存储文件的每个版本。 树将具有以下结构:

D:\SymStore\Symbols\ntdll.dll\...\
D:\SymStore\Symbols\ntdll.pdb\...\
D:\SymStore\Symbols\kernel32.dll\...\
D:\SymStore\Symbols\kernel32.pdb\...\

如果要存储大量文件,可以在符号存储的根目录中使用两层结构。 文件名的前 2 个字母用作中间文件夹名称。

若要使用两层结构,请将名为 index2.txt 的文件放置在 D:\SymStore\Symbols 的根目录中。 文件的内容并不重要。 当此文件存在时,symsrv.dll 将使用此结构从两层树创建和使用文件:

D:\SymStore\Symbols\nt\ntdll.dll\...\
D:\SymStore\Symbols\nt\ntdll.pdb\...\
D:\SymStore\Symbols\ke\kernel32.dll\...\
D:\SymStore\Symbols\ke\kernel32.pdb\...\

如果要在填充符号存储后转换结构,请使用调试器文件夹中 convertstore.exe 应用程序。 若要允许该工具正常工作,请在根文件夹中创建名为 000Admin 的文件夹。 convertstore.exe 需要此文件夹,以便它可以控制符号存储的锁定。

另请参阅

HTTP 符号存储

文件共享 (SMB) 调试器符号服务器