Openstack管理

自作多情 提交于 2020-02-15 02:23:25
所有的管理可以通过访问dashboard进行,这里只列出命令行管理方法

1)项目管理

  • 项目:一组隔离的资源和对象。由一组关联的用户进行管理
  • 在旧版本里,也用租户(tenant)来表示
  • 根据配置的需求,项目对应一个组织、一个公司或是一个使用客户等
  • 项目中可以有多个用户,项目中的用户可以在该项目创建、管理虚拟资源
  • 具有 admin角色的用户可以创建项目
  • 项目相关信息保存到 MariaDB中

默认情况下,packstack安装的openstack有两个独立的项目

  • admin:为admin账户创建的项目
  • services:与安装的各个服务相关联
创建名为myproject项目
[root@openstack ~(keystone_admin)] openstack project create myproject
列出所有项目
[root@openstack ~(keystone_admin)] openstack project list
查看myproject详细信息
[root@openstack ~(keystone_admin)] openstack project show myproject
禁用与激活项目
[root@openstack ~(keystone_admin)] openstack project set --disable myproject
[root@openstack ~(keystone_admin)] openstack project set --enable myproject
查看项目配额
[root@openstack ~(keystone_admin)] nova quota-show --tenant myproject
更新可用vcpu数目为30
[root@openstack ~(keystone_admin)] nova quota-update --cores 30 myproject
删除myproject
[root@openstack ~(keystone_admin)] openstack project delete myproject

2)用户管理

基本概念

  • 用户在 openstack中用于身份认证
  • 管理员用户 admin一般在packstack安装过程中创建
  • 其他用户由管理员用户创建,并指定可以访问的项目
  • 非管理员用户创建后,保存到 MariaDB中

非管理员用户具有以下权限

  • 启动实例
  • 创建卷和快照
  • 创建镜像
  • 分配浮动IP
  • 创建网络和路由器
  • 创建防火墙以及规则、规则策略
  • 查看网络拓扑、项目使用概况等
创建user2用户,指定密码为tedu.cn  
[root@openstack ~(keystone_admin)] openstack user create --password tedu.cn user2  
设置user2的 email地址  
[root@openstack ~(keystone_admin] openstack user set --email user2@tedu. cn user2  
列出所有用户    
[root@openstack ~(keystone_admin] openstack user list   
查看user2信息   
[root@openstack ~(keystone_admin)] openstack user show user2
指定user2可以访问myproject,角色为_member_
[root@openstack ~(keystone_admin)] openstack role add --user user2 --project myproject  _member_
查看user2在myproject中的角色
[root@openstack ~(keystone_admin)] openstack role list --project myproject --user user2
禁用用户
[root@openstack ~(keystone_admin)] openstack user set --disable user2
激活用户
[root@openstack ~(keystone_admin)] openstack user set --enable user2
修改user2的密码为 redhat  
[root@openstack ~(keystone_admin)] openstack user set --password redhat user2  
将uer2从 myproject中移除  
[root@openstack ~(keystone_admin)] openstack role remove project myproject --user user2 _member_
删除user2用户    
[root@openstack ~(keystone_admin)] openstack user delete user 2

3)配额管理

  • 管理员可以通过配额限制,防止资源的过度使用
  • 配额基本项目,限制每个项目可以使用多少资源
  • 这些操作上的功能限制,赋予了管理员对每个项目的精准控制

资源参数

  • 安全组规则:指定每个项目可用的规则数
  • 核心:指定每个项可用的VCPU核心数
  • 固定IP地址:指定每个项目可用的固定IP数
  • 浮动IP地址:指定每个项目可用的浮动IP数
  • 注入文件大小:指定每个项目内容大小
  • 注入文件路径:指定每个项目注入的文件路径长度
  • 注入文件:指定每个项目允许注入的文件数目
  • 实例:指定每个项目可创建的虚拟机实例数目
  • 密钥对:指定每个项可创建的密钥数
  • 元数据:指定每个项目可用的元数据数目
  • 内存:指定每个项目可用的最大内存
  • 安全组:指定每个项目可创建的安全组数目

通过命令行管理配额

列出项目的缺省配额
[root@openstack ~(keystone_admin)] nova quota-defaults
列出myproject的配额
[root@openstack ~(keystone_admin)] nova quota-show --tenant myproject
修改浮动IP地址配额
[root@openstack ~(keystone_admin)] nova quota-update --floating-ips 20 myproject

4)云主机类型管理

  • 云主机类型就是资源的模板
  • 它定义了一台云主机可以使用的资源,如内存大小、磁盘容量和CPU核心数等
  • Openstack提供了几个默认的云主机类型
  • 管理员还可以自定义云主机类型

云主机类型参数

  • Name:云主机类型名称
  • ID:云主机类型ID,系统自动生成一个UUID
  • VCPUs:虚拟CPU数目
  • RAM(MB):内存大小
  • Root disk(GB):外围磁盘大小。如果希望使用本地磁盘,设置为0
  • 临时磁盘:第二个外围磁盘
  • swap磁盘:交换磁盘大小

通过命令行管理云主机类型参数

列出所有的云主机类型    
[root@openstack ~(keystone_admin)] openstack flavor list    
创建一个云主机类型  
[root@openstack ~(keystone_admin)] openstack flavor create --public demo.tiny --id auto --ram 512 --disk 10 --vcpus 1  
删除云主机类型    
[root@openstack ~(keystone_admin)] openstack flavor delete demo.tiny

5)镜像管理

  • 在红帽Openstack平台中,镜像指的是虚拟磁盘文件,磁盘文件中应该已经安装了可启动的操作系统
  • 镜像管理功能由Glance服务提供
  • 它形成了创建虚拟机实例最底层的块结构
  • 镜像可以由用户上传,也可以通过红帽官方站点下载

