16.4. 使用静态 deltas 执行更新
您可以使用静态 deltas 来提高 client 存储库更新的速度。如果用于更新的静态 deltas 存在,则会使用它们。如果不存在,则更新仍然会发生,但速度较慢。
在构建 OSTree 系统后,如果要从客户端系统检索内容,您需要创建一个存储库管理。
默认情况下,您用于 生产环境 的存储库需要每个客户端请求一个 HTTP fetch 事务。如果每周只执行一次发布,请使用 "static deltas" 来更快地获得客户端存储库更新。
先决条件
-
您有一个使用 Podman 运行的 RHEL
repo。 - 您已创建了一个集中 OSTree 镜像,来用作生产存储库。
步骤
将
repo存储库中的内容更新拉取到repo-prod存储库:# ostree --repo=/usr/share/nginx/html/repo pull-local repo-prod注意如果没有指定
refs分支,ostree-pull-local命令会检索所有分支。作为ostree-pull-local命令的替代品,您也可以使用ostree-pull命令。不同之处在于ostree-pull-local仅针对同一系统上存储库之间的副本进行了优化,而ostree-pull可以从远程存储库下载数据。针对之前的提交应用 delta 更新。静态生成发生在本地存储库上,本例中为
prod。生成 delta 更新后,更新将离线完成。注意您必须在要生成静态 deltas 的存储库中有至少两个提交。
# ostree --repo=/usr/share/nginx/html/client-server static-delta generate exampleos/x86_64/standard可选:如果要从之前的两个提交升级,请运行以下命令:
# ostree --repo=repo-prod static-delta generate --from=exampleos/x86_64/standard^^ --to=exampleos/x86_64/standard重要对于您的系统来说,在所有之前的版本中生成完整的 deltas 排列可能是一个繁重的工作负载。OSTree 核对引用父级的静态 deltas 有一些支持。
更新摘要文件:
# ostree --repo=repo-prod summary -u您需要更新摘要文件,即使您选择生成静态 deltas。summary 命令无法同时运行。它必须由其他作业顺序触发。也就是说,您必须在生成 static-deltas 后生成一个摘要文件,因为上一命令添加了一个新的静态 delta。
使用生成的静态 delta 应用到现有的操作系统,并执行更新:
# ostree --repo=/ostree/repo-prod static-delta <delta-update-file-path>应用 OSTree delta 更新:
$ sudo rpm-ostree upgrade重启到新镜像以应用更新:
$ systemctl reboot