当前位置:首页 > 虚拟机 > 正文

openstack虚拟机创建过程


一、openstack.创建实例的工作流程,分析各个组件间是如何协同工作的?OpenStack实例创建的工作流程涉及多个组件,包括Nova、Neutron、Glance等。以下是OpenStack实例创建的工作流程以及各个组件如何协同工作:
1.用户使用Horizo​​n或API创建实例请求。
​​n或API将实例请求发送到NovaAPI。
I将实例请求发送给NovaScheduler,NovaScheduler选择合适的计算节点创建实例。
heduler通过RPC调用NovaCompute创建实例。
mpute创建实例并将实例状态更新到Nova数据库。
mpute通过RPC调用Neutron为实例创建网络。
n创建实例的网络并将网络状态更新到Neutron数据库。
mpute使用GlanceAPI下载实例镜像。
API从镜像仓库下载实例镜像,并将镜像缓存到GlanceImageCache中。
mpute使用Qemu/KVM等虚拟化技术来启动实例并将实例状态更新到Nova数据库。
11.实例启动后,NovaCompute将实例的元数据信息发送给NovaMetadataService。
tadataService将实例的元数据信息发送给NovaAPI。
I将实例的元数据信息发送到Horizo​​n或API,用户可以通过Horizo​​n或API访问实例的元数据信息。
整个过程中,各个组件的协同工作是通过OpenStack中的消息队列系统RabbitMQ来实现的。当一个组件需要与另一个组件通信时,它会向RabbitMQ发送消息,另一个组件接收来自RabbitMQ的消息并进行处理。通过消息队列,可以实现各个组件之间的异步通信,从而提高系统的可靠性和稳定性。
一般来说,OpenStack实例创建的工作流程涉及多个组件的协同工作。通过消息队列系统实现各个组件之间的通信和协作,从而实现实例创建、网络配置和镜像下载。等待操作
二、如何用OpenStack启动Windows虚拟机OpenStack中有两种不同的接口用于管理云资源。一种是通过Horizo​​n,它是基于Web的OpenStack仪表板;另一个通过OpenStack命令行界面(CLI)。在本教程中,我将展示如何从命令行在OpenStack上创建或终止虚拟机。该流程已在OpenStack的Havana版本上进行了测试。与OpenStackFolsom等早期版本的OpenStack一样,只需在本教程中使用的命令行中将“neutron”替换为“quantum”即可。
假设已部署的OpenStack系统已在某处构建并运行。我想使用OpenStackCLI客户端来管理现有OpenStack系统上的虚拟机。
安装OpenStackCLI客户端
第一步是安装必要的OpenStack命令行客户端:
在Debian、Ubuntu或LinuxMint上,运行以下命令:
$sudoapt-getinstallpython-pip$sudopipinstallpython-novaclientpython-keystoneclientpython-neutronclient
在CentOS、Fedora或RHEL上,运行以下命令:
$sudoyuminstallpython-pip$sudopipinstallpython-novaclientpython-keystoneclientpython-neutronclient
设置环境变量
为了使用OpenStackCLI客户端,您必须设置必要的环境变量。为此,请创建一个名为的脚本,如下所示。
​$rtOS_USERNAME=danexportOS_PASSWORD=my_passwordexportOS_TENANT_NAME=demoexportOS_AUTH_URL=https://192.168.10.10:5000/v2.0
​在上面的脚本中,OS_USERNAME/OS_PASSWORD是OpenStack用户的名称和密码。。OS_TENANT_NAME是创建的项目的名称。OS_AUTH_URL是Keystone端点URL。Keystone是一个OpenStack服务,负责不同OpenStack组件之间的身份验证。您必须将192.168.10.10替换为在部署的系统上运行OpenStackKeystone的主机的IP地址。
现在运行并设置环境变量,如下所示。
【$
至此,您就可以运行OpenStack命令行客户端程序了。确保运行时没有遇到任何错误:
​$novalist
它显示空结果,这意味着一切正常。
创建网络
现在您已准备好创建网络来连接虚拟机。
创建一个名为“xmodulo”的新网络。
​$neutronnet-createxmodulo
创建一个名为“xmodulo_subnet”的新子网并将其添加到您刚刚构建的网络中。
​$neutronsubnet-createxmodulo10.0.0.0/24--namexmodulo_subnet
​检查可用网络列表以确认网络已成功构建。
​$neutronnet-list
在结果中,记下您构建的网络的“ID”(数字)。稍后创建虚拟机时将使用此编号。
启动虚拟机
在创建和启动虚拟机之前,您首先需要了解一些事情。
找出您要创建的虚拟机类型。为此,请运行以下命令。
​$novaflavor-list
在此示例中,我将选择最小的虚拟机类型“”,它具有64MB内存、1个虚拟处理器(vCPU),并且没有磁盘。请记下这个人的名字。
接下来,选择要用于虚拟机的虚拟机映像。要列出所有可用的虚拟机映像,请使用以下命令: