Google chromeos支持7z、ISO和tar文件格式

IT之家 6 月 21 日消息,谷歌 ChromeOS 在管理文件方面进行了改进,新增了对 7z、iso 和 tar 等格式的支持。

从 5 月的 ChromeOS 101 更新开始,ChromeOS 新增了对 7z 格式的支持,7z 格式是一种源自 7-Zip 的文件压缩格式,目前尚不支持加密 7z 文件。

其次,ChromeOS 可以正确挂载 ISO 文件了,例如 CD、DVD 或蓝光光盘,该格式也被用于存档和操作系统。从 9To5Google 测试的截图可以看到,ChromeOS 挂载了一个 Ubuntu 22.04 arm64 桌面版镜像。不过,某些 ISO 文件不受支持,特别是 UDF 格式的文件。

最后,对于 Linux 爱好者来说,ChromeOS 还启用了对 tar 文件的支持。tar 是“tape archive”的缩写,这是一种可以追溯到 1979 年的格式,目前 tar 文件仍然用于 Linux 的软件。不过,tar 文件一般会被进一步压缩为“.tar.gz”或“.tar.xz”文件,ChromeOS 还不支持这两种格式。

IT之家了解到,谷歌公布了 ChromeOS 下一批新增支持的格式,将在 8 月的 ChromeOS 104 推出:

  • tar.gz

  • tgz

  • gz

  • tar.bz2

  • tar.bz

  • tbz2

  • tbz

  • tb2

  • tz2

  • bz2

  • bz

  • tar.xz

  • txz

  • xz

  • tar.lz

  • tlz

  • lz

  • tar.lzma

  • tlzma

  • lzma

  • tar.zst

  • tzst

  • zst

  • tar.Z

  • taZ

  • tZ, Z

Google cloud发布容器基础图像托管服务,使操作和维护更加容易,并支持多种操作系统

容器应用逐渐普及,已经从开发者喜欢的工具,进入企业内部基础架构。不过镜像更新工作,对于运维人员依旧是不简单的工作。

近日,谷歌公有云平台GCP,发布了基础镜像更新托管服务(managed base images),从最初构建应用程序开始就可以使用。目前此服务所支持的Linux发行版,分别有CentOS 7、Debian 9,以及Ubuntu 16.04,使用者可以直接从GCP市场下载。

这一次推出的新服务,Google会提供用户多种操作系统基础镜像文件,后续更新工作也由谷歌进行。开发者除了能时时保持镜像在最新版本,由谷歌负责镜像审核,运维人员也不须从未知来源下载镜像,能提升容器基础架构的安全。

谷歌表示,即便导入基础镜像更新托管服务,容器镜像文件经过扫描后,仍可能发现镜像存在的漏洞。出现这种状况主要有三大原因。第一,扫描出的漏洞可能被归类为低风险漏洞,而项目维护人多半优先处理高风险漏洞,导致当前版本未有可用更新。第二,则可能是项目刚爆出漏洞事件,还未进行可用镜像更新。第三,则可能为开源项目新推出的功能,可能对系统安全带来风险,但项目维护人并不视其为漏洞。

由于容器的生命周期极短,不停进行重新构建、部署,为了确保使用者容器镜像安全,谷歌建议企业用户建立高度一致的CI/CD流程,确保基础架构环境内的容器镜像,有经过审核、认证程序。谷歌表示,实施方法总共有四大方向。第一,导入集中化管理的CI/CD,除了减少使用容器存储库数量,而正式环境的软件上线工作,必须通过中央发送管道进行。第二,则是选用安全存储库作为镜像来源,从开发源头就做好安全工作。

第三,建立镜像文件扫描、分析的使用习惯,可使用第三方或公有云厂商原生服务执行。第四,当镜像要进入正式环境前,运维人员得确保只有经认证的镜像,才能部署至正式环境。

谷歌表示,未考虑使用此托管服务的开发者,也可尝试其他开源方案,如谷歌的开源容器工具Distroless images。此镜像内仅打包用户的应用程序、Runtime相关性,删除标准Linux发行版内的套件管理工具、Shells,缩小镜像的攻击范围。

谷歌发布了首个“季度平台发布版”Android测试版

本周,Google 放出了与 Android 12.1 和三月安全更新有关的更多细节,而 Pixel 用户也在第一时间观察到了相关变化。需要指出的是,尽管 Google 完成了针对 Android 12L 的 Beta 测试周期,但相关工作并未就此结束。周三的时候,该公司竟然出乎意料地推出了新的 Beta 测试版本。

在 Android 开发者网站上,Google 在一个专题页面上详细介绍了 Android 12“Quarterly Platform Release”的测试版本。

