蚊章汇 - Ceph
type: channel
link: https://linuxcn.bwsl.wang/tag/Ceph/
items: 在树莓派集群中部署 Ceph
items: 如何在 Ubuntu 16.04 中安装 Ceph 存储集群
items: 如何在 CentOS 7.0 上配置 Ceph 存储

在树莓派集群中部署 Ceph
type: item
date: 2021-01-16T21:55:49+08:00
description: 使用 ceph-ansible 安装 Ceph 存储，并将其部署在树莓派集群中。Ceph 是一个开源软件存储平台，它在统一的存储集群中提供对象、块和文件系统存储。我第一次使用 Ceph 是在 OpenStack 中集成它的时候。一开始，我很困惑，既然存储设备广泛存在，为什么要使用 Ceph。但在使用了三年多之后，这个平台的稳定性和完整性一再证明了它的价值。本文将告诉你如何使用 ceph-ansible（Ceph 官方支持的 Ansible playbook）安装 Ceph，并将其部署在树莓派集群中。材料：树莓派 4B 4GB 型号四台。四张 32GB 的 microSD 卡（用于启动操作系统）四个树莓派外壳，带风扇和散热片（非常重要）四个树莓派充电器6 个 32GB U 盘（用于 Ceph OSD 节点）架构：关于配置：前端和后端网络都在同一个子网中Ceph Monitor 软件使用 4GB 内存的树莓派 4B。Ceph OSD 节点使用相同的树莓派型号，但有两个 U 盘用于 OSD 磁盘使用 ceph-ansible 部署 Ceph使用 Ceph 的 Ansible 仓库可以让部署变得顺畅简单1、复制 ssh 密钥到所有服务器我在所有的服务器上都有一个名为 cephadmin 的共同用户（在此背景下，每个树莓派都是一台服务器）。cephadmin 用户配置了无密码的 sudo，以方便工作。使用 ssh-keygen 生成密钥后，使用 ssh-copy-id 部署所有密钥。我使用了一个 Bash for 循环，因为我使用的是一致并递增的主机名：$ for i in {0..3}; \ do ssh-copy-id cephadmin@rpi4b4-$i; \ done 你需要每个接受并输入密码，但你可以用 expect 来自动完成。2、克隆 ceph-ansible 并安装依赖安装 Git 来克隆仓库：$ sudo yum install git -y 克隆 ceph-ansible 仓库：$ git clone https://github.com/ceph/ceph-ansible.git $ cd ceph-ansible/ 我使用的是 CentOS 7 的 AArch64 构建，所以在继续之前，我必须安装一些所需的包。首先安装 Python pip：$ sudo yum install python3-pip -y 接着是 ceph-ansible 需要的包：$ sudo yum install python3-devel libffi-devel openssl-devel -y 最后，ceph-ansible 需要的依赖：$ pip3 install -r requirements.txt --user 我收到了这个错误：You are linking against OpenSSL 1.0.2, which is no longer supported by the OpenSSL project. To use this version of cryptography you need to upgrade to a newer version of OpenSSL. For this version only you can also set the environment variable CRYPTOGRAPHY_ALLOW_OPENSSL_102 to allow OpenSSL 1.0.2. 这可能与架构有关，因为我无法在 CentOS 7 虚拟机中复现该错误。部署时，将 CRYPTOGRAPHY_ALLOW_OPENSSL_102 导出为 True，这样 Ansible 就可以运行了。$ export CRYPTOGRAPHY_ALLOW_OPENSSL_102=True 3、配置 ceph-ansible 进行部署现在你可以使用 ceph-ansible 部署 Ceph 了。复制 site.yml.sample 到 site.yml：$ mv site.yml.sample site.yml 在 group_vars 目录下创建 all.yml：$ cat << EOF >> group_vars/all.yml ceph_origin: repository ceph_repository: community ceph_repository_type: cdn ceph_stable_release: nautilus monitor_interface: wlan0 public_network: "192.168.100.0/24" cluster_network: "192.168.10…

