OpenStack + KVM面试命令

一、virsh 命令(KVM 底层,宿主机执行,面试高频)

virsh:KVM/QEMU 虚拟机管理工具,OpenStack 底层就是调用 virsh 操作虚拟机

# 查看全部虚拟机(运行+关闭)
virsh list --all

# 只看运行中虚拟机
virsh list

# 启动虚拟机
virsh start <vm-name>

# 关闭虚拟机(优雅关机)
virsh shutdown <vm-name>

# 强制断电(硬关机,相当于拔电源)
virsh destroy <vm-name>

# 重启
virsh reboot <vm-name>

# 挂起/暂停
virsh suspend <vm-name>
# 恢复暂停
virsh resume <vm-name>

# 查看虚拟机xml配置文件
virsh dumpxml <vm-name>

# 编辑虚拟机xml配置
virsh edit <vm-name>

# 定义虚拟机(从xml文件导入)
virsh define xxx.xml
# 删除虚拟机(取消定义,不删磁盘)
virsh undefine <vm-name>
# 删除虚拟机同时删除磁盘
virsh undefine --remove-all-storage <vm-name>

# 虚拟机快照
virsh snapshot-list <vm-name>                  # 查看快照
virsh snapshot-create-as <vm-name> snap01      # 创建快照
virsh snapshot-revert <vm-name> snap01         # 恢复快照
virsh snapshot-delete <vm-name> snap01         # 删除快照

# 控制台vnc信息,排错看虚拟机控制台
virsh vncdisplay <vm-name>

# 查看虚拟机磁盘信息
virsh domblklist <vm-name>

# 查看虚拟机网卡
virsh domiflist <vm-name>

# 查看宿主机kvm版本
virsh version

# 查看kvm支持的cpu型号
virsh cpu-models x86_64

# 查看宿主机资源池
virsh pool-list --all
virsh pool-info <pool-name>

二、QEMU 辅助命令(KVM 底层,面试了解)

# 创建qcow2镜像
qemu-img create -f qcow2 test.qcow2 20G

# 查看镜像信息
qemu-img info test.qcow2

# 镜像格式转换 qcow2 --> raw
qemu-img convert -f qcow2 -O raw test.qcow2 test.raw

# 镜像扩容
qemu-img resize test.qcow2 +10G

# 检查qcow2镜像
qemu-img check test.qcow2

三、OpenStack CLI 命令(控制节点,source 环境变量后执行!面试核心)

必须先加载环境变量

source /etc/kolla/admin-openrc.sh
# 或者
source admin-openrc

1. 实例 nova(openstack compute service)

# 列出所有云主机实例
openstack server list

# 查看实例详情(重点!排错看状态、网络、fault信息)
openstack server show <instance-name/id>

# 创建云主机
openstack server create \
--image cirros \
--flavor m1.small \
--key-name mykey \
--nic net-id=xxx-network-id \
vm01

# 启动实例
openstack server start <vm-id>

# 关闭实例
openstack server stop <vm-id>

# 软重启
openstack server reboot <vm-id>
# 硬重启(强制断电重启)
openstack server reboot --hard <vm-id>

# 删除实例
openstack server delete <vm-id>

# 实例快照
openstack server snapshot create vm-snap01 --server <vm-id>

# 获取实例控制台url,网页控制台
openstack server show <vm-id> | grep console
openstack console url show <vm-id>

# 实例迁移(冷迁移)
openstack server migrate <vm-id>
# 热迁移(在线迁移)
openstack server live-migration <vm-id> compute02

# 将实例置为维护模式
openstack server set --state error <vm-id>

# 查看nova服务状态(看哪些compute节点活着)
openstack compute service list

# 查看flavor规格
openstack flavor list
openstack flavor show m1.small

# 创建flavor
openstack flavor create --ram 2048 --disk 20 --vcpus 2 m1.test

2. Glance 镜像服务

# 镜像列表
openstack image list

# 查看镜像详情
openstack image show cirros

# 上传镜像
openstack image create --file cirros-0.5.2-x86_64-disk.img --disk-format qcow2 --container-format bare cirros

# 删除镜像
openstack image delete <image-id>

3. Neutron 网络(面试高频)

# 网络列表
openstack network list
openstack network show net1

# 子网列表
openstack subnet list

# 路由器列表
openstack router list

# port端口列表(每个虚拟机网卡对应一个port)
openstack port list
openstack port show <port-id>

# floating ip 浮动IP
openstack floating ip list
# 创建浮动ip
openstack floating ip create ext-net
# 绑定浮动ip到实例
openstack server add floating ip vm01 10.0.0.123
# 解绑浮动ip
openstack server remove floating ip vm01 10.0.0.123

# 安全组
openstack security group list
openstack security group rule list default
# 添加安全组规则,放行ssh
openstack security group rule create --proto tcp --dst-port 22 default

4. Cinder 块存储(云硬盘)

# 云硬盘列表
openstack volume list
openstack volume show vol01

# 创建云硬盘
openstack volume create --size 20 vol01

# 挂载云硬盘到实例
openstack server add volume vm01 vol01

# 卸载云硬盘
openstack server remove volume vm01 vol01

# 卷快照
openstack volume snapshot list
openstack volume snapshot create --volume vol01 vol-snap01

5. Keystone 身份认证

# 用户列表
openstack user list
# 项目/租户
openstack project list
# 角色
openstack role list
# 域
openstack domain list

6. OpenStack 服务状态排错

# 查看所有openstack服务组件状态
openstack service list

# 查看endpoint访问地址
openstack endpoint list

四、OpenStack 排错面试高频命令

面试经常问:实例创建失败,如何排查?

  1. 看实例详情 openstack server show <uuid>,看 fault 字段报错信息
  2. 看 nova-compute 日志:/var/log/nova/nova-compute.log
  3. 看 nova-api 日志:/var/log/nova/nova-api.log
  4. 看 neutron 日志:/var/log/neutron/
  5. 宿主机查看 virsh list –all,确认 kvm 侧虚拟机是否生成
  6. compute service list 确认计算节点是否 up 状态
# 查看实例控制台日志(非常重要,虚拟机内部启动报错看这个)
openstack console log show <vm-id>

五、面试常考区别问答(背)

  1. virsh vs openstack server 命令
  • openstack server:控制节点 API 调用,nova 组件接口;
  • virsh计算宿主机本地,直接操作 QEMU/KVM,OpenStack 底层调用 virsh;实例在 openstack 删除,virsh 上虚拟机也会消失。
  1. 冷迁移 vs 热迁移(live‑migration)
  • 热迁移:虚拟机不关机,在线迁移到另一台计算节点,内存拷贝;要求共享存储或者块迁移,网络要求高。
  • 冷迁移:关机后迁移磁盘,停机业务中断。
  1. snapshot:
  • OpenStack server snapshot:glance 镜像快照,生成新镜像;
  • virsh snapshot:qemu 内部快照,qcow2 快照,存在磁盘文件,openstack 不推荐使用 virsh 快照。
  1. qcow2 vs raw:
  • raw:裸格式,性能高,不支持快照,占用空间预分配;
  • qcow2:稀疏镜像,支持快照、压缩,动态占用磁盘,openStack 默认。

六、速记精简版(面试前快速过)

virsh 高频

virsh list --allvirsh dumpxmlvirsh destroyvirsh shutdownvirsh domblklist

openstack 高频

openstack server list/showopenstack console log showopenstack compute service listopenstack image listopenstack floating ip listopenstack volume list

上一篇
下一篇