首个版本的编号为“Android 12 QPR3 Beta 1”,允许测试者抢先体验计划于 6 月推出的功能、甚至赶在了 3 月份的最新功能发布之前。

机型方面,QPR3 Beta 1 版本适用于 Pixel 4 / 4 XL、Pixel 4a 5G、Pixel 5 / 5a、以及 Pixel 6 / 6 Pro 。

如果你拥有上述 Pixel 设备,并且已经注册了 Android Beta 计划,便可在符合条件的情况下接收到 OTA 更新推送通知。

目前 Google 已经放出了 10 个此前从未在 Beta 测试中放出的功能(Feature Drops)。

鉴于 2022 年 6 月是 Beta 版的首个 Feature Drop,推测下一次会在 9 月发布不久后便立即开展测试。

S3B1.220218.004(Release Notes)

最后,除了 Android Beta Program,谷歌也有放出工厂 / OTA 镜像,以供有需要的人们刷写 / 侧载:

● Pixel 6 Pro:Android 12 QPR3 — S3B1.220218.004 — Factory Image—OTA

● Pixel 6:Android 12 QPR3 — S3B1.220218.004 — Factory Image—OTA

● Pixel 5a:Android 12 QPR3— S3B1.220218.004 — Factory Image—OTA

● Pixel 5:Android 12 QPR3 — S3B1.220218.004 — Factory Image—OTA

● Pixel 4a 5G:Android 12 QPR3 — S3B1.220218.004 — Factory Image—OTA

● Pixel 4a:Android 12 QPR3 — S3B1.220218.004 — Factory Image—OTA

● Pixel 4 XL:Android 12 QPR3 — S3B1.220218.004 — Factory Image—OTA

● Pixel 4:Android 12 QPR3 — S3B1.220218.004 — Factory Image—OTA

让生态系统与苹果相提并论:谷歌正在深度整合Android和Chrome操作系统

根据 Google 发布的 1 月概要显示,公司在 2022 年的计划是深度整合 Android 和 Chrome OS,让整个生态媲美苹果。其中一项功能就是允许 Chromebook 上投屏 Android 手机的信息应用。科技媒体 9to5Google 发现,Google 希望将手机应用投屏到 Chromebook 上,未来会向非 Chrome OS 设备开放。

据 9to5Google 称,该功能的工作原理如下:

你的 Pixel 会生成一个完全独立的虚拟显示屏,并将其投屏到你的笔记本电脑或台式机上,而不是简单地镜像你手机的纵向屏幕。这第二个显示屏就是你的信息应用出现的地方。这意味着你可以在笔记本电脑/桌面上打开一个应用程序,而不会干扰手机主屏幕上运行的任何应用程序。

而且,这不仅仅是信息传递–你显然能够打开你手机的任何应用程序:

在左下角,有一个菜单按钮,点击后会显示手机上安装的所有应用程序的列表。有了这个菜单,你可以启动手机上的任何应用,而不仅仅是信息应用。实际上,你的整个手机都可以通过Pixel的跨设备流访问。

9to5Google的文章有一些视频和截图,很好地展示了这个应用程序的能力。9to5Google还在Chrome OS上启用了跨设备流媒体,尽管该出版物似乎只能够让一个消息应用程序工作。

谷歌发布OTA和安卓12L的工厂形象

几天前,Google 为所有支持设备推出了 Android 12L 更新,但当时更新并未通过 OTA 或者工厂镜像方式提供。不过,今天 Google 放出了这些镜像的下载链接,感兴趣的用户可以点击本文下方的链接进行下载安装。

Android 12L 是为大屏幕手机、平板电脑和可折叠设备准备的,并在后台带来一些优化。就外观和完成度而言,除了一些针对大屏幕手机的微小视觉变化外,它与 Android 12 没有任何区别。不过,该更新实际上适用于所有受支持的 Google Pixel 手机,所以如果你确实拥有一部手机,并且想安装该更新,那么你可以尝试下。

Google Pixel 3a Download Link Download Link
Google Pixel 3a XL Download Link Download Link
Google Pixel 4 Download Link Download Link
Google Pixel 4 XL Download Link Download Link
Google Pixel 4a Download Link Download Link
Google Pixel 4a 5G Download Link Download Link
Google Pixel 5 Download Link Download Link
Google Pixel 5a Download Link Download Link

谷歌官方详细信息安卓13开发者预览更新

IT之家 2 月 11 日消息,谷歌今天发布了首个 Android 13 开发者预览版。谷歌表示,每天,全世界有数十亿人掏出他们的安卓设备来帮助他们完成工作。安卓对他们中的每一个人来说都是很棒的,这部分是通过与我们的开发者社区合作,分享反馈来帮助我们使安卓更强大。

