基于openstack 与kvm 的云计算平台的构建 汪志鸿,詹舒波** 作者简介:汪志鸿,(1989- ),男,硕士研究生,主要研究方向:电信网络管理及下一代增值业务的研究与 开发。 通信联系人:詹舒波,(1965- ),男,北京邮电大学网络与交换技术国家重点实验室教授,主要研究方向: 电信增值系统、智能网及多媒体技术在电信网络中的应用研究与开发。E-mail: zhanshubo@cincc.cn (北京邮电大学网络技术研究院,北京 100876) 5 摘要:云计算时代,计算能力成为一种抽象的,可以度量的商品。而虚拟化技术将计算能力 与具体的物理计算机相分离,提供了计算机在逻辑上的抽象。正是以虚拟化技术为代表的 IaaS 服务,为云计算提供了底层实现上的可能。本文探讨的是如何利用现有的kvm 虚拟化 技术和openstack 云平台套件,构建真正的虚拟化云计算平台,以对外提供IaaS 的云计算服 务。 10 关键词:Openstack;KVM;云计算;IaaS 中图分类号:TP311 Build cloud computing platform based on Openstack and KVM 15 WANG Zhihong, ZHAN Shubo (Beijing University of Post and Telecommunication, Beijing 100876) Abstract: In the era of cloud computing, the ability of computing becomes a kind of abstract and measurable commodity. The technology of virtulization sepearates computing performance from the details of physical computers. It provides a logic layer between users and computers. The 20 IaaS,which is represented by virtulization technology,provides the possibility of implementing cloud computing. The article shows how to build a cloud computing platform based on the kvm and the openstack suite. The aim is to provide IaaS service to the users. Keywords: Openstack; kvm; cloud_computing; IaaS 25 0 引言 本研究进行的实际背景是云计算技术的发展,给信息产业带来了深刻而又显著的变化, 云计算技术将计算能力抽象成一种逻辑上的商品[1],将企业与用户从具体的物理计算机,物 理存储等各种物理设备的繁琐细节中解放出来,通过资源的高效管理与高度整合,提高计算 与存储的效率,推动整个社会生产力的发展。 30 研究目的是利用现有的kvm虚拟化技术和openstack 套件构建一个分布式的高可用的虚 拟化云计算平台,这样的平台包括若干台服务器组成的集群,按照功能不同分为控制节点和 计算节点两类,所有的节点通过网络连接到一起,作为整体的一个云,为云外的用户提供 IaaS 服务,在云端,用户可以创建,运行,管理一个个的计算机实例,就如同拥有一台台真 正的计算机一样。 35 1 openstack 体系结构 我们使用openstack 作为虚拟化计算的框架,统一管理与整合虚拟机的所有相关资源。 而openstack 是由五个相对独立的组件构成,每个组件的名称和功能分别如表1 所示: 40 表1 openstack 各部分及作用 组件名称 作用 Keystone 用户鉴权与资源管理 Glance 虚拟机镜像管理 Nova 虚拟机计算,操作虚拟机实例 Horizon 基于web 网页的图形化管理前端 Swift 以对象为单位的存储系统,类似于amazon S3 其中swift 作为Object Storage 是可选项[2],在我们的研究中不做配置。 各个组件之间的调用关系如图1 所示,Idenity 对应keystone,dashboard 对应horizon, compute 对应nova,image 45 对应glance,object 对应swift。 图1 Openstack 组件间数据流图 构建基于openstack 与kvm 的云计算平台,系统中分控制节点与计算节点两类节点。 50 其中:控制节点运行openstack 的keystone 组件,glance 组件,nova 组件与horizon 组 件;而计算节点则只需要运行nova 组件,并同时运行keystone-client 与控制节点上的keystone 保持连接。 2 单个节点的结构设计 55 图2 单节点linux 服务框架图 一个完整的openstack 节点,即兼具控制节点与计算节点功能的openstack 节点,需要整 合一系列的linux 服务进程以实现功能完全的云计算平台[3],如图2 所示。 60 Openstack-dashboard 需要用到诸如apache 的web 服务器,horizon 通过novnc 与kvm 虚 拟机连接,使用户可以在web 浏览器中通过vnc 方式访问虚拟机桌面, 而nova-compute 部分通过libvirt 中间件与底层的kvm 虚拟机通信,操作虚拟机的启动, 暂停,修改与关闭。而在存储部分,nova-compute 通过nova-volume 访问宿主服务器的LVM 存储卷资源。 65 另一方面,虚拟机网络采用linux 下的网卡桥接技术[4],将kvm 虚拟机实例接入到云计 算的平台网络。nova-network 为创建的kvm 虚拟机提供iptables 的网络包过滤功能,和 dnsmasq 一起使用,为虚拟机实例提供DHCP 功能,动态分配虚拟机实例的ip 地址,结合 支持VLAN 的网络交换机,虚拟机实例可以任意组建虚拟局域网, 3 网络拓扑结构 70 3.1 控制节点与计算节点连接组织方式 对于云计算平台中的所有服务器节点,采用单个控制节点连接多个计算节点的连接方 式,呈中心辐射状的网络拓扑结构[5],其中控制节点ip 地址为192.168.56.201,如图3: 图3 服务器网络拓扑图 75 3.2 虚拟机实例之间的网络连接 构建云计算平台的所有物理服务器均有2 块物理网卡,分别为eth0 与eth1,eth0 用于 连接真实的服务器网络,而所有虚拟机实例则通过br100 虚拟网卡桥接到eth1,不同服务器 之间的eth1 再以网络相连接。这样做到了物理服务器网络与虚拟机实例网络之间的隔离, 80 更加安全[6]。 虚拟机实例对应的网络为10.0.0.1/8,采用flatDHCP 的网络连接方式,控制节点运行 dnsmasq 服务,负责为所有相连接的计算节点上运行的虚拟机实例以DHCP 的方式分配ip 地址。而物理服务器网络则为192.168.56.1/24。具体的虚拟机网络连接的拓扑结构如下面的 图4 所示: 图4 虚拟机实例网络连接拓扑图 4 服务器节点的安装配置 4.1 操作系统准备 90 所有服务器需要运行在支持kvm 虚拟机的内核之上,内核需要打开如下功能的支持: nbd,iptables full NAT 与filter 功能,服务器操作系统需要为此重新编译专门的linux 内核。 所有服务器需运行qpidd 服务。此外,控制节点还需要开启如下的系统服务:NTP Server, Mysqld,httpd,libvirtd。 而计算节点则需要开启ntp server,mysql client 与libvirtd 服务。 95 4.2 软件安装 使用的服务器操作系统为ubuntu 12.04,使用apt-get 在线安装如下的软件包: 控制节点安装keystone,glance,nova,horizon,apache,ntpd-server,kvm,mysql-server, libvirt。 计算节点安装nova,keystone-client,ntpd-client,kvm,mysql-client,libvirt。 100 4.3 软件配置 4.3.1 数据库初始化 在mysql 中为keystone,nova,horizon,glance 创建各自的数据库,用户名与密码。这 里以keystone 为例: 学术论文网Tag:代写论文 代写代发论文 论文发表 |