<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>云计算 on 夜云泊</title>
    <link>https://lifeislife.cn/tags/%E4%BA%91%E8%AE%A1%E7%AE%97/</link>
    <description>feedId:57980998056508425+userId:73222296380546048 Recent content in 云计算 on 夜云泊</description>
    <generator>Hugo -- 0.167.0</generator>
    <language>zh</language>
    <lastBuildDate>Fri, 09 Jun 2023 21:42:59 +0000</lastBuildDate>
    <atom:link href="https://lifeislife.cn/tags/%E4%BA%91%E8%AE%A1%E7%AE%97/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>云计算基础技术汇总</title>
      <link>https://lifeislife.cn/posts/%E4%BA%91%E8%AE%A1%E7%AE%97%E5%9F%BA%E7%A1%80%E6%8A%80%E6%9C%AF%E6%B1%87%E6%80%BB/</link>
      <pubDate>Fri, 09 Jun 2023 21:42:59 +0000</pubDate>
      <guid>https://lifeislife.cn/posts/%E4%BA%91%E8%AE%A1%E7%AE%97%E5%9F%BA%E7%A1%80%E6%8A%80%E6%9C%AF%E6%B1%87%E6%80%BB/</guid>
      <description>&lt;h1 id=&#34;云计算服务类型&#34;&gt;云计算服务类型&lt;/h1&gt;
&lt;p&gt;传统架构=&amp;gt;Iaas=&amp;gt;Paas=&amp;gt;Saas&lt;/p&gt;
&lt;p&gt;自己烧饭=&amp;gt; 叮咚买菜=&amp;gt; 美团外卖=&amp;gt; 餐厅吃饭&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-36-45-b25eafa700db3dce390dab2aeb3af4f9-20230531093640-f17dbe.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-36-45-b25eafa700db3dce390dab2aeb3af4f9-20230531093640-f17dbe.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h1 id=&#34;云计算部署形式以及应用&#34;&gt;云计算部署形式以及应用&lt;/h1&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;类型&lt;/th&gt;
					&lt;th&gt;描述&lt;/th&gt;
					&lt;th&gt;优点&lt;/th&gt;
					&lt;th&gt;缺点&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;私有云&lt;/td&gt;
					&lt;td&gt;利用已有设备自我构建，云端资源只给内部人员使用。&lt;/td&gt;
					&lt;td&gt;安全性高&lt;/td&gt;
					&lt;td&gt;维护成本高&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;社区云、行业云&lt;/td&gt;
					&lt;td&gt;为特定行业构建共享基础设施的云。&lt;/td&gt;
					&lt;td&gt;有一套用户体系&lt;/td&gt;
					&lt;td&gt;维护成本高&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;公有云&lt;/td&gt;
					&lt;td&gt;构建大型基础设施云出租给公众。&lt;/td&gt;
					&lt;td&gt;用户来说成本低，服务多&lt;/td&gt;
					&lt;td&gt;安全性低&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;混合云&lt;/td&gt;
					&lt;td&gt;两种或者两种以上的云组成的云服务&lt;/td&gt;
					&lt;td&gt;敏捷，灵活，降低成本&lt;/td&gt;
					&lt;td&gt;兼容性问题&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;应用&#34;&gt;应用&lt;/h2&gt;
&lt;p&gt;存储云、医疗云、教育云、企业云、金融云、游戏云、桌面云&lt;/p&gt;
&lt;h1 id=&#34;关键技术&#34;&gt;关键技术&lt;/h1&gt;
&lt;h2 id=&#34;虚拟化&#34;&gt;虚拟化&lt;/h2&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/10-28-09-8bfe3f3fcd50903c6f72132d36c19f3e-20230531102804-d53750.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/10-28-09-8bfe3f3fcd50903c6f72132d36c19f3e-20230531102804-d53750.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h2 id=&#34;分布式存储&#34;&gt;分布式存储&lt;/h2&gt;
&lt;p&gt;将数据存储在不同的物理设备中。这种模式不仅摆脱了硬件设备的限制，同时&lt;strong&gt;扩展性更好&lt;/strong&gt;，能够快速响应用户需求的变化（整合存储资源提供动态可伸缩资源池的分布式存储技术)&lt;/p&gt;
&lt;h2 id=&#34;数据中心联网&#34;&gt;数据中心联网&lt;/h2&gt;
&lt;p&gt;虚拟机之间需要实时同步大量的数据，产生大量东西流量。&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/10-38-24-9e7878e87965a767076d4071dd0e354f-20230531103820-7087aa.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/10-38-24-9e7878e87965a767076d4071dd0e354f-20230531103820-7087aa.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h2 id=&#34;并行编程&#34;&gt;并行编程&lt;/h2&gt;
&lt;p&gt;在并行编程模式下，并发处理、容错、数据分布、负载均衡等细节都被抽象到一个函数库中，通过统一接口，用户大尺度的计算任务被自动并发和分布执行，即将一个任务自动分成多个子任务，并行地处理海量数据。&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/16-17-02-45f21028b6e199dccd616053e8e43db8-20230602161656-9db753.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/16-17-02-45f21028b6e199dccd616053e8e43db8-20230602161656-9db753.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h2 id=&#34;体系结构&#34;&gt;体系结构&lt;/h2&gt;
&lt;p&gt;云计算平台体系结构由用户界面、服务目录、管理系统、部署工具、监控和服务器集群组成。&lt;/p&gt;
&lt;h2 id=&#34;自动化部署&#34;&gt;自动化部署&lt;/h2&gt;
&lt;p&gt;对云资源进行自动化部署指的是基于脚本调节的基础上实现不同厂商对于设备工具的自动配置，用以减少人机交互比例、提高应变效率，避免超负荷人工操作等现象的发生，最终推进智能部署进程。&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-46-31-bc2856698d6f9b760f7cad0b1bff7ef1-20230605084626-c49970.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-46-31-bc2856698d6f9b760f7cad0b1bff7ef1-20230605084626-c49970.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h1 id=&#34;云服务提供商&#34;&gt;云服务提供商&lt;/h1&gt;
&lt;p&gt;亚马逊云、腾讯云、阿里云、百度云、华为云&lt;/p&gt;
&lt;p&gt;技术架构：开源（Xen,KVM），Vmware，微软 hyper-v，阿里飞天 Apsara&lt;/p&gt;
&lt;p&gt;开源云管理平台：OpenStack&lt;/p&gt;
&lt;h1 id=&#34;虚拟化简介&#34;&gt;虚拟化简介&lt;/h1&gt;
&lt;p&gt;虚拟化：一种计算机资源管理技术，将各种 T 实体资源抽象、转换成另一种形式的技术都是虚拟化。
作用：通过该技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机，每个逻辑计算机可运行不同的操作系统，并且应用程序都可以在相互独立的空间内运行而互不影响，从而&lt;strong&gt;显著提高计算机的工作效率&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;从行业数据互相关联的角度来说，云计算是极度依赖虚拟化的。但虚拟化并非云计算，云计算也并非虚拟化。&lt;strong&gt;虚拟化只是云计算的核心技术，但并非云计算的核心关注点&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;云计算是一种服务。虚拟化是云计算的技术基础。&lt;/p&gt;
&lt;h2 id=&#34;虚拟化相关的几个概念&#34;&gt;虚拟化相关的几个概念&lt;/h2&gt;
&lt;p&gt;Guest OS:运行在虚拟机之上的 OS
Guest Machine:虚拟出来的虚拟机
VMM:虚拟机监控器，即虚拟化层 (Virtual Machine Monitor,VMM)
Host OS:运行在物理机之上的 OS
Host Machine:物理机&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/12-08-35-2a578c6b5ecfe26034e87a65aafd21da-20230531120830-e26a24.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/12-08-35-2a578c6b5ecfe26034e87a65aafd21da-20230531120830-e26a24.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h2 id=&#34;虚拟化类型&#34;&gt;虚拟化类型&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;虚拟化类型&lt;/th&gt;
					&lt;th&gt;描述&lt;/th&gt;
					&lt;th&gt;特点&lt;/th&gt;
					&lt;th&gt;案例&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;寄居虚拟化（Type2）&lt;/td&gt;
					&lt;td&gt;在主机（宿主）操作系统上安装和运行虚拟化程序&lt;/td&gt;
					&lt;td&gt;- 简单、易于实现。&lt;br /&gt;- 安装和运行应用程序依赖于主机操作系统对设备的支持。&lt;br /&gt;- 有两层 OS，管理开销较大，性能损耗大。&lt;br /&gt;- 虚拟机对各种物理设备 (cpu、内存、硬盘等) 的调用，都通过虚拟化层和宿主机的 OS 一起协调才能完成。&lt;/td&gt;
					&lt;td&gt;- Vmware&lt;br /&gt;- VirturalBox&lt;br /&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;裸金属虚拟化 (Type1)&lt;/td&gt;
					&lt;td&gt;直接将 VMM 安装在硬件设备上，VMM 在这种模式下又叫做 Hypervisor，虚拟机有指令要执行时，Hypervisors 会接管该指令，模拟相应的操作。&lt;/td&gt;
					&lt;td&gt;- 不依赖于操作系统。&lt;br /&gt;- 支持多种操作系统，多种应用。&lt;br /&gt;- 依赖虚拟层内核和服务器控制台进行管理。&lt;br /&gt;- 需要对虚拟层的内核进行开发（难度大）。&lt;/td&gt;
					&lt;td&gt;- VMware ESX&lt;br /&gt;- Xen&lt;br /&gt;- 华为 FusionSphere&lt;br /&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;混合虚拟化&lt;/td&gt;
					&lt;td&gt;在一个现有的正常操作系统下&lt;strong&gt;安装一个内核模块&lt;/strong&gt;，内核拥有虚拟化能力。(相当于寄居与裸金属的混合)&lt;/td&gt;
					&lt;td&gt;- 相对于寄居虚拟化架构，性能高。&lt;br /&gt;- 相对于裸金属虚拟化架构，不需要开发内核。&lt;br /&gt;- 可支持多种操作系统。&lt;br /&gt;- 需底层硬件支持虚拟化扩展功能。&lt;/td&gt;
					&lt;td&gt;- KVM&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;寄居虚拟化（Type2）&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-24-43-35c85e077a5dc39f5f17e5a2ba879e16-20230602142439-ca0fee.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-24-43-35c85e077a5dc39f5f17e5a2ba879e16-20230602142439-ca0fee.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;p&gt;裸金属虚拟化 (Type1)&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-24-29-4e00e51ef3d07ece5d29fa6a297b2f5b-20230602142424-f05f39.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-24-29-4e00e51ef3d07ece5d29fa6a297b2f5b-20230602142424-f05f39.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;p&gt;混合虚拟化&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-24-07-e0079492f1d08c44e5c5bf88944f6e42-20230602142402-80ad49.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-24-07-e0079492f1d08c44e5c5bf88944f6e42-20230602142402-80ad49.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h2 id=&#34;虚拟化层架构&#34;&gt;虚拟化层架构&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;架构&lt;/th&gt;
					&lt;th&gt;描述&lt;/th&gt;
					&lt;th&gt;特点&lt;/th&gt;
					&lt;th&gt;典型&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;全虚拟化&lt;/td&gt;
					&lt;td&gt;即所抽象的 VM 具有完全的物理特性，虚拟化层负责捕获 CPU 指令，为指令访问硬件充当媒介。&lt;/td&gt;
					&lt;td&gt;- OS 无需修改。&lt;br /&gt;- 速度和功能都非常不错，使用非常简单。&lt;br /&gt;- 移植性好。&lt;/td&gt;
					&lt;td&gt;- VMware&lt;br /&gt;- KVM&lt;br /&gt;- Virtualbox&lt;br /&gt;- Virtual PC&lt;br /&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;半虚拟化&lt;/td&gt;
					&lt;td&gt;起初是为了解决全虚拟化效率不高的困难，它需要修改 OS，工作效率相对全虚拟化要高很多。Hypervisor 直接安装在物理机上，多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。&lt;/td&gt;
					&lt;td&gt;- 架构更精简。&lt;br /&gt;- 在整体速度上有一定的优势。&lt;br /&gt;- 需要对 OS 进行修改，在用户体验方面比较麻烦。&lt;/td&gt;
					&lt;td&gt;- Xen&lt;br /&gt;- VMWare ESXi&lt;br /&gt;- 微软 Hyper-V&lt;br /&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;硬件辅助虚拟化&lt;/td&gt;
					&lt;td&gt;硬件辅助虚拟化是随着虚拟化技术的应用越来越广泛 lntl、AMD 等硬件厂商通过对硬件的改造来支持虚拟化技术。&lt;br /&gt;&lt;br /&gt;常用于优化全虚拟化和半虚拟化产品，像 VMware Workstation，它虽然属于全虚拟化，但它在 6.0 版本中引入了硬件辅助虚拟化技术，比如 Intel 的 VT-x 和 AMD 的 AMD-V。主流全虚拟化和半虚拟化产品都支持硬件辅助虚拟化。(VirtualBox,KVM,Xen 等)&lt;br /&gt;&lt;/td&gt;
					&lt;td&gt;辅助产品&lt;/td&gt;
					&lt;td&gt;- VT-x&lt;br /&gt;- AMD-V&lt;br /&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;全虚拟化&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/12-21-14-f022c910d48931ce11223d247c888351-20230531122109-78f6d6.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/12-21-14-f022c910d48931ce11223d247c888351-20230531122109-78f6d6.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;p&gt;半虚拟化&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/13-51-35-895d9c73dccc874815424d87298ef8bd-20230531135130-c79d43.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/13-51-35-895d9c73dccc874815424d87298ef8bd-20230531135130-c79d43.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h3 id=&#34;全虚拟化代表-kvm-和半虚拟化代表-xen-架构对比&#34;&gt;全虚拟化代表 KVM 和半虚拟化代表 Xen 架构对比&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;架构&lt;/th&gt;
					&lt;th&gt;描述&lt;/th&gt;
					&lt;th&gt;对比&lt;/th&gt;
					&lt;th&gt;示意图&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;全虚拟化：KVM&lt;/td&gt;
					&lt;td&gt;KVM(Kernel&amp;ndash;Based Virtual Machines) 是一个基于 Linux 内核的虚拟化技术，可以直接将 Linux 内核转换为 Hypervisor。.从而使得 Linuxp 内核能够直接管理虚拟机，直接调用 Linux 内核中的内存管理、进程管理子系统来管理虚拟机。&lt;/td&gt;
					&lt;td&gt;- 支持全虚拟化&lt;br /&gt;- 内置在内核中&lt;br /&gt;- 便于版本安装、升级、维护，性能高&lt;br /&gt;总结：KVM 平台架构侧重性能&lt;/td&gt;
					&lt;td&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/13-50-44-295215a975864579d54f5ea07685e119-20230531135039-2dafa3.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/13-50-44-295215a975864579d54f5ea07685e119-20230531135039-2dafa3.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;半虚拟化：Xen&lt;/td&gt;
					&lt;td&gt;Xen:直接把操作系统内核改了，把 OS 改成一个轻量级 Hypervisor1 在里面运行了一个管理所有资源作资源调度的 Domain0。&lt;br /&gt;组成：由 Xen Hypervisor(虚拟化层)、Domin0(管理主机)、Domin U(用户虚&lt;br /&gt;拟机)&lt;br /&gt;&lt;/td&gt;
					&lt;td&gt;- 支持全虚拟化、半虚拟化&lt;br /&gt;- 需要对内核修改&lt;br /&gt;- 更新版本，Xen 需要重新编译整个内核隔离性好&lt;br /&gt;总结：Xen 平台架构侧重安全性&lt;/td&gt;
					&lt;td&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-18-51-ec8fcb01ac5cda397c51a883587850ea-20230531141846-6f42cf.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-18-51-ec8fcb01ac5cda397c51a883587850ea-20230531141846-6f42cf.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id=&#34;容器&#34;&gt;容器&lt;/h1&gt;
