一、Openstack定义
1.1openstack常用命令
- nova:用于管理虚拟机实例。
-
- nova boot:创建虚拟机实例。
- nova list:列出所有虚拟机实例。
- nova show :显示指定虚拟机实例的详细信息。
- nova delete :删除指定虚拟机实例。
noav服务 service |
nova service-list |
查看nova相关服务状态 |
|
nova list --all-tenants |
列出所有虚机 |
||
nova list --all-tenants --tenant tenantid |
列出指定租户下所有虚机 |
||
nova list --all-tenants --host CN |
查看指定CN上所有虚机信息 |
||
nova flavor-list |
查看当前可用的flavor类型 |
||
nova service-delete service_id |
删除指定CN上nova-compute服务 用于机器下线 |
||
nova service-enable CN nova-compute |
将disable状态的CN置为enable状态 用于disable状态CN恢复 |
CN填写机器的主机名 |
|
nova delete instance_uuid |
用于删除后端 删除前确认机器没有数据盘 只有系统盘 |
instance |
nova live-migration --block-migrate instance_uuid CN |
热迁移虚机 理论上虚机业务不会中断 |
|
nova migrate instance_uuid |
冷迁移虚机 迁移过程中虚机会重启 |
||
nova evacuate instance_uuid |
重建虚机 一般用于宕机恢复 |
||
nova reset-state instance_uuid --active |
将虚机状态重置为active 虚机状态实际需要为active |
||
nova get-vnc-console instance_uuid novnc |
获取虚机vnc链接,查看虚机控制台状态 |
||
nova stop/start instance_uuid |
|||
nova reboot instance_uuid |
软重启虚机(硬重启需加 --hard) |
计算节点/CN hypervisor |
nova hypervisor-list |
查看当前加入到计算资源池中CN信息 |
|
nova hypervisor-show CN |
查看CN上的具体配置 主要用户查看超售比/剩余资源等信息 |
||
nova hypervisor-blacklist-add --hosts CN |
CN加黑 加黑后新创建的虚机不会调度到加黑的CN上 |
||
nova hypervisor-blacklist-remove --hosts CN --expected-reason UNCATALOGUED --expected-description |
CN解黑 |
||
nova hypervisor-blacklist-show |
查看当前CN黑名单 |
||
nova hypervisor-update-group CN null paas |
添加group命令 |
||
curl novamaster.agilecloud.com:9966/ComputeNodeService/update_logical_machine_suit X POST '{"id": "hypervisorid", "logical_machine_suit": "Y12-Xl4"}' |
添加machine_suit |
su bcc /home/bcc/services/nova-compute restart |
重启nova-compute服务 |
需在指定CN上用bcc用户执行 |
/etc/init.d/libvirtd restart |
重启libvirt服务 |
需root用户重启,一般和nova-compute服务一起重启。 |
keystone user-get e114bf308df54af8893f6b0a7f30617c |
根据userid获取tenantid方法 |
openstack里面一些命令需要指定tenantid运行 |
宿主机硬件日志查看方法:
less /home/coresave/127.0.0.1-2021-06-29-21\:39\:40/vmcore-dmesg.txt
查看镜像状态
glance image-show 311b0ace-c821-4557-bac4-aea254f9dbfe
- neutron:用于管理网络。
-
- neutron net-create:创建一个网络。
- neutron net-list:列出所有网络。
- neutron subnet-create:创建一个子网。
- neutron router-create:创建一个路由器。
- neutron port-create:创建一个端口。
- cinder:用于管理卷和存储。
-
- cinder create :创建一个指定大小的卷。
- cinder list:列出所有卷。
- cinder show :显示指定卷的详细信息。
- cinder delete :删除指定卷。
- glance:用于管理镜像。
-
- glance image-create:创建一个镜像。
- glance image-list:列出所有镜像。
- glance image-show :显示指定镜像的详细信息。
- glance image-delete :删除指定镜像。
- keystone:用于管理用户、租户和角色。
-
- keystone user-create:创建一个用户。
- keystone user-list:列出所有用户。
- keystone tenant-create:创建一个租户。
- keystone tenant-list:列出所有租户。
- keystone role-create:创建一个角色。
- keystone role-list:列出所有角色。
核心项目:
Nova:计算资源的生命周期管理组件
Neutron:云计算环境下虚拟网路功能
Cinder:管理计算实例所使用的块级存储
Swift:对象存储,用于永久类型的静态数据的长期存储
Glance:提供虚拟机镜像的发现,注册,获取服务
Keystone:提供了用户信息管理,为其它组件提供认证服务
Horizon:用以管理,控制openstack服务的web控制面板
核心项目关系:
架构:各个组件之间通过api来联系
Openstack和Docker对比:
Docker提供了一种程序运行的容器,同时保证这些容器相互隔离
Openstack提供了一个完整数据中心的解决方案,至于用哪种hypervisor(vm)或者Docker只是云平台中的一个小部分
hypervisor(vm)可以包含docker,可以和docker共存
二、Openstack底层技术及通用组件
内核态:底层代码
用户态:一些应用服务
hypervisor(VMM):
1.虚拟化管理程序,即虚拟机监视器,可以允许多个操作系统和应用共享硬件
2.两种类型:
第一种半虚拟化:对客户操作系统的内核进行修改,将指令转发给cpu
第二种全虚拟化:硬件辅助全虚拟化,本身就是全虚拟服务不用转义的操作,把一个cpu虚拟成多个cpu,供客户使用
1.计算虚拟化的其他实现方式
操作系统虚拟化,允许操作系统内核拥有彼此隔离和分割的多用户空间实例,这些用户空间实例,也称之为容器,基于linux内核中的namespace、chroot、cgroup实现隔离
qemu
x86结构,支持半虚拟化技术,能让多个虚拟机使用同一镜像,并未每个虚拟机配置个性化硬件环境(网卡、磁盘、图形.....)
官网:QEMU
kvm
开源软件,基于内核的虚拟机,全虚拟化
libvirt
L2:网络层 L3:链路层
2.软件定义网络(SDN)
软件控制硬件
3.Ovs(虚拟的交换机)Open vswitch
在虚拟机和物理机之间提供一个连接,可以通过overflow协议
①ovs常用的组件及操作
ovs-dpctl 用来配置交换机内核模块,可以控制转发规则
ovs-dpctl dump-flows br0 #查看指定bridge上的datapath信息
ovs-vsctl 主要是获取ovs-vswichd的配置信息,会更新ovsdb-server中的数据库
ovs-vsctl add-br br0 添加网桥
ovs-vsctl list-br 列出所有网桥
ovs-vsctl set-controller ovs-switch tcp:ip:端口 指定controller的控制器
ovs-ofctl 用来控制ovs作为openflow交换机工作时候的流表内容
4.openstack各个组件作用
①REST
是一种架构风格,其核心是面向资源
基于http协议
四个表示操作方式的动词:get post put delete
get :获取资源
put:更新或者新建资源
delete:删除资源
②WSGI
web服务网关接口,类似于apache,接受外部请求,交给中间件,交给后端处理,在返回。排查问题的时候可以排查下wsgi是否起来
③openstack用到的mariadb关系型数据库
④RabbitMQ
通常用于应用程序之间或者程序的不同组件之间通过消息来进行集成
--交换器 :发生消息的实体
-- 队列:接收消息的实体
--绑定器:将队列和交换器连接起来,并且封装信息的路由信息
openstack 中cinder、neutron、nova组件之间痛惜通过amqp协议实现,消息由rabbitmq作为中间件转发
5.环境搭建
①安装基础组件并进行配置(mariadb开机自启)(rabbit-server 启动systemctl start rabbitmq-server、开机自启)
②
rabbitmqctl add_user openstack 123456 #创建用户
rabbitmqctl set_permissions openstack ".*" ".*" ".*" #允许远程访问
rabbitmqctl status
③安装keystone
登录数据库
create database keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone'; #允许本机访问数据库
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone'; #允许其他主机访问 数据库
yum -y install openstack-keystone httpd mod_wsqi python-openstackclient memcached python-memcached
自动起动 memcached
6.常用命令
neutron agent-list #主节点查看agent集群
neutron router-list #查看路由节点
7.网络节点配置补充
两张网卡,neutron节点网卡没有ip(网络管理器)
文章来源:https://www.toymoban.com/news/detail-759778.html
文章来源地址https://www.toymoban.com/news/detail-759778.html
到了这里,关于Linux云计算-Openstack的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!