今天,我们将与大家分享安卓的下一个版本,即安卓 13 开发者预览版 1。在安卓 13 中,我们将继续一些重要的主题:隐私和安全,以及开发者生产力。我们还将在安卓 12L 中的一些较新的更新的基础上,帮助你利用目前运行的 2.5 亿多的 Android 大屏幕设备。

下面是 Android 13 开发者预览版的亮点功能

以隐私和安全为核心

人们希望有一个可以信任的操作系统和应用程序来处理他们最个人和敏感的信息。隐私是安卓产品原则的核心,安卓 13 着重于通过在设备上提供更安全的环境和为用户提供更多的控制来为所有人建立一个负责任的高质量平台。在今天的发布中,我们推出了一个照片选取器,允许用户与应用程序安全地分享照片和视频,以及一个新的 Wi-Fi 权限,以进一步减少应用程序对位置权限的需求。我们建议尝试新的 API,并测试这些变化可能对你的应用程序产生的影响。

  • 照片选择器和 API – 为了帮助保护用户的照片和视频隐私,Android 13 增加了一个系统照片选择器–这是一个标准的、优化的方式,用户可以安全地分享本地和云端的照片。安卓系统长期以来的文档选择器允许用户与一个应用程序分享任何类型的特定文件,而该应用程序不需要获得查看设备上所有媒体文件的权限。照片选择器通过专门的照片和视频选择体验扩展了这种能力。应用程序可以使用照片选择器的 API 来访问共享的照片和视频,而不需要获得查看设备上所有媒体文件的权限。我们计划通过 Google Play 系统更新将照片选择器体验带给更多的安卓用户,作为运行安卓 11 及以上系统的设备(Go 设备除外)的 MediaProvider 模块更新的一部分。

  • 用于 Wi-Fi 的附近设备权限 – Android 13 为通过 Wi-Fi 管理设备与附近接入点连接的应用程序引入了 NEARBY_WIFI_DEVICES 运行时权限(NEARBY_DEVICES 权限组的一部分)。调用许多常用的 Wi-Fi API 的应用程序将需要新的权限,并使应用程序能够通过 Wi-Fi 发现和连接附近的设备,而不需要位置权限。以前,对于需要连接到附近的 Wi-Fi 设备但实际上不需要设备位置的应用来说,位置许可要求是一个挑战。以安卓 13 为目标的应用程序现在将能够用“neverForLocation”flag 标志来请求 NEARBY_WIFI_DEVICES 权限,这应该有助于促进隐私友好的应用程序设计,同时减少开发者的争执。

开发者生产力和工具

Android 13 还为开发者的生产力带来了新的功能和工具。帮助你创建在数十亿设备上运行的漂亮的应用程序是我们的核心任务之一 。无论是在 Android 13 中还是通过我们的现代 Android 开发工具,如你喜欢的 Kotlin 语言或 Jetpack 的有意见的 API。通过帮助你更有效地工作,我们的目标是降低你的开发成本,这样你就可以专注于继续构建令人惊叹的体验。以下是今天的版本中的一些新内容。

  • 快速设置放置 API – 通知栏中的快速设置是一种方便的方式,用户可以在不离开应用的情况下改变设置或采取快速操作。对于提供自定义磁贴的应用程序,我们将使用户更容易发现并将你的磁贴添加到快速设置中。使用一个新的磁贴放置 API,你的应用程序现在可以提示用户直接将自定义磁贴添加到活动的快速设置磁贴集。一个新的系统对话框让用户在一个步骤中添加磁贴,而不必离开你的应用程序,而不是去快速设置添加磁贴。

  • 主题应用图标 — 在安卓 13 中,我们将 Material You 动态颜色扩展到谷歌应用之外的所有应用图标,让用户选择继承其壁纸和其他主题偏好的图标。你的应用程序需要提供的只是一个单色的应用程序图标(例如,你的通知可绘制)和对自适应图标 XML 的调整。我们鼓励所有的开发者提供兼容的图标,以帮助为选择加入的用户提供一致的体验。主题应用图标最初在 Pixel 设备上得到支持,我们正与设备制造商伙伴合作,将其引入更多设备。

  • 每个应用程序的语言偏好 — 某些应用程序让用户选择与系统语言不同的语言,以满足多语言用户的需求。这样的应用程序现在可以调用一个新的平台 API 来设置或获取用户的首选语言,帮助减少模板代码,并在设置应用程序的运行时语言时提高兼容性。为了实现更广泛的兼容性,我们将在即将推出的 Jetpack 库中增加一个类似的 API。

  • 更快的连字符 — 连字符使包装好的文本更容易阅读,并有助于使你的 UI 更具适应性。在 Android 13 中,我们将连字符的性能优化了 200%,所以你现在可以在你的 TextViews 中启用它,而对渲染性能几乎没有影响。要启用更快的连字符,在 setHyphenationFrequency () 中使用新的 fullFast 或 normalFast 频率。

  • 可编程着色器 —Android 13 增加了对可编程 RuntimeShader 对象的支持,其行为使用 Android 图形着色语言(AGSL)定义。AGSL 与 GLSL 共享其大部分语法,但在 Android 渲染引擎中工作,以定制 Android 画布内的绘画,以及过滤视图内容。Android 内部使用这些着色器来实现波纹效果、模糊和拉伸过卷,而 Android 13 使你能够为应用程序创建类似的高级效果。

  • OpenJDK 11 更新 — 在 Android 13 中,我们已经开始了刷新 Android 核心库的工作,以与 OpenJDK 11 LTS 版本保持一致,同时为应用和平台开发者提供库更新和 Java 11 编程语言支持。我们还计划通过 Google Play 系统更新将这些核心库的变化带给更多的设备,作为运行 Android 12 及以上系统的设备的 ART 模块更新的一部分。

