如何在 Ubuntu 16.04 上安装 Ceph 存储集群如何在 Ubuntu 16.04 上安装 Ceph 存储集群如何在 Ubuntu 16.04 上安装 Ceph 存储集群如何在 Ubuntu 16.04 上安装 Ceph 存储集群
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 16.04 上安装 Ceph 存储集群

Ceph 是一个开源存储平台,它提供高性能、可靠性和可扩展性。它是一个免费的分布式存储系统,为对象、块和文件级存储提供接口,并且可以在没有单点故障的情况下运行。

在本教程中,我将指导您在 Ubuntu 16.04 服务器上安装和构建 Ceph 集群。 Ceph 集群由以下组件组成:

  • Ceph OSD (ceph-osd) - 处理数据存储、数据复制和恢复。一个 Ceph 集群至少需要两台 Ceph OSD 服务器。我们将在此设置中使用三个 Ubuntu 16.04 服务器。
  • Ceph Monitor (ceph-mon) - 监控集群状态并运行 OSD 图和 CRUSH 图。我们将在这里使用一台服务器。
  • Ceph 元数据服务器 (ceph-mds) - 如果您想将 Ceph 用作文件系统,这是必需的。

先决条件

  • 6 个安装了 Ubuntu 16.04 服务器的服务器节点
  • 所有节点的根权限

我将使用以下主机名/IP 设置:

主机名 IP 地址

ceph-admin 10.0.15.10
mon1 10.0.15.11
osd1 10.0.15.21
OSD2 10.0.15.22
osd3 10.0.15.23
客户端 10.0.15.15

第 1 步 - 配置所有节点

在这一步中,我们将配置所有 6 个节点,为安装 Ceph 集群软件做好准备。因此,您必须在所有节点上执行并运行以下命令。并确保所有节点上都安装了 ssh-server。

创建 Ceph 用户

在所有节点上创建一个名为 cephuser 的新用户。

useradd -m -s /bin/bash cephuser
passwd cephuser

创建新用户后,我们需要配置 cephuser 以获得无密码 sudo 权限。这意味着 cephuser 可以运行并获得 sudo 权限,而无需先输入密码。

运行下面的命令来实现这一点。

echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers

安装和配置 NTP

安装 NTP 以同步所有节点上的日期和时间。运行 ntpdate 命令以通过 NTP 设置日期和时间。我们将使用美国池 NTP 服务器。然后启动并启用 NTP 服务器以在引导时运行。

sudo apt-get install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntp
systemctl start ntp

安装 Open-vm-tools

如果您在 VMware 中运行所有节点,则需要安装此虚拟化实用程序。

sudo apt-get install -y open-vm-tools

安装Python和parted

在本教程中,我们需要用于构建 ceph 集群的 python 包。安装 python 和 python-pip。

sudo apt-get install -y python python-pip parted

配置主机文件

使用 vim 编辑器编辑所有节点上的主机文件。

vim /etc/hosts

粘贴下面的配置:

10.0.15.10        ceph-admin
10.0.15.11        mon1
10.0.15.21        ceph-osd1
10.0.15.22        ceph-osd2
10.0.15.23        ceph-osd3
10.0.15.15        ceph-client

保存主机文件并退出 vim 编辑器。

现在您可以尝试在服务器主机名之间执行 ping 以测试网络连接。

ping -c 5 mon1

第 2 步 - 配置 SSH 服务器

在此步骤中,我们将配置 ceph-admin 节点。 admin节点用于配置monitor节点和osd节点。登录到 ceph-admin 节点并访问 cephuser。

ssh 
su - cephuser

admin 节点用于安装和配置所有集群节点,因此 ceph-admin 节点上的用户必须具有无需密码即可连接到所有节点的权限。我们需要在 ceph-admin 节点上为 cephuser 配置无密码 SSH 访问。

为 cephuser 生成 ssh 密钥。

ssh-keygen

保留密码为空白/空。

