虚拟化技术

第三章 虚拟化技术

3.1 虚拟化技术简介
3.2 虚拟化技术原理
3.3 常见的虚拟化技术解决方案
3.4 常见虚拟化技术的应用实践

前言:近年来,计算机硬件与软件的性能比以往有了极大的发展与进步,计算机硬件的发展为
人们提供了极其强大的计算能力和极其丰富的计算资源,如不加以有效利用将会造成资源浪
费。同时,随着计算机软件的发展,用户使用计算机的场合越来越多,这又导致用户对计算机
的需求与要求越来越多,网络安全、数据灾备、系统移植、系统升级、软硬件成本等都成了使
用计算机过程中要考虑和解决的问题。而虚拟化技术的出现与应用,为用户提供了解决这些问
题的完美方案。本章就将介绍云计算与大数据技术紧密相关的虚拟化技术。

3.1.1虚拟化技术的概念

虚拟化技术的产生是计算机技术发展道路上的一个趋势和必然现象,在计算机发展道路上起到了重要的作用,虚拟化的技术早在20世纪50年代就已经提出,第一次 将虚拟化的技术应用到商业应用中还是20世纪的60年代,并且将虚拟化技术提出并应用到商业中的第一个公司就是IBM,IBM可以说是在虚拟化技术方面一 直是领导者,现在虚拟化的技术用到的地方太多了,随便举例吧,无论是操作系统的虚拟内存,还是说是虚拟机或者目前的服务器的虚拟化或者是PC的虚拟化等都 是离不开虚拟化技术。随着虚拟化技术的广泛使用,为数据中心和应用部署带来了新的管理与部署方式,虚拟化技术的使用,提高了高效便捷的管理,提高了资源的 利用率,虚拟化技术目前以成为多家商业巨头的重要企业战略。

虚拟化就是将原本运行在真实环境上的计算机系统或组件运行在虚拟出来的环境 中。一般来说,计算机系统分为若干层次,从下至上包括底层硬件资源、操作系统、 操作系统提供的应用程序编程接口,以及运行在操作系统之上的应用程序。虚拟化技术可以在这些不同层次之间构建虚拟化层,向上提供与真实层次相同或类似的功 能,使得上层系统可以运行在该中间层之上。这个中间层可以解除其上下两层间原本存在的耦合关系,使上层的运行不依赖于下层的具体实现。由于引入了中间层, 虚拟化不可避免地会带来一定的性能影响,但是随着虚拟化技术的发展,这样的开销在不断地减少。根据所处具体层次的不同,“虚拟化”这个概念也具有不同的内 涵,为“虚拟化”加上不同的定语,就形成不同的虚拟化技术。目前,应用比较广泛的虚拟化技术有基础设施虚拟化、系统虚拟化和软件虚拟化等类型。

操 作系统中的虚拟内存技术是计算机业内认知度最广的虚拟化技术。在操作系统中的虚拟内存的的思想就是操作系统在硬盘的某个区域内,将内存中不使用的状态数据 IO到硬盘上,等到某个程序需要使用的数据不在内存中的时候,通过IO操作,将应聘的数据IO到内存中,就算我们的本身的内存很小,但是我们却能运行数据 量很大的程序,原因就是因为,我们在把数据装入内存的过程中,并不是一次性的全部加载。虚拟内存技术屏蔽了程序所需内存空间的存储位置和访问方式等实现细 节,使程序看到的是一个统一的地址空间。可以说,虚拟内存技术向上提供透明的服务时,不论是程序开发人员还是普通用户都感觉不到它的存在。这也体现了虚拟 化的核心理念,以一种透明的方式提供抽象了的底层资源。

3.1.2虚拟化技术的分类

1 网络虚拟化
网络虚拟化相对计算、存储虚拟化来说是比较抽象的,以我们在学校书本上学的那点网络知识来理解网络虚拟化可能是不够的。在我们的印象中,网络就是由各种网络设备(如交换机、路由器)相连组成的一个网状结构,世界上的任何两个人都可以通过网络建立起连接。带着这样一种思路去理解网络虚拟化可能会感觉云里雾里——这样一个庞大的网络如何实现虚拟化?其实,网络虚拟化更多关注的是数据中心网络、主机网络这样比较「细粒度」的网络,所谓细粒度,是相对来说的,是深入到某一台物理主机之上的网络结构来谈的。如果把传统的网络看作「宏观网络」的话,那网络虚拟化关注的就是「微观网络」。网络虚拟化的目的,是要节省物理主机的网卡设备资源。从资源这个角度去理解,可能会比较好理解一点。

