私有云平台实战-OpenStack

文章目录

#1.1OpenStack核心组件和功能

#2.1OpenStack案例环境

  2.1.1创建实例

  2.1.2绑定浮动IP地址

  2.1.3添加安全组规则

  2.1.4创建密钥对

  2.1.5创建及使用卷挂载 

  2.1.6快照管理


1.1OpenStack核心组件和功能

  1. Keystone(身份认证与授权服务)

    • 作为 OpenStack 的 “安全网关”,所有组件的访问都需要通过 Keystone 的认证。

    • 核心功能包括:用户管理(创建、删除、权限设置)、角色定义(如管理员、普通用户)、项目划分(资源隔离的逻辑单位,类似 “租户”)、令牌管理(生成临时访问令牌,验证请求合法性)。

    • 支持多种认证方式,如密码、密钥对、LDAP 集成等,确保资源访问的安全性。

  2. Glance(镜像服务)

    • 相当于虚拟机的 “模板仓库”,存储的镜像包含操作系统、预装软件等,可直接用于创建 Nova 虚拟机实例。

    • 支持多种镜像格式(如 QCOW2、RAW、VMDK 等),并能与 Swift(对象存储)等集成实现镜像的持久化存储和分布式管理。

    • 提供镜像版本控制、元数据管理(如镜像大小、操作系统类型)等功能。

  3. Nova(计算服务)

    • OpenStack 的 “计算引擎”,负责虚拟机实例的全生命周期管理:从基于 Glance 镜像创建实例,到根据资源负载调度实例到合适的物理节点,再到实例的启停、迁移、删除等。

    • 本身不直接提供虚拟化能力,而是通过调用底层虚拟化技术(如 KVM、Xen、Docker 等)实现虚拟机管理。

    • 依赖 Neutron 提供网络、Cinder 提供存储,与 Keystone 交互进行权限验证。

  4. Neutron(网络服务)

    • 提供 “虚拟网络基础设施”,让虚拟机实例像物理机一样拥有独立的网络配置。

    • 核心功能包括:虚拟交换机(vSwitch)、虚拟路由器(vRouter)、IP 地址分配(DHCP)、安全组(防火墙规则)、负载均衡、VPN 等。

    • 支持多种网络模式(如 VLAN、VXLAN),可实现不同项目 / 租户间的网络隔离,满足多租户场景需求。

  5. Cinder(块存储服务)

    • 为虚拟机提供 “持久化块存储”,类似物理机的硬盘,即使虚拟机删除,存储卷的数据也能保留。

    • 支持卷的创建、挂载、卸载、快照(备份)、扩容等操作,可与 Nova 集成,直接为虚拟机分配存储卷。

    • 底层可对接多种存储后端(如本地硬盘、SAN 存储、Ceph 等),提供高可用和性能优化。

  6. Horizon(Web 管理界面)

    • OpenStack 的 “可视化控制台”,通过 Web 界面将上述所有组件的功能整合,方便用户(无需命令行)进行资源管理,如创建虚拟机、配置网络、上传镜像等。

    • 支持多租户视图隔离,不同用户只能看到自己有权限的资源,操作逻辑与组件 API 一一对应。

其他常用组件

  • Swift(对象存储服务):用于存储非结构化数据(如图片、文档、日志等),采用分布式架构,适合海量数据的持久化存储,可独立于虚拟机存在,常作为 Glance 的后端存储或单独提供对象存储服务。

  • Trove(数据库服务):提供托管的数据库服务,支持 MySQL、PostgreSQL 等主流数据库,自动完成数据库的部署、备份、扩容等运维工作,简化用户的数据库管理。

  • Heat(编排服务):通过 “模板” 定义云计算资源(如虚拟机、网络、存储的组合),实现资源的自动化部署和生命周期管理,适合复杂应用的一键部署(如多节点集群)。

  • Ceilometer(计量服务):监控 OpenStack 资源的使用情况(如虚拟机运行时间、网络流量、存储占用),为计费、资源优化提供数据支持。

组件间的协同关系

OpenStack 的组件通过统一的 API 和消息队列(如 RabbitMQ)协同工作,例如:

  1. 用户通过 Horizon 发起创建虚拟机的请求,请求先经 Keystone 认证;

  2. Nova 接收请求后,从 Glance 获取指定镜像,向 Neutron 申请网络配置,向 Cinder 申请存储卷;

  3. Nova 将这些资源整合,在合适的物理节点上创建并启动虚拟机实例;

  4. 整个过程中,Ceilometer 记录资源使用,Heat 可按模板自动重复上述流程。

     这种模块化设计使得 OpenStack 具有高度的灵活性和可扩展性,用户可根据需求选择核心组件或集成其他服务,构建定制化的云计算平台。