应用程序的兼容性

随着每个平台的发布,我们在推出新的平台版本时优先考虑应用程序的兼容性,努力使更新更快、更顺畅。在安卓 13 中,我们让大多数面向应用程序的变化选择加入,以给你更多时间,我们已经更新了我们的工具和流程,以帮助你更快地做好准备。

  • 更多的安卓系统通过 Google Play 更新 — 在安卓 13 中,我们继续扩大对 Google Play 系统更新(Project Mainline)的投资,使应用程序在不同的设备上拥有更一致、更安全的环境,并向用户提供新的特性和功能。我们现在可以通过对现有模块的更新,直接向旧版安卓的用户推送新的功能,如照片选择器器和 OpenJDK 11。我们还增加了新的模块,如蓝牙和超宽频模块,以进一步扩大安卓可更新的核心功能范围。

  • 为平板电脑、可折叠设备和 Chromebook 优化 —— 随着平板电脑、折叠屏设备和 Chromebook 等大屏幕设备的发展,现在是时候让你的应用程序为这些设备做好准备,并设计适合任何屏幕的完全自适应应用程序。你可以使用我们为平板电脑提供的优化指导开始工作,然后学习如何为大屏幕构建和为折叠式设备开发。

  • 更容易测试和调试变化 — 为了使你更容易测试可能影响你的应用程序的选择变化,我们今年将使许多变化再次成为可切换的。通过切换开关,你可以从开发者选项或 adb 中单独强制启用或禁用这些变化。

  • 平台稳定性里程碑 —— 和去年一样,我们让你提前知道我们的平台稳定性里程碑,以便让你有更多时间计划应用兼容性工作。在这个里程碑上,我们不仅会交付最终的 SDK / NDK API,而且还会交付最终的内部 API 和面向应用的系统行为。今年,我们预计在 2022 年 6 月达到平台稳定版,从那时起,在正式发布之前,你将有几周的时间来做最后的测试。

▲ 时间线包括:2 月和 3 月的开发者预览版。4 月的最终发布 Beta 版本。6 月的最终发布平台稳定性版。

开始使用安卓 13

开发者预览版拥有尝试 Android 13 功能、测试你的应用程序和给我们反馈所需的一切。对于用平板电脑和折叠式设备测试你的应用程序,最简单的方法是在平板电脑或折叠式设备配置中使用安卓模拟器。对于手机,你今天可以通过向 Pixel 6 Pro、Pixel 6、Pixel 5a 5G、Pixel 5、Pixel 4a (5G)、Pixel 4a、Pixel 4 XL 或 Pixel 4 设备上 flashing 系统镜像来开始使用设备。如果你没有 Pixel 设备,你可以在 Android Studio 的 Android 模拟器上使用 64 位系统镜像。为了进行更广泛的测试,还可以使用 GSI 图像。

当你设置好后,以下是你应该做的一些事情。

  • 尝试新的功能和 API — 在开发者预览的早期阶段,你的反馈至关重要。在我们的跟踪器中报告问题,或者通过调查对反馈和请求页面上的选定功能进行直接反馈。

  • 测试你当前的应用程序的兼容性 — 了解你的应用程序是否受到 Android 13 中默认行为变化的影响。只需将你当前发布的应用程序安装到运行 Android 13 的设备或模拟器上并进行测试。

  • 测试你的应用是否有选择加入的变化 — 安卓 13 有选择加入的行为变化,只有在你的应用针对新平台时才会受到影响。尽早了解和评估这些变化是极其重要的。为了便于测试,你可以单独切换这些变化的开关。