为了完成虚拟机在同主机和跨主机之间的通信,需要借助某种“桥梁”来完成用户态到内核态(Guest 到 Host)的数据传输,这种桥梁的角色就是由虚拟的网络设备来完成,上面介绍了一个第三方的开源方案——OVS,它其实是一个融合了各种虚拟网络设备的集大成者,是一个产品级的解决方案。但 Linux 本身由于虚拟化技术的演进,也集成了一些虚拟网络设备的解决方案,主要有以下几种:(1)TAP/TUN/VETHTAP/TUN 是 Linux 内核实现的一对虚拟网络设备,TAP 工作在二层,TUN 工作在三层。Linux 内核通过 TAP/TUN 设备向绑定该设备的用户空间程序发送数据,反之,用户空间程序也可以像操作物理网络设备那样,向 TAP/TUN 设备发送数据。基于 TAP 驱动,即可实现虚拟机 vNIC 的功能,虚拟机的每个 vNIC 都与一个 TAP 设备相连,vNIC 之于 TAP 就如同 NIC 之于 eth。当一个 TAP 设备被创建时,在 Linux 设备文件目录下会生成一个对应的字符设备文件,用户程序可以像打开一个普通文件一样对这个文件进行读写。比如,当对这个 TAP 文件执行 write 操作时,相当于 TAP 设备收到了数据,并请求内核接受它,内核收到数据后将根据网络配置进行后续处理,处理过程类似于普通物理网卡从外界收到数据。当用户程序执行 read 请求时,相当于向内核查询 TAP 设备是否有数据要发送,有的话则发送,从而完成 TAP 设备的数据发送。TUN 则属于网络中三层的概念,数据收发过程和 TAP 是类似的,只不过它要指定一段 IPv4 地址或 IPv6 地址,并描述其相关的配置信息,其数据处理过程也是类似于普通物理网卡收到三层 IP 报文数据。VETH 设备总是成对出现,一端连着内核协议栈,另一端连着另一个设备,一个设备收到内核发送的数据后,会发送到另一个设备上去,这种设备通常用于容器中两个 namespace 之间的通信。(2)BridgeBridge 也是 Linux 内核实现的一个工作在二层的虚拟网络设备,但不同于 TAP/TUN 这种单端口的设备,Bridge 实现为多端口,本质上是一个虚拟交换机,具备和物理交换机类似的功能。Bridge 可以绑定其他 Linux 网络设备作为从设备,并将这些从设备虚拟化为端口,当一个从设备被绑定到 Bridge 上时,就相当于真实网络中的交换机端口上插入了一根连有终端的网线。如下图所示,Bridge 设备 br0 绑定了实际设备 eth0 和 虚拟设备设备 tap0/tap1,当这些从设备接收到数据时,会发送给 br0 ,br0 会根据 MAC 地址与端口的映射关系进行转发。 Bridge 与 TAP/TUN 的关系 因为 Bridge 工作在二层,所以绑定到它上面的从设备 eth0、tap0、tap1 均不需要设 IP,但是需要为 br0 设置 IP,因为对于上层路由器来说,这些设备位于同一个子网,需要一个统一的 IP 将其加入路由表中。这里有人可能会有疑问,Bridge 不是工作在二层吗,为什么会有 IP 的说法?其实 Bridge 虽然工作在二层,但它只是 Linux 网络设备抽象的一种,能设 IP 也不足为奇。对于实际设备 eth0 来说,本来它是有自己的 IP 的,但是绑定到 br0 之后,其 IP 就生效了,就和 br0 共享一个 IP 网段了,在设路由表的时候,就需要将 br0 设为目标网段的地址。总结传统网络架构到虚拟化的网络架构,可以看作是宏观网络到微观网络的过渡TAP/TUN/VETH、Bridge 这些虚拟的网络设备是 Linux 为了实现网络虚拟化而实现的网络设备模块,很多的云开源项目的网络功能都是基于这些技术做的,比如 Neutron、Docker network 等。OVS 是一个开源的成熟的产品级分布式虚拟交换机,基于 SDN 的思想,被大量应用在生产环境中。
2.储存虚拟化
存储虚拟化是指通过在存储设备上加入一个逻辑层,管理员通过逻辑层访问或者调整存储资源,提高存储利用率。这样便于集中的存储设备以及提供更好的性能和易用性。存储虚拟化包括基于主机的存储虚拟化方式、基于存储设备的虚拟化方式以及基于网络的存储虚拟化方式。基于主机的虚拟存储依赖于代理或管理软件,通过在一个或多个主机上进行安装和部署,来实现存储虚拟化的控制和管理。这种方法的可扩充性较差,实际运行的性能不是很好。由于这种方法要求在主机上安装控制软件,因此一个主机的故障可能影响整个SAN系统中数据的完整性。基于主机的虚拟化实现起来比较容易,设备成本最低。基于存储设备的存储虚拟化是在通过第三方的虚拟软件,基于存储的虚拟化通常只能提供一种不完全的存储虚拟化解决方案。这种技术主要用在同一存储设备内部,进行数据保护和数据迁移。优势在于与主机无关,不占用主机资源,数据管理功能丰富。容易和某个特定存储供应商的设备相协调,所以更容易管理。
基于网络的虚拟化方法是在网络设备之间实现存储虚拟化功能:1.基于互联设备的虚拟化基于互联设备的虚拟化方法能够在专用服务器上运行,使用标准操作系统,例如Windows、Linux或供应商提供的操作系统。这种方法具有基于主机方法的诸多优势——易使用、设备便宜。但是,基于设备的方法也有一些不足,机的故障或不适当的主机配置都可能导致访问到不被保护的数据。2. 基于路由器的虚拟化基于路由器的方法是在路由器固件上实现存储虚拟化功能。在此方法中,路由器被放置于每个主机到存储网络的数据通道中,用来截取网络中任何一个从主机到存储系统的命令。由于不依赖于在每个主机上运行的代理服务器,这种方法比基于主机或基于设备的方法具有更好的安全性。当连接主机到存储网络的路由器出现故障时,仍然可能导致主机上的数据不能被访问。但是只有联结于故障路由器的主机才会受到影响,其他主机仍然可以通过其他路由器访问存储系统。路由器的冗余可以支持动态多路径,这也为上述故障问题提供了一个解决方法。基于网络的存储虚拟化是通过在存储区域网(SAN)中添加虚拟化引擎实现的。主要用于异构存储系统的整合和统一数据管理。它的优势是:第一,与主机无关,不占用主机资源;第二,能够支持异构主机、异构存储设备;第三,能使不同存储设备的数据管理功能统一;第四,可以构建统一管理平台,可扩展性好。但也存在缺点:第一,部分厂商数据管理功能弱,难以达到虚拟化统一数据管理的目的;第二,部分厂商产品成熟度较低,仍然存在和不同存储和主机的兼容性问题。
3.服务器虚拟化
虚拟化是一种方法,本质上讲是指从逻辑角度而不是物理角度来对资源进行配置,是从单一的逻辑角度来看待不同的物理资源的方法。以此出发,虚拟化是一种逻辑角度出发的资源配置技术,是物理实际的逻辑抽象。比如说,当前只有一台计算机,通过虚拟技术,在用户看来,可以多台,每台都有其各自的CPU、内存、硬盘等物理资源。
对于用户,虚拟化技术实现了软件跟硬件分离,用户不需要考虑后台的具体硬件实现,而只需在虚拟层环境上运行自己的系统和软件。而这些系统和软件在运行时,也似乎跟后台的物理平台无关。
服务器虚拟化技术是将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器,我们不再受限于物理上的界限,而是让CPU、内存、磁盘、I/0等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理,实现服务器资源整合,让IT对业务的变化更具适应力。
虚拟化的概念在20世纪60年代首次出现,利用它可以对属于稀有而昂贵资源的大型机硬件进行分区。随着时间的推移,微型计算机和PC可提供更有效、更经济的方法来分配处理能力,因此到20世纪80年代,虚拟技术已不再广泛使用。
但是到了20世纪90年代,研究人员开始探索如何利用虚拟化解决与廉价硬件激增相关的一些问题,例如,利用率不足、管理成本不断攀升和易受攻击等。虚拟化技术处于时代前沿,可以帮助企业升级和管理他们在世界各地的IT基础架构并确保其安全。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
所有的IT设备,不管是PC、服务器还是存储,都有一个共同点:它们被设计用来完成一组特定的指令。这些指令组成一个指令集。对于虚拟技术而言,“虚拟”实际上就是指的虚拟这些指令集。虚拟机有许多不同的类型,但是它们有一个共同的主题就是模拟一个指令集的概念。每个虚拟机都有一个用户可以访问的指令集。虚拟机把这些虚拟指令“映射”到计算机的实际指令集。硬分区、软分区、逻辑分区、Solaris Container、VMware、Ken、微软Hyper—V这些虚拟技术都是运用的这个原理,只是虚拟指令集所处的层次位置不同。无论哪一种虚拟技术,都要求需要实施虚拟化的物理服务器能够良好地支持这些的虚拟化指令集。
裸金属架构

