nova中创建虚拟机的流程

本文从一张图片看一下在创建虚拟机过程中,nova的各个服务的关键出入口以及结果。

 

(文章来自作者维护的社区微信公众号【虚拟化云计算】)

目前有两个微信群《kvm虚拟化》和《openstack》,扫描二维码点击“云-交流”,进群交流提问

如图中的蓝色部分:

用户的入口是nova_client或者是horizon,他们是RestAPI的http客户端。

 

如图中的黄色部分:

nova中四个服务:nova-api;nova-conductor;nova-scheduler;nova-compute,他们之间是通过发送RPC消息(RabbitMQ)进行通信的。

 

如图中的绿色部分:

在openstack中分别在rpcapi.py和manager.py中实现了RPC消息通讯的client和server。

 

如图中的橙色部分:

sechduler有两种结果:一种是产生某个符合条件的主机,一种是或者无可用主机;

compute有两种结果:一种是claim失败而发消息build_instances到conductor进行新一轮的调度创建。一种就是开始创建虚拟机。

 


 

 

关注微信公众号【虚拟化云计算】,阅读更多虚拟化云计算知识,纯技术干货更新不停。
 
 

 

 

 

<think>好的,用户想了解虚拟机创建流程,步骤是怎样的。之前我提供的回答里已经涵盖了虚拟机的作用和应用场景,现在需要根据用户当前的提问,结合之前提到的引用内容,详细说明创建流程。 首先,用户提到了OpenStack虚拟机创建流程,引用[1]中提到了Nova组件与其他组件的交互,比如Keystone、Glance、Neutron、Cinder。引用[2]则是一个比较基础的手动创建虚拟机的步骤,可能是使用像VirtualBox或VMware这样的工具。用户现在的问题更偏向于具体的创建步骤,所以需要区分不同场景下的流程。 需要确定用户是想了解基于云平台(如OpenStack)的创建流程,还是本地虚拟化软件(如VMware、VirtualBox)的步骤。根据用户提供的引用,可能两者都需要覆盖。但用户的问题没有明确说明,可能需要分情况回答,确保全面。 接下来,要整理OpenStack创建虚拟机流程,步骤包括认证、镜像获取、网络配置、卷分配、调度、实例创建等,每个步骤涉及哪些组件,如Nova、Keystone、Glance、Neutron、Cinder。需要简明扼要地解释每个步骤的作用和组件间的交互。 然后是本地工具的创建流程,比如VMware的步骤,引用[2]中的步骤比较基础,可能需要更详细的分步说明,比如选择镜像、配置资源、安装操作系统等。需要注意不同工具可能有不同的界面,但核心步骤类似。 同时,用户可能对流程中的关键点感兴趣,比如资源分配、网络配置、镜像选择,这些需要在步骤中强调。此外,可以提到创建过程中可能遇到的常见问题,如资源不足、网络配置错误等,并给出建议。 还需要对比两种创建流程的不同,帮助用户理解适用场景。例如,云平台适合大规模部署,本地工具适合个人使用或测试环境。 最后,确保回答结构清晰,分点说明,使用代码块展示命令行示例(如OpenStack CLI),同时保持语言口语化,避免技术术语过多,但又要准确。检查是否覆盖了用户可能关心的所有方面,比如权限、网络设置、存储选项等。 总结下来,回答需要包括两部分:云平台(以OpenStack为例)和本地虚拟化工具的创建流程,每个部分分步骤详细说明,并补充关键注意事项。最后附上相关问题,帮助用户深入理解。</think>### 虚拟机创建流程详解(分场景说明) --- #### **一、云平台场景:以OpenStack为例** OpenStack通过多组件协作实现虚拟机创建,核心流程如下[^1]: 1. **身份认证(Keystone)** - 用户通过`Keystone`组件验证身份和权限,获取临时访问令牌(Token),后续操作需携带此令牌。 2. **镜像选择(Glance)** - 从`Glance`服务中选择虚拟机镜像(如Ubuntu 20.04),镜像格式支持`qcow2`、`raw`等。 - **示例代码(OpenStack CLI)**: ```bash openstack image list # 列出可用镜像 ``` 3. **网络配置(Neutron)** - 通过`Neutron`分配虚拟网络资源: - 选择子网(Subnet)和安全组(Security Group)。 - 绑定浮动IP(Floating IP)实现外网访问。 - **关键参数**:网络ID、端口(Port)配置。 4. **存储分配(Cinder)** - 可选步骤:若需独立存储卷,通过`Cinder`创建并挂载卷(Volume)到虚拟机。 5. **实例创建Nova)** - `Nova`组件处理虚拟机实例的生成: - 指定实例规格(Flavor):CPU核数、内存、磁盘大小。 - 调度物理主机(通过调度算法选择最优计算节点)。 - **示例代码**: ```bash openstack server create --image ubuntu-20.04 --flavor m1.small --network private-net my-vm ``` 6. **启动与状态监控** - 虚拟机进入`BUILDING`状态,最终转为`ACTIVE`。 - 可通过控制台日志或`openstack server show <vm-id>`查看详情。 --- #### **二、本地虚拟化工具场景:以VMware/VirtualBox为例** 适用于个人开发或测试环境,流程更简化[^2]: 1. **选择虚拟化软件并配置** - 安装VMware Workstation或VirtualBox。 - 新建虚拟机向导中选择“自定义配置”。 2. **镜像加载** - 挂载操作系统ISO文件(如CentOS 7)或使用预下载的虚拟机模板(如OVA文件)。 - **关键点**:镜像需匹配虚拟化软件支持的格式(如VDI/VMDK)。 3. **资源分配** - **CPU与内存**:根据宿主机性能分配(如4核CPU + 8GB内存)。 - **存储空间**:动态分配或固定大小磁盘(建议预留20GB以上)。 4. **网络模式选择** - **桥接模式**:虚拟机直接使用宿主机网络,独立IP。 - **NAT模式**:共享宿主机IP,适合内网测试。 5. **操作系统安装** - 启动虚拟机后,进入安装界面: - 分区设置(默认自动分区即可)。 - 用户账户创建(建议启用root密码)。 - **注意**:安装完成后卸载ISO镜像,避免重复引导。 6. **工具增强功能安装** - 安装VMware Tools或VirtualBox Guest Additions: - 支持剪贴板共享、分辨率自适应、文件拖放。 - **命令示例(Linux)**: ```bash sudo apt install open-vm-tools # VMware增强工具 ``` --- #### **三、创建流程中的关键注意事项** 1. **资源超分风险** - 避免过量分配CPU/内存(如宿主机仅16GB内存却分配4台8GB内存的虚拟机)。 - **建议**:预留至少20%的宿主资源缓冲。 2. **网络连通性验证** - 检查防火墙规则是否放行SSH(22端口)或RDP(3389端口)。 - **诊断命令**: ```bash ping <虚拟机IP> # 测试基础连通性 ``` 3. **镜像兼容性问题** - UEFI vs BIOS引导模式需与镜像匹配,否则会导致启动失败。 - **修复方法**:在虚拟机设置中手动切换引导模式。 --- ### **总结** 虚拟机创建流程根据场景不同分为: - **云平台(OpenStack)**:多组件协作,适合企业级弹性部署。 - **本地工具(VMware/VirtualBox)**:简易操作,适合开发测试。 核心步骤均需关注**资源分配**、**网络配置**和**镜像选择**,避免配置冲突导致启动失败。 --- ### 相关问题 1. OpenStack中如何通过Heat模板实现批量虚拟机创建? 2. 虚拟机启动时卡在“PXE Boot”界面可能是什么原因? 3. 如何通过CLI工具快速克隆虚拟机(如Virsh/VBoxManage)? 4. 虚拟机磁盘扩容后如何在操作系统中生效(LVM vs 普通分区)?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值