接下来,为 ssh 配置创建一个配置文件。

vim ~/.ssh/config

粘贴下面的配置:

Host ceph-admin
        Hostname ceph-admin
        User cephuser

Host mon1
        Hostname mon1
        User cephuser

Host ceph-osd1
        Hostname ceph-osd1
        User cephuser

Host ceph-osd2
        Hostname ceph-osd2
        User cephuser

Host ceph-osd3
        Hostname ceph-osd3
        User cephuser

Host ceph-client
        Hostname ceph-client
        User cephuser

保存文件并退出 vim。

修改配置文件的权限为644。

chmod 644 ~/.ssh/config

现在使用 ssh-copy-id 命令将密钥添加到所有节点。

ssh-keyscan ceph-osd1 ceph-osd2 ceph-osd3 ceph-client mon1 >> ~/.ssh/known_hosts
ssh-copy-id ceph-osd1
ssh-copy-id ceph-osd2
ssh-copy-id ceph-osd3
ssh-copy-id mon1

要求时输入您的 cephuser 密码。

现在尝试从 ceph-admin 节点访问 osd1 服务器以测试无密码登录是否有效。

ssh ceph-osd1

第 3 步 - 配置 Ubuntu 防火墙

为了安全起见,我们需要打开服务器上的防火墙。我们最好使用默认的 Ubuntu 防火墙 Ufw(Uncomplicated Firewall)来保护系统。在这一步中,我们将在所有节点上启用 ufw,然后打开 ceph-admin、ceph-mon 和 ceph-osd 所需的端口。

登录到 ceph-admin 节点并安装 ufw 包。

ssh 
sudo apt-get install -y ufw

打开端口 80、2003 和 4505-4506,然后重新加载 firewalld。

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 2003/tcp
sudo ufw allow 4505:4506/tcp

启动并启用 ufw 以在引导时启动。

sudo ufw enable

从 ceph-admin 节点,登录到监控节点 mon1 并安装 ufw。

ssh mon1
sudo apt-get install -y ufw

打开 ceph 监控节点的端口并启动 ufw。

sudo ufw allow 22/tcp
sudo ufw allow 6789/tcp
sudo ufw enable

最后,在每个 osd 节点上打开这些端口:ceph-osd1、ceph-osd2 和 ceph-osd3 - 端口 6800-7300。

从 ceph-admin 登录到每个 ceph-osd 节点,并安装 ufw。

ssh ceph-osd1
sudo apt-get install -y ufw

打开 osd 节点上的端口并重新加载 firewalld。

sudo ufw allow 22/tcp
sudo ufw allow 6800:7300/tcp
sudo ufw enable

ufw 防火墙配置完成。

第 4 步 - 配置 Ceph OSD 节点

在本教程中,我们有 3 个 OSD 节点,每个节点都有两个硬盘分区。

  1. /dev/sda 用于根分区
  2. /dev/sdb 是空分区 - 20GB

我们将使用 /dev/sdb 作为 ceph 磁盘。从 ceph-admin 节点,登录到所有 OSD 节点并使用 XFS 文件系统格式化 /dev/sdb 分区。

ssh ceph-osd1
ssh ceph-osd2
ssh ceph-osd3

使用 fdisk 命令检查分区方案。

sudo fdisk -l /dev/sdb

使用 parted 命令使用 XFS 文件系统和 GPT 分区表格式化 /dev/sdb 分区。

sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%

接下来,使用 mkfs 命令将分区格式化为 XFS 格式。

sudo mkfs.xfs -f /dev/sdb

现在检查分区,您将看到一个 XFS /dev/sdb 分区。

sudo fdisk -s /dev/sdb
sudo blkid -o value -s TYPE /dev/sdb

第 5 步 - 构建 Ceph 集群

在此步骤中,我们将通过 ceph-admin 在所有节点上安装 Ceph。首先,登录到 ceph-admin 节点。

ssh 
su - cephuser

在 ceph-admin 节点上安装 ceph-deploy