在整个安卓 13 的发布周期中,我们会定期更新预览系统图像和 SDK。这个最初的预览版只针对开发者,不打算用于日常或消费者使用,所以我们只通过手动下载提供。一旦你手动安装了一个预览版,你将自动获得所有后期预览版和测试版的空中更新。

谷歌表示,随着我们的 Beta 版发布,我们也将邀请消费者尝试 Android 13 系统,届时我们将开放 Android Beta 计划的注册。目前,请注意,安卓 Beta 版还不适用于安卓 13。

欲了解完整信息,请访问 Android 13 开发者网站。

Pixel 6/6 Pro在2月份更新后出现Wi-Fi问题。谷歌承诺下个月修复它们

在安装 2 月份的安全补丁之后,部分 Pixel 6 和 Pixel 6 Pro 用户反馈 Wi-Fi 功能无法正常使用。今天,Google 承认了这个问题,并承诺会在 3 月的更新中进行修复。该问题是当 Pixel 6/6 Pro 在锁屏或者未完全打开状态下,自动关闭 Wi-Fi 功能。

Google 承认存在这个问题,在调查后确定了问题所在,并表示“影响了极少数的设备”。Google 承诺已经开发了一个软件修复程序,并定于 3 月随 Google Pixel 更新一起到达。下个月的第一个星期一恰好是 7 号,当天上午可以获得工厂和 OTA 镜像。

Google 在 Reddit 社区反馈道:“嘿,u/cheesehead78。非常感谢你报告这个问题,我们很遗憾你遇到了这个问题。经过一些调查,我们确定了根本原因,并确定它影响了极少数的设备。当然,我们意识到这是一个糟糕的体验,并立即开发了一个软件修复,将在 3 月推出的下一个 Google Pixel 更新中提供。如果你想在此期间探索其他选择,请与我们的支持团队联系,他们准备帮助你”。

对于那些不能等待的人,Google 告诉受影响的用户可以联系支持。许多人发现,安装 Android 12L Beta 3 可以解决这个问题。从我们的使用情况来看,它相当稳定,接近最终的质量。

普通的x86电脑体验了安卓电视和谷歌的原生电视系统,所以旧电脑不再吃灰

前言:

前几天在家闲的无聊,想看看电视,发现家里的盒子里面的应用非常不好用,此时刚好家里有台废旧(吃灰状态)的笔记本电脑

就想着能不能给他安装安卓TV系统,体验一下安卓原生系统,我们使用的是Tosathony大神制作的Android TV镜像,说干就干开始

准备条件:

1.一台普通电脑

2.一个U盘,最好8g及以上

3.下载TV镜像文件:Android TV 8.1扫码下载(验证码j8k8)(如果无法下载请转至我的网站下载www.yyzq.cf)

4.U盘写盘工具这里可以用UltraISO :扫码下载(验证码MOBve)(如果无法下载请转至我的网站下载www.yyzq.cf)

1、下载好U盘写入工具UltraISO并安装好打开,以及将U盘插入电脑

2、依次打开文件-打开-我们下载好的镜像文件

3、启动-写入硬盘映像-选择我们的U盘-写入方式选择RAW-写入

4、U盘写完以后我们重启电脑-按F12进入BIOS选择U盘启动就可以进入安装界面如下图,

我们选择第三个进入安装界面

5、创建一个新分区

6、选择我们的硬盘-不要选U盘

7、有可能会问我们需不需要GPT分区,我们选择NO即可进入以下界面

8、依次选——NEW(新建分区)——Primary(主分区)-选择大小-Boottable(让分区处于活跃状态)——Write(写入分区表)-Yes(确认)-Quit(退出)即可

9、我们可以看到多出来了一个分区

10、我们依次点击ok-ext4-这时他会问我们是否需格式化我们选择YES

11、看到如下图问我们是否安装GRUB:此时我们选择YES进行安装

12、这时就进入安装界面了-选择YES进行安装

13、等待安装过程

14、到这时候就算安装完成了-我们选择Run-Android-X86-OK进行启动

15、进入系统了16、这是开机启动以后的默认界面

17、经过简单的安装多了一些常用APP

18 我们可以用键盘与鼠标控制电视

阿里巴巴开源容器图像加速技术

近日阿里巴巴开源了其云原生容器镜像加速技术,它推出的 overlaybd 镜像格式,相比于传统的分层 tar 包文件格式,实现了基于网络的按需读取,从而使得容器可以快速启动。