裸金属服务器再度流行,目前阿里云、华为云、腾讯云等各大厂商都推出了自己的裸金属服务器,那么到底什么是裸金属服务器?裸金属服务器的架构原理是什么?什么是裸金属服务器?裸金属服务器(Bare Metal Server)类似云上的专属物理服务器,在拥有弹性灵活的基础上,具有高性能的计算能力。计算性能与传统物理机无差别,具有安全物理隔离的特点。裸金属服务器再度流行?目前云计算各大厂商都推出了自己的裸金属服务器,例如:阿里云的弹性裸金属服务器,腾讯云的黑石服务器,华为的BMS裸金属服务器,为何裸金属服务器再度流行?主要是由于以下几点原因:物理机才有安全感部分企业,尤其是大型企业,对于将私有数据中心迁移到公有云有些许担忧,裸金属服务器可以给用户物理机一样的安全感。性能要求较高如果用户的应用程序对性能要求敏感,这时候选择裸金属服务器是最佳的选择。安全监管某些应用场景对数据安全和监管要求非常严格,虚拟机无法满足用户要求,需要独占物理机,显然裸金属服务器是比较合适的选择。传统托管的弊端用户选择传统的服务器托管模式需要耗费更多时间去采购设备、部署等,这个流程比较复杂,周期也比较长,无法及时响应业务变化,这时候裸金属服务器比较合适。虚拟机与物理机相结合场景用户上云可能会存在多种形态的计算资源,某些情况下虚拟机无法满足复杂的应用场景,这时候可能就需要需要虚拟机和物理机相结合的场景,裸金属服务器应运而生。
寄居架构
全虚拟化
如果一个基于硬件运行(native)的OS不需要修改任何代码就可以直接跑在VMM上,也就是guest OS根本感知不到自己运行在一个虚拟化环境中(可以说VMM是骗术高明的),这种就被称为“完全虚拟化”。在这种模式下,VMM需要正确处理guest所有可能的指令。最简单直接的方法就是,VMM对guest运行过程中的每一条指令都进行解释和执行,模拟出这条指令执行的效果,这种方法既适用于和VMM相同体系结构的guest,也能用于模拟和VMM不同体系结构的guest(比如物理CPU是x86的,而guest是基于ARM的),其缺点也很明显,就是性能太差。有一些指令是要操作特权资源的,比如修改虚拟机的运行模式或者下面物理机的状态,读写时钟或者中断寄存器,这些指令被称为敏感指令,确实不适合由guest直接来控制。然而其他的一些非敏感指令,是完全可以在物理CPU上直接执行并返回结果给guest的,VMM只需要截获并模拟guest对敏感指令的执行和对特权资源的访问就可以了,以intel的VT-x和AMD的AMD-V为代表的硬件辅助虚拟化技术,就可以帮助VMM高效地识别和截获这些敏感指令。半虚拟化
半虚拟化:半虚拟化技术是后来才出现的技术,也叫做准虚拟化技术,现在比较热门,它就是在全虚拟化的基础上,把客户操作系统进行了修改,增加了一个专门的API,这个API可以将客户操作系统发出的指令进行最优化,即不需要VMM耗费一定的资源进行翻译操作。
硬件辅助虚拟化
你的CPU只有4个线程,不还是可以同时运行一大堆应用么。比如一边看网页,一边听音乐,一边敲代码,一边编译,等。这在本质上和overcommit你的CPU来跑虚拟机没什么区别,就是个时分复用,由host OS的scheduler来调度各个线程/vCPU。因为你大多数的vCPU都是处于idle的状态,于是它们本质上并不会占用你的物理线程。你可以试试让所有的虚拟机同时运行CPU bound的application来感受一下。
操作系统虚拟化
操作系统虚拟化目前还是处于非主流状态.2006年11月8日,权威研究机构Gartner发布了一份服务器技术发展的研究报告,其中有一个不同寻常的预测:到2010年,共享的操作系统虚拟化将成为主流虚拟化技术.文中提到的服务器操作系统虚拟化厂商包括:Sun Solaris Containers,SWsoft Virtuozzo,以及IBM z/OS和HP.
服务虚拟化
桌面虚拟化
应用虚拟化
3.1.3虚拟化技术的优势和劣势

