如何在CentOS 7.0上配置Ceph存储
如何在CentOS 7.0上配置Ceph存储,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
ceph是一个分布式文件系统,能够在维护 POSIX 兼容性的同时加入了复制和容错功能。
系统资源
**CEPH-STORAGE**OS: CentOS Linux 7 (Core)RAM:1 GBCPU:1 CPUDISK: 20Network: 45.79.136.163FQDN: ceph-storage.linoxide.com**CEPH-NODE**OS: CentOS Linux 7 (Core)RAM:1 GBCPU:1 CPUDISK: 20Network: 45.79.171.138FQDN: ceph-node.linoxide.com
安装前的配置
在安装 Ceph 存储之前,我们要在每个节点上完成一些步骤。第一件事情就是确保每个节点的网络已经配置好并且能相互访问。
配置 Hosts
要在每个节点上配置 hosts 条目,要像下面这样打开默认的 hosts 配置文件(LCTT 译注:或者做相应的 DNS 解析)。
# vi /etc/hosts
45.79.136.163 ceph-storage ceph-storage.linoxide.com45.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[root@ceph-storage ~]# passwd ceph
节点中新建的每个用户都要有 sudo 权限,你可以使用下面展示的命令赋予 sudo 权限。
[root@ceph-storage ~]# echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephceph ALL = (root) NOPASSWD:ALL[root@ceph-storage ~]# sudo chmod 0440 /etc/sudoers.d/ceph
设置 SSH 密钥
现在我们会在 Ceph 管理节点生成 ssh 密钥并把密钥复制到每个 Ceph 集群节点。
在 ceph-node 运行下面的命令复制它的 ssh 密钥到 ceph-storage。
[root@ceph-node ~]# ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa):Created directory '/root/.ssh'.Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:5b:*:*:*:*:*:*:*:*:*:c9 root@ceph-nodeThe key's randomart image is:+--[ RSA 2048]----+
[root@ceph-node ~]# ssh-copy-id ceph@ceph-storage
SSH key
配置 PID 数目
要配置 PID 数目的值,我们会使用下面的命令检查默认的内核值。默认情况下,是一个小的最大线程数 32768。
如下图所示通过编辑系统配置文件配置该值为一个更大的数。
更改 PID 值
配置管理节点服务器
配置并验证了所有网络后,我们现在使用 ceph 用户安装 ceph-deploy。通过打开文件检查 hosts 条目(LCTT 译注:你也可以用 DNS 解析来完成)。
# vim /etc/hostsceph-storage 45.79.136.163ceph-node 45.79.171.138
运行下面的命令添加它的库。
# rpm -Uhv http://ceph.com/rpm-giant/el7/noarch/ceph-release-1-0.el7.noarch.rpm
添加 Ceph 仓仓库
或者创建一个新文件并更新 Ceph 库参数,别忘了替换你当前的 Release 和版本号。
[root@ceph-storage ~]# vi /etc/yum.repos.d/ceph.repo
[ceph-noarch]name=Ceph noarch packagesbaseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarchenabled=1gpgcheck=1type=rpm-mdgpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
之后更新你的系统并安装 ceph-deploy 软件包。
安装 ceph-deploy 软件包
我们运行下面的命令以及 ceph-deploy 安装命令来更新系统以及最新的 ceph 库和其它软件包。
#yum update -y && yum install ceph-deploy -y
配置集群
使用下面的命令在 ceph 管理节点上新建一个目录并进入新目录,用于收集所有输出文件和日志。
# mkdir ~/ceph-cluster# cd ~/ceph-cluster
# ceph-deploy new storage
设置 ceph 集群
如果成功执行了上面的命令,你会看到它新建了配置文件。
现在配置 Ceph 默认的配置文件,用任意编辑器打开它并在会影响你公共网络的 global 参数下面添加以下两行。
# vim ceph.confosd pool default size = 1public network = 45.79.0.0/16
安装 Ceph
现在我们准备在和 Ceph 集群关联的每个节点上安装 Ceph。我们使用下面的命令在 ceph-storage 和 ceph-node 上安装 Ceph。
# ceph-deploy install ceph-node ceph-storage
安装 ceph
处理所有所需仓库和安装所需软件包会需要一些时间。
当两个节点上的 ceph 安装过程都完成后,我们下一步会通过在相同节点上运行以下命令创建监视器并收集密钥。
# ceph-deploy mon create-initial
Ceph 初始化监视器
设置 OSD 和 OSD 守护进程
现在我们会设置磁盘存储,首先运行下面的命令列出你所有可用的磁盘。
# ceph-deploy disk list ceph-storage
结果中会列出你存储节点中使用的磁盘,你会用它们来创建 OSD。让我们运行以下命令,请使用你的磁盘名称。
# ceph-deploy disk zap storage:sda# ceph-deploy disk zap storage:sdb
为了最后完成 OSD 配置,运行下面的命令配置日志磁盘以及数据磁盘。
# ceph-deploy osd prepare storage:sdb:/dev/sda# ceph-deploy osd activate storage:/dev/sdb1:/dev/sda1
你需要在所有节点上运行相同的命令,它会清除你磁盘上的所有东西。之后为了集群能运转起来,我们需要使用以下命令从 ceph 管理节点复制不同的密钥和配置文件到所有相关节点。
# ceph-deploy admin ceph-node ceph-storage
测试 Ceph
我们快完成了 Ceph 集群设置,让我们在 ceph 管理节点上运行下面的命令检查正在运行的 ceph 状态。
# ceph status# ceph healthHEALTH_OK
如果你在 ceph status 中没有看到任何错误信息,就意味着你成功地在 CentOS 7 上安装了 ceph 存储集群。
什么是Linux系统
Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。
看完上述内容,你们掌握如何在CentOS 7.0上配置Ceph存储的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!