目录

1.OpenStack

1.1.OpenStack概述

1.2 OpenStack 简介

1.3 OpenStack 工作原理

1.4 OpenStack 版本演进

1.5 OpenStack  与 虚拟化

1.6 OpenStack 与 云计算

1.7 OpenStack 中的相关组件

2. 安装 allinone 版本

2.1 虚拟机相关设置

(1)设置磁盘大小为200G

(2)设置内存为16G

(3)处理器设置

2.2.查看生成的IP地址

2.3.生成动态IP地址(如果ip正常访问,不用做)

2.4. 修改网络(如果ip正常访问,不用做)

2.5 重启网卡

2.6 禁止防火墙开机启动

2.7 禁止SELinux

2.8 停用NetWorkManager服务

2.9. 修改主机名以及映射

2.10 换源

2.11. 安装时间同步软件

2.12. 添加NTP服务地址

2.13. 准备所需的软件库

2.14 安装packstack安装器

2.15  运行packstack安装OpenStack

2.16 查看安装版本并登录dashbroad

3. dashboard主页管理功能

3.1 项目中各项访问API与功能

1. Alarming (Aodh)

2. Compute (Nova)

3. Identity (Keystone)

4. Image (Glance)

5. Metering (Ceilometer)

6. Network (Neutron)

7. Object Store (Swift)

8. Block Storage (Cinder)

3.2 计算版块

(1)概况

(2)实例

(3)镜像

(4)密钥对

(5)主机组

3.3 卷板块

(1)卷

3.4 网络板块

(1)网络拓扑

(2)网络

(3)路由

(4)安全组

(5)浮动IP

(6) 中继

3.5 对象存储板块

3.6 管理员板块

3.7 身份管理

(1)项目

3.创建cirros实例以及fedora实例

3.1 登录dashboard主页

4. OpenStack 创建实例

4.0 设置

4.1 上传并制作镜像文件

4.2 更改安全组规则

4.3 设置密钥对

4.4 创建实例

(1)创建cirros实例

(2)创建Fedora实例

4. 环境搭建

4.1 制作模板


1.OpenStack

1.1.OpenStack概述

OpenStack是一种云操作系统, 可控制整个数据中心内的大型计算、存储和网络资源池, 所有资源都通过具有通用身份验证机制的API进行管理和配置。 管理员也可通过Web界面控制,同时授权用户通过Web界面配置资源。


1.2 OpenStack 简介

        OpenStack既是一个社区,  也是一个项目和一个开源软件,  提供开放源码软件,  建立公共和私有云,  它提供了一个部署云的操作平台或工具集,其宗旨在于帮助组织运行为虚拟计算或存储服务的云,  为公有云、私有云,  也为大云、小云提供可扩展的、灵活的云计算。


        作为一个开源的云计算管理平台,  OpenStack由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,  项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(laaS)的解决方案,  每个服务提供API以进行集成

1.3 OpenStack 工作原理

1.4 OpenStack 版本演进

        OpenStack第一版代号为Austin,  以Rackspace所在的美国德克萨产斯州Texas首府命名,计划每隔几个月发布一个全新版本,  并且26个英文字母从A到Z顺序命名后面的版本代号。  通常以举办OpenStack峰会所在地的某个城市或地区来命名。
        2017年华为成功晋级为白金会员, 成为亚洲首家OpenStack白金会员。
        OpenStack基金会允许最多8家白金会员资格和24家黄金会员资各,目前已有AT&T、爱立信、华为、英特尔、Rackspace、红帽、SUSE和腾讯这8家白金会员, 以及九州云、中国移动、中国联通、中国电信、思科、EasyStack、烽火、浪潮、新华三以及中兴通讯等黄金会员。

1.5 OpenStack  与 虚拟化

        OpenStack优先关注控制面,  OpenStack优先考虑如何将计算、存储、网络领域的各类资源抽象为资源池。在此基础上,  对资源池内的各类逻辑对象实施控制操作,  并将控制操作包装成面向用户的服务。数据面、管理面目前不是OpenStack的重点关注内内容。

