【Ceph】集群搭建系列(一):Ceph 集群搭建--实战--编辑中

本文详细介绍了如何在Ubuntu物理机加3个CentOS VM环境下搭建Ceph存储集群。首先,配置了主机名和网络连接,接着在所有节点上安装了NTP和SSH,并创建了具有sudo权限的用户。然后,通过ceph-deploy工具在管理节点上生成SSH密钥并分发,安装了必要的软件包。最后,配置了集群的监控节点,安装了Ceph,并激活了OSD节点。整个过程包括了从安装到集群健康检查的全部步骤。
摘要由CSDN通过智能技术生成

原文:https://blog.csdn.net/don_chiang709/article/details/91419585

摘要:
本文基于luminous版本(ceph -v: ceph version 12.2.11 (26dc3775efc7bb286a1d6d66faee0ba30ea23eee) luminous (stable)),ceph各个版本会有不同。

基于ubuntu物理机(后文提到的admin-node节点)+3个CentOS VM(后文提到的node1/2/3节点)来搭建Ceph集群的。

我们要搭建的Ceph集群是属于Ceph架构图的哪一部分? 它对应下图红色方框里的RADOS Cluster

目录
一、准备机器
二、ceph节点安装
三、搭建集群


一、准备机器
本文描述如何在 一台物理机Ubuntu + 三台虚拟机VM CentOS 7 下搭建 Ceph 存储集群(STORAGE CLUSTER)。

一共4台机器,其中1个是管理节点,其他3个是ceph节点:

hostname    ip    role    描述
admin-node    10.38.50.131    ceph-deploy    管理节点(物理机Ubuntu)
node1    192.168.122.157    mon.node1    ceph节点,监控节点(虚拟机VM CentOS 7)
node2    192.168.122.158    osd.0    ceph节点,OSD节点(虚拟机VM CentOS 7)
node3    192.168.122.159    osd.1    ceph节点,OSD节点(虚拟机VM CentOS 7)
管理节点:admin-node

ceph节点:node1, node2, node3

所有节点:admin-node, node1, node2, node3

1. 修改主机名

# vi /etc/hostname
2. 修改hosts文件

# vi /etc/hosts
10.38.50.131 admin-node
192.168.122.157 node1
192.168.122.158 node2
192.168.122.159 node3
3. 确保联通性(管理节点)

用 ping 短主机名( hostname -s )的方式确认网络联通性。解决掉可能存在的主机名解析问题。

$ ping node1
$ ping node2
$ ping node3

二、ceph节点安装
1. 安装NPT(所有节点)NTP服务器:时间同步服务者

我们建议在所有 Ceph 节点上安装 NTP 服务(特别是 Ceph Monitor 节点),以免因时钟漂移导致故障,详情见时钟。

sudo yum install ntp ntpdate ntp-doc
Ubuntu下:

sudo apt-get install ntp ntpdate ntp-doc

2. 安装SSH(所有节点)

sudo yum install openssh-server
3. 创建部署 CEPH 的用户(所有节点)

ceph-deploy 工具必须以普通用户登录 Ceph 节点,且此用户拥有无密码使用 sudo 的权限,因为它需要在安装软件及配置文件的过程中,不必输入密码。
建议在集群内的所有 Ceph 节点上给 ceph-deploy 创建一个特定的用户,但不要用 “ceph” 这个名字。

1) 在各 Ceph 节点创建新用户

sudo useradd -d /home/yjiang2 -m yjiang2
sudo passwd yjiang2
2) 确保各 Ceph 节点上新创建的用户都有 sudo 权限

echo "yjiang2 ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/yjiang2
sudo chmod 0440 /etc/sudoers.d/yjiang2
4. 允许无密码SSH登录(管理节点)

因为 ceph-deploy 不支持输入密码,你必须在管理节点上生成 SSH 密钥并把其公钥分发到各 Ceph 节点。 ceph-deploy 会尝试给初始 monitors 生成 SSH 密钥对。

1) 生成 SSH 密钥对

不要用 sudo 或 root 用户。提示 “Enter passphrase” 时,直接回车,口令即为空:

//切换用户,如不特别说明,后续的操作均在该用户下进行
# su yjiang2  //生成密钥对
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/yjiang2/.ssh/id_rsa): 
Created directory '/home/yjiang2/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/yjiang2/.ssh/id_rsa.
Your public key has been saved in /home/yjiang2/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Tb0VpUOZtmh+QBRjUOE0n2Uy3WuoZVgXn6TBBb2SsGk yjiang2@admin-node
The key's randomart image is:
+---[RSA 2048]----+
|          .+@=OO*|
|           *.BB@=|
|          ..O+Xo+|
|         o E+O.= |
|        S oo=.o  |
|           .. .  |
|             .   |
|                 |
|                 |
+----[SHA256]-----+
2) 把公钥拷贝到各 Ceph 节点