&lt;p&gt;容器：包装或装载物品的贮存器，利用一个开源的应用容器引擎，让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中，然后发布到任一 Liux 或 Windows 机器上，也可以实现虚拟化。相互之间不会有任何接口，实现 App 与操作系统的解耦。&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-49-30-c10e37d44495429910370b47eac70018-20230531144926-f7f9e5.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-49-30-c10e37d44495429910370b47eac70018-20230531144926-f7f9e5.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h2 id=&#34;主流容器技术&#34;&gt;主流容器技术&lt;/h2&gt;
&lt;p&gt;定义：Docker) 属于 Liux 容器的一种封装，提供简单易用的容器使用接口，他是目前最流行的 Linux 容器解决方案。
作用：将应用程序与该程序的依赖，&lt;strong&gt;打包在一个文件里&lt;/strong&gt;。运行这个文件，就会生成一个虚拟容器。程序在这个虚拟容器里运行，就好像在真实的物理机上运行一样。有了 Docker，就不用担心环境问题。&lt;/p&gt;
&lt;p&gt;组成：客户端 (Docker Client)、守护进程 (Docker Daemon)、镜像（Docker Image)、容器 (DockerContainer)、仓库（Docker Registry)&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-53-26-70a710bfca6ebb2d0197a8fb28a89b13-20230531145321-ce6e27.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-53-26-70a710bfca6ebb2d0197a8fb28a89b13-20230531145321-ce6e27.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h2 id=&#34;容器和虚拟化的区别&#34;&gt;容器和虚拟化的区别&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;虚拟化&lt;/th&gt;
					&lt;th&gt;容器&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;隔离性强，有独立的 GUEST OS&lt;/td&gt;
					&lt;td&gt;共享内核和 OS，隔离性弱&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;虚拟化性能差 (&amp;gt;15%)&lt;/td&gt;
					&lt;td&gt;计算/存储无损耗，无 Guest0S 内存开销（200M)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;虚拟机镜像庞大（十几 G 几十 G),且实例化时不能共享&lt;/td&gt;
					&lt;td&gt;Docker 容器镜象 200300M，且公共基础镜象实例化时&lt;br /&gt;可以共享&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;虚拟机镜象缺乏统一标准&lt;/td&gt;
					&lt;td&gt;Docker 提供了容器应用镜象事实标准，OCI 推动进一步标&lt;br /&gt;准化&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;虚拟机创建慢 (&amp;gt;2 分钟)&lt;/td&gt;
					&lt;td&gt;秒级创建 (&amp;lt;10s)&lt;br /&gt;相当于建立索引&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;虚拟机启动慢 (&amp;gt;30s) 读文件逐个加载&lt;/td&gt;
					&lt;td&gt;秒级 (&amp;lt;1s，不含应用本身启动)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;资源虚拟化粒度低，单机 10~100 虚拟机&lt;/td&gt;
					&lt;td&gt;单机支持 1000+ 容器&lt;br /&gt;密度很高，适合大规模的部署&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id=&#34;计算虚拟化&#34;&gt;计算虚拟化&lt;/h1&gt;
&lt;p&gt;从服务器组建角度来看，计算虚拟化可分为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU 虚拟化：保障 CPU 资源的合理调度以及 VM 上的指令能够正常高效的执行。&lt;/li&gt;
&lt;li&gt;内存虚拟化：保障内存空间的合理分配、管理，隔离，以及高效可靠地使用。&lt;/li&gt;
&lt;li&gt;I/O 虚拟化：保障 VM 的 1O 隔离与正常高效的执行。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;常见的计算服务架构有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenStack Nova&lt;/li&gt;
&lt;li&gt;阿里云 ECS&lt;/li&gt;
&lt;li&gt;腾讯云 CVM&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;nova&#34;&gt;Nova&lt;/h2&gt;
&lt;p&gt;OpenStack 是开源的云平台，通过不同的组件提供计算、存储、网络、数据库等多种云服务。其中计算服务由 Nova 组件提供，通过 nova-API 与其他组件通信，通过 nova-computex 对接不同的虚拟层提供计算虚拟化服务。&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-20-39-626c5b8808d188dd741630c2f871ac95-20230531152034-53e4f2.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-20-39-626c5b8808d188dd741630c2f871ac95-20230531152034-53e4f2.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;p&gt;创建实例流程：创建实例请求 nova-api，会唤醒 nova-database，请求刷新数据库。将请求给队列组件，nova-scheduler 从队列中取出请求，请求运行相对应的虚拟机。要运行不同的虚拟机，需要不同的平台支持（KVM，Xen,VMware）。虚拟机不能直接与数据库直接交互，需要通过 nova-conductor 转发。&lt;/p&gt;
&lt;h2 id=&#34;ecs&#34;&gt;ECS&lt;/h2&gt;
&lt;p&gt;云服务器 ECS(Elastic Compute Service) 是阿里云提供的基于 KVM 虚拟化的弹性计算服务，建立在阿里云飞天 (Apsara) 分布式操作系统上。
请求的主要调用流程为：OpenAPI、.业务层、控制系统、宿主机服务。&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-27-39-3057bca8eb97414d6d91c2201a895311-20230531152734-7f53e0.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-27-39-3057bca8eb97414d6d91c2201a895311-20230531152734-7f53e0.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h2 id=&#34;cvm&#34;&gt;CVM&lt;/h2&gt;
&lt;p&gt;云服务器 CVM(Cloud Virtual Machine)) 是腾讯提供的基于 KVM 虚拟化的弹性计算服务，建立在腾讯云分布式资源管理调度系统 VStation.上。
请求的主要调用流程为：API Server、.VStation、服务器集群。&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-28-22-2ee550326d62c2552c94cc2ef677e5a3-20230531152818-41688d.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-28-22-2ee550326d62c2552c94cc2ef677e5a3-20230531152818-41688d.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h1 id=&#34;cpu-虚拟化&#34;&gt;CPU 虚拟化&lt;/h1&gt;
&lt;p&gt;在物理机（宿主机）中通过线程或进程这种纯软件方式模拟出假的 CPU，通过 CPU 虚拟化就可以将一个物理 CPU 发给不同的虚拟机使用。&lt;/p&gt;
&lt;p&gt;虚拟出来的每颗 CPU 实际上就是一个线程或者进程，因此物理 CPU 核数要大于虚拟 CPU 总核数。&lt;/p&gt;
&lt;h2 id=&#34;cpu-qosquality-of-service-服务质量&#34;&gt;CPU QoS(Quality of Service) 服务质量&lt;/h2&gt;
&lt;p&gt;QoS 用来控制虚拟机使用 CPU 资源量的大小。
CPU 资源限额：控制虚拟机占用物理资源使用的上限。
CPU 资源份额：定义了多台虚拟机在竞争物理 CPU 资源时，需按比例分配计算资源。
CPU 预留资源：定义了多台虚拟机在竞争物理 CPU 时，每台虚拟机最低分配的计算资源。&lt;/p&gt;
&lt;h2 id=&#34;numa&#34;&gt;NUMA&lt;/h2&gt;
&lt;p&gt;NUMA(Non Uniform Memory Access Architecture) 非统一内存访问体系结构，提高物理服务器性能的一种技术。&lt;/p&gt;
&lt;p&gt;将物理服务器的 CPU 和内存资源分到多个 node 上，node 内的内存访问效率最高。&lt;/p&gt;
&lt;p&gt;NUMA 保证了一个 VM 上的 VCPU 尽量分配到同一个 node 中的物理 CPU 上，如果一台 VM 的 VCPU 跨 node 访问内存的话，访问的延时肯定增加。&lt;/p&gt;
&lt;h1 id=&#34;内存虚拟化&#34;&gt;内存虚拟化&lt;/h1&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-53-33-a6d733a49ff6057c8e528cad5867f015-20230531155328-769d51.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-53-33-a6d733a49ff6057c8e528cad5867f015-20230531155328-769d51.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h2 id=&#34;虚拟化类型-1&#34;&gt;虚拟化类型&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;全虚拟化&lt;/th&gt;
					&lt;th&gt;半虚拟化&lt;/th&gt;
					&lt;th&gt;硬件辅助虚拟化&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;为每个 VM 维护一个影子页表记录虚拟化内存与物理内存的映射关系，VMM 将影子页表提交给 CPU 的内存管理单元 MMU 进行地址转换，VM 的页表无需改动。&lt;/td&gt;
					&lt;td&gt;采用页表写入法，为每个 VM 创建&lt;br /&gt;一个页表并向虚拟化层注册。VM&lt;br /&gt;运行过程中 VMM 不断管理和维护&lt;br /&gt;该页表，确保 VM 能直接访问到合&lt;br /&gt;适的地址。&lt;/td&gt;
					&lt;td&gt;EPT/NPT 是内存管理单元 MMU 的&lt;br /&gt;扩展，CPU 硬件一个特性，通过&lt;br /&gt;硬件方式实现 GuestOS 物理内存地&lt;br /&gt;址到主机物理内存地址的转换，系&lt;br /&gt;统开销更低，性能更高。&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;内存复用技术&#34;&gt;内存复用技术&lt;/h2&gt;
&lt;p&gt;内存复用是指在服务器物理内存一定的情况下，通过综合运用内存复用技术对内存进行分时复用。
内存复用技术有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;内存气泡：虚拟化层将较空闲 VM 内存，分配给内存使用较高的虚拟机。内存的回收和分配由虚拟化层实现，虚拟机上的应用无感知，提高物理内存利用率。（虚拟机分配的内存不超过物理机总内存）&lt;/li&gt;
&lt;li&gt;内存交换：将外部存储虚拟成内存给 VM 使用，将 VM 上长时间未访问的数据存放到外部存储上，建立映射关系。VM 再次访问这些数据是通过映射在与内存上的数据进行交换。&lt;/li&gt;
&lt;li&gt;内存共享：VM 只对共用的内存（共享数据内容为零的内存页）做只读操作，有写操作时运用写时复制 (VM 有写操作时，开辟另一空间，并修改映射)&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;io-虚拟化&#34;&gt;IO 虚拟化&lt;/h1&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;全虚拟化&lt;/th&gt;
					&lt;th&gt;半虚拟化&lt;/th&gt;
					&lt;th&gt;Pass-Thorugh（直通）&lt;/th&gt;
					&lt;th&gt;硬件辅助虚拟化&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;通过软件模拟的形式模拟 O 设备，&lt;strong&gt;不需要硬件支持&lt;/strong&gt;，对虚拟机的操作系统也不需要修改（因为模拟的都是一个常见的硬件网卡，如 IntelE1000，主流操作系统一般都自带这些驱动，因此默认情下虚拟机不需要再安装驱动。缺点就是&lt;strong&gt;性能差&lt;/strong&gt;。&lt;/td&gt;
					&lt;td&gt;由 Hypervisor 提供资源调用接口。VM 通过特定的调用接口与 Hypervisor 通信，完成获取完整/O 资源控制操作。(需修改内核及驱动程序，存在移植性和适用性问题，导致其使用受限。)&lt;/td&gt;
					&lt;td&gt;Hypervisor] 直接把硬件 PCI 设备分配给虚拟独占使用，性能挡当然好啦。但是&lt;strong&gt;浪遗硬件设备&lt;/strong&gt;，且&lt;strong&gt;配置复杂&lt;/strong&gt;，首先需要在 hypervisor 指定通过 PClid 方式分配给指定的虚拟机，然后虚拟机再识别到设备再安装驱动来使用。&lt;/td&gt;
					&lt;td&gt;通过硬件的辅助可以让虚拟机直接访问物理设备，而不需要通过 VMM。最常用的就是 SR-lOV(Single Root I/OVirtualizmion)单根 I/O 虚拟化标准，该技术可以直接虚拟出 128-512 网卡，可以让虚拟机都拿到一块独立的网卡，直接使用/O 资源。&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id=&#34;常见集群策略&#34;&gt;常见集群策略&lt;/h1&gt;
