安装

支持几种不同的发行版,并带有一些标志,允许在远程节点上安装 Ceph 时进行一些定制。

支持的发行版

  • Ubuntu
  • Debian
  • Fedora
  • RedHat
  • CentOS
  • Suse
  • Scientific Linux
  • Arch Linux

在执行任何操作之前,都会进行平台检测调用,以确保将要安装 Ceph 的平台是正确的。如果平台不受支持,将不会执行后续操作,并会显示一条错误消息,类似于

[ceph_deploy][ERROR ] UnsupportedPlatform: Platform is not supported: Mandriva

发行版注意事项

RPMs

在基于 RPM 的发行版上,安装 yum-plugin-priorities 以确保上游 ceph.com 仓库具有比发行版仓库更高的优先级。

由于下游仓库中可能存在 ceph.com 仓库中不存在的包拆分,ceph-deploy 会为 Yum priorities 插件启用 check_obsoletes 标志。

版本 1.5.22 中的变化: 默认启用 check_obsoletes

RHEL

在运行 Red Hat Enterprise Linux (RHEL) 的系统上安装软件包时,ceph-deploy 默认不会安装最新的上游版本。在其他发行版上,运行不带 --release 标志的 ceph-deploy install 将默认安装最新的上游版本(即 firefly、giant 等)。在 RHEL 上,如果你希望使用托管在 https://ceph.net.cn 上的上游软件包,必须使用 --release 标志。

版本 1.5.22 中的变化: 要求使用 --release 标志才能在 RHEL 上获取上游软件包

特定版本

默认情况下,假定为最新版本。此值在有新版本可用时会发生变化。如果您正在自动化部署,最好指定您需要的确切版本

ceph-deploy install --release emperor {host}

请注意,用于指定 Ceph 版本的 --stable 标志已弃用,从版本 1.3.6 开始不应再使用。

版本 1.4.0 中的新功能。

不稳定版本

如果您需要测试前沿版本或 Ceph 尚未进入稳定版本的特定功能,您也可以使用 ceph-deploy 通过几个标志指定。

获取最新的开发版本

ceph-deploy install --testing {host}

对于更精细的方法,您可能希望从仓库指定一个分支或一个标签,如果没有指定,则回退到 master 中的最新提交

ceph-deploy install --dev {branch or tag} {host}

在防火墙后面

对于限制性环境,有几种选项可以安装 ceph。

如果主机已通过自定义仓库进行了一些定制,并且只需要继续安装 ceph,我们可以跳过更改源仓库,如下所示

ceph-deploy install --no-adjust-repos {host}

请注意,您需要有可用的仓库,其中包含 Ceph 所需的所有依赖项。在某些发行版中,除了 Ceph 仓库之外,还会添加其他仓库,例如 CentOS 的 EPEL。

但是,如果已经设置了 Ceph 仓库镜像,您可以在安装继续之前指向它。对于此特定操作,您需要传入两个参数(或者可以选择使用环境变量)。

仓库 URL 和 GPG URL 可以像这样指定

ceph-deploy install --repo-url {http mirror} --gpg-url {http gpg url} {host}

或者,您可以使用以下环境变量

  • CEPH_DEPLOY_REPO_URL
  • CEPH_DEPLOY_GPG_URL

这些值将用于写入 ceph sources.list(在 Debian 和基于 Debian 的发行版中)或 RPM 发行版的 yum.repos 文件,并将跳过尝试为要安装的版本组合正确的 URL。

注意

目前无法在使用 --repo-url 时指定要安装的版本/发行版。

强烈建议同时提供这两个标志。但是,--gpg-url 将默认为 Ceph 仓库中的当前 URL

https://download.ceph.com/keys/release.asc

版本 1.3.3 中的新功能。

本地镜像

ceph-deploy 支持本地镜像安装,方法是将仓库同步到远程服务器并正确配置远程主机以直接从这些本地路径安装(而不是通过网络)。

此选项起作用的一个要求是在保存仓库文件的目录顶部有一个 release.asc

该文件被 Ceph 用作其签名软件包的密钥,通常从以下位置检索

https://download.ceph.com/keys/release.asc

这是从管理主机中的本地仓库安装 Ceph 的过程的样子

$ ceph-deploy install --local-mirror ~/tmp/rpm-mirror/ceph.com/rpm-emperor/el6 node2
[ceph_deploy.cli][INFO  ] Invoked (1.4.1): /bin/ceph-deploy install --local-mirror /Users/alfredo/tmp/rpm-mirror/ceph.com/rpm-emperor/el6 node2
[ceph_deploy.install][DEBUG ] Installing stable version emperor on cluster ceph hosts node2
[ceph_deploy.install][DEBUG ] Detecting platform for host node2 ...
[node2][DEBUG ] connected to host: node2
[node2][DEBUG ] detect platform information from remote host
[node2][DEBUG ] detect machine type
[ceph_deploy.install][INFO  ] Distro info: CentOS 6.4 Final
[node2][INFO  ] installing ceph on node2
[node2][INFO  ] syncing file: noarch/ceph-deploy-1.3-0.noarch.rpm
[node2][INFO  ] syncing file: noarch/ceph-deploy-1.3.1-0.noarch.rpm
[node2][INFO  ] syncing file: noarch/ceph-deploy-1.3.2-0.noarch.rpm
[node2][INFO  ] syncing file: noarch/ceph-release-1-0.el6.noarch.rpm
[node2][INFO  ] syncing file: noarch/index.html
[node2][INFO  ] syncing file: noarch/index.html?C=D;O=A
[node2][INFO  ] syncing file: noarch/index.html?C=D;O=D
[node2][INFO  ] syncing file: noarch/index.html?C=M;O=A
...
[node2][DEBUG ]
[node2][DEBUG ] Installed:
[node2][DEBUG ]   ceph.x86_64 0:0.72.1-0.el6
[node2][DEBUG ]
[node2][DEBUG ] Complete!
[node2][INFO  ] Running command: sudo ceph --version
[node2][DEBUG ] ceph version 0.72.1
(4d923861868f6a15dcb33fef7f50f674997322de)

版本 1.5.0 中的新功能。

仅仓库文件

install 命令有一个标志,为仅安装“仓库文件”提供了灵活性,避免了 Ceph 及其依赖项的安装。

这些“仓库文件”是包管理器(例如“yum”或“apt”)的配置文件,指向正确的仓库信息,以便某些软件包可用。

对于 APT,这些文件将是 list files,对于 YUM,它们将是 repo files。无论包管理器如何,ceph-deploy 都能够正确安装此文件,以便 Ceph 软件包可用。这在需要大规模升级且 ceph-deploy 在每个主机上按顺序安装速度太慢的情况下非常有用。

仓库在 cephdeploy.conf(或 $HOME/.cephdeploy.conf)文件中指定。如果需要特定的仓库部分,可以使用 --release 标志指定

ceph-deploy install --repo --release firefly {HOSTS}

上面的命令将在每个指定的 {HOST} 中安装 firefly 仓库文件。

如果存在带有 default = True 标志的仓库部分,则无需指定任何其他内容,只需传入主机即可安装仓库文件

ceph-deploy install --repo {HOSTS}

版本 1.5.10 中的新功能。