当前位置: 首页 > news >正文

03.OpenStack界面管理

OpenStack界面管理

文章目录

  • OpenStack界面管理
    • 一、OpenStack 界面管理基本介绍
    • 二、核心理论
      • (一)Dashboard(Horizon)
      • (二)与各组件协同工作原理
    • 三、关键术语
      • (一)User
      • (二)Project
      • (三)Token
      • (四)Service 与 Endpoint
      • (五)Role 与 Policy
    • 四、实战示例
      • (一)环境准备
      • (二)安装与配置 OpenStack
      • (三)创建虚拟机实例
      • (四)网络管理
      • (五)存储管理

一、OpenStack 界面管理基本介绍

在云计算的广阔领域中,OpenStack 以其开源、灵活、可扩展的特性,成为构建和管理云基础设施的重要平台。而 OpenStack 界面管理,作为用户与 OpenStack 云平台交互的关键窗口,扮演着举足轻重的角色。它就像是云平台的 “驾驶舱”,让用户能够直观、便捷地操控云计算资源,无论是创建和管理虚拟机、调配存储资源,还是设置网络拓扑 ,都能通过这个界面高效完成。对于云计算管理员而言,熟悉并掌握 OpenStack 界面管理,是实现云平台稳定运行和资源优化配置的必备技能;对于开发者来说,良好的界面管理能极大提升开发效率,快速部署和测试应用。接下来,让我们深入探索 OpenStack 界面管理的精彩世界,揭开它神秘的面纱。

二、核心理论

(一)Dashboard(Horizon)

Dashboard,也被称为 Horizon,是 OpenStack 界面管理的核心组件,是一个基于 Python 编写的 Web 应用程序。它遵循 Web 服务器网关接口(WSGI)协议 ,这一协议定义了 Web 服务器与 Python 应用程序之间的标准接口,确保了 Dashboard 能够与各类支持 WSGI 的 Web 服务器,如 Apache、Nginx 等无缝对接,通常部署在 Apache 服务器上,通过与 OpenStack 框架的其他组件建立 WSGI 连接,实现系统的高度集成。例如,在一个企业级 OpenStack 云平台部署中,通过 Apache 服务器高效稳定地运行 Dashboard,为企业的 IT 运维人员和开发者提供了便捷的操作入口。

Dashboard 的诞生,是为了解决 OpenStack 命令行管理和 API 调用的复杂性问题。在 OpenStack 早期,用户主要通过命令行工具来管理云计算资源,这要求用户熟悉大量的命令及其参数,对于新手来说门槛较高。而且,直接使用 API 调用需要具备一定的编程能力和对 OpenStack 架构的深入理解,这在一定程度上限制了 OpenStack 的普及和应用。Dashboard 的出现,就像是为用户搭建了一座通往云计算资源管理的便捷桥梁。它将复杂的操作封装在直观的图形化界面之下,用户无需记忆繁琐的命令,只需通过鼠标点击、表单填写等简单操作,就能轻松完成云计算资源的配置与监控。例如,创建一个虚拟机实例,在命令行下可能需要编写一长串包含各种参数的命令,而在 Dashboard 中,用户只需在相应的创建页面,填写虚拟机名称、选择镜像、设置规格等基本信息,点击 “创建” 按钮,即可完成操作。

在 OpenStack 架构中,Dashboard 处于用户与后端服务组件之间的关键位置,充当着 “翻译官” 的角色。用户通过浏览器访问 Dashboard,发送各种管理请求,Dashboard 则将这些请求转化为对应的 OpenStack API 调用,与后端的 Nova(计算服务)、Cinder(块存储服务)、Neutron(网络服务)等组件进行交互,获取资源信息或执行操作指令,然后将结果以直观的界面形式呈现给用户,形成了一个完整的闭环操作流程。

