Configuration Manager 中的内容库

适用于: Configuration Manager(current branch)

内容库是Configuration Manager中内容的单实例存储。 网站使用它来减少分发的内容组合体的整体大小。 内容库存储软件部署的所有内容文件,例如软件更新、应用程序和 OS 部署。

  • 站点在每个站点服务器和每个分发点上自动创建和维护内容库的副本。

  • 在Configuration Manager将内容文件添加到站点服务器或将文件复制到分发点之前,它会验证每个内容文件是否已在内容库中。

  • 如果内容文件可用,Configuration Manager不会复制该文件。 它将现有内容文件与应用程序或包相关联。

在分发点服务器上,配置以下选项:

  • 要在其中创建内容库的一个或多个磁盘驱动器。

  • 你使用的每个驱动器的优先级。

Configuration Manager将具有最高优先级的内容文件复制到驱动器,直到该驱动器包含的可用空间少于指定的最小可用空间量。

  • 在分发点安装期间配置驱动器设置。

  • 安装完成后,无法在分发点属性中配置驱动器设置。

有关如何为分发点配置驱动器设置的详细信息,请参阅 管理内容和内容基础结构

注意

若要在安装后将内容库移动到分发点上的其他位置,请使用Configuration Manager工具中的内容库传输工具。 有关详细信息,请参阅 内容库传输工具

关于 CAS 上的内容库

默认情况下,Configuration Manager在安装站点时 (CAS) 在管理中心站点上创建内容库。 内容库放置在可用磁盘空间最多的站点服务器的驱动器上。 由于无法在 CAS 上安装分发点,因此无法确定供内容库使用的驱动器的优先级。 与其他站点服务器和分发点上的内容库类似,当包含内容库的驱动器耗尽可用磁盘空间时,内容库会自动跨越到下一个可用驱动器。

Configuration Manager在以下方案中使用 CAS 上的内容库:

  • 在 CAS 上创建内容。

  • 从另一个Configuration Manager网站迁移内容,并将 CAS 分配为管理该内容的网站。

注意

在主站点上创建内容,然后将其分发到其他主站点或不同主站点下的辅助站点时,CAS 会将该内容临时存储在其计划程序收件箱中。 它不会将该内容添加到其内容库中。

使用以下选项管理 CAS 上的内容库:

  • 若要阻止在特定驱动器上安装内容库,请创建名为 NO_SMS_ON_DRIVE.SMS 的空文件。 在创建内容库之前,将其复制到驱动器的根目录。

  • 创建内容库后,使用Configuration Manager工具中的内容库传输工具管理内容库的位置。 有关详细信息,请参阅 内容库传输工具

注意

已启用内容的云管理网关不使用单实例存储。 站点在发送到 Azure 之前加密包,并且每个包都有唯一的加密密钥。 即使两个文件相同,加密版本也不会相同。

在内容库中

警告

以下部分仅供参考。 请勿更改、添加或删除内容库中的任何文件或文件夹。 这样做可能会损坏包、内容或整个内容库。 如果怀疑数据缺失、损坏或无效,请使用Configuration Manager控制台中的验证功能来检测此类问题。 然后重新分发受影响的内容以更正问题。

默认情况下,内容库存储在驱动器的根目录中名为 SCCMContentLib 的文件夹中。 默认情况下,此文件夹共享为 SCCMContentLib$。 文件夹和共享具有受限权限,以防止意外损坏。 所有更改都应从 Configuration Manager 控制台进行。 此文件夹中有以下对象:

  • 包库 (PkgLib 文件夹) :有关分发点上存在的包的信息。

  • data Library (DataLib 文件夹) :有关包的原始结构的信息。

  • FileLib 文件夹 (文件库) :包中的原始文件。 此文件夹通常使用大部分存储。

Configuration Manager内容库的示意图概述。

提示

使用Configuration Manager工具中的内容库资源管理器工具浏览内容库的内容。 不能使用此工具修改内容。 它提供对现有内容以及验证和重新分发的见解。 有关详细信息,请参阅 内容库资源管理器

