本文介绍在Ubuntu 18.04系统上安装和配置功能齐全的Ceph Storage Cluster(Ceph存储集群)。
我的Ceph Storage cluster架构 我的Ceph集群部署基于以下系统图:
应相应地设置每个服务器的主机名,并在所有Ceph集群节点上配置/etc/hosts文件如下所示: 192.168.18.70 rgw.example.com rgw 192.168.18.71 mon01.example.com mon01 192.168.18.72 mon02.example.com mon02 192.168.18.73 mon03.example.com mon03 192.168.18.75 osd01.example.com osd01 192.168.18.76 osd02.example.com osd02 192.168.18.77 osd03.example.com osd03 更改主机名和IP地址以适合你的设置,作为基本条件,请确保系统已更新: sudo apt update sudo apt upgrade sudo reboot 重新启动系统后,即可开始Ceph群集部署,建议有一个额外的节点,其工作是在所有Ceph节点上部署ceph,此节点称为管理节点: 192.168.18.74 ceph-admin.example.com ceph-admin 1、准备Ceph管理节点 需要将Ceph存储库添加到ceph-deploy管理节点,然后安装ceph-deploy软件包,我的管理节点在IP 192.168.18.74上。 导入存储库密钥: wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add - 将Ceph存储库添加到你的系统,将{ceph-stable-release}替换为稳定的Ceph版本: echo deb https://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list 这个安装会做Ceph mimic: echo deb https://download.ceph.com/debian-mimic/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list 更新你的存储库并安装ceph-deploy: sudo apt update sudo apt -y install ceph-deploy 2、准备Ceph节点 管理节点必须具有对Ceph节点的无密码SSH访问,当ceph-deploy以用户身份登录到Ceph节点时,该特定用户必须具有无密码的sudo权限。 在所有Ceph节点上添加SSH用户 - rgw,osd节点和监视器: export USERNAME="ceph-admin" export USER_PASS="StrongPassword" sudo useradd --create-home -s /bin/bash ${USERNAME} echo "${USERNAME}:${USER_PASS}"|chpasswd echo "${USERNAME} ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/${USERNAME} sudo chmod 0440 /etc/sudoers.d/${USERNAME} 确认用户无需密码提示即可运行sudo: jmutai@osd01:~$ su - ceph-admin Password: ceph-admin@osd01:~$ sudo su - root@ceph-admin:~# 在ceph-admin节点上生成SSH密钥,但不要使用sudo或root用户,将密码保留为空: # su - ceph-admin $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/ceph-admin/.ssh/id_rsa): Created directory '/home/ceph-admin/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/ceph-admin/.ssh/id_rsa. Your public key has been saved in /home/ceph-admin/.ssh/id_rsa.pub. The key fingerprint is: SHA256:DZZdfRS1Yo+unWAkDum7juShEF67pm7VdSkfWlsCpbA ceph-admin@ceph-admin The key's randomart image is:
$ ls /home/ceph-admin/.ssh/ config id_rsa id_rsa.pub known_hosts 配置~/.ssh/config: $ cat /home/ceph-admin/.ssh/config Host osd01 Hostname osd01 User ceph-admin Host osd02 Hostname osd02 User ceph-admin Host osd03 Hostname osd03 User ceph-admin Host osd01 Hostname osd01 User ceph-admin Host mon01 Hostname mon01 User ceph-admin Host mon02 Hostname mon02 User ceph-admin Host mon03 Hostname mon03 User ceph-admin Host rgw Hostname rgw User ceph-admin 将密钥复制到每个Ceph节点(从Ceph管理节点执行此操作作为ceph-admin用户): for i in rgw mon01 mon02 mon03 osd01 osd02 osd03; do ssh-copy-id $i done 如果所有Ceph节点上的远程用户不是,则ceph-admin用正确的用户名替换它。
部署Ceph Storage Cluster 确保在所有Ceph节点上设置NTP,尤其是监视器: sudo apt install ntp 参考:在Linux系统下安装配置Chrony,使其成为NTP客户端替代品。 我们将创建一个带有一个Ceph Monitor和三个Ceph OSD守护进程的三个Ceph Node集群,群集达到活动+清除状态后,通过添加元数据服务器和另外两个Ceph监视器来展开它。 让我们首先在管理节点上创建一个目录,用于维护ceph-deploy为集群生成的配置文件和密钥: mkdir ceph-deploy cd ceph-deploy ceph-deploy实用程序将文件输出到当前目录,执行ceph-deploy时,请确保位于此目录中。 1、初始化ceph监控节点 在你创建的ceph-deploy目录中,在管理节点上运行以下命令,以保存配置详细信息: $ ceph-deploy new mon01 mon02 mon03 输出如下: ceph-admin@ceph-admin:~/ceph-deploy$ ceph-deploy new mon01
2、安装Ceph包: ceph-deploy install mon01 mon02 mon03 osd01 osd02 osd03 rgw ceph-deploy实用程序将在每个节点上安装Ceph。 输出如下:
3、部署初始监视器并收集密钥: ceph-deploy mon create-initial 许多密钥环将放在你的工作目录中。 4、将ceph配置文件和密钥环复制到节点 将配置文件和管理密钥复制到你的管理节点和Ceph节点: ceph-deploy admin osd01 osd02 osd03 5、部署管理器守护程序 通过运行以下命令部署管理器守护程序: ceph-deploy mgr create osd01 6、添加三个OSD 我假设你在每个节点中都有一个未使用的磁盘,名为/dev/device,看起来如下:
我有三种设备可供使用:/dev/vda、dev/vdb、dev/vdc。 确保设备当前未使用且不包含任何重要数据,使用的用法是: ceph-deploy osd create --data {device} {ceph-node} 例: ceph-deploy osd create --data /dev/vda osd01 ceph-deploy osd create --data /dev/vda osd02 ceph-deploy osd create --data /dev/vda osd03 ceph-deploy osd create --data /dev/vdb osd01 ceph-deploy osd create --data /dev/vdb osd02 ceph-deploy osd create --data /dev/vdb osd03 ceph-deploy osd create --data /dev/vdc osd01 ceph-deploy osd create --data /dev/vdc osd02 ceph-deploy osd create --data /dev/vdc osd03 注意:如果要在LVM卷上创建OSD,则--data的参数必须是volume_group/lv_name,而不是卷的块设备的路径。 lsblk命令的输出应该已经改变:
7、检查群集的运行状况 检查Ceph群集状态: root@osd02:~# ceph health root@osd02:~# ceph status
扩展Ceph Storage Cluster 启动并运行基本群集后,下一步是展开群集。 1、添加Ceph元数据服务器 要使用CephFS,你至少需要一个元数据服务器,执行以下操作将Ceph元数据服务器添加到osd02和osd03: ceph-deploy mds create osd02 osd03 2、添加其他Ceph监视器 Ceph存储集群需要至少运行一个Ceph Monitor和Ceph Manager。为了实现高可用性,Ceph存储集群通常运行多个Ceph监视器,以便单个Ceph监视器的故障不会导致Ceph存储集群失效,扩展你的监视器数量,使用: ceph-deploy install <monitor> ceph-deploy mon add <monitor> 一旦添加了新的Ceph监视器,Ceph将开始同步监视器并形成一个法定人数,可以通过执行以下操作来检查仲裁状态: ceph quorum_status --format json-pretty 3、添加其他Manager Daemon 要部署其他管理器守护程序: ceph-deploy mgr create mon02 mon03 4、添加RGW 要使用Ceph的Ceph对象网关组件,必须部署RGW实例,执行以下命令以创建RGW的新实例: ceph-deploy rgw create {gateway-node} 例: ceph-deploy rgw create rgw 默认情况下,RGW实例将侦听端口7480,可以通过在运行RGW的节点上编辑ceph.conf来更改此设置,如下所示: [client] rgw frontends = civetweb port=80
重置Ceph Cluster 如果你遇到麻烦并且想要重新开始,请执行以下操作以清除Ceph软件包,并清除其所有数据和配置: ceph-deploy purge {ceph-node} [{ceph-node}] ceph-deploy purgedata {ceph-node} [{ceph-node}] ceph-deploy forgetkeys rm ceph.* 如果执行purge,则必须重新安装Ceph,最后一个rm命令删除在先前安装期间由本地ceph-deploy写出的所有文件。
相关主题 |