本文章主要介绍搭建云计算需要解决的问题。
Quick Guide
硬件资源
存储
采用SSD或者采用SATA+SSD的混合方式节约资源和降低成本。提供VM虚拟机运行环境的block device(块存储),以及提供KV方式的对象访问存储。
网络
对于公有云以及私有云的一些应用场景,需要能够提供网络的逻辑隔离(SDN)或物理隔离,以及对网络的访问灵活问题。需要构建虚拟化网络,对物理网络资源进行抽象并池化,以便于分割或合并资源来满足共享的目的。常用的方式是:bridge、vlan、gre、sdn(openflow、opendaylight)等等。
- 网络虚拟化发展
- 单个物理机的网络
- 多个物理机的网络
- 网络虚拟化发展
虚拟化
VM
使用Xen(XenServer、Oracle VM Server)、OpenVZ 、KVM(RHV)、Vmware、VirtualBox等虚拟技术进行虚拟化,虚拟化后可以安装开源操作系统(Linux 内核、FreeBSD、Illumos 内核 ),通过 OpenStack、CloudStack 、Eucalyptus和Oracle VM Manager 等等去管理分配资源
容器化:可以使应用服务化
对于各个应用场景来说,VM本身的启动需要占用大量的内存、cpu和存储资源,导致系统内存和cpu使用有一定的浪费,容器化是一种轻量级的实现,能够在资源初始化,资源利用率方面能够最大化。例如Linux-VServer、LXC、FreeBSD jail、Solaris Containers、
Docker、Rocket/rkt 和openVZ/Odin等容器技术,Dokcer是通过Kubernetes管理。
管理和使用
远程桌面:VDI可以远程登陆虚拟主机
高可用:集群负载均衡和容灾
高可用问题是在分布式系统中必须要处理的问题,需要保证云管理系统的高可用性,存储介质的高可用性,网络的高可用性,虚拟机高可用问题等等。
- 集群
- 任务的拆分:尽量降低子任务之间的关联性,从而提高处理任务的并行度。
- 任务的调度:把拆分出来的子任务合理地调度给云端服务器并让它们协同完成,最能满足租户要求的调度方法就是合理的
- 负载均衡:多租户请求合理分配(LVS nignx)
- 容灾:
- 检测服务器的状态:Keepalived
- 主从热备
- 集群
租户隔离
- 租户行为隔离
- 资源隔离
- 租户数据隔离,数据隔离比行为隔离更重要。
- 分离数据库
- 共享数据库但分离 Schema
- 共享数据库和 Schema
- 安全问题
- 防火墙:使用外网防火墙
- 网络隔离:网络进行多层划分,控制每层的入口
- 流量统一管理:API网关作为统一出入口
- 统一身份认证:
- 统一用户管理(Identification) :租户的账号、密码等信息集中存储,统一管理
- 身份鉴别(Authentication):当租户企图登录某个应用系统时,验证他的票据或者身份是否合法。
- 权限控制(Authorization):规定允许登录系统的租户具备哪些操作权限。
- 操作日志登记(Accountability):记录租户的操作行为,以便事后责任追溯。