在第一步中,我们已经在系统上安装了 python 和 python-pip。现在我们需要从 pypi python 存储库安装 Ceph 部署工具 ceph-deploy。

使用 pip 命令在 ceph-admin 节点上安装 ceph-deploy。

sudo pip install ceph-deploy

注意:确保所有节点都已更新。

安装 ceph-deploy 工具后,为 Ceph 集群配置创建一个新目录。

创建一个新集群

创建一个新的集群目录。

mkdir cluster
cd cluster/

接下来,通过定义监控节点 mon1,使用 ceph-deploy 命令创建一个新集群。

ceph-deploy new mon1

该命令会在集群目录下生成 Ceph 集群配置文件 ceph.conf。

使用 vim 编辑 ceph.conf 文件。

vim ceph.conf

在 [global] 块下,粘贴下面的配置。

# Your network address
public network = 10.0.15.0/24
osd pool default size = 2

保存文件并退出编辑器。

在所有节点上安装 Ceph

现在使用单个命令从 ceph-admin 节点在所有节点上安装 Ceph。

ceph-deploy install ceph-admin ceph-osd1 ceph-osd2 ceph-osd3 mon1

该命令会自动在所有节点上安装 Ceph:mon1、osd1-3 和 ceph-admin - 安装需要一些时间。

现在在 mon1 节点上部署监控节点。

ceph-deploy mon create-initial

该命令将创建一个监控键,使用此 ceph 命令检查该键。

ceph-deploy gatherkeys mon1

将OSDS加入集群

在所有节点上安装 Ceph 后,现在我们可以将 OSD 守护进程添加到集群中。 OSD 守护进程将在磁盘 /dev/sdb 上创建数据和日志分区。

检查所有 osd 节点上的可用磁盘 /dev/sdb。

ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3

您将看到 /dev/sdb 具有我们之前创建的 XFS 格式。

接下来,使用 zap 选项删除所有节点上的分区表。

ceph-deploy disk zap ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb

该命令将删除 Ceph OSD 节点上 /dev/sdb 上的所有数据。

现在准备好所有 OSD 节点,确保结果没有错误。

ceph-deploy osd prepare ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb

当您在结果中看到 ceph-osd1-3 已准备好供 OSD 使用时,则命令成功。

使用以下命令激活 OSDS:

ceph-deploy osd activate ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb

现在您可以再次查看 OSDS 节点上的 sdb 磁盘。

ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3

结果是 /dev/sdb 现在有两个分区:

  1. /dev/sdb1 - Ceph 数据
  2. /dev/sdb2 - Ceph 日志

或者你直接在OSD节点上查看。

ssh ceph-osd1
sudo fdisk -l /dev/sdb

接下来,将管理密钥部署到所有关联节点。

ceph-deploy admin ceph-admin mon1 ceph-osd1 ceph-osd2 ceph-osd3

通过在所有节点上运行以下命令来更改密钥文件的权限。

sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

Ubuntu 16.04 上的 Ceph 集群已创建。

第 6 步 - 测试 Ceph

在第 4 步中,我们安装并创建了一个新的 Ceph 集群,并将 OSDS 节点添加到集群中。现在我们应该测试集群以确保它按预期工作。

从 ceph-admin 节点,登录到 Ceph 监控服务器 mon1。

ssh mon1

运行以下命令以检查集群运行状况。

sudo ceph health

现在检查集群状态。

sudo ceph -s

你可以看到下面的结果:

确保 Ceph 运行状况OK,并且有一个监控节点 mon1,IP 地址为 10.0.15.11。有 3 个 OSD 服务器,所有服务器都启动并正在运行,并且应该有一个 45GB - 3x15GB Ceph 数据 OSD 分区的可用磁盘空间。

我们在 Ubuntu 16.04 上成功构建了一个新的 Ceph 集群。

参考

  • http://docs.ceph.com/docs/jewel/

©2015-2025 艾丽卡 support@alaica.com