虚拟化技术的bai优势:
  ①更高的资源利用率——虚拟可支持实现物理资源和资源池的动态共享,提高资源利用率,特别是针对那些平均需求远低于需要为其提供专用资源的不同负载。
  ②降低管理成本——虚拟可通过以下途径提高工作人员的效率:减少必须进行管理的物理资源的数量;隐藏物理资源的部分复杂性;通过实现自动化、获得更好的信息和实现中央管理来简化公共管理任务;实现负载管理自动化。另外,虚拟还可以支持在多个平台上使用公共的工具。
  ③提高使用灵活性——通过虚拟可实现动态的资源部署和重配置,满足不断变化的业务需求。
  ④提高安全性——虚拟可实现较简单的共享机制无法实现的隔离和划分,这些特性可实现对数据和服务进行可控和安全的访问。
  ⑤更高的可用性——虚拟可在不影响用户的情况下对物理资源进行删除、升级或改变。
  ⑥更高的可扩展性——根据不同的产品,资源分区和汇聚可支持实现比个体物理资源小得多或大得多的虚拟资源,这意味着您可以在不改变物理资源配置的情况下进行规模调整。
  ⑦互操作性和投资保护——虚拟资源可提供底层物理资源无法提供的与各种接口和协议的兼容性。
  ⑧改进资源供应——与个体物理资源单位相比,虚拟能够以更小的单位进行资源分配。
  虚拟所能提供的优势取决于客户的目标、所选择的特殊虚拟技术以及现有的IT基础架构。 并非所有的客户都能够从实现某一特殊虚拟化解决方案中获得同样的利益。 现在,即使是使用虚拟化进行简单的服务器整合,客户们也经常可以在某种程度上获得以下很多利益: 更高的资源利用率——虚拟可支持实现物理资源和资源池的动态共享,提高资源利用率,特别是针对那些平均需求远低于需要为其提供专用资源的不同负载。 n 降低管理成本——虚拟可通过以下途径提高工作人员的效率:减少必须进行管理的物理资源的数量; 隐藏物理资源的部分复杂性; 通过实现自动化、获得更好的信息和实现中央管理来简化公共管理任务; 实现负载管理自动化。 另外,虚拟还可以支持在多个平台上使用公共的工具。 n 提高使用灵活性——通过虚拟可实现动态的资源部署和重配置,满足不断变化的业务需求。 n 提高安全性——虚拟可实现较简单的共享机制无法实现的隔离和划分,这些特性可实现对数据和服务进行可控和安全的访问。 n 更高的可用性——虚拟可在不影响用户的情况下对物理资源进行删除、升级或改变。 n 更高的可扩展性——根据不同的产品,资源分区和汇聚可支持实现比个体物理资源小得多或大得多的虚拟资源,这意味着您可以在不改变物理资源配置的情况下进行规模调整。 n 互操作性和投资保护——虚拟资源可提供底层物理资源无法提供的与各种接口和协议的兼容性。 n 改进资源供应——与个体物理资源单位相比,虚拟能够以更小的单位进行资源分配1、缺乏虚拟bai化的总体规划