(二)与各组件协同工作原理

  1. 与 Keystone 的协同:Keystone 是 OpenStack 的身份认证服务,就像是云平台的 “门卫”,负责验证用户的身份和权限。Dashboard 与 Keystone 紧密协作,当用户访问 Dashboard 时,首先会被重定向到 Keystone 进行身份验证。用户输入用户名和密码后,Keystone 会对这些信息进行验证,如果验证通过,就会为用户颁发一个令牌(Token),这个令牌相当于用户在云平台中的 “通行证”,包含了用户的身份信息和权限范围。Dashboard 会携带这个 Token 与其他 OpenStack 组件进行交互,确保每个操作都是在用户被授权的范围内进行。例如,当一个普通用户尝试创建虚拟机时,Dashboard 会将该用户的 Token 发送给 Nova,Nova 再通过 Keystone 验证 Token 的有效性和用户的权限,只有在权限允许的情况下,才会执行创建操作。如果 Keystone 服务出现异常,Dashboard 将无法获取有效的 Token,用户也就无法登录系统,这充分体现了 Dashboard 对 Keystone 服务的高度依赖。

  2. 与 Nova 的协同:Nova 是 OpenStack 的计算服务核心,负责虚拟机实例的创建、启动、停止、删除等生命周期管理。Dashboard 与 Nova 的协同主要体现在用户对虚拟机的操作上。当用户在 Dashboard 中发起创建虚拟机的请求时,Dashboard 会将用户设置的虚拟机参数,如镜像、规格、网络配置等,通过 API 调用传递给 Nova。Nova 接收到这些参数后,会根据资源的实际情况,选择合适的计算节点,并在该节点上创建虚拟机实例。创建完成后,Nova 会将虚拟机的状态信息返回给 Dashboard,Dashboard 再将这些信息展示给用户,用户就可以在界面上看到虚拟机的创建进度和最终状态。例如,用户在 Dashboard 中点击 “启动实例” 按钮,Dashboard 会将这一指令转化为 API 请求发送给 Nova,Nova 根据指令启动相应的虚拟机实例,并实时向 Dashboard 反馈启动过程中的状态变化,如 “正在启动”“启动成功” 等。

  3. 与 Cinder 的协同:Cinder 提供块存储服务,为虚拟机提供持久化的存储卷。Dashboard 与 Cinder 协同工作,满足用户对存储资源的管理需求。用户在 Dashboard 中可以创建、删除、挂载、卸载存储卷等操作。当用户创建存储卷时,Dashboard 会将用户设定的卷大小、类型等参数传递给 Cinder,Cinder 负责在存储后端创建实际的存储卷,并将卷的 ID 等信息返回给 Dashboard。当用户需要将存储卷挂载到虚拟机时,Dashboard 会向 Nova 发送挂载请求,同时告知 Cinder 相关的挂载信息,Nova 和 Cinder 协同完成挂载操作。比如,在一个数据库应用场景中,用户通过 Dashboard 为运行数据库的虚拟机创建了一个高性能的 SSD 存储卷,并将其挂载到虚拟机上,以满足数据库对存储性能的高要求。

  4. 与 Neutron 的协同:Neutron 负责 OpenStack 的网络服务,提供网络拓扑管理、子网创建、IP 地址分配、路由设置等功能。Dashboard 与 Neutron 协同,帮助用户轻松构建和管理云平台的网络环境。用户在 Dashboard 中可以创建网络、子网,分配浮动 IP 地址,设置安全组规则等。当用户创建一个新的网络时,Dashboard 会将网络配置信息发送给 Neutron,Neutron 根据这些信息在底层网络设备上创建相应的网络资源,并返回网络的相关信息给 Dashboard。在多租户的云环境中,不同租户通过 Dashboard 创建各自独立的网络,Neutron 负责实现网络的隔离和互通,确保每个租户的网络安全和稳定运行。

三、关键术语

(一)User

