在本章中,我们将介绍以下秘籍:
- Understanding the VSM architecture
- Setting up the VSM environment
- Getting ready for VSM
- Installing VSM
- Creating a Ceph cluster using VSM
- Exploring the VSM dashboard
- Upgrading the Ceph cluster using VSM
- VSM roadmap
- VSM resources
在本章中,我们将介绍以下秘籍:
虚拟存储管理器(VSM ) i最初由英特尔发起和开发的用于 Ceph 集群管理的软件;它后来由英特尔在 Apache 2.0 许可下开源。 Ceph 带有用于集群部署的 ceph-deploy CLI 工具,它还为集群管理提供了丰富的 CLI。另一方面,VSM 提供基于 Web 的用户界面来简化 Ceph 集群的创建和管理。通过使用 VSM GUI Ceph 集群,操作员可以监控整体集群健康状况、管理集群硬件和存储容量,以及将 Ceph 存储池连接到 OpenStack Cinder。
VSM 是用 Python 开发的,使用 OpenStack Horizon 作为应用程序框架的基础。对于软件开发人员和 OpenStack 管理员,它具有熟悉的 OpenStack Horizon 外观和感觉。 VSM 的一些关键特性包括:
在这个秘籍中,我们将快速浏览 VSM 的架构,它由以下组件组成:
VSM 是基于 Web 的应用程序,通常托管在控制器机器上,称为 VSM 控制器节点。您可以使用可充当 VSM 控制器节点的专用物理或虚拟服务器。 VSM 控制器软件是 VSM 的核心组件,它通过 VSM 代理连接到 Ceph 集群。 VSM 控制器收集来自 VSM 代理的所有数据并监控 Ceph 集群。对于集群创建、池创建等操作,VSM控制器向VSM代理发送指令以执行所需的操作。如下图所示,Ceph 管理员/操作员通过 HTTP 或 API 连接到 VSM 控制器节点,他们可以使用 VSM 软件。 VSM 控制器节点还连接到 OpenStack 控制器以配置 OpenStack 以使用 Ceph。除了 Web 用户界面服务,VSM 控制器还托管 MariaDB 和 RabbitMQ。
VSM 代理是一个在所有 Ceph 集群节点上运行的进程。 VSM 代理的工作是将服务器配置、集群健康/状态信息以及性能数据发送到 VSM 控制器。 VSM 代理使用服务器清单文件来识别 VSM 控制器节点、对其进行身份验证并确定服务器配置。
下图说明了不同 VSM 组件之间的交互以及与 OpenStack 基础架构和 VSM 操作符的交互:
要使用 VSM,您需要使用 VSM 构建 Ceph 集群。 VSM 2.2.0 版本可以控制或管理现有的 Ceph 集群(导入现有的 Ceph 集群)。 在这个秘籍中,我们将使用 Vagrant启动四个名为 vsm-controller、vsm-node1、vsm-node2和vsm-node3 。 vsm-controller 虚拟机将充当 VSM 控制器节点,vsm-node1、vsm-node2 和 vsm-node3 将充当运行 Ceph 集群的 VSM 代理节点。
执行以下步骤来设置 VSM 环境:
在上一个秘籍中,我们使用 Vagrant 预配置了虚拟机;它们将与 VSM 一起使用。在这个秘籍中,我们将了解这些 VM 所需的预检配置,以便它可以与 VSM 一起使用。
请注意,通过使用 Vagrant,我们使用 shell 脚本文件完成了大部分预检配置,Ceph-Cookbook-Second-Edition/vsm/post -deploy.sh,存在于我们在上一个秘籍中克隆的 GitHub 存储库中。您可能不想重复前四个步骤,因为 Vagrant 已经执行了它们。我们在这里解释这些步骤,以便您了解 Vagrant 在后台做了什么。
使用以下步骤配置 VSM 环境:
必须在指定的节点上执行以下步骤:
在上一个秘籍中,我们做了部署 VSM 所需的所有准备工作。在这个秘籍中,我们将学习如何在所有节点上自动部署 VSM。
我们将使用以下步骤安装 VSM 软件:
您应该知道,在生产环境中,建议您为 Ceph 管理、Ceph 公共和 Ceph 集群流量使用单独的网络。使用 cluster.manifest 文件,可以指示 VSM 为您的 Ceph 集群使用这些不同的网络。
安装完成后,您将收到以下消息,如屏幕截图所示:
在上一个秘籍中,我们刚刚安装了 VSM;我们还没有 Ceph 集群。在这个秘籍中,我们将使用 VSM 创建 Ceph 集群,以便 VSM 以后可以管理这个集群。您会发现使用 VSM 部署 Ceph 集群非常简单。
要从 VSM 仪表板创建 Ceph 集群,请导航至 集群管理 | 创建集群,然后点击创建集群 按钮。
如果您查看前面的屏幕截图,版本 2.2.0 有 Import Cluster 选项卡。由于 2.20 仍处于测试阶段,我们需要使用一些技巧:
打开文件 /usr/lib/python2.7/site-packages/vsm/api/v1/clusters.py。
该文件位于 https://github.com/01org/virtual-storage-manager/blob/master/source/vsm/vsm/api/v1/clusters.py。
RGW 已经被禁用,我们还需要为 MDS 执行此操作:
打开文件 /usr/lib/python2.7/site-packages/vsm/scheduler/manager.py。
创建 Ceph 集群需要几分钟时间。 VSM 将在仪表板的状态字段下非常简短地显示它在后台执行的操作,如下所示:
清理后会挂载磁盘,如下图dashboard的status栏所示:
一旦Ceph集群部署完成,VSM会显示节点状态为Active。但只有监控守护进程会启动,OSD 不会启动。 VSM 创建 OSD 数据路径为 /var/lib/ceph/osd/osd$id 但 Ceph Jewel 版本期望 OSD 的数据路径为 /var/lib/ceph/osd/$cluster -$id:
这将使所有的 OSD up 进入。
安装的 Ceph Jewel 版本:
IOPS, 延迟, 带宽 ,并且 CPU 详细信息也可以在仪表板中找到:
VSM 仪表板使围绕 Ceph 集群的大部分操作变得非常简单,无论是部署、服务器管理、集群管理/监控,甚至是 OpenStack 集成。 VSM 仪表板非常人性化,您可以自行探索其大部分功能。 VSM 仪表板提供以下选项:
这些组件可以在以下屏幕截图中看到:
OpenStack 集成:VSM 仪表板的这一部分允许我们通过添加 OpenStack 端点并将 RBD 池提供给 OpenStack 来将 Ceph 存储集成到 OpenStack:
您现在已经非常熟悉 VSM,并且知道它提供了一个很好的仪表板,可以使复杂的 Ceph 相关操作(例如集群创建)变得非常简单。 VSM 的另一个重要方面是它使 Ceph 集群升级过程自动化并简化了它,但由于 2.2.0 是最新的 beta 版本,它最多支持版本 Jewel 并且这个 Jewel 版本已经安装,所以我们不包括升级到此升级部分中的 Kraken 或 Luminous 版本。
编写本书时 VSM 的当前稳定版本是 2.1。这与我们在本章中演示的版本不同。在本章中,我们使用了 2.2 beta 版本,因为这是支持 Jewel 的版本。 2.2支持集群导入和Ceph版本Jewel。
在本章中,我们介绍了 VSM 的大部分重要方面。如果您计划在您的环境中使用 VSM,我建议您查看以下资源以获取有关 VSM 的更多信息:
您已经知道 VSM 是一个开源项目,值得一提的是,VSM 的开发工作是由英特尔在其社区的帮助下领导的。跨度>
我们要感谢英特尔的Dan Ferber和王亚光,以及整个 VSM 社区,为我们提供了一个很好的软件来部署和管理 Ceph 集群。为了帮助 VSM 进一步发展,请成为社区的活跃成员,并考虑通过做出有意义的贡献来回馈社会。