在部署虚拟化之前缺乏总体规划是当前虚拟化存在的最大陷阱。例如,部分用户只为提高部分应用中的服务器资源利用效率,缺乏对服务器、负载、应用和业务需求的全面研究和规划,等到应用了虚拟化软件之后,才认识到虚拟化需要针对不同的工作负载进行不同的考虑,并对不同的负载采用不同的方案,随之还会涉及虚拟应用的整合比等问题。还有很多用户对TCO研究不足,甚至在上虚拟机之前根本未考虑到还需在硬件、基础架构方面作出更多的深入分析和优化的投入。没有前期规划,会给虚拟化应用带来极大的风险。
2、缺乏虚拟化的系统管理
很多用户对虚拟化系统的管理没有充分认知,在部署后也没有重视并实施具体的管理方法,这很可能会导致虚拟环境产生性能问题,并给IT人员带来无尽的新的头疼问题。例如,在容量、性能、配置或自动化部署和管理等方面,虚拟化必然会成为一系列新问题的导火索。轻视虚拟化应用中的系统管理的复杂程度,造成系统管理不到位,将是虚拟化应用中致命的问题。
3、虚拟机负载过重
虚拟化可以对资源进行动态配置,从而处理更多,或者更少的负载,这种作法似乎可以解决虚拟设施可能负载过重的问题。但这并不意味着虚拟服务器就是永远压不垮的。虚拟技术有其自己的限制,在基础设施中添加其无法应付的太多虚拟机会适得其反。很多用户在配置虚拟机时对物理机的承受能力没有进行深入分析。
4、缺少测试环节
虚拟化是实现快速资源服务的途径,但这并不意味着IT部门就可以忽视虚拟机实施前和向虚拟基础设施分配应用之前的容量规划和测试。很多企业用户在应用了动态虚拟机之后才意识到没有测试I/O、占用率等其他问题,就匆匆将新的应用或服务器搬进了虚拟环境。这往往会带来很大的问题。
5、没有持续优化
在虚拟化中,大量的需求都是动态的。这也意味着企业在部署虚拟化的相关解决方案之后需要进行持续地管理与优化。很多用户在这个方面做得非常不够。企业的IT主管必须从一开始就做好虚拟机生命周期管理规划,并同时配备相关虚拟化管理制。有诸多优点自然也伴随着不足之处,当然并不是每一个应用程序可以虚拟化。有些应用程序需要直接调用硬件,必须在共享的内存空间中运行,或者需要一个只与特定的设备兼容的专用的设备驱动程序。

