如何在CentOS 7.0上设置Red Hat Ceph存储
Ceph是一个开放源代码软件平台,可将数据存储在单个分布式计算机集群上。
当我们计划构建云时,除了要求之外,还必须决定如何实现存储。
开源CEPH是基于RED-HAT的成熟技术,它基于对象存储系统(称为RADOS),它具有一组网关API,这些网关API以块,文件和对象模式显示数据。
由于其开源性质,该便携式存储平台可以在公共或者私有云中安装和使用。
Ceph集群的拓扑围绕复制和信息分发而设计,复制和信息分发是固有的并提供数据完整性。
它设计为容错的,可以在商用硬件上运行,但也可以在正确设置下在许多更高级的系统上运行。
Ceph可以安装在任何Linux发行版上,但是它需要最新的内核和其他最新的库才能正确执行。
但是,在本教程中,我们将使用带有最少安装软件包的CentOS-7.0。
系统资源
CEPH-STORAGE
操作系统:CentOS Linux 7(核心)
内存:1 GB
CPU:1个
硬盘:20G
网络:45.79.136.163
FQDN:ceph-storage.theitroad.com
CEPH-NODE
操作系统:CentOS Linux 7(核心)
内存:1 GB
CPU:1个
硬盘:20G
网络:45.79.171.138
FQDN:ceph-node.theitroad.com
安装前设置
在CEPH存储设置之前,我们需要在每个节点上执行几个步骤。
因此,第一件事就是要确保每个节点都配置有FQDN的网络设置,而其他节点可以访问该网络。
配置主机
要在每个节点上设置主机条目,请打开默认主机配置文件,如下所示。
# vi /etc/hosts
45.79.136.163 ceph-storage ceph-storage.theitroad.com 45.79.171.138 ceph-node ceph-node.theitroad.com
安装VMware Tools
在VMware虚拟环境上工作时,建议我们安装其开放式VM工具。
我们可以使用以下命令进行安装。
#yum install -y open-vm-tools
防火墙设定
如果我们在启用本地防火墙的限制性环境中工作,请确保在CEPH storge管理节点和客户端节点中允许以下端口数量。
我们必须在Admin Calamari节点上打开端口80、2003和4505-4506,并向CEPH admin或者Calamari节点打开端口80以进行入站,以便网络中的客户端可以访问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主机上运行以下命令。
[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/ceph ceph ALL = (root) NOPASSWD:ALL [root@ceph-storage ~]# sudo chmod 0440 /etc/sudoers.d/ceph
设置SSH密钥
现在,我们将在admin ceph节点上生成SSH密钥,然后将该密钥复制到每个Ceph群集节点。
让我们在ceph-node上运行以下命令,将其ssh密钥复制到ceph-storage上。
[root@ceph-node ~]# ssh-keygen Generating 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-node The key's randomart image is: +--[ RSA 2048]----+
[root@ceph-node ~]# ssh-copy-id ceph@ceph-storage
配置PID计数
要配置PID计数值,我们将使用以下命令来检查默认内核值。
默认情况下,其一小部分最大线程数为'32768'。
因此,将通过编辑系统conf文件,将该值配置为更大数量的线程,如图所示。
设置管理节点服务器
经过所有的网络设置和验证,现在我们将使用用户ceph安装ceph-deploy。
因此,通过打开其文件来检查主机条目。
#vim /etc/hosts ceph-storage 45.79.136.163 ceph-node 45.79.171.138
现在要添加其存储库,请运行以下命令。
#rpm -Uhv http://ceph.com/rpm-giant/el7/noarch/ceph-release-1-0.el7.noarch.rpm
或者创建一个新文件并更新CEPH存储库参数,但不要忘记提及我们当前的发行版和发行版。
[root@ceph-storage ~]# vi /etc/yum.repos.d/ceph.repo
[ceph-noarch] name=Ceph noarch packages baseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarch enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
在此之后,更新系统并安装ceph部署软件包。
安装CEPH-Deploy软件包
要使用最新的ceph存储库和其他软件包更新系统,我们将运行以下命令以及ceph-deploy安装命令。
#yum update -y && yum install ceph-deploy -y
设置集群
创建一个新目录,并使用以下命令将其移至admin ceph-node上,以收集所有输出文件和日志。
#mkdir ~/ceph-cluster #cd ~/ceph-cluster
#ceph-deploy new storage
成功执行以上命令后,我们可以看到它正在创建其配置文件。
现在要配置CEPH的默认配置文件,请使用任何编辑器将其打开,并将以下两行放在反映公共网络的全局参数下。
#vim ceph.conf osd pool default size = 1 public network = 45.79.0.0/16
安装CEPH
现在,我们将在与CEPH群集关联的每个节点上安装CEPH。
为此,我们使用以下命令在两个节点ceph-storage和ceph-node上安装CEPH,如下所示。
#ceph-deploy install ceph-node ceph-storage
在处理所有必需的存储库并安装必需的软件包时,这将需要一些时间。
在两个节点上完成ceph安装过程后,我们将通过在同一节点上运行以下命令来继续创建监视程序并收集密钥。
#ceph-deploy mon create-initial
设置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
我们将必须在所有节点上重复相同的命令,同时它将清理磁盘上存在的所有内容。
之后,要使群集正常运行,我们需要使用以下命令将不同的密钥和配置文件从admin ceph-node复制到所有关联的节点。
#ceph-deploy admin ceph-node ceph-storage
测试CEPH
我们已经完成了CEPH集群的设置,让我们在admin ceph-node上使用以下命令,运行以下命令来检查正在运行的ceph的状态。
#ceph status #ceph health HEALTH_OK
因此,如果我们在ceph status下没有收到任何错误消息,则意味着我们已经在CentOS 7上成功设置了ceph存储集群。