2.1OpenStack案例环境

IP 地址系统版本CPU内存磁盘OpenStack 版本
192.168.9.236CentOS7.3(64 位)8核16GB30GBTrain 版本

2.1.1创建实例

  实例:相当于在云计算环境中运行的一台 “虚拟计算机”,就像我们日常使用的物理计算机一样,实例有自己的操作系统、CPU、内存、存储和网络等资源 。用户可以在实例上安装应用程序、部署服务,执行各种计算任务,比如搭建 Web 服务器、数据库服务器等。

 在添加实例过程中,配置项填写如下脚本

#!/bin/bash

passwd root<<EOF

aptech

aptech

EOF

passwd centos<<EOF

aptech

aptech

EOF

sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g'  /etc/ssh/sshd_config

sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g'  /etc/ssh/sshd_config

echo "UseDNS no" >> /etc/ssh/sshd_config

systemctl restart sshd

 ​​

 测试云主机和互联网的连通性

ping www.baidu.com

PING www.baidu.com (220.181.112.244): 56 data bytes

64 bytes from 220.181.112.244: seq=0 ttl=126 time=14.693 ms

64 bytes from 220.181.112.244: seq=1 ttl=126 time=12.755 ms

64 bytes from 220.181.112.244: seq=2 ttl=126 time=9.271 ms

 2.1.2绑定浮动IP地址

    浮动IP地址:浮动 IP 地址是从外部网络(通常是与物理网络相连通的网络,能访问互联网等外部资源)中分配出来的公网 IP 地址,它可以被动态地关联到虚拟机实例的固定(内部)IP 地址上 。通过浮动 IP,外部网络中的设备(如其他服务器、用户的计算机等)能够访问到处于内部虚拟网络中的虚拟机实例。

 2.1.3添加安全组规则

     安全组:本质上是一组由用户自定义的网络访问规则的集合,类似于防火墙规则。每个虚拟机实例都可以关联一个或多个安全组。这些规则定义了哪些 IP 地址、端口和协议的网络流量被允许进入或离开虚拟机实例,从而保护虚拟机上运行的应用程序和数据免受未经授权的访问和攻击。

[root@openstack ~]# ping 172.16.1.163

PING 172.16.1.163 (172.16.1.163) 56(84) bytes of data.

64 bytes from 172.16.1.163: icmp_seq=1 ttl=63 time=2.85 ms

64 bytes from 172.16.1.163: icmp_seq=2 ttl=63 time=1.73 ms

64 bytes from 172.16.1.163: icmp_seq=3 ttl=63 time=1.32 ms

64 bytes from 172.16.1.163: icmp_seq=4 ttl=63 time=0.721 ms

 