该技术方案原本是阿里云内部 DADI 项目的一部分, DADI 是 Data Accelerator for Disaggregated Infrastructure 的缩写,旨在为计算存储分离架构提供各种可能的数据访问加速技术。镜像加速是 DADI 架构在容器及云原生领域的一次突破性尝试,该技术自 2019 年投产以来,已在线上部署了大量机器,累计启动容器次数超过 10 亿,支持了阿里巴巴集团及阿里云的多个业务线,极大提高了应用的发布和扩容效率。2020 年,团队在国际顶级会议发表了论文"DADI: Block-Level Image Service for Agile and Elastic Application Deployment. USENIX ATC'20"[1],并随后启动了开源项目,计划将技术该贡献给社区,通过建立标准并打造生态,吸引更多的开发者投入到容器及云原生性能优化这个领域上来。

背景简介

随着 Kubernetes 和云原生的大爆发,容器在企业内部的大规模应用已经越来越广泛。部署启动快是容器的核心优势之一,这个启动快是指本地镜像实例化的时间非常短,即“热启动”时间短。然而对于“冷启动”,即在本地无镜像的情况下,需要先从 Registry 下载镜像才能创建容器。业务的镜像经过长期维护和更新,无论是镜像层数还是整体大小都会达到一个较大的量级,比如可能达到数百 MB 或者几个 GB。因此生产环境中,容器的冷启动往往耗时数分钟,并且随规模扩大会导致 Registry 因集群内网络拥堵而无法快速地下载镜像。

例如,在之前某年的双十一活动中,阿里内部一个应用因为容量不足触发紧急扩容,但因并发量过大,整体扩容耗时较长,这期间对部分用户的使用体验造成了影响。而到了 2019 年,随着 DADI 的部署上线,新镜像格式的容器在“镜像拉取+容器启动”上耗费的总时间比普通容器缩短了 5 倍,且 p99 长尾时间更是比后者快了 17 倍。

如何处理存储在远端的镜像数据,这是解决容器冷启动慢这个问题的核心点。历史上业界对这一问题做出的尝试有:使用块存储或者NAS保存容器镜像,实现按需读取;使用基于网络的分发技术(如 p2p),将镜像从多个源头下载、或者提前预热到主机上,避免出现网络单点瓶颈。近年来,针对新镜像格式的讨论也逐渐被提上议题,根据 Harter 等人的研究表明,拉取镜像占用了容器启动时间的 76%,而只有 6.4% 的时间用来读取数据。因此,支持 On-demand Read 技术的镜像,已经成为默认的潮流风向。Google 提出的 stargz 格式,其全称是 Seekable tar.gz,顾名思义,可以有选择地从存档中搜寻并提取特定的文件,无需扫描或者解压整个镜像。stargz 旨在提高镜像拉取的性能,其延迟拉取技术(lazy-pull)不会拉取整个镜像文件,实现了按需读取。为了进一步提高运行时效率,stargz 又推出了一个 containerd 的 snapshotter 插件,在存储层面对 I/O 做了进一步优化。

在容器的生命周期中,镜像就绪后需要挂载(mount),而分层镜像挂载的核心技术便是 overlayfs,它以一种堆叠的形式将下层的多个 layer 文件合并,并向上暴露出一个统一的只读文件系统。类比上文提到的块存储和 NAS,一般可以通过快照的形式进行分层堆叠,而跟 stargz 绑定的 CRFS,也可以看做是 overlayfs 的另一种实现。

新镜像格式

DADI 没有直接使用 overlayfs,或者说,它只是借鉴了 overlayfs 和早期联合文件系统(union filesystem)的思想,但提出了一种全新的基于块设备的分层堆叠技术,称之为 overlaybd,它为容器镜像提供了一系列基于块的合并数据视图。overlaybd 的实现十分简单,因此很多之前想做而不能做的事都可以成为现实;而实现一个完全 POSIX 兼容的文件系统接口则充满挑战,并可能存在 bug,这点从各个主流文件系统的发展历史上就可以看出。

除了简单以外,overlaybd 对比 overlayfs 的其他优点有:

  • 避免多层镜像导致的性能下降,如 overlayfs 模式下大文件的更新会触发跨层引用复制,系统必须先将文件复制到可写层;或者创建硬链接速度很慢等问题。
  • 可以方便地采集 block 级别的 I/O 模式,进行录制以及重放,从而预取数据,进一步加速启动。
  • 用户的文件系统和宿主机 OS 可以灵活选择,如支持 Windows NTFS。
  • 可以使用有效的编解码器进行在线解压缩。
  • 可以下沉到云中的分布式存储(如 EBS)中,镜像系统盘可以跟数据盘使用同一套存储方案。
  • overlaybd 具有天然的可写层支持(RW),只读挂载甚至可以成为历史。

