使用ceoh-deploy工具快速部署ceph--先决条件准备

来源:互联网 发布:centos ftp客户端命令 编辑:程序博客网 时间:2024/05/20 11:21

最近按照ceph的官方文档来部署ceph,发现遇到了不少的问题,其中很多问题都是安装部署的时候遇到的坑,在这里提出来和大家一起分享探讨,如有不足之处欢迎评论。

笔者这里使用的操作系统:CentOS7.2
内存:4G
cpu:2核
硬盘:50G
内核为3.10
虚拟化平台:vmwareworkstation12
ceph版本:jewel
部署架构则按照官档上给出的部署架构来实行部署。
这里写图片描述

这里我准备了四个虚拟节点分别为controllernode,ceph-1,ceph-2,ceph-3。其中controllernode充当部署角色,为下面的三个ceph节点部署配置。下面给出网络拓扑,其中ceph_public用使用的桥接网段,ceph_cluster使用仅主机模式桥接到私网网段:

controllernode
ceph_public:192.168.1.11
ceph_cluster:192.168.59.129

ceph-1
ceph_public:192.168.1.9
ceph_cluster:192.168.59.130

ceph-2
ceph_public:192.168.1.10
ceph_cluster:192.168.59.131

ceph-3
ceph_public:192.168.1.12
ceph_cluster:192.168.59.132

安装部署前需要解决的先决条件:

1.在安装系统之前,建议安转最小化的系统版本,针对有什么再装的需求。

2.安装完操作系统之后将所有的节点IP修改成静态IP,并且开启network与NetworkManager服务同时检查网卡出于链接状态。

注:此操作在四个节点上都需要执行

#/sbin/chkconfig network on#systemctl enable NetworkManager#systemctl start network#systemctl start NetworkManager#nmcli connect show

这里写图片描述

如果发现网卡的链接设备不是active的状态请尝试重启NetworkManager服务。

#systemctl restart NetworkManager

重启之后可以看到设备均处于链接状态:
这里写图片描述

修改为静态IP地址,为所有的节点

nmcli connect modify eno16777736 ipv4.addresses "192.168.1.9/24 192.168.1.1" ipv4.method manualnmcli connection modify eno16777736 connection.autoconnect yesnmcli connection modify eno16777736 ipv4.dns "114.114.114.114"nmcli connect modify eno33554960 ipv4.addresses "192.168.59.130/24" ipv4.method manualnmcli connection modify eno33554960 connection.autoconnect yesnmcli connection modify eno16777736 ipv4.dns "0.0.0.0"

关闭防火墙(因为是实验环境所以不考虑防火墙限制)

在CentOS7中系统给了很多防火墙,但是默认开启的只有firewalld,这里考虑到可能有和笔者环境不一样的情况,所以给出了所有防火墙的清理方法。ps:如果是新装的系统那么只需要把firewalld防火墙禁用关闭就好。

注:此操作在四个节点上都需要执行

systemctl disable iptablessystemctl disable ip6tablessystemctl disable ebtablessystemctl disable firewalldsystemctl stop iptablessystemctl stop ebtablessystemctl stop ip6tablessystemctl stop firewalld

关闭selinux

注:此操作在四个节点上都要操作

setenforce 0vim /etc/selinux/config修改配置项为SELINUX=disabled

构造yum仓库

按照官方给出的文档,yum仓库指定的是ceph官网的yum仓库,但是很多时候在国内的童鞋们可能不一定有那么好的网络条件来访问国外网站所以这里我给出了两种构造方案。如果你喜欢偷懒并且觉得网络良好可以考虑直连外网。如果觉得网络情况不好的情况下可以ceph-deploy的默认yum源的地址,这里给出yum源的内容方便大家使用。

ceph官网的yum源

[ceph-noarch]name=Ceph noarch packagesbaseurl=http://download.ceph.com/rpm-jewel/el7/noarchenabled=1gpgcheck=1type=rpm-mdgpgkey=https://download.ceph.com/keys/release.asc

阿里云给出的yum源

[Ceph]name=Ceph packages for $basearchbaseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/$basearchenabled=1gpgcheck=1type=rpm-mdgpgkey=http://mirrors.aliyun.com/ceph/keys/release.ascpriority=1[Ceph-noarch]name=Ceph noarch packagesbaseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/$basearchenabled=1gpgcheck=1type=rpm-mdgpgkey=http://mirrors.aliyun.com/ceph/keys/release.ascpriority=1[ceph-source]name=Ceph source packagesbaseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/$basearchenabled=1gpgcheck=1type=rpm-mdgpgkey=http://mirrors.aliyun.com/ceph/keys/release.ascpriority=1

