虚拟化是对所有IT资源的虚拟化,以此来提高物理硬件的灵活性以及利用效率。云计算中的计算和存储资源分别由计算虚拟化和存储虚拟化提供,而网络作为IT的重要资源也有相应的虚拟化技术,网络资源则是由网络虚拟化提供。网络是由各种设备组成,有传统的物理网络,还有运行在服务器上看不到的虚拟网络,而网络虚拟化的首要目标就是如何呈现和管理他们。
将物理网络虚拟出多个相互隔离的虚拟网络,从而使得不同用户之间使用独立的网络资源,提高网络资源的利用率,实现弹性的网络。VLAN就是一种网络虚拟化,在原有网络基础上通过VLAN Tag划分出多个广播域。网络虚拟化保障我们创建出来的虚拟机可以正常通信、访问网络。
(1)传统数据中心无法满足部署多台虚拟机的要求,网络架构相对固定。
(2)云计算数据中心满足的部署多台虚拟机的要求,网络架构会随着虚拟机的迁移而改变,满足虚拟机的迁移。
(1)节省物理主机的网卡设备资源,而且可以提供应用的虚拟网络所需要的L2-L7层网络服务。(网络服务以OSI七层模型来比较,从上往下依次为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。L2-L7层网络服务就分别是:数据链路层、网络层、传输层、会话层、表示层、应用层)
(2)网络虚拟化软件提供逻辑上的交换机和路由器(L2-L3)、逻辑负载均衡器、逻辑防火墙(L4-L7)等,且可以以任何形式进行组装,从而为虚拟机提供一个完整的L2-L7层的虚拟网络拓扑。
(1)路由器:工作在网络层,连接两个不同的网络。
(2)二层交换机:工作在设局链路层,转发数据。
(3)三层交换机:工作在网络层,结合了部分路由和交换机的功能。
(4)服务器网卡:提供通信服务。
(1)与物理层解耦
接管所有的网络服务、特性和应用的虚拟网络必要的配置,简化这些服务、配置,将它们映射给虚拟化层,使用服务的应用只需要和虚拟化网络层打交道。
(2)网络服务抽象化
虚拟网络层可以提供逻辑接口、逻辑交换机和路由器等等,并确保这些网络设备和服务的监控、QoS和安全,可以和任意安全策略自由结合成任意拓扑的虚拟网络。
(3)网络按需自动化
通过API自动化部署,一个完整的、功能丰富的虚拟网络可以自由部署在底层物理设备上。通过网络虚拟化,每个应用的虚拟网络和安全拓扑拥有移动性。
(4)多租户网络安全隔离
计算机虚拟化使多种业务或不同租户资源共享同一个数据中心资源,但其同时需要为多租户提供安全隔离网络。
网卡虚拟化的方法:
①软件网卡虚拟化:主要通过软件控制各个虚拟机共享同一块物理网卡实现虚拟机通信。软件虚拟出来的网卡可以有单独的MAC地址、IP地址。所有虚拟机的虚拟网卡通过虚拟交换机以及物理网卡连接至物理交换机。虚拟交换机负责将虚拟机上的数据报文从物理网口发出去。会增大I/O开销。
②硬件网卡虚拟化:主要用到的技术是单根I/O虚拟化,就是I/O直通技术,通过硬件的辅助可以让虚拟机直接访问物理设备,而不需要通过虚拟机虚拟化层VMM。该技术可以直接虚拟出128-512个网卡,可以让虚拟机都拿到一块独立的网卡,直接使用I/O资源。单根I/O虚拟化能够让网络传输绕过软件模拟层,直接分配到虚拟机,这样就降低了软件模拟层中的I/O开销。
OVS开放虚拟化软件交换机,是一款基于软件实现的开源虚拟以太网交换机,使用开源Apache2.0许可协议,主要用于虚拟机VM环境。OVS与众多开源的虚拟化平台相整合(支持Xen、KVM以及VirtualBox多种虚拟化技术),主要有两个作用:①传递虚拟机之间的流量,实现虚拟机和虚拟机通信;②实现虚拟机和外界网络的通信。
虚拟化中的网络架构通常使用虚拟交换机来连接虚拟机与物理交换机,实现虚拟机之间的通信。
(1)虚拟化中的关键网络资源大致可以分为:
①物理资源:物理服务器(提供物理网卡)、物理交换机(提供物理网络)。
②虚拟资源:虚拟机(提供虚拟网卡)、虚拟交换机(提供虚拟交互端口(组)和上行链路)。
(2)虚拟交换机在虚拟化网络中起到承上启下的作用。
(1)相同端口组不同服务内的虚拟机通讯需要经过物理网络。
(2)相同端口组相同服务内的虚拟机通讯不需要经过物理网络。
(3)不同端口组相同服务内的虚拟机通讯需要经过物理网络。
虚链路聚合VPC,是最常见的二层虚拟化技术。链路聚合将多个物理端口捆绑再起,虚拟成为一个逻辑端口。但传统链路聚合不能跨设备,VPC很好解决了这个问题,既可以跨设备,又可以增加链路带宽、实现链路层的高可用性。
(1)隧道协议:指通过隧道协议使得不同协议的网络实现互联。使用隧道传递的数据可以是不同协议的数据帧或者包。隧道可以将数据流强制送到特定地址,并隐藏中间节点的网络地址,还可根据需要,提供对数据加密的功能。
(2)典型的隧道的协议:
①GRE:通用路由封装。
②IPsec:Internet协议安全。
(1)虚拟网络:是由虚拟链路组成的网络。
(2)虚拟网络节点之间的连接并不使用物理线缆连接,而是依靠特定的虚拟化链路相连。
(3)典型的虚拟网络包括:层叠网络(虚拟二层延伸网络)、VPN网络。
(1)层叠网络:在现有网络的基础上搭建另外一种网络。
(2)层叠网络允许对没有IP地址标识的目的主机路由信息。
(3)层叠网络可以充分利用现有资源,在不增加成本的前提下,提供更多的服务(比如:ADSL Internet接入线路就是基于已经存在的PSTN网络实现)。
虚拟扩展局域网VXLAN:很好地解决了现有VLAN技术无法满足大二层网络需求的问题。原理是引入一个UDP格式的外层隧道作为数据链路层,而原有数据报文内容作为隧道净荷加以传输。
虚拟专用网VPN是一种常用于连接中、大型企业或团体与团体间私人网络的通信方法。通过公用的网络架构(比如互联网)来传送内联网的信息。利用已加密的隧道协议来达到保密、终端认证、信息准确性等安全效果。这种技术可以再不安全的网络上传输可靠的、安全的信息。
这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我