overlaybd 原理

为了理解 overlaybd 的原理,首先需要了解容器镜像的分层机制。容器镜像由多个增量 layer 文件组成,在使用时进行叠加,这样在镜像分发时只需要对 layer 文件进行分发。每一层实质上都是与上一层的差异(包括文件的添加,修改或删除)的压缩包。容器引擎可以通过其 storage driver,按照约定的方式将差异叠加起来,然后以 Read-Only 的模式挂载到指定目录,该目录即称为 lower_dir;而以 Read/Write 模式挂载的可写层,挂载目录则一般称为 upper_dir。

请注意,overlaybd 本身没有文件的概念,它只是将镜像抽象为虚拟块设备,并在其上装载常规的文件系统。当用户应用读取数据时,该读取请求首先由常规的文件系统处理,将请求转换为虚拟块设备的一次或多次读取。这些读取请求会被转发到用户态的接收程序,即 overlaybd 的运行时载体,最后转换为对一个或多个 layer 的随机读取。

与传统镜像一样,overlaybd 在内部仍然保留着 layer 分层的结构,但每层的内容都是文件系统变更差异对应的一系列 data block。overlaybd 向上提供了一个合并视图,对 layer 的叠加规则很简单,即对于任意一个 data block,总是使用最后的变更,在 layer 中未发生变更的块均视为全零块;向下又提供了将一系列 data block 导出成一个 layer 文件的功能,该文件高密度非稀疏、且可索引。因此,对块设备某个连续 LBA 范围进行读操作,可能包含了原本属于多层的小块数据段,我们将这些小块数据段称为 segment。从 segment 的属性中找到层号,便能够继续映射到对这层的 layer 文件的读取上来。传统的容器镜像可以将它的 layer 文件保存在 Registry 或者对象存储上,那么 overlaybd 镜像自然也可以。

为了更好的兼容性,overlaybd 在 layer 文件的最外层,包装了一层 tar 文件的头和尾,这样伪装成一个 tar 文件。由于 tar 内部仅一个文件,不影响按需读取。目前无论是 docker、containerd 或者 buildkit,对镜像的下载或上传默认都有 untar 和 tar 的流程,不侵入代码是无法逾越的,所以增加 tar 伪装有利于兼容性和流程的统一,例如在镜像转换、构建、或者全量下载使用时,都无需修改代码,只需提供插件即可。

整体架构

DADI 整体架构如图,以下分别介绍各个组件:

1. containerd snapshotter

containerd 自 1.4 版起,开始初步支持一些启动远程镜像的功能,并且 K8s 已经明确将放弃 Docker 作为运行时的支持。所以 DADI 开源版本选择优先支持 containerd 生态,之后再支持 Docker。

snapshotter 的核心功能是实现抽象的服务接口,用于容器 rootfs 的挂载和卸载等操作。它的设计替代了在 Docker 早期版本称之为 graphdriver 的模块,使得存储驱动更加简化,同时兼容了块设备快照与 overlayfs。

DADI 提供的 overlaybd-snapshotter 一方面能让容器引擎支持新的 overlaybd 格式的镜像,即将虚拟块设备挂载到对应的目录,另一方面也兼容传统 OCI tar 格式镜像,让用户继续以 overlayfs 运行普通容器。

2. iSCSI target

iSCSI 是一种被广泛支持的远程块设备协议,稳定成熟性能高,遇到故障可恢复。overlaybd 模块作为 iSCSI 协议的后端存储,即使程序意外 crash,重新拉起即可恢复。而基于文件系统的镜像加速方案,例如 stargz,则无法恢复。

iSCSI target 是 overlaybd 的运行时载体。在本项目中,我们实现了两种 target 模块:第一种是基于开源项目 tgt,由于其拥有 backing store 机制,可以将代码编译成动态链接库以便运行时加载;第二种是基于 Linux 内核的 LIO SCSI target(又称为 TCMU),整个 target 运行在内核态,可以比较方便地输出虚拟块设备。

3. ZFile

ZFile 是我们提供的一种支持在线解压的数据压缩格式。它将源文件按固定大小的 block size 切分,各数据块进行单独压缩,同时维护一个 jump table,记录了各数据块在 ZFile 中的物理偏移位置。如需从 ZFile 中读数据,只要查找索引找到对应位置,并仅解压缩相关的 data block 即可。