我们可以通过下面两种方法来修改下ceph-deploy工具中所默认的yum源。在这里需要注意请现在ceph-deploy上更新一下yum源,因为你要先安装ceph-deploy工具在controllernode上。

通过命令来修改

在ceph-deploy工具安装好之后,可以考虑用命令或者导入环境变量的方法来修改我们想在ceph集群上使用什么yum源了。

 #ceph-deploy repo --repo-url http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64 --gpg-url http://mirrors.aliyun.com/ceph/keys/release.asc ceph ceph-3

通过在ceph-deploy节点上导入环境变量来配置,这种配置方法可以不需要像上面步骤那样需要给每个节点来设置一个yum源,操作方便。

export CEPH_DEPLOY_REPO_URL=http://mirrors.aliyun.com/ceph/rpm-jewel/el7export CEPH_DEPLOY_GPG_URL=http://mirrors.aliyun.com/ceph/keys/release.asc

在四个节点上部署ntp服务,并且做配置

安装ntp服务在服务器端执行

yum install -y ntp ntpdate ntp-doc

安装ntpclient

yum install -y  ntpdate

配置NTP服务,在这里我们可以把ceph的集群都指向ceph-deploy的时间服务器上,而ceph-deploy则作为ceph集群的时间服务器server端。

在ceph-deploy端部署ntp服务之后,在/etc/ntp.conf中追加如下:

server 210.72.145.44server 202.112.10.36server 59.124.196.83

注释掉之前的安装预留的NTP地址

#server 0.centos.pool.ntp.org iburst#server 1.centos.pool.ntp.org iburst#server 2.centos.pool.ntp.org iburst#server 3.centos.pool.ntp.org iburst#systemctl restart ntpd

ceph-1,ceph-2,ceph-3的ntp客户端中写入时间同步的计划任务

crontab -e10 * * * * root /usr/sbin/ntpdate 192.168.1.11; /sbin/hwclock -wsystemctl status crondcrontab -l(查看计划任务是否写入)

在所有节点上安装SSH服务器

yum install -y openssh-server

创建部署ceph的用户。这里默认我们使用Bob_Hou来作为ceph的普通用户

ceph-deploy 工具必须以普通用户登录 Ceph 节点,且此用户拥有无密码使用 sudo 的权限,因为它需要在安装软件及配置文件的过程中,不必输入密码。
较新版的 ceph-deploy 支持用 –username 选项提供可无密码使用 sudo 的用户名(包括 root ,虽然不建议这样做)。使用 ceph-deploy –username {username} 命令时,指定的用户必须能够通过无密码 SSH 连接到 Ceph 节点,因为 ceph-deploy 中途不会提示输入密码。

我们建议在集群内的所有 Ceph 节点上给 ceph-deploy 创建一个特定的用户,但不要用 “ceph” 这个名字。全集群统一的用户名可简化操作(非必需),然而你应该避免使用知名用户名,因为黑客们会用它做暴力破解(如 root 、 admin、 {productname} )。后续步骤描述了如何创建无 sudo 密码的用户,你要用自己取的名字替换 {username} 。

添加新用户:

useradd -d /home/Bob_Hou -m Bob_Houpasswd Bob_Hou

确保各ceph节点上新创建的用户都有sudo权限:

echo "Bob_Hou ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/Bob_Houchmod 0440 /etc/sudoers.d/Bob_Hou

使ceph的各个节点之间能够域名解析,在这里最简单的办法就是使用hosts文件。文件内容如下:

修改hostname,在每个节点上都需要修改

hostnamectl set-hostname controllernodehostnamectl set-hostname ceph-1hostnamectl set-hostname ceph-2hostnamectl set-hostname ceph-3

编辑/etc/hosts文件,在下面追加:

192.168.1.10 ceph-2192.168.1.9  ceph-1192.168.1.12 ceph-3192.168.1.11 controllernode

允许无密码SSH登录

在ceph-deploy中使用Bob_Hou(你创建的普通账户来登录)然后执行ssh-keygen命令,想偷懒点直接敲三下回车就好了。我们制作好公钥之后将它分发到各个节点上去。

ssh-copy-id Bob_Hou@ceph-1ssh-copy-id Bob_Hou@ceph-2ssh-copy-id Bob_Hou@ceph-3

完成以上步骤之后基本上你可以获得一个比较好的环境来安装ceph了。

0 0
原创粉丝点击