OpenStack
文章平均质量分 78
OpenStack,KVM ,SDN,SDS,Docker,K8S
hNicholas
这个作者很懒,什么都没留下…
展开
-
ARM虚拟化环境搭建
ARM虚拟化环境搭建转载 2022-06-16 16:40:24 · 2105 阅读 · 1 评论 -
OpenStack Cinder特性之image volume cache介绍
Openstackcinder有一个可选的功能:镜像盘缓存,可以明显提升从镜像创建云盘的性能。这个改进依赖很多因素,主要看存储后端克隆云盘的速度有多快。一 简介对于Cinder来说,保存镜像显然并不是它该做的事情,但是保存了镜像的云盘管理起来就游刃有余了。而且由于云盘大小是可以任意扩展的,只要缓存一份刚好满足镜像virtual size的云盘,然后在需要时扩展成所需的大小。当第一次从镜像创建云盘时,cinder的内部租户会创建一个镜像盘缓存(image-volume-cache)。如果再从这个...转载 2022-05-27 15:52:09 · 712 阅读 · 0 评论 -
基础设施即代码(IaC):方法论、办法和优秀实践
由于现在的一切都致力实现数字化,尤其是在发生冠状病毒疫情之后,现在正确管理组织的IT基础设施变得尤为重要。在此之前,对IT基础设施的管理都是由组织的系统管理员人工完成的。他们管理了应用程序运行所需的所有硬件和软件。在过去的几年中,IT技术取得了长足的进步,现在除了这种人工管理之外,还有一种替代方法,其名称为“基础设施即代码(IaC)”。在此可以采用一种更具描述性的术语来定义IaC:基础设施即代码(IaC)是通过机器可读的定义文件而不是通过物理硬件配置或交互式配置工具来管理和设置数据中心的过程。..转载 2022-05-20 09:48:23 · 1176 阅读 · 0 评论 -
SSD应用于Ceph集群的四种典型使用场景
在虚拟化及云计算技术大规模应用于企业数据中心的科技潮流中,存储性能无疑是企业核心应用是否虚拟化、云化的关键指标之一。传统的做法是升级存储设备,但这没解决根本问题,性能和容量不能兼顾,并且解决不好设备利旧问题。因此,企业迫切需要一种大规模分布式存储管理软件,能充分利用已有硬件资源,在可控成本范围内提供最佳的存储性能,并能根据业务需求变化,从容量和性能两方面同时快速横向扩展。这就是Server SAN兴起的现实基础。Ceph作为Server SAN的最典型代表,可对外提供块、对象、文件服务的分布式统一存..转载 2022-04-19 15:49:49 · 670 阅读 · 0 评论 -
virtio-gpu介绍
背景:显卡的提升在虚拟化场景下一直是一个难以解决的问题。目前qemu中提供的显卡有2种一种是cirrus显卡,一种是vga显卡。这两种显卡都是通过qemu来进行模拟的,也仅仅达到了能够让虚拟机使用的功能。而对于游戏需要的3D加速能力等,还不能很好的模拟。显卡本身需要强大的计算能力,这里qemu纯用cpu来模拟gpu的功能明显有些力不从心。新的功能virtio-gpu的出现给虚拟化的显卡功能带来了一些新的气息。下面就简要的介绍一下virtio-gpu这个功能。同所有的virtio设备一..转载 2022-03-31 17:10:51 · 8952 阅读 · 0 评论 -
LOKI(Linux+OpenStack+Kubernetes)的好处
原标题:LOKI(Linux+OpenStack+Kubernetes)的好处把Linux、OpenStack、Kubernetes结合起来,你就有了最棒的基础设施即服务云:LOKI。2022年,我们可以有把握地说,Kubernetes是最常用的容器编排技术。该平台非常受欢迎,因为它提供了解决问题的能力,并提供了一种开箱即用的方式来思考部署、管理和调度应用程序。你们中的许多人也使用私有云部署,比如OpenStack,我们也可以放心地说,它是私有云计算的开源标准。最初由几十名贡献者组成的团队很快成长为转载 2022-03-14 16:50:18 · 370 阅读 · 0 评论 -
OpenStack大规模部署优化
OpenStack大规模部署优化之一:并发业务优化OpenStack在架构设计上是松耦合解耦架构,天生支持横向扩展;但真正在大规模部署过程中,仍有好多因素决定其部署规模。本文从业务并发方面总结分享原生OpenStack支撑大规模(千节点量级)部署的优化思路;在大规模并发业务过程中,主要是去除红绿灯(数据库行级锁)解决锁抢占问题,以及修多条高速公路(调整各组件进程数)最终提升各组件的处理能力1、调整haproxy进程数,提升Loadbalance能力问题描述:在openstack部署过程中,通常转载 2021-10-21 15:57:37 · 1466 阅读 · 0 评论 -
Libvirt使用volume group作为存储池
本文阐述的方法适用于 KVM/QEMU 虚拟机,主要涉及在 libvirt 中使用 LVM 存储设备的方法,使用基于 libvirt 的命令行虚拟机管理工具 virsh。libvirt 中的存储管理独立于虚拟机管理。也就是存储池和存储卷的操作独立于虚拟机的操作存在,因此进行存储管理时,不需要有虚拟机的存在,可以当虚拟机需要存储资源时再进行分配,非常灵活。libvirt 支持后端存储的类型https://libvirt.org/storage.html#StorageBackendLogic...转载 2021-09-24 17:39:56 · 576 阅读 · 0 评论 -
KVM:invalid argument: could not find capabilities for arch=x86_64 domaintype=kvm
问题:libvirt 启动虚拟机时,报错invalid argument: could not find capabilities for arch=x86_64 domaintype=kvmvirCapabilitiesDomainDataLookupInternal:735 : invalid argument: could not find capabilities for arch=x86_64 domaintype=kvm该问题可能是kvm模块加载的有问题,重新加载模块解决:.转载 2021-09-24 15:46:17 · 3571 阅读 · 2 评论 -
OpenStack 利用nova soft- delete 实现 “回收站”
在nova中支持设置删除的虚拟机保留时间,如果设置了reclaim_instance_interval > 0 则在删除虚拟机时调用soft_delete方法,虚拟机状态置为 SOFT_DELETED在调用软删除时,如果对应的virt driver(如 libvirt)未实现soft_delete 方法,则将虚拟机进行下电关机,同时把虚拟机状态改为SOFT_DELETED。nova定时任务检查状态为SOFT_DELETED且instance.deleted_at..原创 2021-08-26 11:10:16 · 1126 阅读 · 0 评论 -
lvs,Nginx,Haproxy三种负载均衡机制的基本架构和对比
【负载均衡】大量用户发起请求的情况下,服务器负载过高,导致部分请求无法被响应或者及时响应。负载均衡根据一定的算法将请求分发到不同的后端,保证所有的请求都可以被正常的下发并返回。【主流实现-LVS】LVS 是Linux Virtual Server的简称,也就是 Linux 虚拟服务器,已经是 Linux 标准内核的一部分。采用IP负载均衡技术和基于内容请求分发。调度器具有很好的吞吐率,将请求均衡得转移到不同的服务器上执行,且调度器可以自动屏蔽掉故障的服务器,...转载 2021-08-06 15:17:33 · 1375 阅读 · 0 评论 -
Ironic console
ironic 支持两种 console 方式:shellinabox和socat方式。shellinabox 可以将终端输出转换成 Ajax 实现的 http 服务,可以直接通过浏览器访问,呈现出类似 terminal 的界面。socat 与 shellinabox 类似,都是充当一个管道作用,只不过 socat 是将终端流重定向到 tcp 连接。shellinabox 是比较早的方式,它的限制在于只能在 ironic conductor 上运行 web 服务,访问范围受限,所以社区又用 soca.转载 2021-07-09 15:38:58 · 641 阅读 · 0 评论 -
什么是云网融合
这些年来,随着云计算的快速发展,还有5G建设的全面启动,“云网融合”这四个字频繁出现在我们面前,吸引了很多人的关注。那么,到底什么是云网融合?云网融合和数字新基建有什么关系?云网融合对于我们通信行业来说,究竟意味着什么?所谓“云网融合”,云就是云计算,网就是通信网。准确来说,云计算包括计算能力、存储能力以及相关的软硬件。而通信网,则包括接入网、承载网、核心网等电信网络的方方面面。从本质来看,云是计算,网是连接。从企业主体来看,云是云服务提供商(亚马逊、谷歌、阿里、腾讯),网是电信运营商(移动转载 2021-07-07 10:19:08 · 1761 阅读 · 0 评论 -
cinder manage/unmanage
cinder manage/unmanage 管理卷mange命令类似于create命令,但是区别是mange,不会在后端创建一个新的LUN,而是将一个已有的LUN纳入Cinder的管理(会对这个LUN从命名)。cinder manage :必须是pool之一;:必须是storage可以识别的,如netapp下可以是path,或者uuid。unmanage命令类似于delete命令,但是不会从后端将LUN删除。cinder unmanage 一、cinder manage(1)测试:转载 2021-06-18 09:55:29 · 572 阅读 · 0 评论 -
X86_64平台上利用qemu安装aarch64架构的虚拟机
X86_64平台上利用qemu安装aarch64架构的虚拟机前一段时间摸索了以下在x86平台上安装arm架构(包括aarch64和armhf)的虚拟机,中间遇到了不少问题。把经验总结下来希望能帮到大家。1.安装qemu-system-aarch64如果在宿主机上只安装了qemu-kvm的话,宿主机上只能运行X86构架的虚拟机,并能够利用kvm加速,并不能将arm指令翻译成X86指令运行。所有还需要安装qemu-system-aarch64,它提供了aarch64架构虚拟机在x86架构上的运行支持。可转载 2021-06-10 20:23:00 · 14375 阅读 · 3 评论 -
Ironic Inspector安装、使用及流程分析
Hardware introspection for OpenStack Bare MetalThis is an auxiliary service for discovering hardware properties for a node managed by Ironic. Hardware introspection or hardware properties discovery is a process of getting hardware parameters required...转载 2021-05-08 10:38:28 · 1258 阅读 · 0 评论 -
OpenStack Suspend和Pause区别
Suspend/Resume有时需要长时间暂停 instance,可以通过 Suspend 操作将 instance 的状态保存到宿主机的磁盘上。当需要恢复的时候,执行 Resume 操作,从磁盘读回 instance 的状态,使之继续运行。这里需要对 Suspend 和 Pause 操作做个比较:相同点两者都是暂停 instance 的运行,并保存当前状态,之后可以通过 Resume 操作恢复不同点1. Suspend 将 instance 的状态保存在磁盘上;Pause 是保存在内存转载 2021-04-07 09:38:40 · 2489 阅读 · 0 评论 -
Cloudinit简介
Cloudinit如何判断虚拟机为初始化状态Cloudinit简介cloudinit是专为云环境中虚拟机的初始化而开发的工具,它从各种数据源读取相关数据并据此对虚拟机进行配置。常见的数据源包括:云平台的metadata服务、ConfigDrive等,常见的配置包括:设定虚拟机的hostname、hosts文件、设定用户名密码、更新apt-get的本地缓存、调整文件系统的大小等。Cloudinit数据源Cloud-init github仓库地址:https://github.com/cloud-ini转载 2021-04-01 20:33:15 · 7679 阅读 · 0 评论 -
如何远程拷贝稀疏文件(scp sparse file -- raw or qcow2)
如何远程拷贝稀疏文件?how to remote copy sparse file?何谓稀疏文件就是有空洞的文件,空洞并没有实际占用硬盘的物理空间。Linux中常见的qcow2文件和raw文件,都是稀疏文件。上图中的disk size < virtual size 的文件就是sparse file.how to query sparse file’s real size ?最通用的方式是:qemu-img info很多地方写着ls -ls [sparse file] 也能显示出 s转载 2021-03-26 20:14:47 · 2176 阅读 · 0 评论 -
如何定制虚拟机smbios信息
如何定制虚拟机smbios信息在某些需要给机器做认证和加密的场景下,会需要读取机器的厂家和主板等信息,这些信息都存放在SMBIOS信息中。在虚拟化场景下可以定制虚拟机的SMBIOS信息。SMBIOS是什么SMBIOS(System Management BIOS)是由工业化组织DMTF提出的通过系统固件传递管理信息的标准。详见 https://www.dmtf.org/cn/standards/smbios在SMBIOS标准中规定了若干的Type,每种Type都包含特定信息。例如:BIOS Inf转载 2021-03-18 15:49:39 · 2343 阅读 · 2 评论 -
IDE, virtio, virtio-scsi 硬盘区别
整体上来看这三者的最大不同还是挂载磁盘的数量。根据在ovirt的上测试,一台win7的虚拟机,最多可以创建3个ide硬盘,当再次创建新的ide硬盘时候,会提示无法创建。同时,实验中最多创建了14块virtio硬盘,虽然界面允许创建更多virtio硬盘,但是超过14块,虚拟机是无法启动的。virtio-scsi可以创建足够多的硬盘,以至于协议自身并不是限制因素,而内核的限制反而成了硬盘数目的极限。需要注意的是,在virtio生成的虚拟机里面,硬盘是以/dev/vdX的形式存在的。同时virti..转载 2021-03-16 14:26:51 · 8970 阅读 · 0 评论 -
KVM内存交换策略
计算公式看起来很简单:一台KVM主机配置了16GB内存,如果每台虚拟机的内存大小为512MB,那么你最多应该能够运行32台虚拟机。然而通过应用某些技巧,可以优化内存使用并能够在物理服务器上运行更多的虚拟机。首先,你需要记住从hypervisor的角度看,一台KVM虚拟机仅仅是一个Linux进程,这意味着其遵循有关虚拟以及常驻内存的通用法则。当KVM虚拟机启动时,KVM虚拟机设置指向虚拟内存地址的指针。然而虚拟内存并非物理内存,仅仅是允许进程设置指针指向的地址空间。一般来讲,一个进程正在使用的虚拟内存的具体转载 2021-03-10 11:26:31 · 619 阅读 · 0 评论 -
KVM提供的看门狗设备使虚拟机更健壮
背景:当虚拟机的资源耗尽无响应,磁盘只读,虚机如何自救呢?自动重启就好了。虚机怎么检测到资源耗尽和磁盘只读呢?这就借用了Kvm模拟设备的能力,模拟出来一个看门狗设备,虚拟机在资源充足前提下,会不断喂狗,但是资源不足,看门狗奕无法喂狗则被KVM重启。KVM模拟设备KVM作为软件实现了许多虚拟机的核心设备。这些模拟硬件设备对于虚拟化操作系统至关重要。仿真设备是完全以软件存在的虚拟设备。另外,KVM提供了仿真驱动程序。这些形成了虚拟机和Linux内核(管理源设备)之间的转换层。设备级别的指令完全由KVM管理转载 2021-02-18 11:19:29 · 1133 阅读 · 0 评论 -
OpenStack Octavia 中 TLS termination 功能测试
OpenStack Octavia 中 TLS termination 功能测试什么是 TLS termination关于 TLS termination 的具体实现原理可以自行 google,我自己也讲不清楚。但简单地说,TLS termination 通常用于负载均衡器中对 https 协议的处理。为什么要单单为 https 做处理呢?https相比与http多了安全支持,其中最关键的步骤就是建立server和client的SSL安全连接通道。HTTP使用 TCP 三次握手建立连接,客户端.转载 2021-02-04 11:04:07 · 710 阅读 · 0 评论 -
OpenStack barbican 重要概念
# 总体架构图# 各个抽象概念的关系图抽象概念解释Secrets:Secrets是需要存储的密钥,可能的形式如:私钥、证书、密码等。ACL:除了基于角色的权限控制外,ACL可以提供基于用户访问列表的权限控制。即可以指定哪些用户对该密钥有访问权限。Containers:Containers是一个容器,用于存储多个secret引用。当不得不跟踪、访问上百个secret时,container非常有用。barbican支持3种类型的container:Ge..转载 2021-01-28 10:34:41 · 1036 阅读 · 1 评论 -
分布式锁及在OpenStack上的应用
本文首先介绍了分布式锁的概念,详细介绍了分布式锁多种实现方式以及它们的优缺点。然后介绍了OpenStack Tooz项目,该项目实现了分布式锁的通用框架,支持对接不同的DLM。最后介绍了OpenStack Cinder实现高可用的痛点问题以及讨论了社区当前正如何使用分布式锁来实现cinder-volume服务的AA高可用模式。一、分布式锁介绍1.1 何谓“锁”?锁(Lock),在我们生活当中再熟悉不过了,它的主要作用就是锁住某个物体或者某个区域空间,一方面阻止无锁者进入查看受隐私保护的东西...转载 2021-01-08 10:29:19 · 515 阅读 · 0 评论 -
高可用,容灾,RTO,RPO等解释
基本概念可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。可靠性(reliability)是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。高可用性(High Availability)是指提供在本地系统单个组件故障情况下,能继续访问应用的能力,无论这个故障是业务流程、物理设施、IT软/硬件的故障。MTBF(Mean Time Between Failure),系统.原创 2020-12-17 11:35:37 · 7036 阅读 · 1 评论 -
OpenStack Trove概要
Trove简介Openstack Trove是openstack为用户提供的数据库即服务(DBaaS)。所谓DBaaS,即trove既具有数据库管理的功能,又具有云计算的优势。使用trove,用户可以:"按需"获得数据库服务器 配置所获得的数据库服务器或者数据库服务器集群 对数据库服务器或者数据库服务器集群进行自动化管理 根据数据库的负载让数据库服务器集群动态伸缩与openstack的其他组件一样,trove也提供RESTful API,并通过RESTful API和其他组件进行交互。T转载 2020-12-03 09:43:35 · 1202 阅读 · 0 评论 -
OpenStack文件和元数据注入
openstack在创建实例的时候,可以对实例进行文件注入,注入的内容可为:key ssh公钥;network 网络参数;admin_password 注入超级用户bai root 的密码;metadata 注入元数据meta.js;首先来看各种文件注入的命令行实现:# 注入ssh密钥创建密钥(ssh-keygen),添加密钥对;nova keypair-add --pub_key.ssh/id_rsa.pub mykey创建实例的时候注入密钥;nova boot --key_name转载 2020-11-07 18:29:15 · 1028 阅读 · 0 评论 -
OpenStack 性能测试工具Rally使用
OpenStack 性能测试工具Rally使用Rally是OpenStack社区推出开源测试工具,可用于对OpenStack各个组件进行性能测试。可以自动化并统一 多节点OpenStack部署,验证,测试和性能分析。它可用作OpenStack CI / CD系统的基本工具,可以不断提高其SLA,性能和稳定性。对于不同的使用场景,Rally在测试中的流程也有所不同,主要支持以下三种场景:1) 开发测试,可以评估处于开发阶段的OpenStack系统的性能,能够完成安装部署、仿真测试并输出测试结果等一系转载 2020-10-24 14:26:35 · 2168 阅读 · 0 评论 -
openstack下热迁移机制
热迁移,也叫在线迁移(live migration),是虚拟机从一台主机上迁移到另一台主机上但是“不中断VM服务”的一种机制。这里“不中断”指的是在用户观感上,VM一直提供服务。而实际上,在热迁移的过程中,VM会短暂地暂停一段时间。openstack的热迁移是nova组件调用libvirtd完成的。我们一般通过nova配置文件(path:/etc/nova/nova.conf)来设置有关热迁移的参数,从而让VM按照我们希望的方式进行在线迁移。nova配置文件有关热迁移的参数有如下几个:live_转载 2020-10-19 15:17:40 · 2553 阅读 · 1 评论 -
openstack nova 热迁移 migration job: canceled by client
在进行热迁移时由于数据量较大,出现了token过期导致client鉴权失败,终止了热迁移,导致迁移失败。Nova的一些操作可能需要很长时间才能完成。在这与此请求关联的用户令牌可能过期。在处理实时迁移等长时间运行的任务时提供的服务。Keystone middlewere信任服务在何时获得用户令牌,它是有效的,不要检查证书的有效期。将nova配置为使用服务用户令牌来补充用于初始化操作的常规用户令牌。然后,如果用户令牌已经过期,keystone将使用服务用户令牌对请求进行身份验证。[serv原创 2020-10-19 10:26:52 · 415 阅读 · 0 评论 -
简析云桌面中的几种常见远程显示协议
基于VDI的云桌面的实现原理是将远程服务器上虚拟机的输出画面投影(传输)到终端上,这个传输过程中就需要采用“远程显示协议”。协议的优化程度将直将影响到云桌面的流畅性与用户体验,比如出现画面卡顿、丢帧等现象。很多厂商都在此领域投入了大量的研发。如今在vGPU(GPU虚拟化)、视频解码重定向等技术的支持下,即使在VDI下云桌面也能获得不错的图形处理能力,甚至可以胜任三维渲染、图形图像处理、高清解码编码工作。一改人们以往对VDI在图形处理方面能力不佳的印象。这些都得益于远程显示协议的不断优化。目前比较具代表性的协转载 2020-10-12 14:40:43 · 4339 阅读 · 0 评论 -
Openstack Cinder generic volume group
cinder提供了是一致性组(consistency group),但是一致性组的功能只有一部分的driver支持。详见:https://docs.openstack.org/cinder/rocky/reference/support-matrix.html#operation_consistency_groups——通过一致性组可以对组内的块存储进行统一的操作,保证数据的一致性——可以把一类或者某个应用使用的多个块归到一个组中,便于管理N版本之后cinder提供了generic vo原创 2020-09-21 22:22:09 · 660 阅读 · 0 评论 -
OpenStack Octavia 实现分析
Octavia就是将用户的API请求经过逻辑处理,转换成Haproxy或者Nginx的配置参数,下发到amphora虚机中。Octavia的内部实现中,逻辑流程的处理主要使用TaskFlow库。【基本概念】·LBaasLoad Balancing as a Service,在openstack平台上,LB被作为一种服务提供给用户,用户可以按需获取可配置的业务负载分担方案。 ·loadbalancer负载均衡服务的跟对象,一般为虚机,用户基于此对负载均衡进行配置和...转载 2020-06-15 16:16:49 · 1551 阅读 · 0 评论 -
KVM 关于操作系统引导的XML
KVM中引导虚拟机有许多不同的方法。•BIOSbootloader•通过BIOS引导可用于支持完全虚拟化的管理程序。在这种情况下,BIOS具有确定在何处获得/找到引导映像的引导顺序优先级(软盘,硬盘,cdrom,网络)。type:指定在虚拟机中启动的操作系统的类型。arch将CPU体系结构指定为虚拟化,machine引用机器类型loader:标记引用一个固件,指定路径nvram:一些UEFI固件需要使用ram来存储一些变量boot:下一个引导设备。“fd”、“hd”、“c..原创 2020-06-03 17:52:00 · 1082 阅读 · 0 评论 -
OpenStack硬件管理加速利器:Cyborg
随着5G商用的渐近,通信行业也迎来了5G的机遇与挑战。大规模机器类通信、超可靠、低延迟通信需求场景(智能家居、智慧城市、增强现实、工业自动化、自动驾驶等)的兴起,对未来网络的计算和流量转发能力提出了更高的要求。通用CPU设备已经无法满足处理海量数据、图片、流量的需求。根据不同业务场景和自身优势,通讯厂商引入GPU、FPGA等进行加速,推出了各种加速硬件方案。对于异构加速硬件,要运行在各种CloudOS上,再被上层厂家的VNF调用,假如没有一个统一的标准来管理这些加速卡,没有统一的接口来让上层网元调用,将转载 2020-05-14 15:35:19 · 1725 阅读 · 0 评论 -
VMware DRS概述及功能
通过动态分配和平衡计算资源,使您的 IT 基础架构与业务目标一致。VMware Distributed Resource Scheduler (DRS) 可持续监控所有资源池的利用率,并根据业务需求在多个虚拟机之间智能分配可用资源。1.调整资源以符合业务需求VMware DRS 持续监控资源池中的服务器资源利用率,并可智能地根据业务需求来调整资源,从而使您能够:1)将 IT 资源动态分配...转载 2020-04-23 10:52:34 · 10196 阅读 · 0 评论 -
libvirtError: internal error: No free USB ports
在较低版本的openstack nova中使用libvirt driver,启动虚拟机时出现llibvirtError: internal error: No free USB ports原因可能是 XML中使用了USB设备,如usb-tablet,keyboard等,但是缺少了相应的USB controller。可以在XML添加如下:<controller type='...原创 2020-04-03 16:56:15 · 1191 阅读 · 0 评论 -
qemu中VNC流程详解+代码分析
在虚拟化场景下,对于VM的访问可以使用VNC等可视化工具来操作。VNC的原理其实很简单, qemu会对每一个虚拟机模拟一块网卡,而VM的显示信息都会留在这个网卡的显存中。qemu启动一个 VNC server,这个server其实就一个定时器,以一定的频率默认是(30ms)从显存中拿出显示的信息, 然后,当有VNC client连接上以后,定期的发送给VNC client就可以了。这里描述的只...转载 2020-04-03 09:09:34 · 5580 阅读 · 0 评论