User,即用户,是指任何使用 OpenStack 的实体,它可以是实实在在的个人用户,也可以是其他的系统或者服务 。在 OpenStack 的庞大体系中,User 是资源访问和操作的发起者。例如,一家企业的员工通过公司内部的 OpenStack 云平台申请创建虚拟机用于开发测试,这里的员工就是 User;又比如,一个自动化运维脚本需要调用 OpenStack 的 API 来管理云资源,这个脚本也可以被视为一个 User。

在 OpenStack 中,不同类型的 User 有着不同的权限和用途。像 admin 用户,作为 OpenStack 平台的超级管理员,拥有至高无上的权限,可以对整个云平台的服务进行全面管理,包括创建和删除其他用户、分配资源配额、管理服务组件等。而 demo 用户这类普通用户,通常用于常规的非管理任务,权限相对受限,只能在被授权的范围内操作资源,比如创建和管理自己的虚拟机实例、申请存储卷等 。

在 Horizon 界面中,User 的管理主要在 “Identity” 菜单下的 “Users” 选项中进行。管理员可以在这里轻松地创建新用户,设置用户的用户名、密码、所属项目等基本信息;还能对已有的用户进行编辑,修改其权限、所属项目等属性;当某个用户不再需要使用云平台时,管理员也可以在这个界面中执行删除用户的操作 。

(二)Project

Project 的主要作用是将 OpenStack 的计算、存储和网络等资源进行分组和隔离。从实际应用场景来看,在公有云中,Project 可以代表一个客户,每个客户都有自己独立的 Project,在这个 Project 中管理属于自己的云资源,与其他客户的资源相互隔离,确保数据的安全性和隐私性;在私有云中,Project 可以对应一个部门或者项目组,不同部门或项目组使用各自的 Project 来管理资源,避免资源的混乱和冲突 。

需要明确的是,资源的所有权是归属于 Project,而不是 User。一个 User 必须隶属于某个 Project,才能访问该 Project 中的资源。并且,一个 User 可以同时属于多个 Project,这为用户在不同的业务场景中灵活使用资源提供了便利。例如,一位同时参与多个项目开发的工程师,他可以被添加到不同项目对应的 Project 中,在不同的 Project 中使用相应的资源 。

在 Horizon 中,Project 的管理位于 “Identity” 菜单下的 “Projects” 选项。在这里,管理员能够创建新的 Project,为其设置名称、描述、配额等信息;也可以对现有的 Project 进行管理,如修改项目信息、调整资源配额、管理项目成员等 。

(三)Token

Token 是一串由数字和字母组成的字符串,是用户在成功通过身份验证后,由 Keystone 生成并分配给用户的,作为用户访问 OpenStack 服务的重要凭证。当用户向 OpenStack 发起访问请求时,请求中会携带这个 Token,各个服务会通过 Keystone 来验证 Token 的有效性,只有 Token 验证通过,服务才会响应用户的请求。

Token 的生成过程是这样的:用户向 Keystone 提交用户名和密码等认证信息进行身份验证,Keystone 验证通过后,会根据用户的身份信息和权限范围生成一个 Token,并将其返回给用户。在后续的操作中,用户每次向 OpenStack 服务发送请求时,都需要在请求头中包含这个 Token。比如,用户在 Horizon 界面中执行创建虚拟机的操作时,Horizon 会将用户的 Token 一并发送给 Nova 服务,Nova 再通过 Keystone 验证 Token 的合法性,确认用户有权限执行该操作后,才会开始创建虚拟机的流程 。

Token 在访问控制中起着至关重要的作用,它就像是一把 “钥匙”,只有拥有正确 “钥匙”(Token)的用户,才能打开相应资源的 “大门”,访问和操作 OpenStack 中的各种服务和资源,有效地保障了云平台的安全性和访问的合法性 。

(四)Service 与 Endpoint

