云架构师进阶攻略(1) (6)

云架构说到底是分布式架构,既然是分布式,就是去中心化的,因而就需要系统之间通过网络进行互通,因而网络是作为大规模系统架构绕不过去的一个坎。

对于网络的基本原理,推荐书籍《计算机网络-严伟与潘爱民译》,《计算机网络:自顶向下方法》。

对于TCP/IP协议栈的了解,推荐书籍《TCP/IP详解》,《The TCP/IP Guide》

对于网络程序设计,推荐书籍《UNIX网络编程》

如果你想了解网络协议栈的实现,推荐书籍《深入理解LINUX网络内幕》

这里还自我推荐一下本人写的极客时间专栏《趣谈网络协议》。

 

其中有个综合场景,串起来所有的网络协议。

             

云架构师进阶攻略(1)

六、基于KVM了解计算虚拟化

当物理机搭建完毕之后,接下来就是基于物理机上面搭建虚拟机了。

 

没有了解虚拟机的同学,可以在自己的笔记本电脑上用VirtualBox或者Vmware创建虚拟机,你会发现,很容易就能在物理机的操作系统之内再安装多个操作系统,通过这种方式,你可以很方便的在windows办公系统之内安装一个Linux系统。从而保持LInux系统的持续学习。

 

云架构师进阶攻略(1)

             

前面讲linux操作系统的时候,说到操作系统,就是整个系统的管家。应用程序要申请资源,都需要通过操作系统的系统调用接口,向操作系统内核申请将CPU,内存,网络,硬盘等资源分配给他。

 

这时候你会发现,虚拟机也是物理机上的一个普通进程,当虚拟机内部的应用程序申请资源的时候,需要向虚拟机的操作系统请求。然而虚拟机的操作系统自己本身也没有权限操作资源,因而又需要像物理机的操作系统申请资源。这中间要多一次翻译的工作,完成这件事情的称为虚拟化软件。例如上面说的VirtualBox和Vmware都是虚拟化软件。

 

但是多一层翻译,就多一层性能损耗,如果虚拟机里面的每一个操作都要翻译,都不能直接操作硬件,性能就会差很多,简直没办法用,于是就出现了上图中的硬件辅助虚拟化,也即通过硬件的特殊配置,例如VT-x和VT-d等,让虚拟机里面的操作系统知道,他不是一个原生的操作系统了,是一个虚拟机的操作系统,不能按照原来的模式操作资源了,而是通过特殊的驱动以硬件辅助的方式抄近道操作物理资源。

 

刚才说的是桌面虚拟化,也就是在你的笔记本电脑上,在数据中心里面,也可以使用Vmware进行虚拟化,但是价格比较贵,如果规模比较大,会采取开源的虚拟化软件qemu-kvm。

             

对于qemu-kvm来说,和上面的原理是一样的,其中qemu的emu是emulator的意思,也即模拟器,就是翻译的意思。KVM是一个可以使用CPU的硬件辅助虚拟化的方式,而网络和存储的,需要通过特殊的virtio的方式,提供高性能的设备虚拟化功能。

要了解虚拟化的基本原理,推荐书籍《系统虚拟化——原理与实现》

要了解KVM,推荐两本书籍《KVM Virtualization Cookbook》和《Mastering KVM Virtualization》。

另外KVM和qemu的官方文档也是必须要看的,还有Redhat的官网很多文章非常值得学习。

对于虚拟化方面,我写了以下的文章。

 

七、基于Openvswitch了解网络虚拟化

 

当虚拟机创建出来了,最主要的诉求就是要能上网,他能访问到网上的资源,如果虚拟机里面部署一个网站,也希望别人能够访问到他。

这一方面依赖于qemu-KVM的网络虚拟化,将网络包从虚拟机里面传播到虚拟机外面,这需要物理机内核转换一把,形成虚拟机内部的网卡和虚拟机外部的虚拟网卡。

 

云架构师进阶攻略(1)

另外一方面就是虚拟机的网络如何能够连接到物理网络里面。物理网络常常称为underlay network,虚拟网络常常称为overlay network,从物理网络到虚拟网络称为网络虚拟化,能非常好的完成这件事情的是一个叫Openvswitch的虚拟交换机软件。

             

云架构师进阶攻略(1)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspszd.html