玩转OpenStack之发放云主机基本流程与云主机原理解析

张开发
2026/4/8 22:06:56 15 分钟阅读

分享文章

玩转OpenStack之发放云主机基本流程与云主机原理解析
1、云主机发放基本流程1创建一个租户tenant/项目project一个租户就是一个项目2创建用户并关联到项目3上传镜像管理员上传的镜像可以设置为公共镜像可以被所有租户使用而用户上传的是私有镜像只能自己使用例如上传我之前创建的qcow2的私有镜像4创建规格OpenStack里面的实例类型就是规格5创建外部网络在创建之前我们需要了解OpenStack中的网络概念OVS一个开源的虚拟机交换机平台提供高效的网络虚拟化功能br-exOVS的一个实例在OpenStack中是一个网桥而物理端口是这个网桥的从端extnet相当于外部网络的标识对于br-ex来说它就像一个“标签”当虚拟机产生流量时br - ex网桥会根据相关配置和流表规则来处理流量。CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS extnet:br - ex这条配置使得br - ex网桥知道带有extnet标识的流量是要去往外部网络的进而将此类流量通过绑定的物理网卡转发到外部物理网络实现虚拟机访问外网的功能6使用租户登录7创建私有网络/子网VPC创建VPC8创建路由器关联外部网络和私有网络9创建安全组和策略10创建密钥对11发放云主机/创建实例到这里就可以直接创建的其他的暂时用不上下面就是正常的状态12给云主机绑定弹性ip2、解析云主机工作原理一、网络原理篇1云主机创建完成之后默认可以访问外网如下图是我利用迷你镜像创建的迷你系统默认用户名密码cirros/gocubsgo登录系统之后用ifup 网卡名 开启网卡这时候可以正常获取到VPC的子网地址了但是为什么在华为云/阿里云中创建的云主机不绑定弹性公网ip就无法上网而OpenStack却能原因解析按照拓扑来看路由器是可以对云主机进行SNAT的并且路由器自己有公网地址所以能使云主机访问外网但是在公有云厂商中默认是不在路由器上做SNAT的所以云主机不能上网2既然云主机可以通过SNAT访问外网那么弹性ip/浮动ip的作用何在SNAT虽然能让云主机访问外网但是外网却无法访问云主机而弹性ip的作用就在于可以让云主机的服务对外网开放。弹性ip实现的是一对一映射此时你就可以利用弹性ip登录到云主机举例绑定一个弹性ipssh登录到云主机二、存储原理篇1云主机是如何存储在openstack中的又是以什么形式存在的答OpenStack的云主机实际就是KVM主机节点的一个虚拟机具体结构/var/lib/nova/instances :存放虚拟机实例相关数据的根目录子级文件/目录作用如下_base存放基础镜像bae image的缓存文件c253ee31-db2e-4b35-8f1b-28db0f8a45b3作用单个虚拟机实例的专属目录目录名即实例的 UUID。内容通常包含disk根磁盘文件qcow2/raw 格式。disk.local临时磁盘如果有定义。disk.swap交换磁盘如果启用。libvirt.xml实例的 libvirt XML 定义文件。console.log实例的控制台日志可选。其他元数据文件。compute_nodes文件保存本计算节点的相关信息locks存放锁文件三、使用命令行方式管理OpenStack1如何对OpenStack的资源进行查看[rootController~]# source keystonerc_admin作用在当前命令行环境中加载keystonerc_admin文件里设置的环境变量。这样后续执行 OpenStack 命令时系统就会依据这些变量所设定的用户认证信息以 admin 的身份与 OpenStack 服务进行交互操作。具体效果如下比如我们可以在租户/项目身份下查看所有的虚拟机列表如何寻找有哪些身份可以进入OpenStack进行交互操作呢答一般在openstack安装时候的应答文件目录下找比如[rootController ~]# ll | grep keystonerc-rw-------. 1 root root 371 3月 13 13:16 keystonerc_admin注意默认只有admin用户的keystonerc文件其他用户/项目的可以使用cp命令进行复制使用例如给用户test-1创建keystionerc[rootController ~(keystone_admin)]# cp keystonerc_admin keystonerc_test-1 #复制一份现有模板后面直接修改参数即可需要修改的点用红色圈出[rootController ~(keystone_test-1)]# cat keystonerc_test-1unset OS_SERVICE_TOKENexport OS_USERNAMEtest-1 #名称和密码可自定义export OS_PASSWORDHuaweicloud123export OS_REGION_NAMERegionOneexport OS_AUTH_URLhttp://172.16.1.254:5000/v3export PS1[\u\h \W(keystone_test-1)]\$ #这个作用是在source进入时是否出现标识export OS_PROJECT_NAMEproject-1 #这个必须要改成所在租户/项目的名称export OS_USER_DOMAIN_NAMEDefaultexport OS_PROJECT_DOMAIN_NAMEDefaultexport OS_IDENTITY_API_VERSION3[rootController ~(keystone_test-1)]#2命令行管理云主机核心如果不知道命令咋敲了请在后面加--help可可看见所有命令选项和参数1、查看云主机基本状态信息[rootController ~(keystone_user1)]# openstack server list #列出当前租户下的云主机参数你需要什么示例说明查看所有项目的主机 (需管理员权限)openstack server list --all-projects这是管理员最常用的命令可以看到所有租户的云主机。查看详细信息openstack server list --long会额外显示如Flavor的详细信息CPU/内存、镜像名称、创建时间、可用域等。查看某个特定的云主机openstack server list --name hostname按名称过滤支持通配符或按所属项目过滤。查看特定状态的主机openstack server list --status ACTIVE过滤出状态为ACTIVE运行中、SHUTOFF关机、ERROR错误等的主机自定义显示字段openstack server list -c Name -c Status -c Networks-c指定要显示的列。-f可指定输出格式如-f json或-f yaml。2、显示云主机详细配置[rootController ~(keystone_user1)]# openstack server show hostname命令行删除所有资源注意资源之间有互相的引用关系所以得和创建的步骤反着来在哪个租户下创建的资源就需要去哪个租户下删除删除云主机/实例注意切换到对应租户下使用openstack server list查看实例信息再删除删除虚拟路由器的子网如图这个步骤其实就是把虚拟路由器router-1的子网192.168.99.0删除了所以查看网络就像图中一样了删除虚拟路由器删除VPC删除安全组删除镜像删除规格删除租户/用户

更多文章