Archives 2024

社评:“微软蓝屏”揭示出一个严峻现实

微软公司视窗操作系统(Windows)19日发生全球性蓝屏故障,世界范围内的大量用户遭遇电脑崩溃问题,目前分析认为该事件很可能是由第三方安全软件更新所致。这种大面积损坏操作系统并可能导致用户数据丢失的故障,既是技术问题,又显然不止于此。这次“微软蓝屏”事件再次提醒人们,网络空间是安全领域的重要组成部分,网络安全需要国际社会共同治理维护。

信息技术加速发展使得人类社会越来越依赖网络空间,网信领域已然成为现代社会的关键基础设施,网络安全一旦受到威胁,国家和社会的很多方面都会受影响。这次事件的主角,微软视窗操作系统,是目前世界上应用最为广泛的计算机桌面操作系统之一,其稳定性直接影响到包括国家重要机构、关键设施在内大量用户的日常运行或工作生活。事实证明也是如此,这次“微软蓝屏”事件发生后,不少国家的民航、铁路、银行系统遭受不同程度的干扰,英国伦敦证券交易所、西日本旅客铁道公司以及至少4家澳大利亚银行受到影响,美国多家航空公司甚至不得不因此对相关航班实施全球停飞。这些情况说明,网络风险是一种全球性挑战,没有哪个国家能够置身事外、独善其身。无论主权国家、国际组织还是互联网企业、技术社群或普通公众,都需共同面对网络空间的脆弱性及其带来的风险,也需共同承担治理责任,不断提升网络安全水平,真正让数字技术给世界人民带来福祉。

在网络信息技术加持下,国际社会已经形成利益高度交融、命运休戚与共的共同体,维护网络安全同样离不开国际网络空间各行为体的通力合作。这次“微软蓝屏”事件揭示的一个情况是,国际社会在网络安全治理上还未形成真正共识,一些国家坚持的那种头部企业主导网络安全的模式,不仅不能带来网络治理成果的普惠共享,反而可能造成新的安全威胁。网络技术起源于美国等发达经济体,它们是互联网早期发展的主要推动力量,也在一定时期内垄断了互联网技术。垄断这些技术的互联网头部企业,也因此在国际网络空间治理中拥有强势的话语权。但现实是,微软视窗操作系统已经不是第一次出现大规模的蓝屏事件,这说明即便是世界性的互联网头部企业,也难以依靠自身力量解决系统性网络风险和危机。

安全问题事关各国人民福祉,网络空间是人类安全与责任的共同体。需要特别指出的是,网络空间既是新兴技术和战略领域,也是大国关系的延伸场域。一些国家整天把安全挂在嘴边,泛化安全概念,却忽视了真正的安全,这不能不说是一种讽刺。网络空间不能落入极限竞争甚至恶意打压的窠臼,而是需在国际社会不同层面推动基于互信的利益融合。

实践表明,要想实现全球网络治理目标,首先需在国家之间尤其相关网络大国之间建立双边对话和合作平台。比如中美之间曾就网络空间国家行为规则以及其他关键国际安全问题多次对话协商。其次,网络主权是网络治理多边合作的前提,但同时各国也有必要积极参与面向全球的多边合作治理机制,以便在更大范围内进行对话协商,寻求建立普遍共识。第三,就像其他诸多领域的全球治理一样,推动全球网络安全治理,离不开对联合国权威和地位的维护。

目前个别国家将网络空间视为大国战略博弈新的战场,推进实施网信技术“脱钩断链”,人为划设网络安全“小院高墙”,将价值观冲突和自身战略利益置于网络空间稳定性和协同性之上。从这个意义上讲,国际社会应坚持以联合国为核心平台的全球网络安全治理体系。各国应秉持共商共建共享理念、创新合作模式,捍卫和提高联合国的权威与作用,推动全球网络安全治理体系向着更加公正合理有效的方向改革完善。

=================以下图片源自其他报道

微軟系統故障影響全球多家航空公司、電信公司以及電視台等,導致這些公司的服務中斷。(新華社)

 

4.30 12/16 Mwf:/ U@Y.Zz 微软蓝屏导致全球电脑瘫痪,国产安全软件的重要性有多大?# 红衣分享 # 微软蓝屏 # 数字安全 # 大咖观察 https://v.douyin.com/iMrrEorN/ 复制此链接,打开Dou音搜索,直接观看视频!

openEuler AArch64架构vCPU热插拔技术内幕

image2
openEuler2024-06-27openEuler

openEuler 社区引领技术浪潮,早在openEuler 20.09 创新版本就率先使能并对外开放了 AArch64 架构 vCPU 热插特性。时隔四年,openEuler 24.03 LTS 版本补充了 vCPU 热拔能力,vCPU 热插拔特性得到正式完整的支持,其更好地满足开发者对 vCPU 资源的弹性伸缩需求,进一步延伸了该特性的使用场景及价值。本文将带各位读者更深入了解 vCPU 热插拔技术的价值、AArch64 架构下 vCPU 热插拔特性演进历史及基本实现原理。

特性价值

vCPU 热插拔技术可以在虚拟机运行状态下增加或减少 vCPU 数量,实现不中断业务条件下动态调整vCPU 资源。

资源弹性是云计算的核心优势之一,而 vCPU 热插拔是实现 CPU 算力弹性的关键技术之一。其价值不限于: 1)加快虚拟机启动速度。特别对于轻量化场景收益较大。比如 Kata 安全容器初始只配置 1个 vCPU,等启动完成后热插更多 vCPU。 2)按需使用资源,从而优化业务成本。开发者根据业务负载需求,在线调整虚拟机 vCPU 数量。负载大时增加资源,负载小时减少资源。