在 OpenStack 中,Service 包含了众多关键组件,如负责计算服务的 Nova,它就像是云平台的 “计算引擎”,负责虚拟机实例的创建、启动、停止、删除等全生命周期的管理;提供镜像服务的 Glance,是虚拟机镜像的集中式仓库,负责镜像的发现、注册和下载,就如同一个 “镜像图书馆”,为虚拟机的创建提供所需的镜像资源;提供块存储服务的 Cinder,为虚拟机提供持久化的存储卷,如同一个 “数据保险箱”,保障数据的安全存储和可靠访问;负责网络服务的 Neutron,实现实例与实例之间以及实例与外部网络之间的通信,搭建起云平台的 “网络桥梁”,确保网络的畅通和稳定 。每个 Service 都肩负着独特的功能,共同协作构建起强大的 OpenStack 云平台 。

Endpoint,即服务端点,是一个网络上可访问的地址,通常以 URL 的形式呈现。它是 Service 暴露自己 API 的窗口,User 通过 Endpoint 来访问 Service 提供的资源和执行相应的操作。例如,用户要访问 Nova 服务来创建虚拟机,就需要通过 Nova 服务对应的 Endpoint 来发送创建请求 。

Keystone 在整个过程中扮演着重要的角色,它负责管理和维护每个 Service 的 Endpoint。当一个新的 Service 被添加到 OpenStack 中时,Keystone 会为其注册相应的 Endpoint 信息,包括 Endpoint 的 URL、服务类型、区域等,确保用户能够准确地找到并访问到各个 Service 。

(五)Role 与 Policy

Role 在 OpenStack 的授权体系中扮演着核心角色,它代表了一组用户可以访问的资源权限集合。不同的 Role 拥有不同的权限,例如,admin 角色作为超级管理员角色,拥有对云平台所有资源的完全控制权限,可以创建和删除用户、项目,管理所有的虚拟机、存储卷和网络资源等;而 member 角色作为普通成员角色,通常具有创建和管理自己的虚拟机实例、申请和使用一定配额的存储卷和网络资源等权限 。

Role 与 User 之间通过分配关系来确定用户的权限。在 Horizon 的 “Identity” 菜单下的 “Project” 中的 “Manage Members” 选项中,可以将不同的 Role 分配给 User。比如,将 admin 角色分配给特定的用户,该用户就拥有了超级管理员的权限;将 member 角色分配给普通用户,用户就具备了普通成员的权限 。

每个 Service 都会通过各自的 policy.json 文件对 Role 的权限进行细致的控制。policy.json 文件定义了不同 Role 在该 Service 中可以执行的操作和访问的资源。例如,在 Nova 服务的 policy.json 文件中,可以配置只有 admin 角色的用户才能执行强制主机迁移(forced_host)操作,而其他角色的用户则没有这个权限;对于创建虚拟机(create)、附加网络(attach_network)和附加存储卷(attach_volume)等操作,可以配置为任何 Role 的 User 都可以执行 。通过这样的配置,实现了对不同 Role 用户在各个 Service 中的权限精细化管理,保障了云平台资源访问和操作的安全性和合理性 。

四、实战示例

(一)环境准备

在开始 OpenStack 的实战操作之前,我们首先需要搭建一个合适的运行环境。推荐使用 Ubuntu 或 CentOS 服务器,因为它们在开源社区中拥有广泛的支持,丰富的文档和大量的用户案例可供参考,能够为我们在安装和配置过程中遇到的问题提供解决方案。