ZFile 支持各种有效的压缩算法,包括 lz4,zstd 等,它解压速度极快,开销低,可以有效节省存储空间和数据传输量。实验数据表明,按需解压远程的 ZFile 数据,性能高于加载非压缩数据,这是因为传输节省的时间,大于解压的额外开销。

overlaybd 支持将 layer 文件导出成 ZFile 格式。

4. cache

正如上文所说,layer 文件保存在 Registry 上,容器对块设备的读 I/O 会映射到对 Registry 的请求上(这里利用到了 Registry 对 HTTP Partial Content 的支持)。但是由于 cache 机制的存在,这种情形不会一直存在。cache 会在容器启动后的一段时间后自动开始下载 layer 文件,并持久化到本地文件系统。如果 cache 命中,则读 I/O 就不会再发给 Registry,而是读本地。

行业领先

3 月 25 日,权威咨询机构 Forrester 发布 2021 年第一季度 FaaS 平台(Function-As-A-Service Platforms)评估报告,阿里云凭借产品能力全球第一的优势脱颖而出,在八个评测维度中拿到最高分,成为比肩亚马逊 AWS 的全球 FaaS 领导者。这也是首次有国内科技公司进入 FaaS 领导者象限。

众所周知,容器是 FaaS 平台的承载基础,而容器启动速度更是决定了整个平台的性能与响应延迟。DADI 助力阿里云函数计算产品,大幅度缩短容器启动时间 50%~80%,带来了全新的 Serverless 使用体验。

总结展望

阿里巴巴开源的 DADI 容器加速项目以及其推出的 overlaybd 镜像格式,有助于应对新时代下容器对快速启动的需求。项目组未来将协同社区一起,加快对接主流工具链,积极参与新镜像格式标准制定,目标是让 overlaybd 成为 OCI 远程镜像格式的标准之一。

欢迎大家参与开源项目,一起贡献力量!

后续工作

1. Artfacts Manifest

OCI Image 的 v1 Manifest 格式描述能力有限,无法满足远程镜像需求。目前 v2 的讨论没有实质进展,推翻 v1 也不现实。但是,可以借助 OCI Artfacts Manifest 使用 Additional Descriptor 来描述原始数据,兼容性上有所保证,用户更容易接受。Artfacts 也是 OCI/CNCF 在推广的项目,DADI 未来计划拥抱 Artfacts 并实现 PoC。

2. 开放对多种文件系统的支持

DADI 本身支持用户根据需要选择合适的文件系统来构建镜像,但是目前尚未开放相应的接口,默认使用了 ext4 文件系统。我们未来将完善相关接口并放开此功能,由用户根据自身需要,决定使用什么文件系统。

3. Buildkit 工具链

目前用户可以通过 buildkit 外挂 snapshotter 来构建镜像,未来将进一步完善,形成完整工具链。

4. 数据领取

在容器启动后对 I/O 模式进行记录,后续启动同一镜像时便可以重放该记录,对数据进行预取,避免临时请求 Registry,这样容器的冷启动时间将继续缩短一半以上。理论上所有无状态或幂等容器都可以进行录制和重放。

作者 |陈博

本文为阿里云原创内容,未经允许不得转载。

谷歌终于开始将去年12月的OTA更新推至pixel 6和pixel 6 Pro

Google Pixel 6和6 Pro终于收到了1月份的更新。此外,Google还发布了Pixel 6系列的系统镜像和OTA文件。一月份的更新带来了12月份更新的所有修复,加上本月的一些新修复。如果你从11月的补丁基础上更新,获取到的更新包将是215MB,如果是从12月的补丁出发,则只有40MB。

在Google的更新支持页面上,有一个很长的修复清单。主要的修复措施包括使用呼叫屏幕和与拨打紧急电话有关的错误。还有一个与某些条件下的电池消耗有关的问题。还有一般的UI修复,能使用户体验更顺畅,Wi-Fi也有望更稳定。

在12月的更新中,Pixel 6的用户在过去的几个月里并不开心,因为这款手机发布至今遭遇各种问题。密集的补丁目的是解决之前软件构建中的错误,但它最终又给全球用户带来了信号问题。它甚至导致Google因错误而禁用了一些Pixel专属功能,一些用户被更新到12月,而另一些用户则被留在11月的更新中,直到Google通过延迟的12月更新来解决一切问题–对于那些被困在11月更新中的用户来说,12月更新甚至从未到来。

正如Google承诺的那样,Pixel 6和6 Pro的更新终于在今天(1月14日)开始推出,并应在未来一周内适用于所有Pixel 6设备。同时,1月份的更新早在1月4日就开始向旧版Pixel用户推出。

阅读本次OTA更新细节:

https://support.google.com/pixelphone/thread/143968432/google-pixel-update-january-2022?hl=en