[root@openstack ~]# ssh cirros@172.16.1.163
The authenticity of host '172.16.1.163 (172.16.1.163)' can't be established.
ECDSA key fingerprint is SHA256:PGyaua19g3sV9OULGawmGxJdLzSpIRpngRkhuqhup0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.163' (ECDSA) to the list of known hosts.
cirros@172.16.1.163's password: 
$ ifconfig
eth0      Link encap:Ethernet  HWaddr FA:16:3E:8B:C3:1C  
          inet addr:192.168.1.189  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::f816:3eff:fe8b:c31c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1442  Metric:1
          RX packets:138 errors:0 dropped:0 overruns:0 frame:0
          TX packets:218 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:15914 (15.5 KB)  TX bytes:19533 (19.0 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 2.1.4创建密钥对

      密钥对:密钥对由一对密钥组成,即公钥(Public Key)和私钥(Private Key) 。公钥是公开的,可以被任何人获取;私钥则必须严格保密,只有密钥对的拥有者知道。在 OpenStack 环境中,公钥被存储在虚拟机实例上,用于验证登录请求;私钥则由用户保管,用于在登录虚拟机实例时进行身份验证。

 通过宿主机使用密钥登录云主机

[root@openstack ~]# useradd cirros
[root@openstack ~]# mkdir /home/cirros/.ssh
[root@openstack ~]# mv /home/cirros/.ssh/my-auth.pem /home/cirros/.ssh/id_rsa
[root@openstack ~]# chmod 700 /home/cirros/.ssh
[root@openstack ~]# chown -R cirros.cirros /home/cirros/.ssh
[root@openstack ~]# chmod 600 /home/cirros/.ssh/id_rsa

 

plaintext
[root@openstack ~]# su - cirros
[cirros@openstack ~]$ ssh 172.16.1.163
The authenticity of host '172.16.1.163 (172.16.1.163)' can't be established.
ECDSA key fingerprint is SHA256:KDOK6Wn0VVmVnHEPVed2CimdMcdxzu10NVmUfg.
ECDSA key fingerprint is MD5:ab:53:30:4a:65:b6:cb:12:05:cd:db:30:f6:de:ca.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.163' (ECDSA) to the list of known hosts.
$ ifconfig
eth0      Link encap:Ethernet  HWaddr: FA:18:3E:71:0A:48  
          inet addr:192.168.1.155  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::f818:3eff:fe71:0a48/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1442  Metric:1
          RX packets:129 errors:0 dropped:0 overruns:0 frame:0
          TX packets:169 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:20062 (19.5 KB)  TX bytes:17586 (17.1 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

2.1.5 创建及使用卷挂载

项目--卷--卷选项卡

 进入到test云主机控制台,执行fdisk命令查看磁盘情况

fdisk -l

Disk /dev/vda: 1 GiB, 1073741824 bytes, 2097152 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: gpt

Disk identifier: F05EDE64-4EFD-477A-B01E-B37CCD5D3EB4


Device       Start      End  Sectors  Size Type

/dev/vda1   18432  2097118  2078687 1015M Linux filesystem

/dev/vda15   2048    18431    16384    8M EFI System

Partition table entries are not in disk order.


Disk /dev/vdb: 2 GiB, 2147483648 bytes, 4194304 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes
plaintext
fdisk /dev/vdb   

sudo mkfs /dev/vdb1

sudo mount /dev/vdb1 /mnt

df -h


Filesystem      Size  Used Avail Use% Mounted on

/dev            231.7M     0  231.7M   0% /dev

/dev/vda1       980.0M  32.9M  905.8M   4% /

tmpfs           238.8M     0  238.8M   0% /dev/shm

tmpfs           238.8M  84.0K  238.7M   0% /run

/dev/vdb1       2.0G   3.0M  1.9G   0% /mnt

2.1.6 快照管理

基于实例的快照

   首先在当前云主机创建一个 test.txt 文件,并且写入内容

echo test > test.txt

cat test.txt

test

ifconfig

eth0      Link encap:Ethernet  HWaddr FA:16:3E:71:0A:46  
          inet addr:192.168.1.155  Bcast:192.168.1.255  Mask:255.255.255.0  
          inet6 addr: fe80::f816:3eff:fe71:0a46/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1442  Metric:1  
          RX packets:572 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:519 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000  
          RX bytes:52427 (51.1 KiB)  TX bytes:66089 (64.5 KiB)  


lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0  
          inet6 addr: ::1/128 Scope:Host  
          UP LOOPBACK RUNNING  MTU:65536  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000  
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)  

 

学习要求: 熟悉基本的linux命令 具备基本的网络知识 掌握一门编程语言 课程特点: 深刻理解:OpenStack的设计原理,体系构架和关键技术,构建一个OpenStack环境所需的核心组件以及核心组件间的联系; 全面掌握:如何通过不同的部署工具比如packstack,部署OpenStack环境;如何通过单独部署OpenStack核心组件逐渐搭建出OpenStack环境; 定制研发:在学习openstack源码级深度解析培训后,你能了解openstack源码的体系结构,并能根据需要进行定制开发,满足您在实际生产环境中OpenStack的各种疑问和不满足的功能。 ------------------------课程内容------------------------ 课时1、课前学习环境准备 课时2、课程介绍 课时3、OpenStack概论 课时4、实例:OpenStack自动安装(Fuel) 课时5、作业:OpenStack Fuel 课时6、OpenStack安装部署答问 课时7、Keystone 详解 课时8、实例:OpenStack 手动安装 - 环境准 课时9、实例:Keystone 手动安装 课时10、实例:Keystone CLI 使用 课时11、实例:Keystone API使用 课时12、Glance详解 课时13、实例:Glance手动安装以及CLI、API 课时14、实例:Glance镜像制作 课时15、实例:Glance镜像修改 课时16、作业:Keystone手动练习 课时17、Keystone答问 课时18、作业:Glance手动练习 课时19、Nova架构及原理详解 课时20、实例:Nova手动安装 课时21、实例:Instance启动过程回顾 课时22、网络基础知识盘点 课时23、Neutron原理详解 课时24、实例:Neutron手动安装 课时25、实例:网络命名空间 课时26、实例:物理机连接openvswitch的虚 课时27、实例:租户私有网络创建 课时28、Neutron SDN 实现详解 课时29、实例:Neutron SDN 手动实现 课时30、作业:Nova、Neuron手动安装练习 课时31、作业:Neutron 相关实例练习 课时32、Neutron 答问 课时33、Cinder 原理详解 课时34、Cinder iSCSI实现原理详解 课时35、实例:Cinder 手动安装 课时36、Swift 架构与原理详解 课时37、实例:Swift 手动安装 课时38、Dashboard 介绍与演示 课时39、实例:Dashboard 手动安装 课时40、实例:Dashboard 浮动IP访问实例 课时41、实例:Dashboard 块存储的使用 课时42、实例:Dashboard 对象存储的使用 课时43、实例:OpenStack 命令行接口使用 课时44、OpenStack HA与性能调优 课时45、OpenStack Devstack 自动安 课时46、配置 OpenStack Eclipse 开发环境 课时47、配置 OpenStack Eclipse 开发环境 课时48、OpenStack 自动化测试 - 单元测试 课时49、OpenStack 自动化测试 - 集成测试 课时50、Nova 源码结构 课时51、Nova 调用流程源码解析 课时52、Nova 分层架构与业务模型剖析 课时53、Nova 自定义 API 扩展编码实现 课时54、Django 介绍与快速开始 课时55、Django view 和 urls 的用法 课时56、Django Templates 模板的用法(一) 课时57、Django Templates 模板的用法(二) 课时58、Django Form 表单的用法 课时59、Horizon 结构源码剖析(1) 课时60、Horizon 自定义 Panel 编码实现 课时61、Horizon 自定义 DataView 编码实 课时62、企业部署案例:企业私有云规划与案 课时63、OpenStack 和其他开源云平台比较
学习要求: 熟悉基本的linux命令 具备基本的网络知识 掌握一门编程语言 课程特点: 深刻理解:OpenStack的设计原理,体系构架和关键技术,构建一个OpenStack环境所需的核心组件以及核心组件间的联系; 全面掌握:如何通过不同的部署工具比如packstack,部署OpenStack环境;如何通过单独部署OpenStack核心组件逐渐搭建出OpenStack环境; 定制研发:在学习openstack源码级深度解析培训后,你能了解openstack源码的体系结构,并能根据需要进行定制开发,满足您在实际生产环境中OpenStack的各种疑问和不满足的功能。 ------------------------课程内容------------------------ 课时1、课前学习环境准备 课时2、课程介绍 课时3、OpenStack概论 课时4、实例:OpenStack自动安装(Fuel) 课时5、作业:OpenStack Fuel 课时6、OpenStack安装部署答问 课时7、Keystone 详解 课时8、实例:OpenStack 手动安装 - 环境准 课时9、实例:Keystone 手动安装 课时10、实例:Keystone CLI 使用 课时11、实例:Keystone API使用 课时12、Glance详解 课时13、实例:Glance手动安装以及CLI、API 课时14、实例:Glance镜像制作 课时15、实例:Glance镜像修改 课时16、作业:Keystone手动练习 课时17、Keystone答问 课时18、作业:Glance手动练习 课时19、Nova架构及原理详解 课时20、实例:Nova手动安装 课时21、实例:Instance启动过程回顾 课时22、网络基础知识盘点 课时23、Neutron原理详解 课时24、实例:Neutron手动安装 课时25、实例:网络命名空间 课时26、实例:物理机连接openvswitch的虚 课时27、实例:租户私有网络创建 课时28、Neutron SDN 实现详解 课时29、实例:Neutron SDN 手动实现 课时30、作业:Nova、Neuron手动安装练习 课时31、作业:Neutron 相关实例练习 课时32、Neutron 答问 课时33、Cinder 原理详解 课时34、Cinder iSCSI实现原理详解 课时35、实例:Cinder 手动安装 课时36、Swift 架构与原理详解 课时37、实例:Swift 手动安装 课时38、Dashboard 介绍与演示 课时39、实例:Dashboard 手动安装 课时40、实例:Dashboard 浮动IP访问实例 课时41、实例:Dashboard 块存储的使用 课时42、实例:Dashboard 对象存储的使用 课时43、实例:OpenStack 命令行接口使用 课时44、OpenStack HA与性能调优 课时45、OpenStack Devstack 自动安 课时46、配置 OpenStack Eclipse 开发环境 课时47、配置 OpenStack Eclipse 开发环境 课时48、OpenStack 自动化测试 - 单元测试 课时49、OpenStack 自动化测试 - 集成测试 课时50、Nova 源码结构 课时51、Nova 调用流程源码解析 课时52、Nova 分层架构与业务模型剖析 课时53、Nova 自定义 API 扩展编码实现 课时54、Django 介绍与快速开始 课时55、Django view 和 urls 的用法 课时56、Django Templates 模板的用法(一) 课时57、Django Templates 模板的用法(二) 课时58、Django Form 表单的用法 课时59、Horizon 结构源码剖析(1) 课时60、Horizon 自定义 Panel 编码实现 课时61、Horizon 自定义 DataView 编码实 课时62、企业部署案例:企业私有云规划与案 课时63、OpenStack 和其他开源云平台比较
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值