来自AArch64架构的挑战

在 AArch64 架构下,支持 vCPU 热插拔面临来自架构规范、Guest 内核、KVM 各方面的挑战。

AArch64 体系结构缺乏对物理 CPU 热插拔的设计,使得虚拟化场景 CPU 热插拔的设计缺乏现实物理世界的依据。特别是中断控制器 GIC,其默认所有 CPU 在启动时都已存在,不能在系统启动后进行调整。

由于物理系统不支持 CPU 热插拔,ARM Linux 内核也一直缺乏对该能力的支持。如果要在虚拟化场景实现该特性,必须先完善 Linux 内核,使得当其作为 Guest 内核时能正常支持该特性。

另外还面临着来自 KVM 的挑战。KVM 不支持动态调整 vCPU 对象数量,即当虚拟机开始运行后,KVM 将拒绝操作目标虚拟机增加或减少 vCPU。

特性演进

面对以上挑战,虚拟化场景下 CPU 热插拔特性的进度较缓慢。最早的实现来自华为,于 2019 年和 2020 年分别向主线社区提交了 Guest 内核侧补丁[1]及 QEMU 侧补丁[2],热插拔协议上参考了 x86 架构。但社区讨论认为 AArch64 架构暂时缺乏 CPU 热插拔相关规范,相关补丁不能先于规范合入主线。

此后华为和 ARM 公司深入合作,经过长期的努力,基本解决了不限于以上所述的挑战。2022 年,ACPI 6.5 规范发布,针对 AArch64 特殊的架构限制,在 MADT GICC 描述中加入了 ONLINE-CAPABLE 属性[3],用于支持虚拟化场景下 CPU 热插拔。基于该最新规范,ARM 公司开发了 Guest 内核侧补丁[4],华为开发了 QEMU 侧补丁[5]。相关补丁正在稳步推进,即将合入主线社区。

openEuler 社区完善并加固了以上补丁,在 openEuler 24.03 LTS 版本中提供了对该特性的稳定支持。

基本实现原理

**初始化流程:**为了应对来自体系结构和 KVM 架构的约束,QEMU 在创建具有热插能力的虚拟机时,必须为所有 vCPU 调用 KVM_CREATE_VCPU IOCTL 创建 KVM vCPU 对象,并为所有 vCPU 提前创建好 GIC irqs、GICR 和 GICC 等虚拟资源。但初始化时只需创建实际需要的 vCPU 线程,对于还未热插的 vCPU,其 vCPU 线程可以延迟到热插时再创建。

此外还涉及到两个关键的虚拟设备。CPU Control Device 负责管理整个vCPU热插拔的状态,GED Device 负责向 Guest 发送热插拔通知。Guest 内核通过虚拟 ACPI 表和 CPU Control Device 及GED 设备交互。相关的 ACPI 方法包括_EVT、_STA、_MAT 等。

image2 、 图1 vCPU 热插流程

** 热插流程: **开发者通过 device_add QMP 命令向 QEMU 发出 vCPU 热插请求。QEMU 解析命令,创建 vCPU 线程使之与初始化时提前创建的 KVM vCPU 对象相关联,然后调用 KVM 初始化vCPU 状态并运行。随后,QEMU 依照 ACPI 规范,修改当前热插 vCPU 的 _STA 状态为 PRESENT 且 ENABLE ,操作 GED 设备发送中断给 Guest。Guest 响应中断,执行 ACPI 表中的 CSCN 方法获取到新插入的 vCPU 信息,最后通知内核 CPU 热插拔模块初始化该 CPU。

image2

图2 vCPU 热拔流程

**热拔流程:**开发者通过 device_del QMP 命令向 QEMU 发出 vCPU 热拔请求。QEMU 解析QMP 命令,首先标记需要热拔 vCPU 为 removing 状态,然后通过 GED 设备向 Guest 发出中断。Guest 执行 ACPI CSCN 方法了解到需要拔出的 vCPU 编号,通知内核 CPU 热插拔模块清理下线该 CPU。完成之后,Guest 执行 _EJ0 方法通知后端 QEMU 清理 vCPU 资源。QEMU 修改 vCPU 的 _STA 状态为 PRESENT 且 DISABLE。

未来展望

如今资源在线伸缩已经成为了很多行业业务场景的关键需求,vCPU 热插拔特性将支撑 ARM 平台服务器打开更大云数据中心市场。未来 openEuler 社区将持续完善虚拟化技术生态,引领技术创新,打造高性能强安全轻量化虚拟化平台,为各行各业创造更大价值。

参考资料

[1] 2019 年华为公司提交的 AArch64 vCPU 热插拔 Guest 内核侧代码:https://lwn.net/Articles/792409/

[2] 2020 年华为公司提交的 AArch64 vCPU 热插拔 QEMU 侧代码:https://lore.kernel.org/qemu-devel/20200613213629.21984-2-salil.mehta@huawei.com/

[3] ACPI6.5 规范在 GICC flag 中新增“Online Capable”标志位:https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html#gicc-cpu-interface-flags

[4] 2023 年 ARM 公司提交的 AArch64 vCPU 热插拔 Guest 内核侧代码:https://lore.kernel.org/lkml/20230203135043.409192-1-james.morse@arm.com/)

[5] 2023 年华为公司提交的 AArch64 vCPU 热插拔 QEMU 侧代码:https://lore.kernel.org/qemu-devel/20230926100436.28284-1-salil.mehta@huawei.com/


【免责声明】本文仅代表作者本人观点,与本网站无关。本网站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文仅供读者参考,由此产生的所有法律责任均由读者本人承担。