3.8.5 阶段性试用Horizon

摘要
本节实验将带你了解如何在 OpenStack 中上传镜像、创建一台虚拟机,并自主探索 Cinder 服务的作用。

33Fv41

什么是镜像?
在云计算中,镜像是创建虚拟机的模板,里面包含了操作系统和预装的软件。只有先上传了镜像,我们才能通过它来创建虚拟机。

首先,打开浏览器,访问 http://你的IP地址/dashboard (注意替换为你环境中的实际 IP)。

5Sr9o3 登录后,导航到镜像管理页面,点击“创建镜像”,按照以下信息进行填写:

  • 镜像名称:alpine-3.23.4
  • 镜像格式:qcow2
  • 文件:点击手动选择你本地的 generic_alpine-3.23.4-x86_64-bios-cloudinit-r0.qcow2 文件

Mc5eeT

什么是规格(Flavor)?
在 OpenStack 中,规格(Flavor)定义了虚拟机的计算资源大小,比如 CPU 核心数、内存大小和根磁盘容量等。这就好比我们在电脑城装机时,选择 CPU 型号和内存条大小。

在图形界面中找到“管理员”——“实例类型”,点击创建实例类型,按照以下规格进行创建:

  • 名称:mini
  • 内存:512MB
  • 磁盘:1GB
  • CPU:1个虚拟CPU

Uoe5UP

Lu01ta

m6MQis

在真实环境中,虚拟机必须接入网络才能正常工作。为了避免耗尽物理实验环境的 IP 地址,我们需要在 OpenStack 中为自己的项目创建一个内部网络(私有网络)

操作提示
在这个任务中,我们将创建一个网段为 172.16.1.0/24(属于 B 类私有地址段)的内部网络,供稍后创建的虚拟机使用。
  1. 在 Horizon 界面左侧导航栏中,依次点击 项目 -> 网络 -> 网络
  2. 点击页面右上角的 创建网络 按钮,系统会弹出一个向导窗口。
  3. 第一步:网络
    • 网络名称:填写 internal-net
    • 点击“下一步”或者上方的“子网”标签。
  4. 第二步:子网
    • 子网名称:填写 internal-subnet
    • 网络地址:填写 172.16.1.0/24
    • 点击“下一步”或者上方的“子网详情”标签。
  5. 第三步:子网详情
    • 这里可以保持所有配置默认,系统会自动配置网关并开启 DHCP。
    • 点击右下角的 已创建 (Create)

创建完成后,你的项目中就拥有了一个完全独立的私有网络。所有的虚拟机都可以连接到这个网络中获取内部 IP,且完全不会消耗任何物理主机的 IP 地址。

8A3AyD

有了镜像、规格和网络,接下来我们就可以真正创建一台虚拟机(在 OpenStack 中通常称为实例,Instance)了。为了操作直观,我们在 Horizon 图形界面中完成。

  1. 在 Horizon 界面左侧导航栏中,依次点击 项目 -> 计算 -> 实例
  2. 点击页面右上角的 创建实例 按钮。
  3. 在弹出的向导窗口中,依次填写以下信息:
    • 详细信息:给虚拟机起个名字,比如 alpine-test-01
    • :选择源为 镜像,并在列表中找到刚才上传的 alpine-3.23.4(或其他版本)并点击向上的箭头选中它。
    • 规格:选择我们在图形界面创建的 mini 规格,点击向上的箭头选中它。
    • 网络:在这里必须找到我们刚刚创建的 internal-net 网络,并点击向上的箭头将其选中。
    • **配置-定制化脚本:**参考后面的内容
  4. 填写完毕后,点击右下角的 创建实例

text

#cloud-config
chpasswd:
  list: |
    alpine:123456
    root:123456
  expire: False
ssh_pwauth: True
disable_root: false

uquQOV

等待几十秒后,当看到虚拟机的状态变为 运行中 (Active) 时,说明启动成功了。

启动成功
恭喜你!现在你已经成功在 OpenStack 云平台上拉起了一台虚拟机。你可以点击虚拟机名称,进入详情页面,通过 控制台 (Console) 标签页查看这台虚拟机的运行画面。因为我们使用了内部网络,虽然暂时无法使用外部 SSH 直连,但通过这个内置的 VNC 控制台依然可以完美操作虚拟机。

TATl49

在本次实验的开头,我们留下了一个小目标:“自主找出 Cinder 服务有什么作用”。由于我们当前的实验环境并没有安装 Cinder 服务,我们将通过一个“破坏性”实验来亲身感受它的重要性。

请你尝试完成以下操作,并思考背后的原因:

  1. 通过 VNC 控制台登录你刚才创建的 alpine-test-01 虚拟机(默认用户名通常为 root,如果没有密码直接回车)。
  2. 在虚拟机的系统里创建一个重要文件,里面写上你的学号,例如执行命令:echo "你的学号" > /root/test.txt
  3. 回到 Horizon 界面,将这台 alpine-test-01 虚拟机删除
  4. 重新使用相同的 alpine-3.23.4 镜像创建一台新的虚拟机。
  5. 登录新虚拟机,查看刚才创建的 /root/test.txt 文件是否还在?
实践与思考:数据去哪了?
为什么重新创建的虚拟机里没有刚才的数据?之前虚拟机的硬盘数据究竟存在了哪里?