以 Ubuntu 为例,安装步骤如下:

  1. 从 Ubuntu 官方网站(https://ubuntu.com/download/server)下载适合你服务器硬件的镜像文件,目前 Ubuntu Server 最新版本是 22.04,它在性能、稳定性和安全性方面都有显著提升。

  2. 将下载好的镜像文件写入 USB 驱动器,你可以使用 Rufus 等工具来完成这个操作,Rufus 是一款简单易用的 USB 启动盘制作工具,支持多种格式的镜像写入。

  3. 将 USB 驱动器插入服务器,进入服务器的 BIOS 设置,将启动顺序调整为优先从 USB 驱动器启动。不同品牌的服务器进入 BIOS 的方式可能不同,一般在开机时会有提示,比如 Del 键、F2 键等。

  4. 按照安装向导的提示进行操作,设置语言、时区、键盘布局等基本信息,选择安装的磁盘分区,设置用户名和密码等。在设置磁盘分区时,建议根据实际需求合理分配空间,比如为系统分区分配足够的空间以保证系统的稳定运行,为数据分区预留足够的容量以存储后续的云资源数据。

安装完成后,确保你拥有 root 权限,因为在后续的 OpenStack 安装和配置过程中,需要执行大量的系统级操作,root 权限是必不可少的。如果是以普通用户登录,你可以使用sudo -i命令切换到 root 用户。

接下来,我们使用 devstack 来快速安装 OpenStack。devstack 是一个用于快速搭建 OpenStack 开发环境的工具,它能够自动完成 OpenStack 各组件的安装和配置,大大节省了时间和精力。安装步骤如下:

  1. 克隆 devstack 仓库:
git clone https://git.openstack.org/openstack-dev/devstack
  1. 进入 devstack 目录:
cd devstack
  1. 复制示例配置文件:
cp samples/local.conf.sample local.conf
  1. 编辑local.conf文件,根据你的实际需求进行配置,比如设置管理员密码、网络配置等。例如:
\[\[local|localrc]]ADMIN\_PASSWORD=secretDATABASE\_PASSWORD=\$ADMIN\_PASSWORDRABBIT\_PASSWORD=\$ADMIN\_PASSWORDSERVICE\_PASSWORD=\$ADMIN\_PASSWORD
  1. 执行安装脚本:
./stack.sh

这个过程可能会持续一段时间,期间会自动下载和安装 OpenStack 的各个组件以及相关的依赖包,耐心等待安装完成即可。安装完成后,你的服务器就已经搭建好了一个基本的 OpenStack 环境,接下来就可以进行更深入的配置和管理操作了。

(二)安装与配置 OpenStack

  1. Keystone 安装与配置:Keystone 作为 OpenStack 的身份认证服务,其安装和配置至关重要。首先,通过包管理器安装 Keystone 相关软件包,在 Ubuntu 系统中,使用命令sudo apt -y install keystone即可完成安装。安装完成后,对配置文件/etc/keystone/keystone.conf进行修改,设置数据库连接信息,将connection参数配置为mysql+pymysql://keystone:password@``localhost/keystone,这里的password需替换为实际的数据库密码,确保 Keystone 能够正确连接到数据库。同时,配置keystone_authtoken部分,设置认证相关参数,如auth_uriauth_urlmemcached_servers等,确保与实际的认证服务配置一致。完成配置后,初始化 Keystone 数据库,执行命令sudo keystone-manage db_sync,这一步将创建 Keystone 所需的数据库表结构和初始数据。最后,启动 Keystone 服务并设置开机自启,使用命令sudo systemctl enable --now keystone,确保 Keystone 服务在系统启动时自动运行。

  2. Glance 安装与配置:Glance 负责镜像服务,安装前需先确保数据库已准备好。在 Ubuntu 中,使用sudo apt -y install openstack-glance安装软件包。接着,配置/etc/glance/glance-api.conf/etc/glance/glance-registry.conf文件,在glance-api.conf中,配置database部分的connection参数为mysql+pymysql://glance:password@``localhost/glance,同时配置keystone_authtoken部分的认证信息,与 Keystone 的配置保持一致。在glance-registry.conf中进行类似的数据库和认证配置。配置完成后,初始化 Glance 数据库,执行sudo glance-manage db_sync。创建本地镜像存储目录,如sudo mkdir /var/lib/glance/images,并赋予适当的权限sudo chown -R glance.glance /var/lib/glance/images。最后,启动 Glance 服务并设置开机自启,使用命令sudo systemctl enable --now openstack-glance-api openstack-glance-registry

  3. Nova 安装与配置:Nova 是计算服务的核心,安装命令为sudo apt -y install nova-api nova-conductor nova-novncproxy nova-scheduler。配置/etc/nova/nova.conf文件,在database部分设置数据库连接connection = mysql+pymysql://nova:password@``localhost/nova,在keystone_authtoken部分配置认证信息,确保与 Keystone 一致。同时,配置DEFAULT部分的my_ip参数为当前节点的 IP 地址,以指定计算节点的 IP。完成配置后,初始化 Nova 数据库,执行sudo nova-manage api_db syncsudo nova-manage cell_v2 map_cell0等命令。最后,启动 Nova 相关服务并设置开机自启,使用命令sudo systemctl enable --now nova-api nova-scheduler nova-conductor nova-novncproxy

  4. Dashboard(Horizon)安装与配置:在 Ubuntu 系统中,使用sudo apt -y install openstack-dashboard安装 Dashboard。安装完成后,编辑/etc/openstack-dashboard/``local_settings.py文件,配置OPENSTACK_HOST为 Keystone 服务的 IP 地址,确保 Dashboard 能够正确连接到 Keystone 进行身份认证。同时,根据实际需求配置其他参数,如ALLOWED_HOSTS等,以允许特定的 IP 地址访问 Dashboard。配置完成后,重启 Web 服务器,在 Ubuntu 中,使用sudo systemctl restart apache2命令,使配置生效。此时,在浏览器中输入http://<服务器IP>/dashboard,即可访问 OpenStack 的 Dashboard 界面,输入在 Keystone 中创建的用户名和密码,即可登录进行管理操作。

(三)创建虚拟机实例

在 Dashboard 界面中创建虚拟机实例是一个直观且便捷的过程。登录 Dashboard 后,在界面左侧的菜单栏中选择 “Compute”(计算)选项,然后点击 “Instances”(实例),进入实例管理页面。在该页面中,点击 “Launch Instance”(启动实例)按钮,开始创建虚拟机实例的流程。

首先,在 “Instance Name”(实例名称)字段中输入你为虚拟机设定的名称,例如 “my - vm”,方便后续识别和管理。接着,在 “Flavor”(规格)下拉菜单中选择虚拟机的规格,不同的规格对应着不同的 CPU、内存和磁盘配置,比如选择 “m1.small” 规格,它可能配置了 1 个 CPU 核心、1GB 内存和 10GB 磁盘空间,根据实际应用需求进行选择。在 “Source”(源)部分,选择用于创建虚拟机的镜像,这些镜像存储在 Glance 服务中,之前配置 Glance 时上传的镜像会显示在这里,比如选择一个 CentOS 7 的镜像。

在 “Networks”(网络)部分,选择虚拟机要连接的网络,这些网络由 Neutron 服务管理。如果之前已经创建了网络,可以直接选择;如果没有,需要先在网络管理部分创建网络。假设已经创建了一个名为 “my - network” 的网络,选择它作为虚拟机的连接网络。还可以根据需要设置其他高级选项,如添加元数据、设置用户数据等,元数据可以用于存储一些与虚拟机相关的自定义信息,用户数据可以在虚拟机启动时执行一些初始化脚本。

点击 “Launch”(启动)按钮后,Dashboard 会将创建虚拟机的请求发送给 Nova 服务。Nova 首先会验证用户的权限,这涉及到与 Keystone 的交互,通过 Keystone 验证用户是否有权限创建虚拟机。验证通过后,Nova 根据用户选择的规格和镜像,在合适的计算节点上创建虚拟机实例。在创建过程中,Nova 会与 Glance 通信,获取所选镜像的数据,将其下载到计算节点上,并根据规格配置虚拟机的 CPU、内存等资源。同时,Nova 会与 Neutron 协作,为虚拟机分配 IP 地址,并将其连接到指定的网络中,确保虚拟机能够与外部网络进行通信。创建完成后,Dashboard 会显示虚拟机的状态,如 “ACTIVE” 表示虚拟机已成功启动并运行。

(四)网络管理

在 Dashboard 中进行网络管理是构建 OpenStack 云平台网络架构的重要环节。登录 Dashboard 后,点击左侧菜单栏中的 “Network”(网络)选项,进入网络管理页面。

首先是创建虚拟网络,点击 “Networks”(网络)选项卡,然后点击 “Create Network”(创建网络)按钮。在弹出的创建网络对话框中,输入网络名称,例如 “production - network”,还可以添加描述信息,方便识别和管理。点击 “Create”(创建)按钮,即可创建一个虚拟网络。创建完成后,在网络列表中可以看到新创建的网络。

接下来创建子网,子网是网络中的一个细分网段。在刚刚创建的网络条目上,点击 “Subnets”(子网)标签,然后点击 “Create Subnet”(创建子网)按钮。在创建子网对话框中,输入子网名称,如 “subnet - 1”,选择 IP 版本,通常选择 IPv4。设置子网的 IP 地址范围,比如 “192.168.1.0/24”,这里的 “/24” 表示子网掩码为 255.255.255.0,它定义了子网中可用的 IP 地址范围。还需要指定网关 IP 地址,如 “192.168.1.1”,网关是子网与外部网络通信的出口。点击 “Create”(创建)按钮,完成子网的创建。

创建路由器可以实现不同网络之间的通信。在 “Network” 页面中,点击 “Routers”(路由器)选项卡,然后点击 “Create Router”(创建路由器)按钮。输入路由器名称,如 “my - router”,可以选择是否启用外部网关,若启用,需要选择一个外部网络作为出口,以便实现与外部网络的通信。创建完成后,在路由器列表中找到刚刚创建的路由器,点击 “Interfaces”(接口)标签,然后点击 “Add Interface”(添加接口)按钮,选择之前创建的子网,将子网连接到路由器上,实现网络之间的互联互通。

为虚拟机分配浮动 IP 地址,使其能够被外部网络访问。在 “Network” 页面中,点击 “Floating IPs”(浮动 IP)选项卡,然后点击 “Allocate IP to Project”(为项目分配 IP)按钮,从可用的浮动 IP 地址池中选择一个 IP 地址,点击 “Allocate IP”(分配 IP)按钮,将其分配给项目。在虚拟机的实例页面中,找到要分配浮动 IP 的虚拟机,点击 “Associate Floating IP”(关联浮动 IP)按钮,选择刚刚分配的浮动 IP 地址,完成关联操作。此时,通过该浮动 IP 地址,就可以从外部网络访问到虚拟机。

在命令行中,也可以进行相应的网络管理操作。例如,使用 OpenStack 命令行工具创建网络:

openstack network create production - network

创建子网:

openstack subnet create --network production - network --subnet-range 192.168.1.0/24 --gateway 192.168.1.1 subnet - 1

创建路由器:

openstack router create my - router

将子网添加到路由器:

openstack router add subnet my - router subnet - 1

分配浮动 IP:

openstack floating ip create external\_networkopenstack server add floating ip my - vm \<floating\_ip\_address>

这些命令与 Dashboard 中的操作相对应,通过命令行可以更灵活地进行批量操作和自动化脚本编写,满足不同场景下的网络管理需求。

(五)存储管理

在 Dashboard 中进行存储管理能够方便地为虚拟机分配和管理存储资源。登录 Dashboard 后,点击左侧菜单栏中的 “Storage”(存储)选项,进入存储管理页面。

首先是创建块存储卷,在 “Volumes”(卷)选项卡下,点击 “Create Volume”(创建卷)按钮。在弹出的创建卷对话框中,输入卷的名称,比如 “data - volume”,设置卷的大小,根据实际需求填写,例如 10GB。选择卷类型,不同的卷类型可能对应不同的存储性能和成本,如普通的机械硬盘卷和高性能的 SSD 卷。还可以选择是否加密卷,以保障数据的安全性。点击 “Create”(创建)按钮,Cinder 服务会根据设置在存储后端创建实际的存储卷。创建完成后,在卷列表中可以看到新创建的卷。

将创建好的块存储卷挂载到虚拟机上。在卷列表中找到要挂载的卷,点击 “Actions”(操作)列下的 “Attach Volume”(附加卷)按钮。在弹出的对话框中,选择要挂载到的虚拟机实例,然后选择挂载点,例如 “/dev/vdb”,点击 “Attach”(附加)按钮,Cinder 服务会与 Nova 服务协同工作,将卷挂载到指定的虚拟机上。此时,登录虚拟机,就可以在指定的挂载点上看到新挂载的存储卷,并进行数据的读写操作。

使用对象存储,在 Dashboard 中点击 “Object Store”(对象存储)选项卡。在这里可以创建容器(Container),容器类似于文件系统中的文件夹,用于组织和存储对象(Object)。点击 “Create Container”(创建容器)按钮,输入容器名称,如 “my - container”,点击 “Create”(创建)按钮即可创建一个容器。上传对象时,在容器页面中点击 “Upload Object”(上传对象)按钮,选择本地要上传的文件,输入对象名称,点击 “Upload”(上传)按钮,即可将文件上传到对象存储中。下载对象时,在容器中找到要下载的对象,点击 “Actions”(操作)列下的 “Download”(下载)按钮,即可将对象下载到本地。

在命令行中,也可以进行存储管理操作。创建块存储卷:

openstack volume create --size 10 data - volume

挂载卷到虚拟机:

openstack server add volume my - vm \<volume\_id> --device /dev/vdb

创建对象存储容器:

swift post my - container

上传对象到容器:

swift upload my - container /path/to/local/file

下载对象:

swift download my - container object\_name -o /path/to/local/destination

通过命令行和 Dashboard 的结合使用,可以更全面、高效地进行 OpenStack 的存储管理,满足不同用户和场景的需求。

http://www.dtcms.com/a/541247.html

相关文章:

  • 深度学习与大模型完全指南:从神经网络基础到模型训练实战
  • 神经网络发展【深度学习】
  • 类似红盟的网站怎么做阿里巴巴官网登录
  • 自创字 网站php开源网站管理系统
  • Linux Shell 中静默登录另一台机器并执行SQL文件
  • Python 实战:Web 漏洞 Python POC 代码及原理详解(1)
  • 前端学习之八股和算法
  • dataonline.vn免费Web容器的使用
  • 进制转换器可视化
  • 第六部分:VTK进阶(第176章 高速等值面vtkFlyingEdges3D)
  • VSCode + Copilot
  • 网站后台管理系统权限个人品牌网站设计
  • 推送报错403怎么办?vscode推送项目到github
  • 【Linux专栏】多层变量的重定向赋值
  • 建设一个网站主要受哪些因素的影响因素设计得好的网站推荐
  • 外综服网站开发h5手机网站建设
  • Promise手写实现
  • keep-alive | vue 中的 keep-alive 和 http中 的 Connection: keep-alive 共同点 和 区别
  • Win+VsCode关于C++项目改造成http服务
  • redis的备份和恢复
  • 北京最大网站建设公司排名做网站的商标是哪类
  • 神经网络初探
  • 鸿蒙Flutter三方库适配指南-04.使用MacOS搭建开发环境
  • 网站建设的风险管理网站开发用了什么平台
  • 鸿蒙应用的启动流程的过程
  • springboot Admin 服务端 客户端配置
  • PHP 中的动态函数调用
  • 设计类参考网站推荐简单企业网站建设
  • 网站优化排名价格网站建设应对客户问题的话术
  • AI IN ALL峰会|百度阿里揭秘智能营销与出海的AI实战