1.6 OpenStack 与 云计算

        OpenStack是框架:  以OpenStack为框架,  将计算、存储、网络、管理、运营、运维等多个领域的软硬件产品组件整合在一起,  共同组成面向业务场景的整体解决方案。
        OpenStack主要关注的问题:框架本身的开放性,  生态的繁荣与活跃;  控制面的服务能力、高可靠、高性能、可扩展、易操作、易维护等。
        Cloud BSS:Cloud Business Support System,  云业务支撑系统。
        Cloud OSS:Cloud Operation Support System,  云运营支撑。
        综上两个对比,  可以总结出云计算与虚拟化的关键区别:
                云计算的特点是 IT能力的服务化,  按需使用, 按量计费, 多租户隔离等。
                虚拟化的特点是 环境隔离, 资源复用, 降低隔离损耗, 提升运行效率, 提供高级虚拟化特性等。


1.7 OpenStack 中的相关组件

1.openstack组件不止这么多,一共 41 个
2.nova: 提供计算资源的
3.glance: 提供镜像服务的
4.swift: 对象存储,存储镜像/备份等
5.cinder: 提供块存储服务的,磁盘/卷
6.neturon: 提供网络服务的,网络/子网/端口等
7.keystone: 提供身份认证服务的
8.horizon: 提供dashboard面板服务,提供 webUl界面
9.heat: 编排服务,通过编写模板文件,一键式运行


2. 安装 allinone 版本

tips: 建议每做一步,拍摄一次快照

2.1 虚拟机相关设置

基于已有的虚拟机,更改这三项配置!

(1)设置磁盘大小为200G

(2)设置内存为16G

(3)处理器设置

2.2.查看生成的IP地址