&lt;h2 id=&#34;集群简介&#34;&gt;集群简介&lt;/h2&gt;
&lt;p&gt;集群是一种计算机系统，通过一组计算机或服务器的软硬件连接起来高度紧密地协作完成计算工作。在客户端看来为其提供服务的只有一台设备，实际上它是一群设备的集合，只不过这些设备提供的服务一样。&lt;/p&gt;
&lt;p&gt;集群系统中单个计算机通常称为节点，通过局域网连接，利用多个计算机进行并行计算获得很高计算速度，也可以用多个计算机做备份提高可靠性。（并行计算技术）&lt;/p&gt;
&lt;h2 id=&#34;ha-策略&#34;&gt;HA 策略&lt;/h2&gt;
&lt;p&gt;HA(High Availability) 高可用性，一种让服务中断尽可能少的技术。将多台主机组建成一个故障转移集群，运行在集群上的服务（或 VM) 不会因为单台主机的故障而停止。&lt;/p&gt;
&lt;p&gt;提升故障恢复速度，降低业务中断时间、保障业务连续性、实现一定的系统自维护。&lt;/p&gt;
&lt;h2 id=&#34;drs-策略&#34;&gt;DRS 策略&lt;/h2&gt;
&lt;p&gt;DRS(Dynamic resource scheduling) 动态资源调度，根据对资源池资源负载的动态监控，合理触发均匀分配规侧，实现资源池中的物理服务器之间重新分配资源，达到&lt;strong&gt;负载均衡、消峰填谷&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;当物理服务器上负载过大时，通过 DRS 将虚拟机迁移到其他负载较轻的物理服务器上。当虚拟机遇到负载增大时，DRS 将为资源池中的物理服务器重新分配虚拟机可使用资源，在多个虚拟机之间智能地分配可用资源。&lt;/p&gt;
&lt;h2 id=&#34;dpm-策略&#34;&gt;DPM 策略&lt;/h2&gt;
&lt;p&gt;DPM（Distributed power management) 分布式电源管理，用于业务较轻时，把虚拟机动态“集中”到集群中的少部分主机上，将其他主机待机，节省电力消耗，等业务量较大时，再重新唤醒之前待机的主机。&lt;/p&gt;
&lt;p&gt;执行 DPM 策略的前提是开启 DRS 策略，即集群必须先设置好 DRS 策略，才能设置 DPM 策略。&lt;/p&gt;
&lt;h1 id=&#34;存储虚拟化&#34;&gt;存储虚拟化&lt;/h1&gt;
&lt;h2 id=&#34;存储类型&#34;&gt;存储类型&lt;/h2&gt;
&lt;p&gt;常用的存储类型有：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;&lt;/th&gt;
					&lt;th&gt;本地磁盘&lt;/th&gt;
					&lt;th&gt;DAS&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;简介&lt;/td&gt;
					&lt;td&gt;云计算虚拟化场景下的本地磁盘是指使用服务器本地的磁盘资源，经过 RAD(磁盘阵列) 化后提供给虚拟化平台进行使用。&lt;/td&gt;
					&lt;td&gt;DAS(Direct-Attached Storage) 直连式存储：一个存储设备与使用存储空间的服务器&lt;br /&gt;直接相连的架构。DAS 为服务器提供块级的存储服务。&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;优点&lt;/td&gt;
					&lt;td&gt;- 使用方便&lt;br /&gt;- 无共享框架&lt;br /&gt;&lt;/td&gt;
					&lt;td&gt;- 多个磁盘合并成一个逻辑磁盘，满足海量存储的需求&lt;br /&gt;- 可实现应用数据和操作系统的分离&lt;br /&gt;- 能提高存取性能&lt;br /&gt;- 实施简单&lt;br /&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;缺点&lt;/td&gt;
					&lt;td&gt;- 对跨服务器来说没有备份、冗余机制&lt;/td&gt;
					&lt;td&gt;- 服务器发生故障，数据不可访问&lt;br /&gt;- 传输距离短&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;&lt;/th&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;NAS&lt;/th&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;SAN&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;简介&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;NAS(Network Attached Storage) 网络附加存储：将分布、独立的数据进行整合，集&lt;br /&gt;中化管理，以便对不同主机和应用服务器进行访问的技术。&lt;br /&gt;NAS 将存储设备连接到现有的网络上来提供数据和文件服务。&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;SAN(Storage Area Networks) 存储区域网络：是一种高速的、专门用于存储操作的网&lt;br /&gt;络，通常独立于计算机局域网。&lt;br /&gt;提供在主机和存储系统之间数据传输，网络内部数据传输的速率快。&lt;br /&gt;常见架构有 FC SAN、IP SAN。&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;优点&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;- 支持快照等高级特性&lt;br /&gt;- 集中存储&lt;br /&gt;- 提供安全集成环境（用户认证和授权)&lt;br /&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;- 存储容量利用率高&lt;br /&gt;- 兼容性高&lt;br /&gt;- 传输距离远&lt;br /&gt;- 高带宽&lt;br /&gt;- 主机、存储设备可以独立扩展&lt;br /&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;缺点&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;- 传输速率低&lt;br /&gt;- 前期安装和设备成本高&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;- 成本高、复杂&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;云存储基本概念&#34;&gt;云存储基本概念&lt;/h2&gt;
&lt;p&gt;存储资源：表示实际的物理存储设备，例如 DAS(直连存储)、NAS(网络附加存储)、SA(存储区域网络) 等。&lt;/p&gt;
&lt;p&gt;存储设备：表示存储资源中的管理单元，例如本地磁盘、LUN(逻辑单元号)、Storage 存储池、NAS 共享目录等。&lt;/p&gt;
&lt;p&gt;数据存储：表示虚拟化平台中可管理的存储逻辑单元，承载了虚拟机业务，创建磁盘。&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/18-55-45-5599a99b10ac1c9c3ad6cc69bc1c9c67-20230531185540-d75052.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/18-55-45-5599a99b10ac1c9c3ad6cc69bc1c9c67-20230531185540-d75052.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h2 id=&#34;创建虚拟存储的流程&#34;&gt;创建虚拟存储的流程&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;在主机软件界面添加存储资源 (SAN、DAS 等)，对主机的启动进行配置。&lt;/li&gt;
&lt;li&gt;主机关联存储资源后，进行扫描存储设备（本地磁盘、LUN 等），将具体的设备扫描到主机上。&lt;/li&gt;
&lt;li&gt;主机在选择存储设备，进行数据存储的添加，并进行虚拟化。&lt;/li&gt;
&lt;li&gt;最后对虚拟化好的数据存储进行创建卷等操作。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/18-58-26-0207d3cfacb381f75c3d8f52b3251639-20230531185822-ac2437.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/18-58-26-0207d3cfacb381f75c3d8f52b3251639-20230531185822-ac2437.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h2 id=&#34;存储模式&#34;&gt;存储模式&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;&lt;/th&gt;
					&lt;th&gt;非虚拟化存储&lt;/th&gt;
					&lt;th&gt;虚拟化存储&lt;/th&gt;
					&lt;th&gt;裸设备映射&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;/td&gt;
					&lt;td&gt;传统的存储模式，就是把磁盘进行分区，分割成不同的逻辑卷，每一个逻辑卷可以给到虚拟机进行使用。&lt;/td&gt;
					&lt;td&gt;将不同的存储设备、磁盘进行格式化，格式化的目的是屏蔽底层存储设备的能力、接口&lt;br /&gt;协议等差异性，将各种存储资源转化为统一管理的数据存储资源。&lt;/td&gt;
					&lt;td&gt;将磁盘直接给到虚拟机使用，让虚拟机直接处理调用存储的命令（直接访问磁盘）中间虚拟化层不再对其进行任何干预（卷都不需要创建）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;特点&lt;/td&gt;
					&lt;td&gt;- 性能好 (不再有中间的虚拟化层，VM 读写直接在磁盘上)、速度快、效率高。&lt;br /&gt;&lt;br /&gt;- 支持的存储功能少（不支持快照、精简配置等）&lt;br /&gt;&lt;/td&gt;
					&lt;td&gt;- 支持多种存储功能（快照、精简磁盘、磁盘扩容、存储热迁移等)。&lt;br /&gt;- 性能不高（没有非虚拟化存储好）&lt;br /&gt;&lt;/td&gt;
					&lt;td&gt;速度快（三种模式中最快）、性能好。&lt;br /&gt;支持的存储功能少（不支持快照、精简配置等），仅支持部分操作系统的虚拟机使用、数据存储只能整块当做裸设备映射的磁盘使用，不可分割。&lt;br /&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;/td&gt;
					&lt;td&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-05-13-74eb9473a84f7cc8d591b18d5b0ec7ee-20230531190509-4a3908.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-05-13-74eb9473a84f7cc8d591b18d5b0ec7ee-20230531190509-4a3908.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/td&gt;
					&lt;td&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-08-34-98b4e748d8c582b1e74f109fe228fb9c-20230531190829-8006f5.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-08-34-98b4e748d8c582b1e74f109fe228fb9c-20230531190829-8006f5.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/td&gt;
					&lt;td&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-12-22-a0c2ce10d5ab79474d217028ed20056b-20230531191217-563c1b.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-12-22-a0c2ce10d5ab79474d217028ed20056b-20230531191217-563c1b.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;存储虚拟化方法&#34;&gt;存储虚拟化方法&lt;/h2&gt;
