基于OpenStack的高校大数据实践云平台构建和实践探究
2024-04-03宋志伟
宋志伟
关键词:云平台;OpenStack;大数据;大数据实践云平台;大数据实践平台
各高校纷纷推出了大数据相关的课程,来满足大数据时代对人才的需求。要在大数据课程中取得良好的学习效果,动手实践是学习中必不可少的环节。大数据实验所需集群环境比较复杂,不同的实验所需要的环境也不尽相同,环境的搭建既费时费力又容易出错。云计算为高校在实践平台建设中产生的一系列问题提供了很好的解决方案。
1 高校教学现状分析
目前常见的实践平台以单机实验为主,是在虚拟机上完成大数据实验,较难完成多机集群环境的部署。另外,课堂时间较短,除了老师讲解操作所花的时间,留给学生动手实践的时间比较少,造成了有的学生在课上时间不能完成相应的练习。当学生进行下一次学习时,电脑设备会对系统进行重置,之前的操作会被清空,如果想要继续完成之前的练习,就需要从头再来,这样会对学习效果造成影响。另外,电脑设备需要定期进行维护和管理,造成课后学生不能直接使用,这对学生通过课后自主练习来提高学习效果有很大的影响。
2 云计算平台
目前,云计算的部署方式可分为:公有云、私有云、混合云。公有云的优点是简单易用,运维管理由云服务商提供,但长期使用成本较高,教学环境的定制并不方便。私有云是由单位自行搭建的云平台,所有的资源和服务只供自己使用,其优势体现在资源管理、动态调整和个性化定制的课程环境上,但初期需要投入较高的成本。混合云是企业出于安全考虑,在私有云中存放数据,在公有云中获得计算资源,同时使用私有云和公有云。在云平台的部署方案中,OpenStack的市场占有率比较高,技术也比较成熟,已成为开源云平台主流的一种解决方案[1]。因此,本文主要是基于OpenStack的实践云平台的搭建及应用,其版本是OpenStack Train(T版)。
3 OpenStack 简介
OpenStack是一个云操作系统,第一版被命名为Austin,每隔数月会发布一次新版本[2]。以A 至Z 为序,以26个英文字母作为开头字母来命名后续版本的名称。Austin版只包括两个项目Swift和Nova,为云计算提供对象存储和计算服务。目前,OpenStack包含6 个核心组件(Keystone、Glance、Nova、Neutron、Cinder、Swift)和14个可选组件,共计30个组件,每个组件中包含多个服务。后续版本中组件的数量还会发生变化。
本文中的实践云平台搭建使用了OpenStack中的7个组件,各组件的功能如下:
Keystone 是OpenStack 各个组件之间的通信核心,对所有的组件提供身份认证和授权,追踪用户及其权限,提供一个可用服务和API列表[3]。
Glance镜像服务,提供虚拟机镜像的发现、注册和检索服务。
Nova是真正的执行部件,是一个提供计算资源的模块,管理虚拟机的整个生命周期。按照Dashboard 发来的指令并完成具体的操作。
Neutron 网络服务,提供应用编程接口(API)為OpenStack云更灵活地划分物理网络,在多租户环境下,提供给每个租户独立的网络环境。
Cinder管理块设备,可以看作是帮助虚拟机获得所需块设备的管家。
Swift是一个类似于HBase的专门为虚拟机提供非结构化数据存储的NoSQL数据库。它采用分散式存储的方式,为了保证数据的安全性,将相同的数据存储在多台电脑上。
Horizon控制台服务,提供了一个网页界面,该服务通常称为Dashboard。用户登录后可以完成大多数操作:管理实例、动态迁移、分配IP地址等。
4 基于OpenStack 的大数据实践云平台设计
所搭建的实践云平台总共需要5台服务器。每台服务器的配置:2个18核36线程e5-2696 v3 CPU、8个32GB内存、4TB的硬盘。每台服务器安装CentOS-7-x86_64-DVD-2009.iso操作系统。这5台服务器分别作为1台控制节点服务器、4台计算节点和存储节点服务器。每台服务器配置两张网卡,网卡1网段为192.168.169.0/24,该网络为所有的服务器提供软件包安装、网络访问、安全更新、网络时间同步NTP、域名解析DNS [4],用于管理网络。网卡2 网段为192.168.200.0/24,网关为192.168.200.1,该网络为OpenStack中的所有虚拟机实例提供网络访问[3]。具体IP规划和整体架构如图1所示。
控制台计算机需1台,配置2张网卡,安装Win?dows 10 操作系统,网卡1 的IP 地址配置为192.168.169.11,网卡2 的IP 地址配置为192.168.200.11。教师可以通过控制台登录各服务器,进行云平台的搭建和配置。
交换机2960 各48 口共需2 台,分别为Switch1、Switch2。路由器需要1台。
40台学生计算机接于Switch1上,分配固定IP地址192.168.169.101-140。
搭建好OpenStack云平台以后,学生上课时,可以通过学生计算机访问http://192.168.169.10/dashboard 登录OpenStack平台。课后,学生也可以在学校任何地方通过校园网络访问http://192.168.200.10/dash?board 登录OpenStack 平台。学生在OpenStack 云平台上创建出自己的实验云主机,部署出大数据实践平台环境。云主机IP 地址分配池范围设置为192.168.200.30-254,云主机可以自动获取IP地址。
5 基于OpenStack 的大数据实践云平台搭建
5.1 OpenStack 基础环境配置
首先,部署5台服务器,分别命名为controller、com?pute1、compute2、compute3、compute4。对5台服务器分别进行基础环境的安装与配置,包含对所有节点进行网卡配置、selinux和防火墙配置、时间服务器配置、安装OpenStack软件仓库。在controller节点安装配置数据库服务,消息队列服务rabbitMQ,缓存服务memcache。
5.2 在controller 节点安装身份认证服务Keystone
首先,登录MySQL数据库创建keystone数据库,对keystone数据库进行授权[4]。接着,安装Keystone服务;编辑/etc/keystone/keystone.conf服务文件,配置数据库的连接,添加令牌提供者;初始化keystone数据库;初始化Fernet密钥库,引导Keystone服务;对keystone 应用Bootstrap框架执行初始化操作,引导身份认证服务。然后,配置Apache HTTP服务器,包含:编辑/etc/httpd/conf/httpd. conf 文件,配置ServerName 选项,使其指向控制节点[5];创建一个到/usr/share/key?stone/wsgi-keystone. conf 的链接文件;编辑/etc/keystone/adminopenrc文件,设置环境变量,配置管理员账户。最后,获得admin 凭证来获取只有管理员能执行的命令访问权限;创建service项目、user角色。
5.3 在controller 节点安装镜像服务Glance
首先,登录MySQL数据库创建glance 数据库, 对glance 数据库授权。接着,创建glance用户;给service添加glance用户并授权admin角色。然后,创建glance服务实体和创建映像服务API终结点。最后,在控制节点上安装Glance 服务;配置/etc/glance/glance-api.conf文件,配置数据库的连接、身份认证服务、镜像文件位置;初始化glance数据库。
5.4 在controller 節点安装放置服务Placement
首先,登录MySQL数据库创建placement数据库, 对placement数据库进行授权。接着,创建placement 用户;给service 添加placement 用户并授权admin 角色;创建placement服务实体;创建Placement API服务端点。然后,安装Placement服务;编辑/etc/placement/placement.conf文件,配置数据库的连接、认证服务;初始化placement 数据库。最后,解决bug,修改place?ment 的apache 配置文件/etc/httpd/conf. d/00-placement-api.conf。
5.5 在controller节点、compute节点安装计算服务Nova
在控制节点安装计算服务Nova。首先,登录MySQL数据库创建nova_api、 nova、nova_cell0数据库; 并对数据库进行授权。接着,创建nova用户;给ser?vice添加nova用户并授权Admin角色;创建nova服务实体以及Nova API服务端点。然后,在控制节点安装Nova服务;编辑/etc/nova/nova.conf文件,启用计算和元数据API,配置Rabbit消息队列访问,使能Networking 服务,防火墙服务来禁用计算服务内置的防火墙服务,配置my_ip 来使用控制节点的管理接口的IP 地址,配置数据库的连接、认证服务访问,开启远程桌面配置VNC代理使用控制节点的管理接口IP地址,配置镜像服务API的地址,配置锁路径,配置PlacementAPI[6]。最后,初始化nova-api数据库;注册cell0数据库;创建cell1单元格;同步数据库。
在计算节点安装计算服务Nova。编辑/etc/nova/nova.conf文件,配置计算节点vnc远程访问信息,设置虚拟类型为qemu;若计算节点不支持硬件加速,必须配置libvirt来使用QEMU去代替KVM。
5.6 在controller节点、compute节点安装网络服务Neutron
在controller节点安装Neutron服务。首先,登录MySQL数据库创建neutron数据库;对neutron数据库授权,创建数据库用户neutron,并授予数据库用户neu?tron访问neutron数据库的权限[5]。接着,创建neutron 用户;添加admin角色到neutron用户和service项目;创建Neutron 服务实体;创建Neutron 服务的API端点。然后,安装和配置网络服务;配置/etc/neutron/neutron.conf、/etc/neutron/plugins/ml2/ml2_conf. ini、/etc/neutron/plugins/ml2/linuxbridge_agent. ini、/etc/sysctl. conf、/etc/neutron/l3_agent. ini、/etc/neutron/dhcp_agent. ini、/etc/neutron/metadata_agent. ini、/etc/nova/nova. conf 文件[7]。最后,建立ML2 插件的配置文件/etc/neutron/plugins/ml2/ml2_conf.ini的软连接;初始化neutron数据库。
在compute节点安装Neutron服务,配置/etc/neutron/neutron. conf、/etc/neutron/plugins/ml2/linuxbridge_agent.ini、/etc/nova/nova.conf、/etc/sysctl.conf文件。
5.7 在controller 节点安装Dashboard(Horizon)
首先,在controller节点安装Dashboard服务。接着,配置文件/etc/httpd/conf.d/openstack-dashboard.conf和/etc/openstack-dashboard/local_settings。然后,重新启动httpd、memcached服务。最后,使用浏览器打开网址:http://192.168.169.10/dashboard即可看到Web页面。
5.8 在controller 节点、compute 节点安装块存储服务Cinder 和对象存储Swift
首先,配置完成基础环境。接着,编辑/etc/cinder/cinder.conf和/etc/swift/swift.conf文件,配置数据库的连接,配置rabbit消息队列服务,配置认证服务访问。最后,初始化数据库[2]。
6 学生租户的创建和OpenStack平台开放镜像权限
项目Project也称为租户,用于将OpenStack的资源(如:计算、存储和网络)进行分组和隔离,创建出的每一个项目可以代表一个学生租户。只有该租户下的用户才可以访问该项目的资源。创建时需要指定该租户的名称和配额。配额是指该租户最多允许使用多少资源,如vCPU数、内存大小、存储大小等。
同时可以添加项目成员(user) 到该租户(project) 。
6.1 创建学生租户和用户
登录controller节点,创建40个项目project,以学号命名11001-11040,也就是40个学生租户。为每个学生租户创建一个用户,为110XXuser,密码分别为110XXuser。
6.2 配额限制
通过管理员账户Admin登录OpenStack平台,找到“编辑配额”,分别对40个学生租户进行配额限制。每名学生配额,10个实例,8核CPU,20G内存,400G磁盘。
6.3 创建实例类型
通过管理员账户Admin登录OpenStack平台,创建实例类型4个实例类型,HADOOP-控制台,master- 类型,slave01-类型,slave02-类型。
6.4 OpenStack 平台上传镜像并开放镜像权限(仅以租户11001为例)
首先上传镜像,教师提前做好Hadoop集群的三个节点镜像,一个主节点镜像master-image,两个从节点镜像slave01-image和slave02-image,外加一个控制台镜像windows10-image。在controller节点上把镜像上传至/root 目录下,并通过命令上传镜像至Open?Stack中[8]。如图2所示。
将这4 个镜像分别共享给学生租户11001。在此仅以镜像master-image 为例。命令格式: glancemember-create <镜像id> < 项目11001的id>。
[root@controller ~]#glance member-create 8bc452e4-4791-4db4-8247-b5d7ee521d77 a47222cd7f3b41f6a0c865829fd3f51d
在共享之后,镜像的状态是pending 状态,此时还需要激活镜像。命令格式:glancemember-update <镜像id> <项目11001的id>accepted。
[root@controller ~]# glance memberupdate8bc452e4-4791-4db4-8247-b5d7ee521d77 a47222cd7f3b41f6a0c865829fd3f51d ac?cepted
7 学生部署Hadoop 集群
11001 号学生通过11001user 用户名登录Open?Stack平台,利用镜像自行部署Hadoop集群,创建出4 个实例:windows10-vm、 master-vm、slave01-vm、slave02-vm。如图3所示。
上述虚拟机在开启状态,学生通过实例控制台打开windows10-vm 界面,通过SecureCRT,连接上master-vm,slave01-vm,slave02-vm。启动Hadoop 集群服务,[root@master ~]# start-all.sh。通过浏览器登录,http://master:50070, http://master:8088。可以正常访问Hadoop集群的HDFS界面和YARN界面,如图4 所示。
8 结束语
本文基于OpenStack搭建了一个大数据实践云平台,平台中提供了多种实例类型和镜像,学生按需创建实例。平台实现了资源的弹性分配、共享、有效管理和有效利用,具备虚拟化管理、存储管理、安全管理、服务管理等功能模块[6]。实践平台采用访问控制、安全组等机制保证了该平台的可靠性,还提供了接口实现了平台的管理。教师以管理员身份登录,对系统进行安装配置和管理运维;学生用各自分配的账号和密码登录实践平台做实训,互不影响。