如何在 Ubuntu 16.04 中安装 Ceph 存储集群
type: item
date: 2017-02-08T03:42:47+08:00
description: Ceph 是一个高性能、可靠、可扩展的开源存储平台。它是一个自由的分布式存储系统，提供了对象、块和文件级存储的接口，并可以不受单点故障的影响而运行。在这个教程中，我将指导你在 Ubuntu 16.04 服务器上安装建立一个 Ceph 集群。Ceph 集群包括这些组件：Ceph OSD (ceph-osd) - 控制数据存储，数据复制和恢复。Ceph 集群需要至少两个 Ceph OSD 服务器。这次安装中我们将使用三个 Ubuntu 16.04 服务器。Ceph Monitor (ceph-mon) - 监控集群状态并运行 OSD 映射 和 CRUSH 映射。这里我们使用一个服务器。Ceph Meta Data Server (ceph-mds) - 如果你想把 Ceph 作为文件系统使用，就需要这个。前提条件6 个安装了 Ubuntu 16.04 的服务器节点所有节点上的 root 权限我将使用下面这些 hostname /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 client 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 设置日期。我们将使用 US 池的 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在这个教程，我们需要 python 包来建立 ceph 集群。安装 python 和 python-pip。sudo apt-get install -y python python-pip parted 配置 Hosts 文件用 vim 编辑器编辑所有节点的 hosts 文件。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 保存 hosts 文件，然后退出 vim 编辑器。现在你可以试着在两个服务器间 ping 主机名来测试网络连通性。ping -c 5 mon1 第 2 步 - 配置 SSH 服务器这一步，我们将配置 ceph-admin 节点。管理节点是用来配置监控节点和 osd 节点的。登录到 ceph-admin 节点然后使用 cephuser 用户。ssh root@ceph-admin su - cephuser 管理节点用来安装配置所有集群节点，所以 ceph-admin 上的用户必须有不使用密码连接到所有节点的权限。我们需要为 'ceph-admin' 节点的 cephuser 用户配置无密码 SSH 登录权限。生成 cephuser 的 ssh 密钥。ssh-keygen 让密码为空。下面，为 ssh 创建一个配置文件vim ~/.ssh/config 粘帖如下配置：Host ceph-admin …

如何在 CentOS 7.0 上配置 Ceph 存储
type: item
date: 2015-11-23T01:22:36+08:00
description: Ceph 是一个将数据存储在单一分布式计算机集群上的开源软件平台。当你计划构建一个云时，你首先需要决定如何实现你的存储。开源的 Ceph 是红帽原生技术之一，它基于称为 RADOS 的对象存储系统，用一组网关 API 表示块、文件、和对象模式中的数据。由于它自身开源的特性，这种便携存储平台能在公有云和私有云上安装和使用。Ceph 集群的拓扑结构是按照备份和信息分布设计的，这种内在设计能提供数据完整性。它的设计目标就是容错、通过正确配置能运行于商业硬件和一些更高级的系统。Ceph 能在任何 Linux 发行版上安装，但为了能正确运行，它需要最近的内核以及其它最新的库。在这篇指南中，我们会使用最小化安装的 CentOS-7.0。系统资源**CEPH-STORAGE** OS: CentOS Linux 7 (Core) RAM:1 GB CPU:1 CPU DISK: 20 Network: 45.79.136.163 FQDN: ceph-storage.linoxide.com **CEPH-NODE** OS: CentOS Linux 7 (Core) RAM:1 GB CPU:1 CPU DISK: 20 Network: 45.79.171.138 FQDN: ceph-node.linoxide.com 安装前的配置在安装 Ceph 存储之前，我们要在每个节点上完成一些步骤。第一件事情就是确保每个节点的网络已经配置好并且能相互访问。配置 Hosts要在每个节点上配置 hosts 条目，要像下面这样打开默认的 hosts 配置文件（LCTT 译注：或者做相应的 DNS 解析）。# vi /etc/hosts 45.79.136.163 ceph-storage ceph-storage.linoxide.com 45.79.171.138 ceph-node ceph-node.linoxide.com 安装 VMware 工具工作环境是 VMWare 虚拟环境时，推荐你安装它的 open VM 工具。你可以使用下面的命令安装。# yum install -y open-vm-tools 配置防火墙如果你正在使用启用了防火墙的限制性环境，确保在你的 Ceph 存储管理节点和客户端节点中开放了以下的端口。你必须在你的 Admin Calamari 节点开放 80、2003、以及4505-4506 端口，并且允许通过 80 号端口访问到 Ceph 或 Calamari 管理节点，以便你网络中的客户端能访问 Calamari web 用户界面。你可以使用下面的命令在 CentOS 7 中启动并启用防火墙。# systemctl start firewalld # systemctl enable firewalld 运行以下命令使 Admin Calamari 节点开放上面提到的端口。# firewall-cmd --zone=public --add-port=80/tcp --permanent # firewall-cmd --zone=public --add-port=2003/tcp --permanent # firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent # firewall-cmd --reload 在 Ceph Monitor 节点，你要在防火墙中允许通过以下端口。# firewall-cmd --zone=public --add-port=6789/tcp --permanent 然后允许以下默认端口列表，以便能和客户端以及监控节点交互，并发送数据到其它 OSD。# firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent 如果你工作在非生产环境，建议你停用防火墙以及 SELinux 设置，在我们的测试环境中我们会停用防火墙以及 SELinux。# systemctl stop firewalld # systemctl disable firewalld 系统升级现在升级你的系统并重启使所需更改生效。# yum update # shutdown -r 0 设置 Ceph 用户现在我们会新建一个单独的 sudo 用户用于在每个节点安装 ceph-deploy工具，并允许该用户无密码访问每个节点，因为它需要在 Ceph 节点上安装软件和配置文件而不会有输入密码提示。运行下面的命令在 ceph-storage 主机上新建有独立 home 目录的新用户。[root@ceph-storage ~]# useradd -d /home/ceph -m ceph …