&lt;h3 id=&#34;基于主机的存储虚拟化&#34;&gt;基于主机的存储虚拟化&lt;/h3&gt;
&lt;p&gt;若仅是单个主机服务器（或单个集群）访问多个磁盘阵列，可采用基于主机的存储虚拟化：虚拟化的工作通过特定的软件在主机服务器上完成，经过虚拟化的存储空间可以跨越多个异构的磁盘阵列。&lt;/p&gt;
&lt;p&gt;特点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;优点是稳定性，以及对异构存储系统的开放性。&lt;/li&gt;
&lt;li&gt;软件运行于主机上。&lt;/li&gt;
&lt;li&gt;从与主机连接的存储上创建虚拟卷。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-36-54-e70134a6efd0d031785dc81eeb922c38-20230601083649-a5e4db.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-36-54-e70134a6efd0d031785dc81eeb922c38-20230601083649-a5e4db.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h3 id=&#34;基于存储设备的虚拟化&#34;&gt;基于存储设备的虚拟化&lt;/h3&gt;
&lt;p&gt;若多个主机服务器需要访问同一个磁盘阵列时，可采用基于存储设备虚拟化。虚拟化的工作在阵列控制器上完成，将一个阵列上的存储容量划分多个存储空间 (LUN),供不同的主机系统访问。主要用在同一存储设备内部，进行数据保护和数据迁移。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;优点是与主机无关，不占用主机资源，数据管理功能丰富。&lt;/li&gt;
&lt;li&gt;软件运行于存储设备中专门的嵌入式系统上。&lt;/li&gt;
&lt;li&gt;从与 SAN 连接的存储上创建虚拟卷。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-41-22-f6e0c1760cda24ae776bfcf3c57c2af5-20230601084118-73285e.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-41-22-f6e0c1760cda24ae776bfcf3c57c2af5-20230601084118-73285e.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h3 id=&#34;基于网络的存储虚拟化&#34;&gt;基于网络的存储虚拟化&lt;/h3&gt;
&lt;p&gt;通过在存储区域网 (SAN) 中添加虚似化引擎实现的，主要用于异构存储系统的整合和统数据管理。&lt;/p&gt;
&lt;p&gt;特点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;优点是与主机无关，不占用主机资源；&lt;/li&gt;
&lt;li&gt;支持异构主机、异构存储设备；&lt;/li&gt;
&lt;li&gt;能使不同存储设备的数据管理功能统一，统一管理平台，可扩展性好。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-42-36-66183a6a63e0ab9ed777c2ff96834109-20230601084232-7fdd98.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-42-36-66183a6a63e0ab9ed777c2ff96834109-20230601084232-7fdd98.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h2 id=&#34;存储虚拟化的功能&#34;&gt;存储虚拟化的功能&lt;/h2&gt;
&lt;p&gt;存储虚拟化可以提高硬件资源的使用效率，简化系统管理的复杂度，增强云存储平台的可靠性。可以通过以下几种技术实现：&lt;/p&gt;
&lt;h3 id=&#34;精简磁盘和空间回收&#34;&gt;精简磁盘和空间回收&lt;/h3&gt;
&lt;p&gt;精简磁盘和空间回收用于提高存储资源的使用效率、减小虚拟机未使用空间在主机上占用率过大的问题。&lt;/p&gt;
&lt;p&gt;用户用多少分配多少空间（自动分配）&lt;br /&gt;空间回收可以将用户删除的数据空间释放到数据存储。&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-07-37-a97805053794b23776d5085409611896-20230601090732-4ff3a3.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-07-37-a97805053794b23776d5085409611896-20230601090732-4ff3a3.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h3 id=&#34;快照&#34;&gt;快照&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;指定数据集合的一个完全可用拷贝，该拷贝包括相应数据在某个时间点（拷贝开始的时间点) 的映像。&lt;/li&gt;
&lt;li&gt;快照可以是其所表示的数据的一个副本，可以是数据的一个复制品。&lt;/li&gt;
&lt;li&gt;快照的作用主要是能够进行在线数据备份恢复。&lt;/li&gt;
&lt;li&gt;为用户提供了数据访问通道&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;特点&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;记录了虚拟机在某一时间点的内容和状。&lt;/li&gt;
&lt;li&gt;恢复虚拟机快照可以使虚拟机多次快速恢复到某一时间点。&lt;/li&gt;
&lt;li&gt;快照包含磁盘内容、虚拟机配置信息、内存数据。&lt;/li&gt;
&lt;li&gt;多次快照之间&lt;strong&gt;保存差量数据&lt;/strong&gt;，节约存储空间。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;快照方式介绍&#34;&gt;快照方式介绍&lt;/h4&gt;
&lt;p&gt;创建快照时会生成一个新的差分卷，虚拟机会挂载这个差分卷作为磁盘文件。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ROW 写时重定向&lt;/li&gt;
&lt;li&gt;COW 写时拷贝&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-13-17-381617aa029cc392aa3ae573efdfb8aa-20230601091313-a0828c.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-13-17-381617aa029cc392aa3ae573efdfb8aa-20230601091313-a0828c.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h4 id=&#34;快照链介绍&#34;&gt;快照链介绍&lt;/h4&gt;
&lt;p&gt;对虚拟机进行多次的快照操作，这些多次的快照操作形成快照链。&lt;/p&gt;
&lt;p&gt;虚拟机卷始终挂载在快照链的最末端。&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-35-59-7cc5ae355ea7c376e94b60b952e0284e-20230601093555-863fc8.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-35-59-7cc5ae355ea7c376e94b60b952e0284e-20230601093555-863fc8.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h3 id=&#34;链接克隆&#34;&gt;链接克隆&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;将源卷和差分卷组合映射为一个链接克隆卷，给虚拟机使用。一个链接克隆需要和原始虚拟机共享同一虚拟磁盘文件。&lt;/li&gt;
&lt;li&gt;采用共享磁盘文件缩短了创建克隆虚拟机的时间，还节省了物理磁盘空间。&lt;/li&gt;
&lt;li&gt;通过链接克隆，可以轻松的为不同的任务创建一个独立的虚拟机。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-19-47-654bac5b7dfa915bea5c572df6f58bbd-20230601091942-a6a3d7.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-19-47-654bac5b7dfa915bea5c572df6f58bbd-20230601091942-a6a3d7.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h3 id=&#34;虚拟磁盘文件迁移&#34;&gt;虚拟磁盘文件迁移&lt;/h3&gt;
&lt;p&gt;功能：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;将虚拟机的磁盘从一个数据存储迁移到另一个数据存储。可以将虚拟机的所有磁盘整体迁移，也可以单个磁盘分别迁移。&lt;/li&gt;
&lt;li&gt;虚拟机的快照可以一起迁移，虚拟机开启或者关闭时都可以迁移。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;特点：&lt;/p&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-32-38-a14bb4f8ed8bac86585c62877564bb65-20230601093233-54d851.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-32-38-a14bb4f8ed8bac86585c62877564bb65-20230601093233-54d851.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h1 id=&#34;网络虚拟化&#34;&gt;网络虚拟化&lt;/h1&gt;
&lt;p&gt;虚拟化是对所有 T 资源的虚拟化，提高物理硬件的灵活性及利用效率。云计算中的计算和存储资源分别由计算虚拟化和存储虚拟化提供，而网络作为 T 的重要资源也有相应的虚拟化技术，网络资源由网络虚拟化提供。&lt;/p&gt;
&lt;p&gt;网络是由各种设备组成，有传统的物理网络，还有运行在服务器上看不到的虚拟网络。如何呈现和管理它们将是网络虚拟化的首要目标。&lt;/p&gt;
&lt;p&gt;将物理网络虚拟出多个相互隔离的虚拟网络（逻辑网络），从而使得不同用户之间使用独立的网络资源，从而提高网络资源利用率，实现弹性的网络。&lt;/p&gt;
&lt;p&gt;VLAN 就是一种网络虚拟化，在原有网络基础上通过 VLAN Tag:划分出多个广播域。&lt;/p&gt;
&lt;p&gt;网络虚拟化保障我们创建出来的虚拟机可以正常  通信、访问网络。&lt;/p&gt;
&lt;p&gt;节省物理主机的网卡设备资源，并且可以提供应用的虚拟网络所需的 L2 一 L7 层网络服务。&lt;/p&gt;
&lt;p&gt;网络虚拟化软件提供逻辑上的交换机和路由器 (L2-L3),逻辑负载均衡器，逻辑防火墙 (L4-L7) 等，且可以以任何形式进行组装，从而为虚拟机提供一个完整的 L2-L7 层的虚拟网络拓扑。&lt;/p&gt;
&lt;h2 id=&#34;物理网络包含的设备&#34;&gt;物理网络包含的设备&lt;/h2&gt;
&lt;p&gt;路由器：工作在网络层，连接两个不同的网络。&lt;/p&gt;
&lt;p&gt;二层交换机：工作在数据链路层，转发数据。&lt;/p&gt;
&lt;p&gt;三层交换机：工作在网络层，结合了部分路由和交换机的功能。&lt;/p&gt;
&lt;p&gt;服务器网卡：提供通信服务。&lt;/p&gt;
&lt;h1 id=&#34;虚拟化中的网络架构&#34;&gt;虚拟化中的网络架构&lt;/h1&gt;
&lt;p&gt;网卡虚拟化方法有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;软件网卡虚拟化&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;主要通过软件控制各个虚拟机共享同一块物理网卡实现。软件虚拟出来的网卡可以有单独的 MAC 地址、IP 地址。&lt;/li&gt;
&lt;li&gt;所有虚拟机的虚拟网卡通过虚拟交换机以及物理网卡连接至物理交换机。虚拟交换机负责将虚拟机上的数据报文从物理网口转发出去。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-16-53-540de968dd6e4e7cc2e45e8b1b1df1a1-20230601141648-d238fb.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-16-53-540de968dd6e4e7cc2e45e8b1b1df1a1-20230601141648-d238fb.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;硬件网卡虚拟化&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;主要用到的技术是单根 I/O 虚拟化 (Single Root/O Virtulization,SR-lOV),就是 I/O 直通技术，通过硬件的辅助可以让虚拟机直接访问物理设备，而不需要通过 VMM。该技术可以直接虚拟出 128-512 网卡，可以让虚拟机都拿到一块独立的网卡，直接使用/O 资源。SR-OV 能够让网络传输绕过软件模拟层，直接分配到虚拟机，这样就降低了软件模拟层中的/○ 开销。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;交换机虚拟化：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OVS(Open vSwitch) 开放虚拟化软件交换机，是一款基于软件实现的开源虚拟以太网交换机，使用开源 Apache2.0 许可协议，主要用于虚拟机 VM 环境。与众多开源的虚拟化平台相整合（支持 Xen、KVM 及 VirtualBox 多种虚拟化技术），主要有两个作用：传递虚拟机之间的流量，实现虚拟机和外界网络的通信。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-30-39-aaaaed14c501175ffa51df2735b09d2a-20230601143034-d4f7f6.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-30-39-aaaaed14c501175ffa51df2735b09d2a-20230601143034-d4f7f6.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h2 id=&#34;虚拟化中数据的转发路径&#34;&gt;虚拟化中数据的转发路径&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;相同端口组不同服务器内的虚拟机通讯需要经过物理网络。（黑线）&lt;/li&gt;
&lt;li&gt;相同端口组相同服务器内的虚拟机通讯不需要经过物理网络。（红线）&lt;/li&gt;
&lt;li&gt;不同端口组相同服务器的虚拟机通讯需要经过物理网络。（黄色）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/18-59-54-9abbabcce9a6864d7c990eba310e171f-20230601185949-5239e7.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/18-59-54-9abbabcce9a6864d7c990eba310e171f-20230601185949-5239e7.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h2 id=&#34;链路虚拟化&#34;&gt;链路虚拟化&lt;/h2&gt;
&lt;p&gt;VPC(Virtual Port Channel) 虚链路聚合，是最常见的二层虚拟化技术。&lt;/p&gt;
&lt;p&gt;链路聚合将多个物理端口捆绑在一起，虚拟成为一个逻辑端口。但传统链路聚合不能跨设备，VPC 很好解决了这个问题，既可以跨设备，又可以增加链路带宽、实现链路层的高可用性。&lt;/p&gt;
&lt;p&gt;隧道协议 (Tunneling Protocol)：指通过隧道协议使多个&lt;strong&gt;不同协议的网络实现互联&lt;/strong&gt;。使用隧道传递的数据可以是不同协议的数据帧或包。隧道可以将数据流强制送到特定的地址，并隐藏中间节点的网络地址，还可根据需要，提供对数据加密的功能。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GRE(Generic Routing Encapsulation) 通用路由封装。&lt;/li&gt;
&lt;li&gt;IPsec(Internet Protocol Security)Internett 协议安全。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-34-04-8dc54676f16ac517fa503ded64966d24-20230601193359-139761.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-34-04-8dc54676f16ac517fa503ded64966d24-20230601193359-139761.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;h2 id=&#34;虚拟网络&#34;&gt;虚拟网络&lt;/h2&gt;
&lt;p&gt;虚拟网络 (Virtual Network):是由虚拟链路组成的网络。&lt;/p&gt;
&lt;p&gt;虚拟网络节点之间的连接并不使用物理线缆连接，而是依靠特定的虚拟化链路相连。&lt;/p&gt;
&lt;p&gt;典型的虚拟网络包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;层叠网络（虚拟二层延伸网络）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;层叠网络 (Overlay Network)：在现有网络的基础上搭建另外一种网络&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;层叠网络允许对没有引 P 地址标识的目的主机路由信息。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;层叠网络可以充分利用现有资源，在不增加成本的前提下，提供更多的服务。（比如 ADSL Internet 接入线路就是基于已经存在的 PSTN 网络实现)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-36-27-c84d66208097477a09c6ce6b162bfacd-20230601193622-21ef48.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-36-27-c84d66208097477a09c6ce6b162bfacd-20230601193622-21ef48.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;典型技术：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VXLAN(Virtual eXtensible Local Area Network) 虚拟扩展局域网：很好地解决了现有 VLAN 技术无法满足大二层网络需求的问题。&lt;/li&gt;
&lt;li&gt;VXLAN 技术是一种大二层的虚拟网络技术。&lt;/li&gt;
&lt;li&gt;原理是引入一个 UDP 格式的外层隧道作为数据链路层，而原有数据报文内容作为隧道净荷加以传输。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;VPN 网络&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;VPN(Virtual Private Network) 虚拟专用网：是一种常用于连接中、大型企业或团体与团体间的私人网络的通信方法。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;通过公用的网络架构（比如互联网）来传送内联网的信息。&lt;/li&gt;
&lt;li&gt;利用已加密的隧道协议来达到保密、终端认证、信息准确性等安全效果。这种技术可以&lt;/li&gt;
&lt;li&gt;在不安全的网络上传送可靠的、安全的信息。&lt;/li&gt;
&lt;li&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt;
    &lt;title&gt;Responsive Image&lt;/title&gt;
    &lt;style&gt;
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    
    &lt;div class=&#34;post-img-view&#34;&gt;
        &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-39-40-4bc357c1f760435fb8d1a980f230527c-20230601193935-06e11c.png&#34;&gt;
            &lt;img class=&#34;responsive-image&#34; src=&#34;https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-39-40-4bc357c1f760435fb8d1a980f230527c-20230601193935-06e11c.png&#34; alt=&#34;&#34;  style=&#34;margin: 0 auto;&#34;/&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    

    &lt;script&gt;
        document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
            var images = document.querySelectorAll(&#34;.responsive-image&#34;);
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + &#34;px&#34;;
            });
        });
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
      <content:encoded><![CDATA[<h1 id="云计算服务类型">云计算服务类型</h1>
<p>传统架构=&gt;Iaas=&gt;Paas=&gt;Saas</p>
<p>自己烧饭=&gt; 叮咚买菜=&gt; 美团外卖=&gt; 餐厅吃饭</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-36-45-b25eafa700db3dce390dab2aeb3af4f9-20230531093640-f17dbe.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-36-45-b25eafa700db3dce390dab2aeb3af4f9-20230531093640-f17dbe.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h1 id="云计算部署形式以及应用">云计算部署形式以及应用</h1>
<table>
	<thead>
			<tr>
					<th>类型</th>
					<th>描述</th>
					<th>优点</th>
					<th>缺点</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>私有云</td>
					<td>利用已有设备自我构建，云端资源只给内部人员使用。</td>
					<td>安全性高</td>
					<td>维护成本高</td>
			</tr>
			<tr>
					<td>社区云、行业云</td>
					<td>为特定行业构建共享基础设施的云。</td>
					<td>有一套用户体系</td>
					<td>维护成本高</td>
			</tr>
			<tr>
					<td>公有云</td>
					<td>构建大型基础设施云出租给公众。</td>
					<td>用户来说成本低，服务多</td>
					<td>安全性低</td>
			</tr>
			<tr>
					<td>混合云</td>
					<td>两种或者两种以上的云组成的云服务</td>
					<td>敏捷，灵活，降低成本</td>
					<td>兼容性问题</td>
			</tr>
	</tbody>
</table>
<h2 id="应用">应用</h2>
<p>存储云、医疗云、教育云、企业云、金融云、游戏云、桌面云</p>
<h1 id="关键技术">关键技术</h1>
<h2 id="虚拟化">虚拟化</h2>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/10-28-09-8bfe3f3fcd50903c6f72132d36c19f3e-20230531102804-d53750.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/10-28-09-8bfe3f3fcd50903c6f72132d36c19f3e-20230531102804-d53750.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h2 id="分布式存储">分布式存储</h2>
<p>将数据存储在不同的物理设备中。这种模式不仅摆脱了硬件设备的限制，同时<strong>扩展性更好</strong>，能够快速响应用户需求的变化（整合存储资源提供动态可伸缩资源池的分布式存储技术)</p>
<h2 id="数据中心联网">数据中心联网</h2>
<p>虚拟机之间需要实时同步大量的数据，产生大量东西流量。</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/10-38-24-9e7878e87965a767076d4071dd0e354f-20230531103820-7087aa.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/10-38-24-9e7878e87965a767076d4071dd0e354f-20230531103820-7087aa.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h2 id="并行编程">并行编程</h2>
<p>在并行编程模式下，并发处理、容错、数据分布、负载均衡等细节都被抽象到一个函数库中，通过统一接口，用户大尺度的计算任务被自动并发和分布执行，即将一个任务自动分成多个子任务，并行地处理海量数据。</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/16-17-02-45f21028b6e199dccd616053e8e43db8-20230602161656-9db753.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/16-17-02-45f21028b6e199dccd616053e8e43db8-20230602161656-9db753.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h2 id="体系结构">体系结构</h2>
<p>云计算平台体系结构由用户界面、服务目录、管理系统、部署工具、监控和服务器集群组成。</p>
<h2 id="自动化部署">自动化部署</h2>
<p>对云资源进行自动化部署指的是基于脚本调节的基础上实现不同厂商对于设备工具的自动配置，用以减少人机交互比例、提高应变效率，避免超负荷人工操作等现象的发生，最终推进智能部署进程。</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-46-31-bc2856698d6f9b760f7cad0b1bff7ef1-20230605084626-c49970.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-46-31-bc2856698d6f9b760f7cad0b1bff7ef1-20230605084626-c49970.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h1 id="云服务提供商">云服务提供商</h1>
<p>亚马逊云、腾讯云、阿里云、百度云、华为云</p>
<p>技术架构：开源（Xen,KVM），Vmware，微软 hyper-v，阿里飞天 Apsara</p>
<p>开源云管理平台：OpenStack</p>
<h1 id="虚拟化简介">虚拟化简介</h1>
<p>虚拟化：一种计算机资源管理技术，将各种 T 实体资源抽象、转换成另一种形式的技术都是虚拟化。
作用：通过该技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机，每个逻辑计算机可运行不同的操作系统，并且应用程序都可以在相互独立的空间内运行而互不影响，从而<strong>显著提高计算机的工作效率</strong>。</p>
<p>从行业数据互相关联的角度来说，云计算是极度依赖虚拟化的。但虚拟化并非云计算，云计算也并非虚拟化。<strong>虚拟化只是云计算的核心技术，但并非云计算的核心关注点</strong>。</p>
<p>云计算是一种服务。虚拟化是云计算的技术基础。</p>
<h2 id="虚拟化相关的几个概念">虚拟化相关的几个概念</h2>
<p>Guest OS:运行在虚拟机之上的 OS
Guest Machine:虚拟出来的虚拟机
VMM:虚拟机监控器，即虚拟化层 (Virtual Machine Monitor,VMM)
Host OS:运行在物理机之上的 OS
Host Machine:物理机</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/12-08-35-2a578c6b5ecfe26034e87a65aafd21da-20230531120830-e26a24.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/12-08-35-2a578c6b5ecfe26034e87a65aafd21da-20230531120830-e26a24.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h2 id="虚拟化类型">虚拟化类型</h2>
<table>
	<thead>
			<tr>
					<th>虚拟化类型</th>
					<th>描述</th>
					<th>特点</th>
					<th>案例</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>寄居虚拟化（Type2）</td>
					<td>在主机（宿主）操作系统上安装和运行虚拟化程序</td>
					<td>- 简单、易于实现。<br />- 安装和运行应用程序依赖于主机操作系统对设备的支持。<br />- 有两层 OS，管理开销较大，性能损耗大。<br />- 虚拟机对各种物理设备 (cpu、内存、硬盘等) 的调用，都通过虚拟化层和宿主机的 OS 一起协调才能完成。</td>
					<td>- Vmware<br />- VirturalBox<br /></td>
			</tr>
			<tr>
					<td>裸金属虚拟化 (Type1)</td>
					<td>直接将 VMM 安装在硬件设备上，VMM 在这种模式下又叫做 Hypervisor，虚拟机有指令要执行时，Hypervisors 会接管该指令，模拟相应的操作。</td>
					<td>- 不依赖于操作系统。<br />- 支持多种操作系统，多种应用。<br />- 依赖虚拟层内核和服务器控制台进行管理。<br />- 需要对虚拟层的内核进行开发（难度大）。</td>
					<td>- VMware ESX<br />- Xen<br />- 华为 FusionSphere<br /></td>
			</tr>
			<tr>
					<td>混合虚拟化</td>
					<td>在一个现有的正常操作系统下<strong>安装一个内核模块</strong>，内核拥有虚拟化能力。(相当于寄居与裸金属的混合)</td>
					<td>- 相对于寄居虚拟化架构，性能高。<br />- 相对于裸金属虚拟化架构，不需要开发内核。<br />- 可支持多种操作系统。<br />- 需底层硬件支持虚拟化扩展功能。</td>
					<td>- KVM</td>
			</tr>
	</tbody>
</table>
<p>寄居虚拟化（Type2）</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-24-43-35c85e077a5dc39f5f17e5a2ba879e16-20230602142439-ca0fee.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-24-43-35c85e077a5dc39f5f17e5a2ba879e16-20230602142439-ca0fee.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<p>裸金属虚拟化 (Type1)</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-24-29-4e00e51ef3d07ece5d29fa6a297b2f5b-20230602142424-f05f39.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-24-29-4e00e51ef3d07ece5d29fa6a297b2f5b-20230602142424-f05f39.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<p>混合虚拟化</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-24-07-e0079492f1d08c44e5c5bf88944f6e42-20230602142402-80ad49.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-24-07-e0079492f1d08c44e5c5bf88944f6e42-20230602142402-80ad49.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h2 id="虚拟化层架构">虚拟化层架构</h2>
<table>
	<thead>
			<tr>
					<th>架构</th>
					<th>描述</th>
					<th>特点</th>
					<th>典型</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>全虚拟化</td>
					<td>即所抽象的 VM 具有完全的物理特性，虚拟化层负责捕获 CPU 指令，为指令访问硬件充当媒介。</td>
					<td>- OS 无需修改。<br />- 速度和功能都非常不错，使用非常简单。<br />- 移植性好。</td>
					<td>- VMware<br />- KVM<br />- Virtualbox<br />- Virtual PC<br /></td>
			</tr>
			<tr>
					<td>半虚拟化</td>
					<td>起初是为了解决全虚拟化效率不高的困难，它需要修改 OS，工作效率相对全虚拟化要高很多。Hypervisor 直接安装在物理机上，多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。</td>
					<td>- 架构更精简。<br />- 在整体速度上有一定的优势。<br />- 需要对 OS 进行修改，在用户体验方面比较麻烦。</td>
					<td>- Xen<br />- VMWare ESXi<br />- 微软 Hyper-V<br /></td>
			</tr>
			<tr>
					<td>硬件辅助虚拟化</td>
					<td>硬件辅助虚拟化是随着虚拟化技术的应用越来越广泛 lntl、AMD 等硬件厂商通过对硬件的改造来支持虚拟化技术。<br /><br />常用于优化全虚拟化和半虚拟化产品，像 VMware Workstation，它虽然属于全虚拟化，但它在 6.0 版本中引入了硬件辅助虚拟化技术，比如 Intel 的 VT-x 和 AMD 的 AMD-V。主流全虚拟化和半虚拟化产品都支持硬件辅助虚拟化。(VirtualBox,KVM,Xen 等)<br /></td>
					<td>辅助产品</td>
					<td>- VT-x<br />- AMD-V<br /></td>
			</tr>
	</tbody>
</table>
<p>全虚拟化</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/12-21-14-f022c910d48931ce11223d247c888351-20230531122109-78f6d6.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/12-21-14-f022c910d48931ce11223d247c888351-20230531122109-78f6d6.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<p>半虚拟化</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/13-51-35-895d9c73dccc874815424d87298ef8bd-20230531135130-c79d43.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/13-51-35-895d9c73dccc874815424d87298ef8bd-20230531135130-c79d43.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h3 id="全虚拟化代表-kvm-和半虚拟化代表-xen-架构对比">全虚拟化代表 KVM 和半虚拟化代表 Xen 架构对比</h3>
<table>
	<thead>
			<tr>
					<th>架构</th>
					<th>描述</th>
					<th>对比</th>
					<th>示意图</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>全虚拟化：KVM</td>
					<td>KVM(Kernel&ndash;Based Virtual Machines) 是一个基于 Linux 内核的虚拟化技术，可以直接将 Linux 内核转换为 Hypervisor。.从而使得 Linuxp 内核能够直接管理虚拟机，直接调用 Linux 内核中的内存管理、进程管理子系统来管理虚拟机。</td>
					<td>- 支持全虚拟化<br />- 内置在内核中<br />- 便于版本安装、升级、维护，性能高<br />总结：KVM 平台架构侧重性能</td>
					<td>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/13-50-44-295215a975864579d54f5ea07685e119-20230531135039-2dafa3.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/13-50-44-295215a975864579d54f5ea07685e119-20230531135039-2dafa3.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></td>
			</tr>
			<tr>
					<td>半虚拟化：Xen</td>
					<td>Xen:直接把操作系统内核改了，把 OS 改成一个轻量级 Hypervisor1 在里面运行了一个管理所有资源作资源调度的 Domain0。<br />组成：由 Xen Hypervisor(虚拟化层)、Domin0(管理主机)、Domin U(用户虚<br />拟机)<br /></td>
					<td>- 支持全虚拟化、半虚拟化<br />- 需要对内核修改<br />- 更新版本，Xen 需要重新编译整个内核隔离性好<br />总结：Xen 平台架构侧重安全性</td>
					<td>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-18-51-ec8fcb01ac5cda397c51a883587850ea-20230531141846-6f42cf.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-18-51-ec8fcb01ac5cda397c51a883587850ea-20230531141846-6f42cf.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></td>
			</tr>
	</tbody>
</table>
<h1 id="容器">容器</h1>
<p>容器：包装或装载物品的贮存器，利用一个开源的应用容器引擎，让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中，然后发布到任一 Liux 或 Windows 机器上，也可以实现虚拟化。相互之间不会有任何接口，实现 App 与操作系统的解耦。</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-49-30-c10e37d44495429910370b47eac70018-20230531144926-f7f9e5.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-49-30-c10e37d44495429910370b47eac70018-20230531144926-f7f9e5.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h2 id="主流容器技术">主流容器技术</h2>
<p>定义：Docker) 属于 Liux 容器的一种封装，提供简单易用的容器使用接口，他是目前最流行的 Linux 容器解决方案。
作用：将应用程序与该程序的依赖，<strong>打包在一个文件里</strong>。运行这个文件，就会生成一个虚拟容器。程序在这个虚拟容器里运行，就好像在真实的物理机上运行一样。有了 Docker，就不用担心环境问题。</p>
<p>组成：客户端 (Docker Client)、守护进程 (Docker Daemon)、镜像（Docker Image)、容器 (DockerContainer)、仓库（Docker Registry)</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-53-26-70a710bfca6ebb2d0197a8fb28a89b13-20230531145321-ce6e27.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-53-26-70a710bfca6ebb2d0197a8fb28a89b13-20230531145321-ce6e27.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h2 id="容器和虚拟化的区别">容器和虚拟化的区别</h2>
<table>
	<thead>
			<tr>
					<th>虚拟化</th>
					<th>容器</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>隔离性强，有独立的 GUEST OS</td>
					<td>共享内核和 OS，隔离性弱</td>
			</tr>
			<tr>
					<td>虚拟化性能差 (&gt;15%)</td>
					<td>计算/存储无损耗，无 Guest0S 内存开销（200M)</td>
			</tr>
			<tr>
					<td>虚拟机镜像庞大（十几 G 几十 G),且实例化时不能共享</td>
					<td>Docker 容器镜象 200300M，且公共基础镜象实例化时<br />可以共享</td>
			</tr>
			<tr>
					<td>虚拟机镜象缺乏统一标准</td>
					<td>Docker 提供了容器应用镜象事实标准，OCI 推动进一步标<br />准化</td>
			</tr>
			<tr>
					<td>虚拟机创建慢 (&gt;2 分钟)</td>
					<td>秒级创建 (&lt;10s)<br />相当于建立索引</td>
			</tr>
			<tr>
					<td>虚拟机启动慢 (&gt;30s) 读文件逐个加载</td>
					<td>秒级 (&lt;1s，不含应用本身启动)</td>
			</tr>
			<tr>
					<td>资源虚拟化粒度低，单机 10~100 虚拟机</td>
					<td>单机支持 1000+ 容器<br />密度很高，适合大规模的部署</td>
			</tr>
	</tbody>
