开篇先借用一位跟了7年OpenStack项目的大佬的文章,说一下目前云计算行业的趋势,以及OpenStack的问题。突出标题“从入门到放弃

然后简单说一下openstack的技术原理及平台搭建,毕竟是要放弃的,就少说一点了。


什么是云计算?

云计算是一种按使用量付费的模式,这种模式提供可用的,便捷的,按需的网络访问,进入可配置的计算资源共享池(包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需要投入少量的管理工作,或与服务供应商进行很少的交互。通常涉及通过互联网来提供,动态易扩展的虚拟化的资源。


云计算的三大服务模式:

   IaaS云:

   IaaS(Infrastructure as a Service),即基础设施即服务

        提供给消费者的服务是对所有计算基础设施的使用

        包括处理CPU,内存,存储,网络和其他基本的计算资源

        用户能够部署和运行任意软件,包括操作系统和应用程序

        IaaS通常分为三种用法:公有云,私有云和混合云

    PaaS云:

        PaaS(Platform-as-a-Service),意思是平台即服务

        以服务器平台或者开发者开发环境按需提供的服务

        PaaS不仅仅是单纯的基础平台,还包括对该平台的技术支持,应用系统开发,优化等服务

        简单地说,PaaS也可以说是中间件即服务

   SaaS云:

        SaaS(Software-as-a-Service)软件即服务

        是一种通过Internet提供软件的模式

        软件厂商将应用软件部署在服务器上,客户可以根据自己实际需求,通过互联网自助购买所需的应用软件服务

        SaaS云服务也可以说是一种软件云服务


知名云服务商:

    国外:亚马逊(AWS),微软Azure,IMB SCE+……

    国内:华为云,阿里云,百度云,腾讯云……


OpenStack起源:

    OpenStack是一个由NASA(美国国家航天局)和Rackspace合作研发并发起的项目

    OpenStack是一套IaaS解决方案

    OpenStack是一个开源的云计算管理平台

    以Apache许可证为授权


OpenStack结构图:

OpenStack从入门到放弃?全面技术总结_ip地址

OpenStack组件:

     Horizon组件:

        Horizon为OpenStack服务的Web控制面板,它可以管理实例,镜像,创建秘钥对,对实例添加卷,操作Swift容器等

        实例管理:创建,终止实例,查看终端日志,VNC连接,添加卷等

        访问与安全管理:创建安全群组,管理密钥对,设置浮动IP等

        镜像管理:编辑或删除镜像

        管理用户,配额及项目用途

     Keystone组件:

        为其他服务提供认证和授权的集中身份管理服务

        也提供了集中的目录服务

        支持多种身份认证模式,如密码认证,令牌认证,以及AWS(亚马逊Web服务)登录

        为用户和其他服务提供了SSO认证服务

     Nova组件:

        在节点上用于管理虚拟机的服务

        Nova是一个分布式的服务,能够与Keystone交互实现认证,与Glance交互实现镜像管理

        Nova被设计成在标准硬件上能够进行水平扩展

        启动实例时,如果有则需要下载镜像

     Glance组件:

        扮演虚拟机镜像注册的角色

        允许用户直接存储拷贝服务器镜像

        这些镜像可以用于新建虚拟机的模板

        镜像采用qcow2技术(写时复制后端盘)

     Swift组件:

        对象存储的组件

        对于大部分用户来说,swift不是必须的

        只有存储数量达到一定级别,而且是非结构化数据才有这样的需求

     Neutron组件:

        一种软件定义网络服务

        用于创建网络,子网,路由器,管理浮动ip地址

        可以实现虚拟交换机,虚拟路由器

        可用于在项目中创建VPN

        不同主机上的服务器有的需要相互隔离,有的需要互联互通

     Cinder组件:

        为虚拟机管理存储卷的服务

        为运行在Nova中的实例提供永久的块存储

        可以通过快照进行数据备份

        经常应用在实例存储环境中,如数据库文件


安装时间同步服务器:

       openstack集群内部要求时间同步

[root@install_source html]# yum -y install chrony
[root@install_source html]# vim /etc/chrony.conf
bindacqaddress 0.0.0.0
allow 0/0
[root@install_source html]# systemctl restart chronyd

安装openstack服务: 

    配置步骤:

        1.配置DNS服务器

        2.配置主机名IP地址解析

        3.配置时间服务

        4.yum源配置

        5.安装OpenStack软件包

        6.安装Nova软件包

1.配置DNS服务器(三台主机都需要配置)

OpenStack安装时需要使用dns来解析域名

查看/etc/resolv.conf,如果局域网有域名服务器,且能访问外网不用修改,如果不能解析外网域名,可以修改成外网任意dns服务器,如果文件中有search的行,需要删除,否则会给主机加上后缀

[root@openstack ~]# cat /etc/resolv.conf 
nameserver 202.96.128.86

2.配置主机名IP地址解析(三台主机都需要配置)

由于局域网中没有搭建dns服务器,所以主机的名称是无法解析成IP的,但是OpenStack在服务间调用的时候会使用主机名称,为了保证服务能正常使用需要修改/etc/hosts文件,也可以自己搭建dns服务器。

[root@openstack ~]# vi /etc/hosts
...
192.168.1.10 openstack
192.168.1.11 nova1
192.168.1.12 nova2

3.配置时间服务(三台主机都需要配置)

OpenStack与nova服务器之间的时间必须保持一致

[root@openstack ~]# yum -y install chrony
[root@openstack ~]# vi /etc/chrony.conf
server 192.168.1.100 iburst
[root@openstack ~]# systemctl restart chronyd
[root@openstack ~]# chronyc sources -v
^* 192.168.1.100 4 6 17 5 +663us[ +711us] +/- 148ms

4.yum源配置(三台主机都需要配置)

yum源即为安装包目录,可以下载好所需的安装包手动rpm安装

[root@openstack ~]# cat /etc/yum.repos.d/dvd.repo 
[BaseOS]
name=CentOS-7-BaseOS
baseurl=file:///dvd
enabled=1
gpgcheck=0
[local_extras]
name=CentOS-7-extras
baseurl="http://192.168.1.100/extras"
enabled=1
gpgcheck=0
[local_openstack]
name=CentOS-7-Openstack
baseurl="http://192.168.1.100/openstack/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0
[local_openstack_devel]
name=CentOS-7-Openstack-devel
baseurl="http://192.168.1.100/openstack/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0

5.安装OpenStack软件包


[root@openstack ~]# yum -y install python-setuptools openstack-packstack

6.安装Nova软件包(nova1,nova2)


[root@nova1 ~]# yum -y install python-setuptools libvirt-daemon libvirt-daemon-driver-qemu libvirt-client qemu-kvm
[root@nova1 ~]# systemctl status libvirtd # 检查服务是否已正确安装
[root@nova1 ~]# virsh list


私有云环境检查:

    1.禁用selinux,卸载firewalld和NetworkManager

    2.主机名必须能够解析

    3.检查配置主机yum源(4个,10670)

    4.以及软件包是否安装

    5.检查NTP服务器是否可用

    6.检查/etc/resolv.conf不能有search开头的行


配置应答文件(OpenStack主机上):

[root@openstack ~]# packstack --gen-answer-file=answer.ini  # 创建应答文件
[root@openstack ~]# vi /root/answer.ini
(42)CONFIG_SWIFT_INSTALL=n # 为是否安装swift组件
(45)CONFIG_CEILOMETER_INSTALL=n # 计费相关
(49)CONFIG_AODH_INSTALL=n # 计费相关
(53)CONFIG_GNOCCHI_INSTALL=n # 计费相关
(75)CONFIG_NTP_SERVERS=192.168.1.100 # 时间服务器地址
(98)CONFIG_COMPUTE_HOSTS=192.168.1.11 # nova组件安装IP地址(nova主机都要装)
(102)CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11 # neutron组件安装IP地址(所有主机)
(330)CONFIG_KEYSTONE_ADMIN_USERNAME=admin # 管理员账号
(333)CONFIG_KEYSTONE_ADMIN_PW=admin # 管理员密码
(840)CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan # 支持的网络协议['local','flat', 'vlan', 'gre', 'vxlan']
(910)CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex # ovs网桥名称
(921)CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 # 网桥物理网卡接口
(1179)CONFIG_PROVISION_DEMO=n # 禁用演示案例
[root@openstack ~]# packstack --answer-file=answer.ini # 安装OpenStack(需要20~40分钟)

安装完OpenStack后,网卡文件发生了变化

    br-ex将eth0作为了接入外网的端口

[root@openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex 
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
UUID=947ecf35-bcb0-42c1-b2b3-adb4cd552666
ONBOOT=yes
IPADDR=192.168.1.10
PREFIX=24
GATEWAY=192.168.1.1
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs
OVSBOOTPROTO=none
TYPE=OVSBridge
[root@openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
DEVICETYPE=ovs
TYPE=OVSPort # 变成了br-ex网卡的端口
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none

ovs-vsctl命令:

[root@openstack ~]# ovs-vsctl show
Bridge br-ex
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
Port "eth0"
Interface "eth0" # 变成了br-ex网卡的端口
Port phy-br-ex
Interface phy-br-ex
type: patch
options: {peer=int-br-ex}
Port br-ex
Interface br-ex
type: internal

登录管理:

    horizon是一个用以管理,控制OpenStack服务的Web控制面板,也称之为Dashboard仪表盘,可以管理实例,镜像,创建秘钥对,对实例添加卷,操作Swift容器等。除此之外,用户还可以在控制面板中使用终端(console)或者VNC直接访问实例。基于python的django web框架进行开发

    由于版本BUG在登录horizon前需要修改配置文件:

[root@openstack ~]# vi /etc/httpd/conf.d/15-horizon_vhost.conf
WSGIApplicationGroup %{GLOBAL} # 在最后添加这样,修复版本bug
[root@openstack ~]# systemctl reload httpd

OpenStack从入门到放弃?全面技术总结_服务器_02


命令行登录:

/root/keystonerc_admin(软件的环境变量及认证文件,包括用户名密码)

[root@openstack ~]# source /root/keystonerc_admin   # 加载认证文件
[root@openstack ~(keystone_admin)]# openstack user list #显示当前软件系统用户
+----------------------------------+---------+
| ID | Name |
+----------------------------------+---------+
| 0b0efa96f7e24ab5bf1dfaf7ef0053d3 | glance |
| 7955419bcbca41558958fd6d28bb90ae | nova |
| 9f9e9b7e6085413c9b9aadcd22cf9bb8 | admin |
| ae29da2665f04c96b328c986a95a65c3 | cinder |
| cc2c5aa671e04fc9936a0f8f9c0a817f | neutron |
+----------------------------------+---------+

项目的概念:

    项目是由admin角色的用户创建的

    项目:一组隔离的资源和对象,由一组关联的用户进行管理

    根据配置的需求,项目对应一个组织,一个公司或是一个使用客户等

    项目中可以有多个用户,项目中的用户用来管理虚拟资源

    项目相关信息保存到数据库中

默认项目:

    缺省情况下,packstack安装的openstack中有两个独立的项目

    admin:为admin账户创建的项目

    services:与安装的各个服务相关联


创建项目:

    配额默认

OpenStack从入门到放弃?全面技术总结_ip地址_03

OpenStack从入门到放弃?全面技术总结_云主机_04

通过命令创建项目:

    创建名为myproject项目


openstack project create myproject

    查看项目



openstack project list

    删除项目



openstack project delete myproject


用户管理:

    什么是用户:

    用户在OpenStack中用于身份认证

    管理员用户admin一般在packstack安装过程中创建

    其他用户由管理员用户创建,并指定可以访问的项目

    非管理员用户创建后,保存到数据库中

    用户权限:

       非管理员用户权限:

       启动实例、创建卷和快照、创建镜像、分配浮动ip、创建网络和路由器、创建防火墙以及规则和策略、查看网络拓扑项目使用情况等

  创建用户:

OpenStack从入门到放弃?全面技术总结_云主机_05

OpenStack从入门到放弃?全面技术总结_云主机_06

OpenStack从入门到放弃?全面技术总结_云主机_07


使用新建用户登录:

OpenStack从入门到放弃?全面技术总结_服务器_08

通过命令创建用户:

    创建xiaoyong用户,指定密码为xiaoyong


openstack user create --password xiaoyong  xiaoyong

    列出已有用户



openstack user list

    删除用户



openstack  user delete xiaoyong

    修改密码



openstack user set --password redhat xiaoyong


云主机类型(资源模板):

    云主机类型就是资源的模板

    它定义了一台云主机可以使用的资源,如内存的大小,磁盘容量和cpu核数等

    openstack提供了几个默认的云主机类型

    管理员还可以自定义云主机类型


OpenStack从入门到放弃?全面技术总结_服务器_09

命令行管理云主机类型:

创建一个云主机类型demo.tiny(内存512M,磁盘10G,1cpu)

openstack flavor create --public demo.tiny --id auto --ram 512 --disk 10 --cvpus 1

列出所有的云主机类型openstack flavor list

[root@openstack ~]# source keystonerc_admin 
[root@openstack ~(keystone_admin)]# openstack flavor list
+----+-----------+-------+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+-------+------+-----------+-------+-----------+
| 1 | m1.tiny | 512 | 1 | 0 | 1 | True |
| 2 | m1.small | 2048 | 20 | 0 | 1 | True |
| 3 | m1.medium | 4096 | 40 | 0 | 2 | True |
| 4 | m1.large | 8192 | 80 | 0 | 4 | True |
| 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True |
+----+-----------+-------+------+-----------+-------+-----------+

删除云主机类型:

openstack flavor delete demon.tiny


镜像管理:

    在红帽openstack平台中,镜像指的是虚拟磁盘文件

    磁盘文件中应该已经安装了可启动的操作系统

    镜像管理功能由Glance服务提供

    它形成了创建虚拟机实例最底层的块结构

    镜像可以由用户自己制作,也可以通过红帽官方站点下载


镜像磁盘格式:

    raw:非结构化磁盘镜像格式

    vhd:VMware,Xen,Microsoft,VirtualBox等均支持的磁盘格式

    vmdk:是VMware的虚拟磁盘格式

    vdi:VirtualBox虚拟机和QEMU支持磁盘格式

    iso:光盘数据内容的归档格式

    qcow2:QEMU支持的磁盘格式,空间自动扩展,并支持写时复制copy-on-write


COW(copy-on-write):

    直接映射原始盘的数据内容。当数据有修改要求时,在修改之前自动将旧数据拷贝存入前端盘后,对前端盘进行修改。原始盘始终是只读的


OpenStack从入门到放弃?全面技术总结_云主机_10


qemu-img命令:是虚拟机的磁盘管理命令

    格式:qemu-img 命令  参数  块文件名称  大小

        常用的命令有

            create:创建一个磁盘

            info:查看磁盘信息

            resize:扩容磁盘空间


创建Qcow2格式文件

创建新的镜像盘文件    

qemu-img  create -f 格式  磁盘路径  大小


qemu-img  create -f qcow2 disk.img 50G

查询镜像盘文件的信息:



qemu-img info disk.img

-b使用后端模板文件:



qemu-img  create  -b disk.img  -f  qcow2 disk.img
[root@openstack ~(keystone_admin)]# qemu-img create -f qcow2 disk1.img 10G
Formatting 'disk1.img', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
[root@openstack ~(keystone_admin)]# qemu-img create -b small.img -f qcow2 disk2.img
Formatting 'disk2.img', fmt=qcow2 size=1073741824 backing_file=small.img encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
[root@openstack ~(keystone_admin)]# qemu-img info disk2.img
image: disk2.img
file format: qcow2 # 磁盘格式为qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 196K
cluster_size: 65536
backing file: small.img # 有后端盘时会显示后端盘
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false


通过horizon平台创建镜像:

OpenStack从入门到放弃?全面技术总结_服务器_11

OpenStack从入门到放弃?全面技术总结_ip地址_12


使用命令创建镜像:

openstack image create --disk-format qcow2 --file /root/small.img RedHat-6
[root@openstack ~(keystone_admin)]# openstack image create --disk-format qcow2 --file /root/small.img RedHat-6
+------------------+------------------------------------------------------+
| Field | Value |
+------------------+------------------------------------------------------+
| checksum | 937e74d62f0712663fcec490efac5a93 |
| container_format | bare |
| created_at | 2021-07-06T03:38:36Z |
| disk_format | qcow2 |
| file | /v2/images/4ad5234d-6ac6-4678-9504-1e63d4089ccd/file |
| id | 4ad5234d-6ac6-4678-9504-1e63d4089ccd |
| min_disk | 0 |
| min_ram | 0 |
| name | RedHat-6 |
| owner | b9da1ac683e84424aced494653a27419 |
| protected | False |
| schema | /v2/schemas/image |
| size | 106493440 |
| status | active |
| tags | |
| updated_at | 2021-07-06T03:38:37Z |
| virtual_size | None |
| visibility | private |
+------------------+------------------------------------------------------+

列出已有镜像:

openstack image list
[root@openstack ~(keystone_admin)]# openstack image list
+--------------------------------------+----------+--------+
| ID | Name | Status |
+--------------------------------------+----------+--------+
| 4ad5234d-6ac6-4678-9504-1e63d4089ccd | RedHat-6 | active |
| 5deb00e9-3ad4-40a2-aa80-b0d0062304a7 | xiaoyong | active |
+--------------------------------------+----------+--------+

删除镜像:

openstack image delete RedHat-6



Neutron网络管理:

    网络管理:

        实例被分配到子网中,以实现网络连通性

        每个项目都可以有1到多个子网

        每个项目都能拥有多个私有网络

        各个项目的私有网络互相不受干扰

        网络间可用vlan隔离

        提供商网络:将实例连接到现有网络,实现虚拟机实例与外部系统共享同一二层网络


创建wlan网络:

    通过horizon设置外部wlan网络:

OpenStack从入门到放弃?全面技术总结_服务器_13

项目管理员xiaoyong查看网络拓扑情况

OpenStack从入门到放弃?全面技术总结_服务器_14

命令行模式创建网络:

    外部网络只有管理员admin有权限设置

    创建一个名为wlan的,属于xiaoyong的网络,flat(直连)外部网络

openstack network create --project xiaoyong --external --provider-network-type flat --provider-physical-network physnet wlan

    查看网络:

[root@openstack ~(keystone_admin)]# openstack network show wlan
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | |
| created_at | 2021-07-06T05:44:30Z |
| description | |
| id | a7ce9990-817f-47db-8382-070b4ccf89f7 |
| ipv4_address_scope | None |
| ipv6_address_scope | None |
| is_default | False |
| mtu | 1500 |
| name | wlan |
| project_id | dc5cbe50db9243098cb68bc6a7f6b63f |
| project_id | dc5cbe50db9243098cb68bc6a7f6b63f |
| provider:network_type | flat |
| provider:physical_network | physnet |
| provider:segmentation_id | None |
| revision_number | 3 |
| router:external | External |
| shared | True |
| status | ACTIVE |
| subnets | |
| tags | [] |
| updated_at | 2021-07-06T05:44:30Z |
+---------------------------+--------------------------------------+


项目管理员xiaoyong设置子网:

OpenStack从入门到放弃?全面技术总结_云主机_15

OpenStack从入门到放弃?全面技术总结_云主机_16


命令行创建wlan子网:

设置名为wlan_subnet子网

neutron subnet-create --name wan_subnet --gateway 192.168.1.1 --allocation-pool start=192.168.1.128,end=192.168.1.160 --disable-dhcp wlan 192.168.1.0/24

删除子网:



neutron subnet-delete wlan-subnet


创建lan网络:

    项目管理员xiaoyong创建私有网络:

OpenStack从入门到放弃?全面技术总结_ip地址_17

OpenStack从入门到放弃?全面技术总结_服务器_18

OpenStack从入门到放弃?全面技术总结_云主机_19

OpenStack从入门到放弃?全面技术总结_服务器_20

添加路由:

OpenStack从入门到放弃?全面技术总结_云主机_21

OpenStack从入门到放弃?全面技术总结_云主机_22

OpenStack从入门到放弃?全面技术总结_服务器_23

OpenStack从入门到放弃?全面技术总结_云主机_24


创建云主机:

云主机创建过程,最终是调度nova节点上的compute服务和libvirtd服务创建虚拟机

OpenStack从入门到放弃?全面技术总结_服务器_25

OpenStack从入门到放弃?全面技术总结_服务器_26

OpenStack从入门到放弃?全面技术总结_ip地址_27

OpenStack从入门到放弃?全面技术总结_云主机_28

OpenStack从入门到放弃?全面技术总结_ip地址_29

OpenStack从入门到放弃?全面技术总结_ip地址_30

OpenStack从入门到放弃?全面技术总结_ip地址_31

OpenStack从入门到放弃?全面技术总结_云主机_32

常见错误:

    1.创建云主机时状态错误

    解决办法:查看nova主机的libvirtd服务是否启动

    2.创建云主机时长时间处于调度状态

    解决办法:查看nova主机的openstack-nova-compute是否启动

    3.打开控制台时无法正常连接提示code1006

    检查/etc/hosts文件解析是否正确

    查看/etc/nova/nova.conf文件的vncserver_proxyclient_address是否有后缀,若有在/etc/hosts文件中加上即可


安全组与浮动IP:

    浮动IP是干什么的?

        浮动IP一般需要花钱购买(公网IP)

        浮动IP地址用于从外界访问虚拟机实例

        浮动IP地址只能从现有浮动IP地址池中分配

        虚拟机实例启动后,可以为其关联一个浮动IP地址

        虚拟机实例也可以解除IP地址绑定


分配浮动ip,管理员xiaoyong登录平台分配

OpenStack从入门到放弃?全面技术总结_ip地址_33

OpenStack从入门到放弃?全面技术总结_ip地址_34

为云主机绑定浮动ip

OpenStack从入门到放弃?全面技术总结_服务器_35

OpenStack从入门到放弃?全面技术总结_云主机_36

OpenStack从入门到放弃?全面技术总结_云主机_37


安全组:

    安全组用于控制对虚拟机实例的访问

    安全组在高层定义了哪些网络及哪些协议是被授权可以访问虚拟机实例的

    每个项目都可以定义自己的安全组

    项目成员可以编辑默认的安全规则,也可以添加新的安全规则

    每个规则都有出和入两个方向

    所有的项目都有一个默认的default安全组


创建安全组:


OpenStack从入门到放弃?全面技术总结_服务器_38

OpenStack从入门到放弃?全面技术总结_云主机_39

添加ssh和icmp实现ping和ssh远程

OpenStack从入门到放弃?全面技术总结_ip地址_40

OpenStack从入门到放弃?全面技术总结_ip地址_41

如果需要开放所有端口,选择其他协议

OpenStack从入门到放弃?全面技术总结_云主机_42

OpenStack从入门到放弃?全面技术总结_服务器_43

OpenStack从入门到放弃?全面技术总结_服务器_44

测试ssh和icmp

[root@openstack ~]# ssh root@192.168.1.138
root@192.168.1.138's password:
Last login: Tue Jul 6 13:12:35 2021 from 192.168.1.10
[root@host-10-10-10-18 ~]#

[root@openstack ~]# ping 192.168.1.138
PING 192.168.1.138 (192.168.1.138) 56(84) bytes of data.
64 bytes from 192.168.1.138: icmp_seq=1 ttl=63 time=5.09 ms
64 bytes from 192.168.1.138: icmp_seq=2 ttl=63 time=1.20 ms



扩容计算节点:

    基础环境准备:

        参考nova1的配置过程:

        配置静态IP:192.168.1.12,主机名nova2

        禁用selinux,卸载firewalld和NetworkManager

        修改/etc/hosts,添加所有主机的解析

      配置yum源,安装软件python-setuptools libvirt-daemon libvirt-daemon-driver-qemu libvirt-client qemu-kvm

        检查ntp时间服务器是否同步chronyc sources -v

        去除/etc/resolv.conf的search开头的行


编辑openstack主机的anwser.ini应答文件

[root@openstack ~]# vi /root/answer.ini
(98)CONFIG_COMPUTE_HOSTS=192.168.1.11,192.168.1.12 # 安装计算节点
(102)CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11,192.168.1.12 # 安装neutron网络

在openstack主机上重新执行安装命令



ackstack --answer-file=answer.ini

安装后,Apache配置已被还原,需要重新添加

[root@openstack ~]# vi /etc/httpd/conf.d/15-horizon_vhost.conf
WSGIApplicationGroup %{GLOBAL} # 在最后添加这样,修复版本bug
[root@openstack ~]# systemctl reload httpd

管理员admin登录openstack,可以看到两个nova计算节点

OpenStack从入门到放弃?全面技术总结_ip地址_45

创建虚拟机后,openstack会自动分配虚拟机到nova节点上

登录admin管理员可以查看虚拟机分配的计算节点,项目管理员没有查看权限

OpenStack从入门到放弃?全面技术总结_ip地址_46

此时实现了不同nova间网络互通:

OpenStack从入门到放弃?全面技术总结_云主机_47




其实OpenStack平台对于虚拟机的时代来说真的很强大,但是如今是微服务的时代。了解技术原理就行,重要的是docker和k8s。

以上就是我的从入门到放弃文章。

如果此文对你有帮助,可以留下你的赞再走,码字很辛苦的,谢谢支持。

Those time when you get up early and you work hard. Those time when you stay up late and you work hard. Thosetimes when you don't feel like working, you're too tired and you don't want to push yourself but you do it anyway. That is actually the dream. That's the dream.