Glance磁盘格式

  • raw:非结构化磁盘镜像格式
  • vhd: VMware、Xen、 Microsoft、 VirtualBox等均支持的通用磁盘格式
  • vmdk:是 Vmware的虚拟磁盘格式
  • vdi: VirtualBox虚拟机和QEMU支持磁盘格式
  • iso:光盘数据内容的归档格式
  • qcow2:QEMU支持的磁盘格式。空间自动扩展, 并支持写时复制copy-on-write

镜像服务

  • 镜像服务提供了服务器镜像的拷贝、快照功能,可以作为模板快速建立、启动服务器
  • 镜像服务维护了镜像的一致性
  • 当上传镜像时,容器格式必须指定
  • 容器格式指示磁盘文件格式是否包含了虚拟机元数据

镜像容器格式

  • bare:镜像中没有容器或元数据封装
  • ovf:一种开源的文件规范,描述了一个开源、安全、有效、可拓展的便携式虚拟打包以及软件分布格式
  • ova:OVA归档文件
  • aki:亚马逊内核镜像
  • ami:亚马逊主机镜像

通过命令行管理镜像

上传镜像    
[root@openstack ~(keystone_admin)] openstack image create --disk-format gcow2 --min-disk 10 --min-ram 512 --file /root/small.img small_rhel6    
列出镜像    
[root@openstack ~(keystone_admin)] openstack image list  
查看镜像详情    
[root@openstack ~(keystone_admin)] openstack image show small_rhel6
修改镜像属性   
[root@openstack ~(keystone_admin)] openstack image set --public small_rhel6    另存镜像为本地文件    
[root@openstack ~(keystone_admin)] openstack image save --file /tmp/small_rhel6.img small_rhel6    
删除镜像    
[root@openstack ~(keystone_admin)] openstack image delete small _rhel6

6)网络管理

1.网络和路由

Openstack网络工作原理

  • 实例被分配到子网中,以实现网络连通性
  • 每个项目可以有一到多个子网
  • 在红帽的Openstack平台中, OpenStack网络服务是缺省的网络选项,Nova网络服务作为备用
  • 管理员能够配置丰富的网络,将其他Openstack服务连接到这些网络的接口上
  • 每个项目都能拥有多个私有网络,各个项目的私有网络互相不受干扰

2.网络类型

  • 项目网络:由 Neutron提供的项目内部网络,网络间可用VLAN隔离
  • 外部网络:可以让虚拟机接入外部网络,但需要配置浮动IP地址
  • 提供商网络:将实例连接到现有网络,实现虚拟机实例与外部系统共享同一二层网络
创建网络    
[root@openstack ~(keystone_admin)] openstack network create --project myproject --enable internal    
创建子网    
[root@openstack ~(keystone_admin)] neutron subnet-create --name subnet3 --gateway 192.168.1.254 \
--allocation-pool start=192.168.1.100,end=192.168.120 --enable-dhcp internal 192.168.1.0/24 --tenant-id ff387162978643f894cdd1c98597160c
查看网络详情    
[root@openstack ~(keystone_admin)] openstack network show internal  
新建路由器    
[root@openstack ~(keystone_admin)] neutron router-create --tenant-id ff387162978643f894cdd1c98597160cr2  
删除网络  
[root@openstack (keystone_admin)] openstack network delete internal  [root@openstack"(keystone_admin)] neutron router-delete r2

3.浮动ip

浮动ip地址的作用

  • 浮动IP一般是花钱购买的
  • 浮动IP地址用于从外界访问虚拟机实例
  • 浮动P地址只能从现有浮动IP地址池中分配
  • 创建外部网络时,浮动IP地址池被定义
  • 虚拟机实例起动后,可以为其关联一个浮动P地址
  • 虚拟机实例也可以解除IP地址绑定

通过命令行管理浮动ip

分配地址    
[root@openstack ~(keystone_admin)] neutron floatingip-create --tenant-id ff3871629786431894cdd1c98597160cWAN    
查看地址    
[root@openstack ~(keystone_admin)] neutron floatingip-list

7)安全管理

安全组

  • 安全组用于控制对虚拟机实例的访问
  • 安全组在高层定义了哪些网络及哪些协议是被授权可以访问虚拟机实例的
  • 每个项目都可以定义自己的安全组
  • 项目成员可以编辑默认的安全规则,也可以添加新的安全规则
  • 所有的项目都有一个默认的 default安全组

安全组规则

  • 安全组规则定义了如何处理网络访问
  • 规则基于网络或协议定义
  • 每个规则都有出和入两个方向
  • 规则也可以指定ip协议版本
  • 默认的安全组规则,允许虚拟机实例对外访问,但是阻止所有对虚拟机实例的访问

8)实例管理

使用dashboard管理

9)计算节点扩容

1.新nova节点环境检查

  • 是否卸载firewalld和NetworkManager
  • 检查配置主机网络参数
  • 主机名必须能够解析 /etc/hosts
  • 检查配置主机yum源
  • 依赖软件包是否安装
  • 检查NTP服务器是否可用
  • 检查/etc/resolv.conf不能有search开头的行
  • 检查SELinux是否禁用

2.安装新计算节点
新节点ip为:192.168.1.12

[root@openstack ~] vim answer.ini
 98 CONFIG_COMPUTE_HOSTS=192.168.1.11,192.168.1.12	#计算节点写入新节点ip
102 CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11,192.168.1.12	#网络节点写入新节点ip

重新执行安装命令即可,安装完成以后apache服务被还原,需要在配置文件中重新添加WSGIApplicationGroup %{GLOBAL}

[root@openstack ~] packstack --answer-file=answer.ini  
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!