</table>
<h1 id="计算虚拟化">计算虚拟化</h1>
<p>从服务器组建角度来看，计算虚拟化可分为：</p>
<ul>
<li>CPU 虚拟化：保障 CPU 资源的合理调度以及 VM 上的指令能够正常高效的执行。</li>
<li>内存虚拟化：保障内存空间的合理分配、管理，隔离，以及高效可靠地使用。</li>
<li>I/O 虚拟化：保障 VM 的 1O 隔离与正常高效的执行。</li>
</ul>
<p>常见的计算服务架构有：</p>
<ul>
<li>OpenStack Nova</li>
<li>阿里云 ECS</li>
<li>腾讯云 CVM</li>
</ul>
<h2 id="nova">Nova</h2>
<p>OpenStack 是开源的云平台，通过不同的组件提供计算、存储、网络、数据库等多种云服务。其中计算服务由 Nova 组件提供，通过 nova-API 与其他组件通信，通过 nova-computex 对接不同的虚拟层提供计算虚拟化服务。</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-20-39-626c5b8808d188dd741630c2f871ac95-20230531152034-53e4f2.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-20-39-626c5b8808d188dd741630c2f871ac95-20230531152034-53e4f2.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<p>创建实例流程：创建实例请求 nova-api，会唤醒 nova-database，请求刷新数据库。将请求给队列组件，nova-scheduler 从队列中取出请求，请求运行相对应的虚拟机。要运行不同的虚拟机，需要不同的平台支持（KVM，Xen,VMware）。虚拟机不能直接与数据库直接交互，需要通过 nova-conductor 转发。</p>
<h2 id="ecs">ECS</h2>
<p>云服务器 ECS(Elastic Compute Service) 是阿里云提供的基于 KVM 虚拟化的弹性计算服务，建立在阿里云飞天 (Apsara) 分布式操作系统上。
请求的主要调用流程为：OpenAPI、.业务层、控制系统、宿主机服务。</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-27-39-3057bca8eb97414d6d91c2201a895311-20230531152734-7f53e0.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-27-39-3057bca8eb97414d6d91c2201a895311-20230531152734-7f53e0.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h2 id="cvm">CVM</h2>
<p>云服务器 CVM(Cloud Virtual Machine)) 是腾讯提供的基于 KVM 虚拟化的弹性计算服务，建立在腾讯云分布式资源管理调度系统 VStation.上。
请求的主要调用流程为：API Server、.VStation、服务器集群。</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-28-22-2ee550326d62c2552c94cc2ef677e5a3-20230531152818-41688d.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-28-22-2ee550326d62c2552c94cc2ef677e5a3-20230531152818-41688d.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h1 id="cpu-虚拟化">CPU 虚拟化</h1>
<p>在物理机（宿主机）中通过线程或进程这种纯软件方式模拟出假的 CPU，通过 CPU 虚拟化就可以将一个物理 CPU 发给不同的虚拟机使用。</p>
<p>虚拟出来的每颗 CPU 实际上就是一个线程或者进程，因此物理 CPU 核数要大于虚拟 CPU 总核数。</p>
<h2 id="cpu-qosquality-of-service-服务质量">CPU QoS(Quality of Service) 服务质量</h2>
<p>QoS 用来控制虚拟机使用 CPU 资源量的大小。
CPU 资源限额：控制虚拟机占用物理资源使用的上限。
CPU 资源份额：定义了多台虚拟机在竞争物理 CPU 资源时，需按比例分配计算资源。
CPU 预留资源：定义了多台虚拟机在竞争物理 CPU 时，每台虚拟机最低分配的计算资源。</p>
<h2 id="numa">NUMA</h2>
<p>NUMA(Non Uniform Memory Access Architecture) 非统一内存访问体系结构，提高物理服务器性能的一种技术。</p>
<p>将物理服务器的 CPU 和内存资源分到多个 node 上，node 内的内存访问效率最高。</p>
<p>NUMA 保证了一个 VM 上的 VCPU 尽量分配到同一个 node 中的物理 CPU 上，如果一台 VM 的 VCPU 跨 node 访问内存的话，访问的延时肯定增加。</p>
<h1 id="内存虚拟化">内存虚拟化</h1>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-53-33-a6d733a49ff6057c8e528cad5867f015-20230531155328-769d51.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/15-53-33-a6d733a49ff6057c8e528cad5867f015-20230531155328-769d51.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h2 id="虚拟化类型-1">虚拟化类型</h2>
<table>
	<thead>
			<tr>
					<th>全虚拟化</th>
					<th>半虚拟化</th>
					<th>硬件辅助虚拟化</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>为每个 VM 维护一个影子页表记录虚拟化内存与物理内存的映射关系，VMM 将影子页表提交给 CPU 的内存管理单元 MMU 进行地址转换，VM 的页表无需改动。</td>
					<td>采用页表写入法，为每个 VM 创建<br />一个页表并向虚拟化层注册。VM<br />运行过程中 VMM 不断管理和维护<br />该页表，确保 VM 能直接访问到合<br />适的地址。</td>
					<td>EPT/NPT 是内存管理单元 MMU 的<br />扩展，CPU 硬件一个特性，通过<br />硬件方式实现 GuestOS 物理内存地<br />址到主机物理内存地址的转换，系<br />统开销更低，性能更高。</td>
			</tr>
	</tbody>
</table>
<h2 id="内存复用技术">内存复用技术</h2>
<p>内存复用是指在服务器物理内存一定的情况下，通过综合运用内存复用技术对内存进行分时复用。
内存复用技术有：</p>
<ul>
<li>内存气泡：虚拟化层将较空闲 VM 内存，分配给内存使用较高的虚拟机。内存的回收和分配由虚拟化层实现，虚拟机上的应用无感知，提高物理内存利用率。（虚拟机分配的内存不超过物理机总内存）</li>
<li>内存交换：将外部存储虚拟成内存给 VM 使用，将 VM 上长时间未访问的数据存放到外部存储上，建立映射关系。VM 再次访问这些数据是通过映射在与内存上的数据进行交换。</li>
<li>内存共享：VM 只对共用的内存（共享数据内容为零的内存页）做只读操作，有写操作时运用写时复制 (VM 有写操作时，开辟另一空间，并修改映射)</li>
</ul>
<h1 id="io-虚拟化">IO 虚拟化</h1>
<table>
	<thead>
			<tr>
					<th>全虚拟化</th>
					<th>半虚拟化</th>
					<th>Pass-Thorugh（直通）</th>
					<th>硬件辅助虚拟化</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>通过软件模拟的形式模拟 O 设备，<strong>不需要硬件支持</strong>，对虚拟机的操作系统也不需要修改（因为模拟的都是一个常见的硬件网卡，如 IntelE1000，主流操作系统一般都自带这些驱动，因此默认情下虚拟机不需要再安装驱动。缺点就是<strong>性能差</strong>。</td>
					<td>由 Hypervisor 提供资源调用接口。VM 通过特定的调用接口与 Hypervisor 通信，完成获取完整/O 资源控制操作。(需修改内核及驱动程序，存在移植性和适用性问题，导致其使用受限。)</td>
					<td>Hypervisor] 直接把硬件 PCI 设备分配给虚拟独占使用，性能挡当然好啦。但是<strong>浪遗硬件设备</strong>，且<strong>配置复杂</strong>，首先需要在 hypervisor 指定通过 PClid 方式分配给指定的虚拟机，然后虚拟机再识别到设备再安装驱动来使用。</td>
					<td>通过硬件的辅助可以让虚拟机直接访问物理设备，而不需要通过 VMM。最常用的就是 SR-lOV(Single Root I/OVirtualizmion)单根 I/O 虚拟化标准，该技术可以直接虚拟出 128-512 网卡，可以让虚拟机都拿到一块独立的网卡，直接使用/O 资源。</td>
			</tr>
	</tbody>