前期高额的费用
虽然从长远来看,虚拟化技术是有经济效益的。当然考虑到更长久,我们不得不在硬件上投入更多的资金。从长远来看,肯定会节省开支,但是现实成本还是挺高的。

降低硬件利用率
这点似乎和上面所说的优点矛盾了,其实只是角度不同而已。虚拟化必然需要占用一部分资源(CPU/内存/硬盘),一个可以发挥出100%性能的物理机,加上虚拟化以后,可能只能发挥出80%的性能,所以又说它会降低资源的利用率。因此某些极度吃资源的应用可能并不适用于虚拟化的环境。

更大的错误影响面
在常规配置下,虚拟机存储于本地物理机硬盘上。真实物理机down机,上面的虚拟机将全部不可用。另外物理机硬盘损坏,一般可以恢复出绝大部分文件,但碰巧坏的是虚拟机镜像文件,结果虚拟机里面的文件可能全部损坏。

实施配置复杂,管理复杂
通常的IT管理员并不能很好的排查并解决虚拟化使用过程中的问题,例如经常碰到的VM不能启动或者卡死,没有真实物理机那么好解决。

一定的限制性
使用虚拟化技术的一个主要缺点是,它涉及到各种限制。并非所有的服务器和应用程序虚拟化是友好的,这意味着你的企业的IT基础设施的某些方面可能与虚拟化解决方案兼容。为此,应该考虑的是,仍然有不完全支持虚拟化环境的供应商。

安全性
虽说虚拟化技术在安全上已经很不错了,但是虚拟化技术自身也存在着一定的安全隐患。虚拟化过程的目的是分离虚拟化的资源,但是仍然有一些情况下,服务器意外地对其他不应该看到它们的人可见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值