[root@YL ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:24:c2:87 brd ff:ff:ff:ff:ff:ff
    inet 192.168.220.130/24 brd 192.168.220.255 scope global noprefixroute dynamic ens33
       valid_lft 1115sec preferred_lft 1115sec
    inet6 fe80::cb96:6abb:8b1c:cdcd/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:21:6b:5a brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:21:6b:5a brd ff:ff:ff:ff:ff:ff

2.3.生成动态IP地址(如果ip正常访问,不用做)

2.4. 修改网络如果ip正常访问,不用做

#进入到指定的目录
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
[root@localhost network-scripts]# vi ifcfg-ens33

修改完成后,退出保存就可以

2.5 重启网卡

[root@YL ~]# systemctl restart network
[root@YL ~]# ping www.baidu.com
PING www.a.shifen.com (110.242.70.57) 56(84) bytes of data.
64 bytes from 110.242.70.57 (110.242.70.57): icmp_seq=1 ttl=128 time=65.7 ms
64 bytes from 110.242.70.57 (110.242.70.57): icmp_seq=2 ttl=128 time=65.7 ms
^C
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 65.707/65.721/65.735/0.014 ms

2.6 禁止防火墙开机启动

[root@YL ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

2.7 禁止SELinux

[root@YL ~]# vim /etc/selinux/config
[root@YL ~]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disable
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

改为disable

设置完后,重启系统!!!!

2.8 停用NetWorkManager服务

[root@YL ~]# systemctl disable NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed symlink /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
[root@YL ~]# systemctl stop NetworkManager
[root@YL ~]# systemctl enable network
network.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig network on
[root@YL ~]# systemctl start network

2.9. 修改主机名以及映射

在文件结尾添加如下内容

192.168.220.130(本机ip) node-a node-a.localdomain

[root@YL ~]# hostnamectl set-hostname node-a
[root@YL ~]# vim /etc/hosts
[root@YL ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.220.130 node-a node-a.localdomain
[root@YL ~]# ping node-a
PING node-a (192.168.220.130) 56(84) bytes of data.
64 bytes from node-a (192.168.220.130): icmp_seq=1 ttl=64 time=0.263 ms
64 bytes from node-a (192.168.220.130): icmp_seq=2 ttl=64 time=0.032 ms
64 bytes from node-a (192.168.220.130): icmp_seq=3 ttl=64 time=0.032 ms
^C
--- node-a ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.032/0.109/0.263/0.108 ms

2.10 换源

Repo源文件链接:
通过网盘分享的文件:repo.zip
链接: https://pan.baidu.com/s/1092fYKrBvaBLnIbJHmOb7A 提取码: mtdb 
--来自百度网盘超级会员v4的分享


方式一:使用finalshell等远程连接工具换源

finalshell下载链接:

https://dl.hostbuf.com/oldversion/finalshell_windows_x64.exe

方式二:使用scp远程文件推送

打开windows 的powershell
scp "C:\Users\Administrator\Desktop\repo\repo\*.repo" root@192.168.220.130:/tmp/

2.11. 安装时间同步软件

[root@node-a yum.repos.d]# yum install -y chrony
已加载插件:fastestmirror, langpacks
Repository 'centos-nfs-ganesha28': Error parsing config: Error parsing "baseurl = 'httpss://vault.centos.org/centos/7/storage/x86_64/nfs-ganesha-28/'": URL must be http, ftp, file or https not "httpss"
Loading mirror speeds from cached hostfile
base                                                                         | 3.6 kB  00:00:00     
centos-ceph-nautilus                                                         | 3.0 kB  00:00:00     
centos-openstack-train                                                       | 3.0 kB  00:00:00     
centos-qemu-ev                                                               | 3.0 kB  00:00:00     
extras                                                                       | 2.9 kB  00:00:00     
updates                                                                      | 2.9 kB  00:00:00     
(1/7): base/7/x86_64/group_gz                                                | 153 kB  00:00:00     
(2/7): centos-qemu-ev/7/x86_64/primary_db                                    |  57 kB  00:00:00     
(3/7): extras/7/x86_64/primary_db                                            | 253 kB  00:00:00     
(4/7): centos-ceph-nautilus/7/x86_64/primary_db                              | 343 kB  00:00:01     
(5/7): centos-openstack-train/7/x86_64/primary_db                            | 1.2 MB  00:00:01     
(6/7): base/7/x86_64/primary_db                                              | 6.1 MB  00:00:01     
(7/7): updates/7/x86_64/primary_db                                           |  27 MB  00:00:01     
软件包 chrony-3.4-1.el7.x86_64 已安装并且是最新版本
无须任何处理

2.12. 添加NTP服务地址

[root@node-a yum.repos.d]# vim /etc/chrony.conf
[root@node-a yum.repos.d]# cat /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

server ntp1.aliyun.com iburst
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2

# Allow NTP client access from local network.
#allow 192.168.0.0/16

# Serve time even if not synchronized to a time source.
#local stratum 10

# Specify file containing keys for NTP authentication.
#keyfile /etc/chrony.keys

# Specify directory for log files.
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking

2.13. 准备所需的软件库

[root@node-a yum.repos.d]# yum -y update
已加载插件:fastestmirror, langpacks
Repository 'centos-nfs-ganesha28': Error parsing config: Error parsing "baseurl = 'httpss://vault.centos.org/centos/7/storage/x86_64/nfs-ganesha-28/'": URL must be http, ftp, file or https not "httpss"
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 NetworkManager.x86_64.1.1.18.8-1.el7 将被 升级
---> 软件包 NetworkManager.x86_64.1.1.18.8-2.el7_9 将被 更新
....
...
..
.
(349/352): xz-5.2.2-2.el7_9.x86_64.rpm                                       | 229 kB  00:00:00     
(350/352): xz-libs-5.2.2-2.el7_9.x86_64.rpm                                  | 103 kB  00:00:00     
(351/352): zlib-1.2.7-21.el7_9.x86_64.rpm                                    |  90 kB  00:00:00     
(352/352): zenity-3.28.1-2.el7_9.x86_64.rpm                                  | 4.0 MB  00:00:00     
----------------------------------------------------------------------------------------------------
总计                                                                 12 MB/s | 602 MB  00:00:48     
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
导入 GPG key 0xF4A80EB5:
 用户ID     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 指纹       : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 软件包     : centos-release-7-9.2009.0.el7.centos.x86_64 (@anaconda)
 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud 检索密钥


获取 GPG 密钥失败:[Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud"

[root@node-a yum.repos.d]# yum -y install centos-release-openstack-train
已加载插件:fastestmirror, langpacks
Repository 'centos-nfs-ganesha28': Error parsing config: Error parsing "baseurl = 'httpss://vault.centos.org/centos/7/storage/x86_64/nfs-ganesha-28/'": URL must be http, ftp, file or https not "httpss"
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 centos-release-openstack-train.noarch.0.1-1.el7.centos 将被 安装
--> 正在处理依赖关系 centos-release-qemu-ev,它被软件包 centos-release-openstack-train-1-1.el7.centos.noarch 需要
--> 正在处理依赖关系 centos-release-ceph-nautilus,它被软件包 centos-release-openstack-train-1-1.el7.centos.noarch 需要
--> 正在检查事务
.......
.....
...
.
已安装:
  centos-release-openstack-train.noarch 0:1-1.el7.centos                                                                                                       

作为依赖被安装:
  centos-release-ceph-nautilus.noarch 0:1.2-2.el7.centos                         centos-release-nfs-ganesha28.noarch 0:1.0-3.el7.centos                        
  centos-release-qemu-ev.noarch 0:1.0-4.el7.centos                               centos-release-storage-common.noarch 0:2-2.el7.centos                         
  centos-release-virt-common.noarch 0:1-1.el7.centos                            

完毕!

2.14 安装packstack安装器

[root@node-a ~]# yum -y update
Loaded plugins: fastestmirror, langpacks
Repository 'centos-nfs-ganesha28': Error parsing config: Error parsing "baseurl = 'httpss://vault.centos.org/centos/7/storage/x86_64/nfs-ganesha-28/'": URL must be http, ftp, file or https not "httpss"
Loading mirror speeds from cached hostfile
base                                                     | 3.6 kB     00:00     
centos-ceph-nautilus                                     | 3.0 kB     00:00     
centos-openstack-train                                   | 3.0 kB     00:00     
centos-qemu-ev                                           | 3.0 kB     00:00     
extras                                                   | 2.9 kB     00:00     
updates                                                  | 2.9 kB     00:00     
Resolving Dependencies
--> Running transaction check
......
.....
....
...
..
.
Replaced:
  python-backports.x86_64 0:1.0-8.el7                                           
  python-chardet.noarch 0:2.2.1-3.el7                                           
  python-coverage.x86_64 0:3.6-0.5.b3.el7                                       
  python-dateutil.noarch 0:1.5-7.el7                                            
  python-ipaddress.noarch 0:1.0.16-2.el7                                        
  python-pyudev.noarch 0:0.15-9.el7                                             
  python-requests.noarch 0:2.6.0-10.el7                                         
  python-setuptools.noarch 0:0.9.8-7.el7                                        
  python-six.noarch 0:1.9.0-2.el7                                               
  python-suds.noarch 0:0.4.1-5.el7                                              
  python-urllib3.noarch 0:1.10.2-7.el7                                          
  qemu-img.x86_64 10:1.5.3-175.el7                                              
  qemu-kvm.x86_64 10:1.5.3-175.el7                                              
  qemu-kvm-common.x86_64 10:1.5.3-175.el7                                       

Complete!

[root@node-a ~]# yum -y install openstack-packstack
Loaded plugins: fastestmirror, langpacks
Repository 'centos-nfs-ganesha28': Error parsing config: Error parsing "baseurl = 'httpss://vault.centos.org/centos/7/storage/x86_64/nfs-ganesha-28/'": URL must be http, ftp, file or https not "httpss"
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package openstack-packstack.noarch 1:15.1.0-1.el7 will be installed
--> Processing Dependency: openstack-packstack-puppet = 1:15.1.0-1.el7 for package: 1:openstack-packstack-15.1.0-1.el7.noarch
......
.....
....
...
..
.
  ruby-facter.x86_64 1:3.9.3-7.el7                                              
  ruby-irb.noarch 0:2.0.0.648-39.el7_9                                          
  ruby-libs.x86_64 0:2.0.0.648-39.el7_9                                         
  ruby-shadow.x86_64 0:1.4.1-23.el7                                             
  rubygem-bigdecimal.x86_64 0:1.2.0-39.el7_9                                    
  rubygem-io-console.x86_64 0:0.4.2-39.el7_9                                    
  rubygem-json.x86_64 0:1.7.7-39.el7_9                                          
  rubygem-pathspec.noarch 0:0.2.1-3.el7                                         
  rubygem-psych.x86_64 0:2.0.0-39.el7_9                                         
  rubygem-rdoc.noarch 0:4.0.0-39.el7_9                                          
  rubygem-rgen.noarch 0:0.6.6-2.el7                                             
  rubygems.noarch 0:2.0.14.1-39.el7_9                                           
  yaml-cpp.x86_64 0:0.5.1-6.el7                                                 

Complete!

2.15  运行packstack安装OpenStack

[root@node-a ~]# packstack --allinone
Welcome to the Packstack setup utility

The installation log file is available at: /var/tmp/packstack/20251216-120745-ogSMuS/openstack-setup.log
Packstack changed given value  to required value /root/.ssh/id_rsa.pub

Installing:
Clean Up                                             [ DONE ]
Discovering ip protocol version                      [ DONE ]
Setting up ssh keys                                  [ DONE ]
Preparing servers                                    [ DONE ]
Pre installing Puppet and discovering hosts' details [ DONE ]
......
....
..
.
_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note that this backend does not support the VPNaaS or FWaaS services. Geneve will be used as the encapsulation method for tenant networks
 * A new answerfile was created in: /root/packstack-answers-20251216-120746.txt
 * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
 * File /root/keystonerc_admin has been created on OpenStack client host 192.168.220.130. To use the command line tools you need to source the file.
 * To access the OpenStack Dashboard browse to http://192.168.220.130/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
 * Because of the kernel update the host 192.168.220.130 requires reboot.
 * The installation log file is available at: /var/tmp/packstack/20251216-120745-ogSMuS/openstack-setup.log
 * The generated manifests are available at: /var/tmp/packstack/20251216-120745-ogSMuS/manifests
You have new mail in /var/spool/mail/root
.....
...
..
.
192.168.220.130_controller.pp:                       [ DONE ]            
Applying 192.168.220.130_network.pp
192.168.220.130_network.pp:                          [ DONE ]         
Applying 192.168.220.130_compute.pp
192.168.220.130_compute.pp:                          [ DONE ]         
Applying Puppet manifests                            [ DONE ]
Finalizing                                           [ DONE ]

 **** Installation completed successfully ******

Additional information:
 * Parameter CONFIG_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note that this backend does not support the VPNaaS or FWaaS services. Geneve will be used as the encapsulation method for tenant networks
 * A new answerfile was created in: /root/packstack-answers-20251216-120746.txt
 * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
 * File /root/keystonerc_admin has been created on OpenStack client host 192.168.220.130. To use the command line tools you need to source the file.
 * To access the OpenStack Dashboard browse to http://192.168.220.130/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
 * Because of the kernel update the host 192.168.220.130 requires reboot.
 * The installation log file is available at: /var/tmp/packstack/20251216-120745-ogSMuS/openstack-setup.log
 * The generated manifests are available at: /var/tmp/packstack/20251216-120745-ogSMuS/manifests
You have new mail in /var/spool/mail/root


2.16 查看安装版本并登录dashbroad

[root@node-a ~]# source /root/keystonerc_admin
[root@node-a ~(keystone_admin)]# cat /root/keystonerc_admin
unset OS_SERVICE_TOKEN
    export OS_USERNAME=admin
    export OS_PASSWORD='c245f92437f1465a'
    export OS_REGION_NAME=RegionOne
    export OS_AUTH_URL=http://192.168.220.130:5000/v3
    export PS1='[\u@\h \W(keystone_admin)]\$ '
    
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3
    [root@node-a ~(keystone_admin)]# 

通过用户名密码登录 openstack 管理平台

3. dashboard主页管理功能

3.1 项目中各项访问API与功能


1. Alarming (Aodh)

  • 报警服务,监控资源使用情况并触发警报

  • 当CPU、内存、存储等指标超过阈值时发送通知

  • 与Ceilometer(遥测)紧密集成


2. Compute (Nova)

  • 计算服务,OpenStack最核心的服务

  • 管理虚拟机实例的整个生命周期(创建、调度、停止等)

  • 相当于AWS EC2的OpenStack版本


3. Identity (Keystone)

  • 身份认证服务,OpenStack的认证中心

  • 管理用户、角色、项目和权限

  • 为所有其他服务提供统一的认证和授权


4. Image (Glance)

  • 镜像服务,管理虚拟机镜像

  • 存储和检索操作系统镜像模板

  • 支持多种镜像格式(QCOW2、RAW、VHD等)


5. Metering (Ceilometer)

  • 遥测服务,收集资源使用数据

  • 为计费、监控和警报提供数据支持

  • 已演变为Gnocchi + Ceilometer的组合


6. Network (Neutron)

  • 网络服务,提供网络连接即服务

  • 管理虚拟网络、子网、路由器、防火墙等

  • 支持SDN(软件定义网络)


7. Object Store (Swift)

  • 对象存储服务,提供高度可扩展的存储

  • 用于存储非结构化数据(文档、图片、备份等)

  • RESTful API访问,类似AWS S3


8. Block Storage (Cinder)

  • 块存储服务,为虚拟机提供持久化块存储

  • 创建和管理卷(类似硬盘),可挂载到虚拟机

  • Volumev2和Volumev3是API版本演进

3.2 计算版块

(1)概况

OpenStack仪表板(Horizon)中的使用情况概览界面,显示了当前资源的使用情况和配额限制。

1. 计算资源

  • 实例已使用9of10

    • 已创建9个虚拟机实例,最多允许10个

  • VCPU数量已使用9of20

    • 总共使用了9个虚拟CPU核心,配额上限是20个

  • 内存已使用7.5GB of 50GB

    • 已分配7.5GB内存,总配额50GB


2. 存储资源

  • 已使用0of10

    • 创建了0个独立存储卷(可挂载到虚拟机的硬盘)

  • 卷快照已使用0of10

    • 创建了0个卷快照

  • 卷存储已使用10 of 10 和 已使用48GBof1000GB

    • 第一行可能显示错误(10/10应为卷数量)

    • 第二行:使用了48GB卷存储,总配额1000GB


3. 网络资源

  • 浮动IP已分配0of 50

    • 分配了0个公网IP地址(浮动IP)

  • 安全组已使用1of 10

    • 创建了1个安全组(防火墙规则集)

  • 安全组规则已使用6of100

    • 安全组中共有6条规则(如允许SSH、HTTP端口)


4. 网络拓扑

  • 网络已使用1of10

    • 创建了1个虚拟网络

  • 端口已使用4of100

    • 使用了4个网络端口(虚拟网卡)

  • 路由已使用14of500

    • 创建了14条路由规则


5.资源使用情况

  1. 接近配额限制

    • 实例数量(9/10)和卷数量(10/10)接近上限

    • 需要关注扩容或清理资源

  2. 资源分布

    • 9个实例使用9个vCPU → 平均每个实例1个vCPU

    • 内存使用率较低(7.5GB/50GB = 15%)

    • 存储使用率很低(48GB/1000GB = 4.8%)


6.计费相关

  • vCPU-小时、RAM-小时、磁盘GB-小时是云服务计费的核心指标

  • 这些数据用于:

    • 内部成本分摊

    • 对外计费(如果是公有云)

    • 资源优化分析


7.建议

  1. 卷数量已满(10/10):考虑删除不需要的卷或申请配额提升

  2. RAM-小时数异常:需要核实计算准确性

  3. 浮动IP未使用:如果不需要公网访问,可以保持现状

        这个面板是OpenStack多租户环境中,租户(项目)管理员监控资源使用和成本的主要界面。

(2)实例


一、存储相关操作

1. 创建快照

  • 为虚拟机创建系统盘快照

  • 可用于备份、创建新镜像或恢复

  • 注意:创建时实例最好处于关闭状态,确保数据一致性

2. 更新元数据

  • 修改实例的自定义元数据(键值对)

  • 用于存储应用配置、环境信息等

  • 示例:os_type=centos7application=web_server


二、网络相关操作

3. 绑定浮动IP

  • 为实例分配公网IP地址,使其可从外部访问

  • 需要预先申请浮动IP池中的地址

  • 使用场景:让虚拟机提供Web服务、远程访问等

4. 连接接口

  • 为实例附加额外的虚拟网卡(vNIC)

  • 可连接到不同的虚拟网络

  • 使用场景:多网卡配置、网络隔离、管理/业务网分离

5. 分离接口

  • 从实例分离虚拟网卡

  • 注意:分离主网卡可能导致实例无法访问

6. 编辑端口安全组

  • 修改实例网络端口的安全组规则

  • 安全组相当于虚拟防火墙

  • 常用规则:允许SSH(22)、HTTP(80)、HTTPS(443)端口


三、实例生命周期管理

7. 编辑实例

  • 修改实例基本信息

  • 可更改:实例名称、描述等

  • 不可更改:规格、镜像等核心属性(需使用调整大小或重建)

8. 调整实例大小

  • 改变实例规格(vCPU、内存、磁盘大小)

  • 两种模式

    • 热调整:在线调整(需要Guest OS支持)

    • 冷调整:需要先停止实例

  • 过程:创建新规格实例 → 迁移数据 → 切换

9. 重建实例

  • 使用新镜像重新部署实例

  • 保留:IP地址、卷数据(系统盘会被替换)

  • 不保留:系统盘数据、用户数据(除非指定保留)

  • 使用场景:系统升级、修复损坏的系统

10. 硬重启实例

  • 强制重启虚拟机(相当于物理机按电源按钮)

  • 不等待Guest OS正常关机

  • 使用场景:系统无响应、需要强制重启时

11. 锁定实例

  • 防止对实例的修改或删除操作

  • 保护重要实例避免误操作

  • 可锁定:普通用户和管理员(根据锁定级别)

12. 废弃实例

  • 软删除操作,将实例移至回收站

  • 可在一段时间内恢复(取决于配置)

  • 不同于彻底删除:资源暂不释放

13. 删除实例

  • 永久删除虚拟机

  • 释放资源:vCPU、内存、系统盘(除非选择保留卷)

  • 不可恢复,谨慎操作

(3)镜像

(4)密钥对

(5)主机组

3.3 卷板块

(1)卷

3.4 网络板块

(1)网络拓扑

(2)网络

(3)路由

(4)安全组

(5)浮动IP

(6) 中继

3.5 对象存储板块

(1)容器

3.6 管理员板块

3.7 身份管理

(1)项目

3.创建cirros实例以及fedora实例

3.1 登录dashboard主页

4. OpenStack 创建实例

4.0 设置

用户设置


修改密码



子用户demo 无管理员板块

4.1 上传并制作镜像文件

系统中自带的镜像类型

首先准备镜像,可以删除之前的“cirros”镜像,原因是因为它是默认的测试镜像,太小了,使
用它创建的虚拟机实例启动后无法正常运行,在admin管理员用户下进行删除,并手动下载安装
一个新的cirros操作系统镜像,使用admin用户上传,同样命名为cirros

上传镜像



QEMU其实是一个模拟器或虚拟机,能够让你在桌面运行一个完整操作系统,就好像运行一个任务一样

Qcow2(QEMU copy-on-write)

qcow2 镜像格式是 QEMU 模拟器支持的一种磁盘镜像。它也可以用一个文件的形式来表示一块固定大小的块设备磁盘。Qcow2是目前比较主流的一种虚拟化镜像格式,目前qcow2的性能上接近raw裸格式的性能,与普通的 raw 格式的镜像相比,它还有以下特性:

a)更小的空间占用,即使文件系统不支持空洞(holes);qcow2 格式的镜像比 Raw 格式文件更小,只有在虚拟机实际占用了磁盘空间时,其文件才会增长,能方便的减少迁移花费的流量,更适用于云计算系统

b)支持写时拷贝(COW, copy-on-write),镜像文件只反映底层磁盘的变化;

c)支持快照(snapshot),镜像文件能够包含多个快照的历史;

d)可选择基于 zlib 的压缩方式,它允许每个簇(cluster)单独使用 zlib 压缩。