ssh-copy-id yjiang2@node1
ssh-copy-id yjiang2@node2
ssh-copy-id yjiang2@node3
完成后, /home/yjiang2/.ssh/ 路径下:

admin-node 多了文件 id_rsa、id_rsa.pub 和 known_hosts;
node1, node2, node3 多了文件authorized_keys。
3) 修改~/.ssh/config 文件

修改 ~/.ssh/config 文件(没有则新增),这样 ceph-deploy 就能用你所建的用户名登录 Ceph 节点了。

// 必须使用sudo
$ sudo vi ~/.ssh/config
Host admin-node
   Hostname admin-node
   User yjiang2
Host node1
   Hostname node1
   User yjiang2
Host node2
   Hostname node2
   User yjiang2
Host node3
   Hostname node3
   User yjiang2
4) 测试ssh能否成功

$ ssh yjiang2@node1
$ exit
$ ssh yjiang2@node2
$ exit
$ ssh yjiang2@node3
$ exit
问题:如果出现 "Bad owner or permissions on /home/yjiang2/.ssh/config",执行命令修改文件权限。
$ sudo chmod 644 ~/.ssh/config
5. 系统引导时联接网络(ceph节点:node1+node2+node3)

Ceph 的各个OSD 进程通过网络互联并向 Monitors 上报自己的状态。如果网络默认为 off ,那么 Ceph 集群在启动时就不能上线,直到你打开网络。我的network interface是eth0

$sudo grep ONBOOT -rn /etc/sysconfig/network-scripts/
/etc/sysconfig/network-scripts/ifcfg-lo:8:ONBOOT=yes
/etc/sysconfig/network-scripts/ifup-ippp:22:if [ "${2}" = "boot" -a "${ONBOOT}" = "no" ]; then
/etc/sysconfig/network-scripts/ifup-plip:9:if [ "foo$2" = "fooboot" -a "${ONBOOT}" = "no" ]; then
/etc/sysconfig/network-scripts/ifup-plusb:20:if [ "foo$2" = "fooboot" -a "${ONBOOT}" = "no" ]
/etc/sysconfig/network-scripts/ifup-ppp:40:if [ "${2}" = "boot" -a "${ONBOOT}" = "no" ]; then
/etc/sysconfig/network-scripts/ifcfg-eth0:15:ONBOOT=yes
/etc/sysconfig/network-scripts/ifcfg-eth0.bak:15:ONBOOT=yes
//确保ONBOOT 设置成了 yes 
6. 开放所需端口(ceph节点:node1+node2+node3)

Ceph Monitors 之间默认使用 6789 端口通信, OSD 之间默认用 6800:7300 这个范围内的端口通信。Ceph OSD 能利用多个网络连接进行与客户端、monitors、其他 OSD 间的复制和心跳的通信。

$ sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent
// 或者关闭防火墙
$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld
7. 终端(TTY)(ceph节点:node1+node2+node3)

在 CentOS 和 RHEL 上执行 ceph-deploy 命令时可能会报错。如果你的 Ceph 节点默认设置了 requiretty ,执行

$ sudo visudo
找到 Defaults requiretty 选项,把它改为 Defaults:ceph !requiretty 或者直接注释掉,这样 ceph-deploy 就可以用之前创建的用户(创建部署 Ceph 的用户 )连接了。

编辑配置文件 /etc/sudoers 时,必须用 sudo visudo 而不是文本编辑器。

8. 关闭selinux(ceph节点:node1+node2+node3)

$ sudo setenforce 0
setenforce: SELinux is disabled
要使 SELinux 配置永久生效(如果它的确是问题根源),需修改其配置文件 /etc/selinux/config:

$ sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
即修改 SELINUX=disabled。

9. 配置EPEL源(管理节点:admin-node)

$ sudo apt-get install -y yum-utils && sudo yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/ && sudo yum install --nogpgcheck -y epel-release && sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && sudo rm /etc/yum.repos.d/dl.fedoraproject.org*
10. 把软件包源加入软件库(管理节点:admin-node)

$ sudo vi /etc/yum/repos.d/ceph.repo
把如下内容粘帖进去,保存到 /etc/yum.repos.d/ceph.repo 文件中。

[ceph]
name=ceph
baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/noarch/
gpgcheck=0
11. 更新软件库并安装ceph-deploy(管理节点:admin-node)

$ sudo apt-get update && sudo apt-get install ceph-deploy
$ sudo apt-get install yum-plugin-priorities
时间可能比较久,耐心等待。

三、搭建集群
在 管理节点 下执行如下步骤:

1. 安装准备,创建文件夹

在管理节点上创建一个目录,用于保存 ceph-deploy 生成的配置文件和密钥对。

$ cd ~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值