</table>
<h1 id="常见集群策略">常见集群策略</h1>
<h2 id="集群简介">集群简介</h2>
<p>集群是一种计算机系统，通过一组计算机或服务器的软硬件连接起来高度紧密地协作完成计算工作。在客户端看来为其提供服务的只有一台设备，实际上它是一群设备的集合，只不过这些设备提供的服务一样。</p>
<p>集群系统中单个计算机通常称为节点，通过局域网连接，利用多个计算机进行并行计算获得很高计算速度，也可以用多个计算机做备份提高可靠性。（并行计算技术）</p>
<h2 id="ha-策略">HA 策略</h2>
<p>HA(High Availability) 高可用性，一种让服务中断尽可能少的技术。将多台主机组建成一个故障转移集群，运行在集群上的服务（或 VM) 不会因为单台主机的故障而停止。</p>
<p>提升故障恢复速度，降低业务中断时间、保障业务连续性、实现一定的系统自维护。</p>
<h2 id="drs-策略">DRS 策略</h2>
<p>DRS(Dynamic resource scheduling) 动态资源调度，根据对资源池资源负载的动态监控，合理触发均匀分配规侧，实现资源池中的物理服务器之间重新分配资源，达到<strong>负载均衡、消峰填谷</strong>。</p>
<p>当物理服务器上负载过大时，通过 DRS 将虚拟机迁移到其他负载较轻的物理服务器上。当虚拟机遇到负载增大时，DRS 将为资源池中的物理服务器重新分配虚拟机可使用资源，在多个虚拟机之间智能地分配可用资源。</p>
<h2 id="dpm-策略">DPM 策略</h2>
<p>DPM（Distributed power management) 分布式电源管理，用于业务较轻时，把虚拟机动态“集中”到集群中的少部分主机上，将其他主机待机，节省电力消耗，等业务量较大时，再重新唤醒之前待机的主机。</p>
<p>执行 DPM 策略的前提是开启 DRS 策略，即集群必须先设置好 DRS 策略，才能设置 DPM 策略。</p>
<h1 id="存储虚拟化">存储虚拟化</h1>
<h2 id="存储类型">存储类型</h2>
<p>常用的存储类型有：</p>
<table>
	<thead>
			<tr>
					<th></th>
					<th>本地磁盘</th>
					<th>DAS</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>简介</td>
					<td>云计算虚拟化场景下的本地磁盘是指使用服务器本地的磁盘资源，经过 RAD(磁盘阵列) 化后提供给虚拟化平台进行使用。</td>
					<td>DAS(Direct-Attached Storage) 直连式存储：一个存储设备与使用存储空间的服务器<br />直接相连的架构。DAS 为服务器提供块级的存储服务。</td>
			</tr>
			<tr>
					<td>优点</td>
					<td>- 使用方便<br />- 无共享框架<br /></td>
					<td>- 多个磁盘合并成一个逻辑磁盘，满足海量存储的需求<br />- 可实现应用数据和操作系统的分离<br />- 能提高存取性能<br />- 实施简单<br /></td>
			</tr>
			<tr>
					<td>缺点</td>
					<td>- 对跨服务器来说没有备份、冗余机制</td>
					<td>- 服务器发生故障，数据不可访问<br />- 传输距离短</td>
			</tr>
	</tbody>
</table>
<table>
	<thead>
			<tr>
					<th></th>
					<th style="text-align: left">NAS</th>
					<th style="text-align: left">SAN</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>简介</td>
					<td style="text-align: left">NAS(Network Attached Storage) 网络附加存储：将分布、独立的数据进行整合，集<br />中化管理，以便对不同主机和应用服务器进行访问的技术。<br />NAS 将存储设备连接到现有的网络上来提供数据和文件服务。</td>
					<td style="text-align: left">SAN(Storage Area Networks) 存储区域网络：是一种高速的、专门用于存储操作的网<br />络，通常独立于计算机局域网。<br />提供在主机和存储系统之间数据传输，网络内部数据传输的速率快。<br />常见架构有 FC SAN、IP SAN。</td>
			</tr>
			<tr>
					<td>优点</td>
					<td style="text-align: left">- 支持快照等高级特性<br />- 集中存储<br />- 提供安全集成环境（用户认证和授权)<br /></td>
					<td style="text-align: left">- 存储容量利用率高<br />- 兼容性高<br />- 传输距离远<br />- 高带宽<br />- 主机、存储设备可以独立扩展<br /></td>
			</tr>
			<tr>
					<td>缺点</td>
					<td style="text-align: left">- 传输速率低<br />- 前期安装和设备成本高</td>
					<td style="text-align: left">- 成本高、复杂</td>
			</tr>
	</tbody>
</table>
<h2 id="云存储基本概念">云存储基本概念</h2>
<p>存储资源：表示实际的物理存储设备，例如 DAS(直连存储)、NAS(网络附加存储)、SA(存储区域网络) 等。</p>
<p>存储设备：表示存储资源中的管理单元，例如本地磁盘、LUN(逻辑单元号)、Storage 存储池、NAS 共享目录等。</p>
<p>数据存储：表示虚拟化平台中可管理的存储逻辑单元，承载了虚拟机业务，创建磁盘。</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/18-55-45-5599a99b10ac1c9c3ad6cc69bc1c9c67-20230531185540-d75052.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/18-55-45-5599a99b10ac1c9c3ad6cc69bc1c9c67-20230531185540-d75052.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h2 id="创建虚拟存储的流程">创建虚拟存储的流程</h2>
<ol>
<li>在主机软件界面添加存储资源 (SAN、DAS 等)，对主机的启动进行配置。</li>
<li>主机关联存储资源后，进行扫描存储设备（本地磁盘、LUN 等），将具体的设备扫描到主机上。</li>
<li>主机在选择存储设备，进行数据存储的添加，并进行虚拟化。</li>
<li>最后对虚拟化好的数据存储进行创建卷等操作。</li>
</ol>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/18-58-26-0207d3cfacb381f75c3d8f52b3251639-20230531185822-ac2437.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/18-58-26-0207d3cfacb381f75c3d8f52b3251639-20230531185822-ac2437.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h2 id="存储模式">存储模式</h2>
<table>
	<thead>
			<tr>
					<th></th>
					<th>非虚拟化存储</th>
					<th>虚拟化存储</th>
					<th>裸设备映射</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td></td>
					<td>传统的存储模式，就是把磁盘进行分区，分割成不同的逻辑卷，每一个逻辑卷可以给到虚拟机进行使用。</td>
					<td>将不同的存储设备、磁盘进行格式化，格式化的目的是屏蔽底层存储设备的能力、接口<br />协议等差异性，将各种存储资源转化为统一管理的数据存储资源。</td>
					<td>将磁盘直接给到虚拟机使用，让虚拟机直接处理调用存储的命令（直接访问磁盘）中间虚拟化层不再对其进行任何干预（卷都不需要创建）</td>
			</tr>
			<tr>
					<td>特点</td>
					<td>- 性能好 (不再有中间的虚拟化层，VM 读写直接在磁盘上)、速度快、效率高。<br /><br />- 支持的存储功能少（不支持快照、精简配置等）<br /></td>
					<td>- 支持多种存储功能（快照、精简磁盘、磁盘扩容、存储热迁移等)。<br />- 性能不高（没有非虚拟化存储好）<br /></td>
					<td>速度快（三种模式中最快）、性能好。<br />支持的存储功能少（不支持快照、精简配置等），仅支持部分操作系统的虚拟机使用、数据存储只能整块当做裸设备映射的磁盘使用，不可分割。<br /></td>
			</tr>
			<tr>
					<td></td>
					<td>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-05-13-74eb9473a84f7cc8d591b18d5b0ec7ee-20230531190509-4a3908.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-05-13-74eb9473a84f7cc8d591b18d5b0ec7ee-20230531190509-4a3908.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></td>
					<td>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-08-34-98b4e748d8c582b1e74f109fe228fb9c-20230531190829-8006f5.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-08-34-98b4e748d8c582b1e74f109fe228fb9c-20230531190829-8006f5.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></td>
					<td>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-12-22-a0c2ce10d5ab79474d217028ed20056b-20230531191217-563c1b.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-12-22-a0c2ce10d5ab79474d217028ed20056b-20230531191217-563c1b.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></td>
			</tr>
	</tbody>
