Ceph 是一个高性能、可靠、可扩展的开源存储平台。它是一个自由的分布式存储系统,提供了对象、块和文件级存储的接口,并可以不受单点故障的影响而运行。 在这个教程中,我将指导你在 Ubuntu 16.04 服务器上安装建立一个 Ceph 集群。Ceph 集群包括这些组件:
前提条件
我将使用下面这些 hostname /IP 安装:
第 1 步 - 配置所有节点这次安装,我将配置所有的 6 个节点来准备安装 Ceph 集群软件。所以你必须在所有节点运行下面的命令。然后确保所有节点都安装了 ssh-server。 创建 Ceph 用户在所有节点创建一个名为 cephuser 的新用户
创建完新用户后,我们需要给 cephuser 配置无密码的 sudo 权限。这意味着 cephuser 可以不先输入密码而获取到 sudo 权限运行。 运行下面的命令来完成配置。
安装和配置 NTP安装 NTP 来同步所有节点的日期和时间。先运行 ntpdate 命令通过 NTP 设置日期。我们将使用 US 池的 NTP 服务器。然后开启并使 NTP 服务在开机时启动。
安装 Open-vm-tools如果你正在 VMware 里运行所有节点,你需要安装这个虚拟化工具。
安装 Python 和 parted在这个教程,我们需要 python 包来建立 ceph 集群。安装 python 和 python-pip。
配置 Hosts 文件用 vim 编辑器编辑所有节点的 hosts 文件。
粘帖如下配置:
保存 hosts 文件,然后退出 vim 编辑器。 现在你可以试着在两个服务器间 ping 主机名来测试网络连通性。
Ceph cluster Installation on Ubuntu 16.04 第 2 步 - 配置 SSH 服务器这一步,我们将配置 ceph-admin 节点。管理节点是用来配置监控节点和 osd 节点的。登录到 ceph-admin 节点然后使用 cephuser 用户。
管理节点用来安装配置所有集群节点,所以 ceph-admin 上的用户必须有不使用密码连接到所有节点的权限。我们需要为 'ceph-admin' 节点的 cephuser 用户配置无密码 SSH 登录权限。 生成 cephuser 的 ssh 密钥。
让密码为空。 下面,为 ssh 创建一个配置文件
粘帖如下配置:
保存文件并退出 vim。
Ceph-admin configuration 改变配置文件权限为 644。
现在使用 ssh-copy-id 命令增加密钥到所有节点。
当请求输入密码时输入你的 cephuser 密码。
Ceph-admin deploy ssh key to all cluster nodes 现在尝试从 ceph-admin 节点登录 osd1 服务器,测试无密登录是否正常。
SSH Less password from ceph-admin to all nodes cluster 第 3 步 - 配置 Ubuntu 防火墙出于安全原因,我们需要在服务器打开防火墙。我们更愿使用 Ufw(不复杂防火墙)来保护系统,这是 Ubuntu 默认的防火墙。在这一步,我们在所有节点开启 ufw,然后打开 ceph-admin、ceph-mon 和 ceph-osd 需要使用的端口。 登录到 ceph-admin 节点,然后安装 ufw 包。
打开 80,2003 和 4505-4506 端口,然后重启防火墙。
开启 ufw 并设置开机启动。
UFW Firewall with Ceph service 从 ceph-admin 节点,登录到监控节点 mon1 然后安装 ufw。
打开 ceph 监控节点的端口然后开启 ufw。
最后,在每个 osd 节点 ceph-osd1、ceph-osd2 和 ceph-osd3 上打开这些端口 6800-7300。 从 ceph-admin 登录到每个 ceph-osd 节点安装 ufw。
在 osd 节点打开端口并重启防火墙。
ufw 防火墙配置完成。 第 4 步 - 配置 Ceph OSD 节点这个教程里,我们有 3 个 OSD 节点,每个节点有两块硬盘分区。
我们要使用 /dev/sdb 作为 ceph 磁盘。从 ceph-admin 节点,登录到所有 OSD 节点,然后格式化 /dev/sdb 分区为 XFS 文件系统。
使用 fdisk 命令检查分区表。
格式化 /dev/sdb 分区为 XFS 文件系统,使用 parted 命令创建一个 GPT 分区表。
下面,使用 mkfs 命令格式化分区为 XFS 格式。
现在检查分区,然后你会看见一个 XFS 文件系统的 /dev/sdb 分区。
Format partition ceph OSD nodes 第 5 步 - 创建 Ceph 集群在这步,我们将从 ceph-admin 安装 Ceph 到所有节点。马上开始,先登录到 ceph-admin 节点。
在 ceph-admin 节点上安装 ceph-deploy首先我们已经在系统上安装了 python 和 python-pip。现在我们需要从 pypi python 仓库安装 Ceph 部署工具 'ceph-deploy'。 用 pip 命令在 ceph-admin 节点安装 ceph-deploy 。
注意: 确保所有节点都已经更新。 ceph-deploy 工具已经安装完毕后,为 Ceph 集群配置创建一个新目录。 创建一个新集群创建一个新集群目录。
下一步,用 ceph-deploy 命令通过定义监控节点 mon1 创建一个新集群。
命令将在集群目录生成 Ceph 集群配置文件 ceph.conf。
Generate new ceph cluster configuration 用 vim 编辑 ceph.conf。
在 [global] 块下,粘贴下面的配置。
保存文件并退出编辑器。 安装 Ceph 到所有节点现在用一个命令从 ceph-admin 节点安装 Ceph 到所有节点。
命令将自动安装 Ceph 到所有节点:mon1、osd1-3 和 ceph-admin - 安装将花一些时间。 现在到 mon1 节点部署监控节点。
命令将创建一个监控密钥,用 ceph 命令检查密钥。
Deploy key ceph 增加 OSD 到集群在所有节点上安装了 Ceph 之后,现在我们可以增加 OSD 守护进程到该集群。OSD 守护进程将在磁盘 /dev/sdb 分区上创建数据和日志 。 检查所有 osd 节点的 /dev/sdb 磁盘可用性。
disk list of osd nodes 你将看见我们之前创建 XFS 格式的 /dev/sdb。 下面,在所有 OSD 节点上用 zap 选项删除该分区表。
这个命令将删除所有 Ceph OSD 节点的 /dev/sdb 上的数据。 现在准备所有 OSD 节点,请确保结果没有报错。
当你看到 ceph-osd1-3 结果已经准备好供 OSD 使用,就表明命令已经成功。
Prepare the ceph-osd nodes 用下面的命令激活 OSD:
现在你可以再一次检查 OSDS 节点的 sdb 磁盘。
Ceph osds activated 结果是 /dev/sdb 现在已经分为两个区:
或者你直接在 OSD 节点山检查。
Ceph OSD nodes were created 接下来,部署管理密钥到所有关联节点。
在所有节点运行下面的命令,改变密钥文件权限。
Ceph 集群在 Ubuntu 16.04 已经创建完成。 第 6 步 - 测试 Ceph在第 4 步,我们已经安装并创建了一个新 Ceph 集群,然后添加了 OSD 节点到集群。现在我们应该测试集群确保它如期工作。 从 ceph-admin 节点,登录到 Ceph 监控服务器 mon1。
运行下面命令来检查集群是否健康。
现在检查集群状态。
你可以看到下面返回结果:
Ceph Cluster Status 确保 Ceph 健康状态是 OK 的,有一个监控节点 mon1 IP 地址为 '10.0.15.11'。有 3 个 OSD 服务器都是 up状态并且正在运行,可用磁盘空间为 45GB - 3x15GB 的 Ceph 数据 OSD 分区。 我们在 Ubuntu 16.04 建立一个新 Ceph 集群成功。 参考via: https://www.howtoforge.com/tutorial/how-to-install-a-ceph-cluster-on-ubuntu-16-04/ 作者:Muhammad Arul 译者:wyangsun 校对:wxy (责任编辑:IT) |