e)可以选择 AES 加密,支持使用 128 位的 AES 密钥进行加密。

官方解释,qcow2 镜像文件是由多个固定大小的单元组织构成,这些单元被称为 (host clusters );无论是实际用户数据(guest data)还是镜像的元数据(metadata),都存储到一个 cluster 单元中。用户系统里所见到的虚拟磁盘实际是被分割成多个同样大小的 clusters 的集合显示。

qcow2 镜像可以用来保存另一个镜像文件的变化,它并不去修改原始镜像文件,只记录与原始镜像文件的不同即可,这种镜像文件就叫做 copy-on-write 镜像。虽然是一个单独的文件,但它的大部分的数据都来自原始镜像,只有跟原始镜像文件相比有变化的 cluster 才会被记录下来。快照就是原始文件本身(内部快照)。它既包含做快照之前的原始文件部分,它本身也包含可写的部分。


最小磁盘:表示此镜像可以装在至少有40G磁盘的虚拟机上,如果小于40G,则无法使用此镜像

最低内存:表示使用此镜像的虚拟机至少有的内存,如果小于1024MB,则无法使用此镜像

公有:表示不同的用户,都可以看到并使用此镜像

受保护的:表示此镜像用户不可删除(即使是admin用户也无法删除),如果需要删除此镜像,则需要取消勾选

私有的:表示该镜像只能为当前的demo项目所用,不向其他项目提供服务


demo用户下创建私有镜像


回到admin后


4.2 更改安全组规则

demo用户项目的网络信息


查看安全组信息

默认的出入端口配置

添加ssh

添加ICMP入口规则


4.3 设置密钥对




4.4 创建实例

(1)创建cirros实例










(2)创建Fedora实例






5. 环境搭建

5.1 制作模板

       未来我们搭建openstack环境,或者搭建docker/k8s集群,都要用到几台linux,如果手工一台一台去安装,非常麻烦,也很慢,可以安装一台linux,之后制作模板,关机。

       后续如果用到linux,比如要创建3台,那么直接通过模板完整克隆3台即可。用centos stream 8 版本,安装一个最小化系统minimal即可,分区直接自动,自动获取ip地址。

        大家一定要注意: 你虚拟机给的内存规格加起来, 一定要小于宿主机内存,比如宿主机16G内存, 每一台给8G内存,不可以。

        大家通过模板克隆出来两台linux。
        controller
        compute

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