包库

包库文件夹 PkgLib 包含分发到分发点的每个包的一个文件。 文件名是包 ID,例如 ABC00001.INI。 此文件中的 节 [Packages] 下是作为包一部分的内容 ID 的列表,以及版本等其他信息。 例如, ABC00001 是版本 1 的旧包。 此文件中的内容 ID 为 ABC00001.1

数据库

数据库文件夹 DataLib 包含每个包中每个内容的一个文件和一个文件夹。 例如,此文件和文件夹分别命名 ABC00001.1.INI 为 和 ABC00001.1。 该文件包含用于验证的信息。 文件夹从原始包重新创建文件夹结构。

将数据文件中的文件替换为 INI 文件,并替换为包中原始文件的名称。 例如,MyFile.exe.INI。 这些文件包括有关原始文件的信息,例如大小、修改时间和哈希。 使用哈希的前四个字符在文件库中查找原始文件。 例如,MyFile.exe.INI中的哈希为 DEF98765,前四个字符为 DEF9

文件库

如果内容库跨多个驱动器,则包文件可能位于文件库文件夹 FileLib 中,位于其中任何驱动器上。

使用在数据库中找到的哈希的前四个字符查找特定文件。 文件库文件夹中有许多文件夹,每个文件夹都有四个字符的名称。 查找与哈希中的前四个字符匹配的文件夹。 找到此文件夹后,它包含一个或多个三个文件集。 这些文件具有相同的名称,但一个文件具有 INI 扩展名,一个具有 SIG 扩展名,一个没有文件扩展名。 原始文件是没有扩展名的文件,其名称等于来自数据库的哈希。

例如,文件夹 DEF9 包括 DEF98765.INIDEF98765.SIGDEF98765DEF98765 是原始 MyFile.exe。 INI 文件包含共享同一文件的“用户”或内容 ID 的列表。 除非同时删除所有这些内容,否则网站不会删除文件。

驱动器跨越

内容库可以跨多个驱动器。 创建分发点时,可以选择这些驱动器。 默认情况下,Configuration Manager在跨内容库时自动选择驱动器。

选择驱动器时,请选择主驱动器和辅助驱动器。 站点将所有元数据存储在主驱动器上。 它仅将文件库跨到辅助驱动器。 辅助驱动器的文件夹共享名称包括驱动器号。 例如,如果 D: 和 E: 是内容库的辅助驱动器,则共享名称为 SCCMContentLibD$SCCMContentLibE$

如果选择了“自动”选项,Configuration Manager选择可用空间最多的驱动器作为其主驱动器。 它将所有元数据存储在此驱动器上。 站点仅将文件库跨到辅助驱动器。

在配置期间指定保留空间量。 Configuration Manager尝试使用辅助磁盘时,最佳可用磁盘只有此保留空间量。 每次选择使用新驱动器时,都会选择可用空间最多的驱动器。

不能指定分发点应使用除特定集之外的所有驱动器。 通过在驱动器的根目录中创建一个名为 的空文件来 NO_SMS_ON_DRIVE.SMS防止此行为。 将此文件放在Configuration Manager选择要使用的驱动器之前。 如果Configuration Manager在驱动器的根目录上检测到此文件,则不会将驱动器用于内容库。

疑难解答

以下提示可能有助于排查内容库的问题:

  • 查看站点服务器上的日志 (distmgr.logPkgXferMgr.log) 和分发点 (smsdpprov.log) ,了解指向故障的任何指针。

  • 使用 内容库资源管理器 工具。

  • 检查其他进程(如防病毒软件)的文件锁定。 从自动防病毒扫描以及每个驱动器上的临时暂存目录 SMS_DP$中排除所有驱动器上的内容库。

  • 若要查看是否存在任何哈希不匹配,请从 Configuration Manager 控制台验证包。

  • 最后一个选项是重新分发内容。 此操作应解决大多数问题。

有关更深入的信息,请参阅 了解和排查内容分发问题

后续步骤

为站点服务器配置远程内容库

流程图 - 管理内容库