</table>
<h2 id="存储虚拟化方法">存储虚拟化方法</h2>
<h3 id="基于主机的存储虚拟化">基于主机的存储虚拟化</h3>
<p>若仅是单个主机服务器（或单个集群）访问多个磁盘阵列，可采用基于主机的存储虚拟化：虚拟化的工作通过特定的软件在主机服务器上完成，经过虚拟化的存储空间可以跨越多个异构的磁盘阵列。</p>
<p>特点：</p>
<ul>
<li>优点是稳定性，以及对异构存储系统的开放性。</li>
<li>软件运行于主机上。</li>
<li>从与主机连接的存储上创建虚拟卷。</li>
</ul>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-36-54-e70134a6efd0d031785dc81eeb922c38-20230601083649-a5e4db.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-36-54-e70134a6efd0d031785dc81eeb922c38-20230601083649-a5e4db.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h3 id="基于存储设备的虚拟化">基于存储设备的虚拟化</h3>
<p>若多个主机服务器需要访问同一个磁盘阵列时，可采用基于存储设备虚拟化。虚拟化的工作在阵列控制器上完成，将一个阵列上的存储容量划分多个存储空间 (LUN),供不同的主机系统访问。主要用在同一存储设备内部，进行数据保护和数据迁移。</p>
<ul>
<li>优点是与主机无关，不占用主机资源，数据管理功能丰富。</li>
<li>软件运行于存储设备中专门的嵌入式系统上。</li>
<li>从与 SAN 连接的存储上创建虚拟卷。</li>
</ul>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-41-22-f6e0c1760cda24ae776bfcf3c57c2af5-20230601084118-73285e.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-41-22-f6e0c1760cda24ae776bfcf3c57c2af5-20230601084118-73285e.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h3 id="基于网络的存储虚拟化">基于网络的存储虚拟化</h3>
<p>通过在存储区域网 (SAN) 中添加虚似化引擎实现的，主要用于异构存储系统的整合和统数据管理。</p>
<p>特点：</p>
<ul>
<li>优点是与主机无关，不占用主机资源；</li>
<li>支持异构主机、异构存储设备；</li>
<li>能使不同存储设备的数据管理功能统一，统一管理平台，可扩展性好。</li>
</ul>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-42-36-66183a6a63e0ab9ed777c2ff96834109-20230601084232-7fdd98.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/08-42-36-66183a6a63e0ab9ed777c2ff96834109-20230601084232-7fdd98.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h2 id="存储虚拟化的功能">存储虚拟化的功能</h2>
<p>存储虚拟化可以提高硬件资源的使用效率，简化系统管理的复杂度，增强云存储平台的可靠性。可以通过以下几种技术实现：</p>
<h3 id="精简磁盘和空间回收">精简磁盘和空间回收</h3>
<p>精简磁盘和空间回收用于提高存储资源的使用效率、减小虚拟机未使用空间在主机上占用率过大的问题。</p>
<p>用户用多少分配多少空间（自动分配）<br />空间回收可以将用户删除的数据空间释放到数据存储。</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-07-37-a97805053794b23776d5085409611896-20230601090732-4ff3a3.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-07-37-a97805053794b23776d5085409611896-20230601090732-4ff3a3.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h3 id="快照">快照</h3>
<ul>
<li>指定数据集合的一个完全可用拷贝，该拷贝包括相应数据在某个时间点（拷贝开始的时间点) 的映像。</li>
<li>快照可以是其所表示的数据的一个副本，可以是数据的一个复制品。</li>
<li>快照的作用主要是能够进行在线数据备份恢复。</li>
<li>为用户提供了数据访问通道</li>
</ul>
<p>特点</p>
<ul>
<li>记录了虚拟机在某一时间点的内容和状。</li>
<li>恢复虚拟机快照可以使虚拟机多次快速恢复到某一时间点。</li>
<li>快照包含磁盘内容、虚拟机配置信息、内存数据。</li>
<li>多次快照之间<strong>保存差量数据</strong>，节约存储空间。</li>
</ul>
<h4 id="快照方式介绍">快照方式介绍</h4>
<p>创建快照时会生成一个新的差分卷，虚拟机会挂载这个差分卷作为磁盘文件。</p>
<ul>
<li>ROW 写时重定向</li>
<li>COW 写时拷贝</li>
</ul>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-13-17-381617aa029cc392aa3ae573efdfb8aa-20230601091313-a0828c.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-13-17-381617aa029cc392aa3ae573efdfb8aa-20230601091313-a0828c.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h4 id="快照链介绍">快照链介绍</h4>
<p>对虚拟机进行多次的快照操作，这些多次的快照操作形成快照链。</p>
<p>虚拟机卷始终挂载在快照链的最末端。</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-35-59-7cc5ae355ea7c376e94b60b952e0284e-20230601093555-863fc8.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-35-59-7cc5ae355ea7c376e94b60b952e0284e-20230601093555-863fc8.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h3 id="链接克隆">链接克隆</h3>
<ul>
<li>将源卷和差分卷组合映射为一个链接克隆卷，给虚拟机使用。一个链接克隆需要和原始虚拟机共享同一虚拟磁盘文件。</li>
<li>采用共享磁盘文件缩短了创建克隆虚拟机的时间，还节省了物理磁盘空间。</li>
<li>通过链接克隆，可以轻松的为不同的任务创建一个独立的虚拟机。</li>
</ul>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-19-47-654bac5b7dfa915bea5c572df6f58bbd-20230601091942-a6a3d7.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-19-47-654bac5b7dfa915bea5c572df6f58bbd-20230601091942-a6a3d7.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h3 id="虚拟磁盘文件迁移">虚拟磁盘文件迁移</h3>
<p>功能：</p>
<ul>
<li>将虚拟机的磁盘从一个数据存储迁移到另一个数据存储。可以将虚拟机的所有磁盘整体迁移，也可以单个磁盘分别迁移。</li>
<li>虚拟机的快照可以一起迁移，虚拟机开启或者关闭时都可以迁移。</li>
</ul>
<p>特点：</p>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-32-38-a14bb4f8ed8bac86585c62877564bb65-20230601093233-54d851.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/09-32-38-a14bb4f8ed8bac86585c62877564bb65-20230601093233-54d851.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h1 id="网络虚拟化">网络虚拟化</h1>
<p>虚拟化是对所有 T 资源的虚拟化，提高物理硬件的灵活性及利用效率。云计算中的计算和存储资源分别由计算虚拟化和存储虚拟化提供，而网络作为 T 的重要资源也有相应的虚拟化技术，网络资源由网络虚拟化提供。</p>
<p>网络是由各种设备组成，有传统的物理网络，还有运行在服务器上看不到的虚拟网络。如何呈现和管理它们将是网络虚拟化的首要目标。</p>
<p>将物理网络虚拟出多个相互隔离的虚拟网络（逻辑网络），从而使得不同用户之间使用独立的网络资源，从而提高网络资源利用率，实现弹性的网络。</p>
<p>VLAN 就是一种网络虚拟化，在原有网络基础上通过 VLAN Tag:划分出多个广播域。</p>
<p>网络虚拟化保障我们创建出来的虚拟机可以正常  通信、访问网络。</p>
<p>节省物理主机的网卡设备资源，并且可以提供应用的虚拟网络所需的 L2 一 L7 层网络服务。</p>
<p>网络虚拟化软件提供逻辑上的交换机和路由器 (L2-L3),逻辑负载均衡器，逻辑防火墙 (L4-L7) 等，且可以以任何形式进行组装，从而为虚拟机提供一个完整的 L2-L7 层的虚拟网络拓扑。</p>
<h2 id="物理网络包含的设备">物理网络包含的设备</h2>
<p>路由器：工作在网络层，连接两个不同的网络。</p>
<p>二层交换机：工作在数据链路层，转发数据。</p>
<p>三层交换机：工作在网络层，结合了部分路由和交换机的功能。</p>
<p>服务器网卡：提供通信服务。</p>
<h1 id="虚拟化中的网络架构">虚拟化中的网络架构</h1>
<p>网卡虚拟化方法有：</p>
<ul>
<li>
<p>软件网卡虚拟化</p>
<ul>
<li>主要通过软件控制各个虚拟机共享同一块物理网卡实现。软件虚拟出来的网卡可以有单独的 MAC 地址、IP 地址。</li>
<li>所有虚拟机的虚拟网卡通过虚拟交换机以及物理网卡连接至物理交换机。虚拟交换机负责将虚拟机上的数据报文从物理网口转发出去。</li>
</ul>
</li>
</ul>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-16-53-540de968dd6e4e7cc2e45e8b1b1df1a1-20230601141648-d238fb.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-16-53-540de968dd6e4e7cc2e45e8b1b1df1a1-20230601141648-d238fb.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<ul>
<li>
<p>硬件网卡虚拟化</p>
<ul>
<li>主要用到的技术是单根 I/O 虚拟化 (Single Root/O Virtulization,SR-lOV),就是 I/O 直通技术，通过硬件的辅助可以让虚拟机直接访问物理设备，而不需要通过 VMM。该技术可以直接虚拟出 128-512 网卡，可以让虚拟机都拿到一块独立的网卡，直接使用/O 资源。SR-OV 能够让网络传输绕过软件模拟层，直接分配到虚拟机，这样就降低了软件模拟层中的/○ 开销。</li>
</ul>
</li>
</ul>
<p>交换机虚拟化：</p>
<ul>
<li>OVS(Open vSwitch) 开放虚拟化软件交换机，是一款基于软件实现的开源虚拟以太网交换机，使用开源 Apache2.0 许可协议，主要用于虚拟机 VM 环境。与众多开源的虚拟化平台相整合（支持 Xen、KVM 及 VirtualBox 多种虚拟化技术），主要有两个作用：传递虚拟机之间的流量，实现虚拟机和外界网络的通信。</li>
</ul>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-30-39-aaaaed14c501175ffa51df2735b09d2a-20230601143034-d4f7f6.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/14-30-39-aaaaed14c501175ffa51df2735b09d2a-20230601143034-d4f7f6.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h2 id="虚拟化中数据的转发路径">虚拟化中数据的转发路径</h2>
<ul>
<li>相同端口组不同服务器内的虚拟机通讯需要经过物理网络。（黑线）</li>
<li>相同端口组相同服务器内的虚拟机通讯不需要经过物理网络。（红线）</li>
<li>不同端口组相同服务器的虚拟机通讯需要经过物理网络。（黄色）</li>
</ul>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/18-59-54-9abbabcce9a6864d7c990eba310e171f-20230601185949-5239e7.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/18-59-54-9abbabcce9a6864d7c990eba310e171f-20230601185949-5239e7.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h2 id="链路虚拟化">链路虚拟化</h2>
<p>VPC(Virtual Port Channel) 虚链路聚合，是最常见的二层虚拟化技术。</p>
<p>链路聚合将多个物理端口捆绑在一起，虚拟成为一个逻辑端口。但传统链路聚合不能跨设备，VPC 很好解决了这个问题，既可以跨设备，又可以增加链路带宽、实现链路层的高可用性。</p>
<p>隧道协议 (Tunneling Protocol)：指通过隧道协议使多个<strong>不同协议的网络实现互联</strong>。使用隧道传递的数据可以是不同协议的数据帧或包。隧道可以将数据流强制送到特定的地址，并隐藏中间节点的网络地址，还可根据需要，提供对数据加密的功能。</p>
<ul>
<li>GRE(Generic Routing Encapsulation) 通用路由封装。</li>
<li>IPsec(Internet Protocol Security)Internett 协议安全。</li>
</ul>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-34-04-8dc54676f16ac517fa503ded64966d24-20230601193359-139761.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-34-04-8dc54676f16ac517fa503ded64966d24-20230601193359-139761.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
<h2 id="虚拟网络">虚拟网络</h2>
<p>虚拟网络 (Virtual Network):是由虚拟链路组成的网络。</p>
<p>虚拟网络节点之间的连接并不使用物理线缆连接，而是依靠特定的虚拟化链路相连。</p>
<p>典型的虚拟网络包括：</p>
<ul>
<li>
<p>层叠网络（虚拟二层延伸网络）</p>
<ul>
<li>
<p>层叠网络 (Overlay Network)：在现有网络的基础上搭建另外一种网络</p>
</li>
<li>
<p>层叠网络允许对没有引 P 地址标识的目的主机路由信息。</p>
</li>
<li>
<p>层叠网络可以充分利用现有资源，在不增加成本的前提下，提供更多的服务。（比如 ADSL Internet 接入线路就是基于已经存在的 PSTN 网络实现)</p>
</li>
<li>
<p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-36-27-c84d66208097477a09c6ce6b162bfacd-20230601193622-21ef48.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-36-27-c84d66208097477a09c6ce6b162bfacd-20230601193622-21ef48.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></p>
</li>
<li>
<p>典型技术：</p>
<ul>
<li>VXLAN(Virtual eXtensible Local Area Network) 虚拟扩展局域网：很好地解决了现有 VLAN 技术无法满足大二层网络需求的问题。</li>
<li>VXLAN 技术是一种大二层的虚拟网络技术。</li>
<li>原理是引入一个 UDP 格式的外层隧道作为数据链路层，而原有数据报文内容作为隧道净荷加以传输。</li>
</ul>
</li>
</ul>
</li>
<li>
<p>VPN 网络</p>
<ul>
<li>
<p>VPN(Virtual Private Network) 虚拟专用网：是一种常用于连接中、大型企业或团体与团体间的私人网络的通信方法。</p>
<ul>
<li>通过公用的网络架构（比如互联网）来传送内联网的信息。</li>
<li>利用已加密的隧道协议来达到保密、终端认证、信息准确性等安全效果。这种技术可以</li>
<li>在不安全的网络上传送可靠的、安全的信息。</li>
<li>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responsive Image</title>
    <style>
        .post-img-view {
            text-align: center;
        }
        .responsive-image {
            display: block;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    
    <div class="post-img-view">
        <a data-fancybox="gallery" href="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-39-40-4bc357c1f760435fb8d1a980f230527c-20230601193935-06e11c.png">
            <img class="responsive-image" src="https://picbed-1311007548.cos.ap-shanghai.myqcloud.com/markdown_picbed/img/19-39-40-4bc357c1f760435fb8d1a980f230527c-20230601193935-06e11c.png" alt=""  style="margin: 0 auto;"/>
        </a>
    </div>
    

    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var images = document.querySelectorAll(".responsive-image");
            var maxHeight = window.innerHeight / 3;
            images.forEach(function(image) {
                image.style.maxHeight = maxHeight + "px";
            });
        });
    </script>
</body>
</html></li>
</ul>
</li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>Devstack 部署 OpenStack</title>
      <link>https://lifeislife.cn/posts/devstack%E9%83%A8%E7%BD%B2openstack/</link>
      <pubDate>Fri, 09 Jun 2023 21:38:34 +0000</pubDate>
      <guid>https://lifeislife.cn/posts/devstack%E9%83%A8%E7%BD%B2openstack/</guid>
      <description>&lt;h1 id=&#34;devstack-部署-openstack&#34;&gt;Devstack 部署 OpenStack&lt;/h1&gt;
