在Dashboard左侧导航栏中,选择“项目”→“Instances”,然后单击“Launch Instance”,可完全通过图形界面方式来创建虚拟机,如图1-6所示。

 

创建OpenStack虚拟机实例

 

当单击“Launch Instance”时,会弹出模态窗口,在此可进行创建实例的具体配置,具体包括实例的细节(Details)、访问和安全(Access&Security)、磁盘配置(Volume Options),以及实例启动后的自定义初始化脚本(Post-Creation)。

 

实例细节的配置包括了实例的来源类型(镜像文件或快照文件)、镜像模板、实例名、套餐、创建实例个数。右侧还列出了更详细的信息,供管理员参考当前实例的创建对整个项目有何影响。

 

访问和安全包括虚拟机SSH**的设置及安全组的设置。磁盘配置可以让用户选择是否在卷存储上进行虚拟机的启动引导(boot)。自定义初始化脚本主要是实例在启动后,可以运行一些用户自定义的脚本。除了实例的细节设置,其他设置如果没有特殊需求,默认即可。当确认一切设置无误后,可以单击“Launch”按钮进行实例创建。

 

创建OpenStack虚拟机实例前有很多先决条件,如Horizon本身能正常运行并对外提供创建服务;建立在OpenStack三个核心组件之上等。这三个核心组件分别是Keystone、Glance、Nova。Keystone负责授权认证、租户管理、项目权限和配额以及服务目录管理。Glance负责为Nova提供创建实例所需要的镜像文件,这种镜像文件可以包含很多格式,大多数都是我们常见的镜像格式,如raw、qcow2。Nova负责虚拟机生命周期的管理,以及宿主机资源调度。Nova还决定了虚拟机实例建立在哪一台Hypervisor物理机之上。由这三个核心组件协作,Horizon将用户的HTTP请求转换为RESTful请求,然后将RESTful请求分发给Nova API,进行实例创建。当创建后,虚拟机实例会进入Build状态,任务状态将是Spawning。这期间会将镜像文件从Glance中下载到Nova节点,并进行一些虚拟机的配置。当一切正常后,虚拟机将会进入Active状态,此时用户可以享受“云”带来的便捷,如

图1-7所示。创建所需的时间一般由创建实例的镜像文件大小、传输镜像图带宽,以及创建的Hypervisor磁盘性能来决定。有时创建过程会持续5~10分钟。

 

创建OpenStack虚拟机实例

 

Horizon并不是唯一可以管理虚拟机的用户界面。之前提到OpenStack还有基于Python的CLI,虚拟机创建之后可以通过Nova-Client进行管理。通过命令行输入nova list,可以看到所有OpenStack实例的运行情况,以及实例相应的信息,如图1-8所示。后续在讲解Nova组件时,将详细讲解各种命令的操作及命令之间的关联关系,以及如何实现自定义命令、命令行扩展,还有如何运用好一系列的OpenStack命令来进行日常的管理、运维。

 

创建OpenStack虚拟机实例

 

当虚拟机创建成功后,双击虚拟机名,进入到这个虚拟机视图进行详细观察,如图1-9所示,可以看到标签页,包括概览(Overview)、日志(Log)、控制台(Console)。概览中可以看到虚拟机的一系列详细信息。日志中可以看到虚拟机当前的启动引导日志,不用登录虚拟机就可以看到虚拟机的引导情况,检查是否有错误或者异常发生。通过控制台界面,可以对虚拟机进行操作。这是一个VNC控制台,我们不必像以前使用虚拟机那样,登录到Hypervisor端配置VNC端口信息,然后再通过VNC Client登录管理虚拟机。OpenStack将这些日常操作抽象出来,进行自动化,整个过程无须用户进行任何配置,当构建好OpenStack云后,剩下的事将交给OpenStack来做。

 

创建OpenStack虚拟机实例

 

单击“More”,有更多的操作可以进行,可以对虚拟机实例进行一些操作,这些操作包括启动、停止、挂起、**、快照、迁移、备份、诊断、恢复、重建、销毁等一系列虚拟机生命周期管理。这些操作都由Nova提供,部分操作会由其他组件来参与。对于OpenStack这样的一个分布式系统,完成一件事,基本上都会涉及一系列的组件。这些组件协同工作,在“云”中扮演着各种角色。之后我们将具体探讨这些组件在OpenStack中扮演什么样的角色,哪些组件必不可少,以及如何通过各种组件的排列组合来组建合适的“云”。