&lt;p&gt;试验发现在 Host 为 Ubuntu20.04 和 22.04 上无法顺利安装 VirtualBox，请在 Ubuntu18.04 上安装 VirtualBox。虚拟机镜像版本为 Ubuntu20.04，以下步骤可以稳定复现，OpenStack master（c424a7a299e37004d318107648bb18e157344985）版本。&lt;/p&gt;
&lt;p&gt;总而言之，在 18.04 版本上安装 VirtualBox，在 20.04 版本上安装 OpenStack。&lt;/p&gt;
&lt;p&gt;因为安装 OpenStack 容易破话系统包依赖，如果为了学习建议在虚拟机中安装。&lt;/p&gt;
&lt;p&gt;安装过程中需要下载镜像，请确认机器可以访问外网。&lt;/p&gt;
&lt;h2 id=&#34;安装-virtualbox&#34;&gt;安装 VirtualBox&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install virtualbox virtualbox-ext-pack
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;确认-virtualbox-配置&#34;&gt;确认 VirtualBox 配置&lt;/h2&gt;
&lt;p&gt;请确认 VirtualBox 配置如下，VirtualBox 默认配置硬盘为 10G，远远不够用，为了避免后续的麻烦，请确认如下配置：&lt;/p&gt;
&lt;p&gt;磁盘大于 100G&lt;/p&gt;
&lt;p&gt;内存大于 16G&lt;/p&gt;
&lt;p&gt;CPU 大于 4 个&lt;/p&gt;
&lt;h2 id=&#34;下载镜像并安装&#34;&gt;下载镜像并安装&lt;/h2&gt;
&lt;p&gt;镜像可以去&lt;a href=&#34;https://mirrors.tuna.tsinghua.edu.cn/&#34;&gt;清华大学开源软件镜像站 | Tsinghua Open Source Mirror&lt;/a&gt;下载。&lt;/p&gt;
&lt;h2 id=&#34;更新源&#34;&gt;更新源&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo mv /etc/apt/sources.list /etc/apt/sources.list.bk &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo bash -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/apt/sources.list
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restrcdicted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restrcd &amp;amp;&amp;amp; mkdir .pip &amp;amp;&amp;amp; cd .pipicted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;EOF&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;备用源-以备不时之需&#34;&gt;备用源 (以备不时之需)&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo mv /etc/apt/sources.list /etc/apt/sources.list.bk &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo bash -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/apt/sources.list
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restrcdicted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restrcd &amp;amp;&amp;amp; mkdir .pip &amp;amp;&amp;amp; cd .pipicted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;EOF&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo mv /etc/apt/sources.list /etc/apt/sources.list.bk &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo bash -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/apt/sources.list
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb https://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src https://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb https://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src https://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb https://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src https://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb https://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src https://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;EOF&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo mv /etc/apt/sources.list /etc/apt/sources.list.bk &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo bash -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/apt/sources.list
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;EOF&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;安装基础包&#34;&gt;安装基础包&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install aptitude
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;aptitude 用于解决包依赖冲突。&lt;/p&gt;
&lt;h2 id=&#34;添加用户&#34;&gt;添加用户&lt;/h2&gt;
&lt;p&gt;添加 stack 用户&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo useradd -s /bin/bash -d /opt/stack -m stack
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;授予 sudo 权限&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;stack ALL=(ALL) NOPASSWD: ALL&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /etc/sudoers.d/stack
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;切换到 stack 用户&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo su -  stack
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;pip-配置&#34;&gt;PIP 配置&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cd &amp;amp;&amp;amp; mkdir -p  .pip &amp;amp;&amp;amp; cd .pip &amp;amp;&amp;amp; bash -c &amp;#34;cat &amp;lt;&amp;lt; EOF &amp;gt; ~/.pip/pip.conf
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[global]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;timeout = 6000
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;index-url = http://mirrors.aliyun.com/pypi/simple/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;trusted-host = mirrors.aliyun.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;EOF&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;仓库下载&#34;&gt;仓库下载&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/openstack/devstack --depth &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;配置-localconf&#34;&gt;配置 local.conf&lt;/h3&gt;
&lt;p&gt;只需要修改 HOST_IP，其他的可以不用修改，HOST_IP 为本机 IP 地址，可以使用 ifconfig 查看。如果是虚拟机就是虚拟机的 IP，virtualbox 创建的虚拟机默认为 10.0.2.15。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; devstack &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; touch local.conf &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; bash -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;cat &amp;lt;&amp;lt; EOF &amp;gt; /opt/stack/devstack/local.conf
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;[[local|localrc]]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;HOST_IP=10.0.2.15
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;GIT_BASE=http://git.trystack.cn
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;ADMIN_PASSWORD=user
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;DATABASE_PASSWORD=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$ADMIN_PASSWORD&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;RABBIT_PASSWORD=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$ADMIN_PASSWORD&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;SERVICE_PASSWORD=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$ADMIN_PASSWORD&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;EOF&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;安装&#34;&gt;安装&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;FORCE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;yes ./stack.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;bug-解决&#34;&gt;BUG 解决&lt;/h1&gt;
&lt;h2 id=&#34;systemd-包依赖冲突&#34;&gt;systemd 包依赖冲突&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo aptitude install systemd
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;选择N
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;再选择Y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;modulenotfounderror-no-module-named-distutilscmd&#34;&gt;ModuleNotFoundError: No module named &amp;lsquo;distutils.cmd&amp;rsquo;&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; sudo apt-get install python3.10-distutils
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; # 根据自己的 Python 版本决定，可以 python3.7-distutils python3.8-distutils   ....都试一遍
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;apparmor-invalid-capability-bpf&#34;&gt;apparmor invalid capability bpf&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install apparmor
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;no-tenant-network-is-available-for-allocation&#34;&gt;No tenant network is available for allocation&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;vim /etc/neutron/plugins/ml2/ml2_conf.ini
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;ml2&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;type_drivers&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; flat,vlan,vxlan
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;tenant_network_types&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; vxlan
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;ml2_type_vxlan&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;vni_ranges&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 1:1000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;unixvarrunopenvswitchdbsock-database-connection-failed-connection-refused&#34;&gt;unix:/var/run/openvswitch/db.sock: database connection failed (Connection refused)&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt;  /opt/stack/devstack/lib/neutron_plugin 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;vi ovn_agent 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;116G  跳转到116行
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OVS_RUNDIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$OVS_PREFIX&lt;/span&gt;/var/run/openvswitch &lt;span class=&#34;nv&#34;&gt;修改为OVS_RUNDIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$OVS_PREFIX&lt;/span&gt;/var/run/ovn 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rm -rf /var/run/ovn
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;virtualbox-启动报错--failed-to-send-host-log-message&#34;&gt;VirtualBox 启动报错 : Failed to send host log message&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ctrl+F2进入另一个终端
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;输入：startx进入桌面
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;attributeerror-module-collections-has-no-attribute-mutablemapping&#34;&gt;AttributeError: module ‘collections‘ has no attribute ‘MutableMapping‘&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;collections.MutableMapping
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;collections.abc.MutableMapping
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;modulenotfounderror-no-module-named-distutilscore&#34;&gt;ModuleNotFoundError: No module named &amp;lsquo;distutils.core&amp;rsquo;&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install python3-pip
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;error-cannot-uninstall-simplejson-it-is-a-distutils-installed-project-and-thus-we-cannot&#34;&gt;ERROR: Cannot uninstall &amp;lsquo;simplejson&amp;rsquo;. It is a distutils installed project and thus we cannot&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pip install --ignore-installed wrapt enum34 simplejson netaddr
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;server-certificate-verification-failed-cafile-none-crlfile-none&#34;&gt;server certificate verification failed. CAfile: none CRLfile: none&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git config --global http.sslverify &lt;span class=&#34;nb&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git config --global https.sslverify &lt;span class=&#34;nb&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;ubuntu登录页面验证出错&#34;&gt;Ubuntu:登录页面验证出错&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo loginctl unlock-sessions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;ubuntu重装桌面&#34;&gt;Ubuntu:重装桌面&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install ubuntu-desktop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;ubuntu-登录界面-authentication-error&#34;&gt;Ubuntu 登录界面 Authentication Error&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo loginctl unlock-sessions
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;fs.inotify.max_user_watches=524288&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; /etc/sysctl.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;ubuntu-无法进入桌面系统但是可以-ssh-链接&#34;&gt;Ubuntu 无法进入桌面系统，但是可以 SSH 链接&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rm -rf /var/lib/apt/lists/*
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt-get clean
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt-get install --reinstall appstream
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;gsettings-desktop-schemas--破坏mutter--3314-但是-3284-0ubuntu18042-正要被安装解决方案&#34;&gt;gsettings-desktop-schemas : 破坏：mutter (＜ 3.31.4) 但是 3.28.4-0ubuntu18.04.2 正要被安装解决方案&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;sudo&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;apt&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;install&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;gsettings&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;desktop&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;schemas&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;sudo&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;apt&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;install&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;build&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;essential&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
      <content:encoded><![CDATA[<h1 id="devstack-部署-openstack">Devstack 部署 OpenStack</h1>
<p>试验发现在 Host 为 Ubuntu20.04 和 22.04 上无法顺利安装 VirtualBox，请在 Ubuntu18.04 上安装 VirtualBox。虚拟机镜像版本为 Ubuntu20.04，以下步骤可以稳定复现，OpenStack master（c424a7a299e37004d318107648bb18e157344985）版本。</p>
<p>总而言之，在 18.04 版本上安装 VirtualBox，在 20.04 版本上安装 OpenStack。</p>
<p>因为安装 OpenStack 容易破话系统包依赖，如果为了学习建议在虚拟机中安装。</p>
<p>安装过程中需要下载镜像，请确认机器可以访问外网。</p>
<h2 id="安装-virtualbox">安装 VirtualBox</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl">sudo apt update
</span></span><span class="line"><span class="cl">sudo apt install virtualbox virtualbox-ext-pack
</span></span></code></pre></div><h2 id="确认-virtualbox-配置">确认 VirtualBox 配置</h2>
<p>请确认 VirtualBox 配置如下，VirtualBox 默认配置硬盘为 10G，远远不够用，为了避免后续的麻烦，请确认如下配置：</p>
<p>磁盘大于 100G</p>
<p>内存大于 16G</p>
<p>CPU 大于 4 个</p>
<h2 id="下载镜像并安装">下载镜像并安装</h2>
<p>镜像可以去<a href="https://mirrors.tuna.tsinghua.edu.cn/">清华大学开源软件镜像站 | Tsinghua Open Source Mirror</a>下载。</p>
<h2 id="更新源">更新源</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl">sudo mv /etc/apt/sources.list /etc/apt/sources.list.bk <span class="o">&amp;&amp;</span> sudo bash -c <span class="s2">&#34;cat &lt;&lt; EOF &gt; /etc/apt/sources.list
</span></span></span><span class="line"><span class="cl"><span class="s2">deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restrcdicted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restrcd &amp;&amp; mkdir .pip &amp;&amp; cd .pipicted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">EOF&#34;</span>
</span></span></code></pre></div><h3 id="备用源-以备不时之需">备用源 (以备不时之需)</h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl">sudo mv /etc/apt/sources.list /etc/apt/sources.list.bk <span class="o">&amp;&amp;</span> sudo bash -c <span class="s2">&#34;cat &lt;&lt; EOF &gt; /etc/apt/sources.list
</span></span></span><span class="line"><span class="cl"><span class="s2">deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restrcdicted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restrcd &amp;&amp; mkdir .pip &amp;&amp; cd .pipicted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">EOF&#34;</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl">sudo mv /etc/apt/sources.list /etc/apt/sources.list.bk <span class="o">&amp;&amp;</span> sudo bash -c <span class="s2">&#34;cat &lt;&lt; EOF &gt; /etc/apt/sources.list
</span></span></span><span class="line"><span class="cl"><span class="s2">deb https://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src https://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb https://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src https://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">
</span></span></span><span class="line"><span class="cl"><span class="s2">deb https://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src https://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">
</span></span></span><span class="line"><span class="cl"><span class="s2">deb https://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src https://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">EOF&#34;</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl">sudo mv /etc/apt/sources.list /etc/apt/sources.list.bk <span class="o">&amp;&amp;</span> sudo bash -c <span class="s2">&#34;cat &lt;&lt; EOF &gt; /etc/apt/sources.list
</span></span></span><span class="line"><span class="cl"><span class="s2">deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
</span></span></span><span class="line"><span class="cl"><span class="s2">EOF&#34;</span>
</span></span></code></pre></div><h2 id="安装基础包">安装基础包</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl">sudo apt update
</span></span><span class="line"><span class="cl">sudo apt install git
</span></span><span class="line"><span class="cl">sudo apt install aptitude
</span></span></code></pre></div><p>aptitude 用于解决包依赖冲突。</p>
<h2 id="添加用户">添加用户</h2>
<p>添加 stack 用户</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl">sudo useradd -s /bin/bash -d /opt/stack -m stack
</span></span></code></pre></div><p>授予 sudo 权限</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;stack ALL=(ALL) NOPASSWD: ALL&#34;</span> <span class="p">|</span> sudo tee /etc/sudoers.d/stack
</span></span></code></pre></div><p>切换到 stack 用户</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl">sudo su -  stack
</span></span></code></pre></div><h2 id="pip-配置">PIP 配置</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">cd &amp;&amp; mkdir -p  .pip &amp;&amp; cd .pip &amp;&amp; bash -c &#34;cat &lt;&lt; EOF &gt; ~/.pip/pip.conf
</span></span><span class="line"><span class="cl">[global]
</span></span><span class="line"><span class="cl">timeout = 6000
</span></span><span class="line"><span class="cl">index-url = http://mirrors.aliyun.com/pypi/simple/
</span></span><span class="line"><span class="cl">trusted-host = mirrors.aliyun.com
</span></span><span class="line"><span class="cl">EOF&#34;
</span></span></code></pre></div><h2 id="仓库下载">仓库下载</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl">git clone https://github.com/openstack/devstack --depth <span class="m">1</span>
</span></span></code></pre></div><h3 id="配置-localconf">配置 local.conf</h3>
<p>只需要修改 HOST_IP，其他的可以不用修改，HOST_IP 为本机 IP 地址，可以使用 ifconfig 查看。如果是虚拟机就是虚拟机的 IP，virtualbox 创建的虚拟机默认为 10.0.2.15。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl"><span class="nb">cd</span> devstack <span class="o">&amp;&amp;</span> touch local.conf <span class="o">&amp;&amp;</span> bash -c <span class="s2">&#34;cat &lt;&lt; EOF &gt; /opt/stack/devstack/local.conf
</span></span></span><span class="line"><span class="cl"><span class="s2">[[local|localrc]]
</span></span></span><span class="line"><span class="cl"><span class="s2">HOST_IP=10.0.2.15
</span></span></span><span class="line"><span class="cl"><span class="s2">GIT_BASE=http://git.trystack.cn
</span></span></span><span class="line"><span class="cl"><span class="s2">
</span></span></span><span class="line"><span class="cl"><span class="s2">ADMIN_PASSWORD=user
</span></span></span><span class="line"><span class="cl"><span class="s2">DATABASE_PASSWORD=</span><span class="nv">$ADMIN_PASSWORD</span><span class="s2">
</span></span></span><span class="line"><span class="cl"><span class="s2">RABBIT_PASSWORD=</span><span class="nv">$ADMIN_PASSWORD</span><span class="s2">
</span></span></span><span class="line"><span class="cl"><span class="s2">SERVICE_PASSWORD=</span><span class="nv">$ADMIN_PASSWORD</span><span class="s2">
</span></span></span><span class="line"><span class="cl"><span class="s2">EOF&#34;</span>
</span></span></code></pre></div><h2 id="安装">安装</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl"><span class="nv">FORCE</span><span class="o">=</span>yes ./stack.sh
</span></span></code></pre></div><h1 id="bug-解决">BUG 解决</h1>
<h2 id="systemd-包依赖冲突">systemd 包依赖冲突</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl">sudo aptitude install systemd
</span></span><span class="line"><span class="cl">选择N
</span></span><span class="line"><span class="cl">再选择Y
</span></span></code></pre></div><h2 id="modulenotfounderror-no-module-named-distutilscmd">ModuleNotFoundError: No module named &lsquo;distutils.cmd&rsquo;</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl"> sudo apt-get install python3.10-distutils
</span></span><span class="line"><span class="cl"> # 根据自己的 Python 版本决定，可以 python3.7-distutils python3.8-distutils   ....都试一遍
</span></span></code></pre></div><h2 id="apparmor-invalid-capability-bpf">apparmor invalid capability bpf</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl">sudo apt install apparmor
</span></span></code></pre></div><h2 id="no-tenant-network-is-available-for-allocation">No tenant network is available for allocation</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl">vim /etc/neutron/plugins/ml2/ml2_conf.ini
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">[</span>ml2<span class="o">]</span>
</span></span><span class="line"><span class="cl"><span class="nv">type_drivers</span> <span class="o">=</span> flat,vlan,vxlan
</span></span><span class="line"><span class="cl"><span class="nv">tenant_network_types</span> <span class="o">=</span> vxlan
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">[</span>ml2_type_vxlan<span class="o">]</span>
</span></span><span class="line"><span class="cl"><span class="nv">vni_ranges</span> <span class="o">=</span> 1:1000
</span></span></code></pre></div><h2 id="unixvarrunopenvswitchdbsock-database-connection-failed-connection-refused">unix:/var/run/openvswitch/db.sock: database connection failed (Connection refused)</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl"><span class="nb">cd</span>  /opt/stack/devstack/lib/neutron_plugin 
</span></span><span class="line"><span class="cl">vi ovn_agent 
</span></span><span class="line"><span class="cl">116G  跳转到116行
</span></span><span class="line"><span class="cl"><span class="nv">OVS_RUNDIR</span><span class="o">=</span><span class="nv">$OVS_PREFIX</span>/var/run/openvswitch <span class="nv">修改为OVS_RUNDIR</span><span class="o">=</span><span class="nv">$OVS_PREFIX</span>/var/run/ovn 
</span></span><span class="line"><span class="cl">sudo rm -rf /var/run/ovn
</span></span></code></pre></div><h2 id="virtualbox-启动报错--failed-to-send-host-log-message">VirtualBox 启动报错 : Failed to send host log message</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl">Ctrl+F2进入另一个终端
</span></span><span class="line"><span class="cl">输入：startx进入桌面
</span></span></code></pre></div><h2 id="attributeerror-module-collections-has-no-attribute-mutablemapping">AttributeError: module ‘collections‘ has no attribute ‘MutableMapping‘</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">collections.MutableMapping
</span></span><span class="line"><span class="cl">collections.abc.MutableMapping
</span></span></code></pre></div><h2 id="modulenotfounderror-no-module-named-distutilscore">ModuleNotFoundError: No module named &lsquo;distutils.core&rsquo;</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">sudo apt install python3-pip
</span></span></code></pre></div><h2 id="error-cannot-uninstall-simplejson-it-is-a-distutils-installed-project-and-thus-we-cannot">ERROR: Cannot uninstall &lsquo;simplejson&rsquo;. It is a distutils installed project and thus we cannot</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">sudo pip install --ignore-installed wrapt enum34 simplejson netaddr
</span></span></code></pre></div><h2 id="server-certificate-verification-failed-cafile-none-crlfile-none">server certificate verification failed. CAfile: none CRLfile: none</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl">git config --global http.sslverify <span class="nb">false</span>
</span></span><span class="line"><span class="cl">git config --global https.sslverify <span class="nb">false</span>
</span></span></code></pre></div><h2 id="ubuntu登录页面验证出错">Ubuntu:登录页面验证出错</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo loginctl unlock-sessions
</span></span></code></pre></div><h2 id="ubuntu重装桌面">Ubuntu:重装桌面</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo apt install ubuntu-desktop
</span></span></code></pre></div><h2 id="ubuntu-登录界面-authentication-error">Ubuntu 登录界面 Authentication Error</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo loginctl unlock-sessions
</span></span><span class="line"><span class="cl">sudo <span class="nb">echo</span> <span class="s2">&#34;fs.inotify.max_user_watches=524288&#34;</span> &gt;&gt; /etc/sysctl.conf
</span></span></code></pre></div><h2 id="ubuntu-无法进入桌面系统但是可以-ssh-链接">Ubuntu 无法进入桌面系统，但是可以 SSH 链接</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Bash" data-lang="Bash"><span class="line"><span class="cl">sudo rm -rf /var/lib/apt/lists/*
</span></span><span class="line"><span class="cl">sudo apt-get clean
</span></span><span class="line"><span class="cl">sudo apt-get update
</span></span><span class="line"><span class="cl">sudo apt-get install --reinstall appstream
</span></span></code></pre></div><h2 id="gsettings-desktop-schemas--破坏mutter--3314-但是-3284-0ubuntu18042-正要被安装解决方案">gsettings-desktop-schemas : 破坏：mutter (＜ 3.31.4) 但是 3.28.4-0ubuntu18.04.2 正要被安装解决方案</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-Java" data-lang="Java"><span class="line"><span class="cl"><span class="n">sudo</span><span class="w"> </span><span class="n">apt</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="n">gsettings</span><span class="o">-</span><span class="n">desktop</span><span class="o">-</span><span class="n">schemas</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">sudo</span><span class="w"> </span><span class="n">apt</span><span class="o">-</span><span class="n">get</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="n">build</span><span class="o">-</span><span class="n">essential</span><span class="w">
</span></span></span></code></pre></div>]]></content:encoded>
    </item>
  </channel>
</rss>
