ceph小型集群搭建
原文链接:https://blog.csdn.net/cj1937007583/article/details/77755897
一、前期准备
1. 服务器准备
IP | |
---|---|
192.168.3.61 | mon osd admin-node |
192.168.3.71 | mon osd |
192.168.3.151 | mon osd |
操作系统:centos7.6
使用ceph-deploy安装ceph的出错率较高;因此,在各节点分别安装ceph。
2. 修改主机名
给三台服务器分别命名为node1、node2、node3
例如,登陆第一台服务器(192.168.3.61),输入如下命令行:
Hostnamectl set-hostname node1
再比如,登陆第二台服务器(192.168.3.71),输入如下命令行:
Hostnamectl set-hostname node2
同理,登陆第三台服务器(192.168.3.151),输入命令行:
Hostnamectl set-hostname node3
3. 安装ssh服务
如下操作在所有节点上面执行:
yum install openssh-server
二、安装ceph
1. 配置yum源
如下操作在所有节点上执行
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2. 配置ceph源
首先输入如下命令行:(此操作同样需要在所有节点上面分别执行)
vim /etc/yum.repos.d/ceph.repo
该命令行会进入ceph.repo文件中,在该文件中输入如下内容:
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=0
priority=1
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
gpgcheck=0
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/SRPMS
enabled=0
gpgcheck=1
type=rpm-md
gpgkey=http://mirrors.163.com/ceph/keys/release.asc
priority=1
3. 安装ceph
注意:如下各个操作都需要在所有节点上面分别执行
(1)更新源:
yum makecache
yum update
(2)安装ceph
yum install -y ceph
查看ceph版本:
ceph -v
(3)关闭selinux
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
(4)关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
(5)安装ntp服务器
为保证各个服务器的时间一致,安装ntp服务器
yum install -y ntp ntpdate ntp-doc
访问网址:http://www.pool.ntp.org/zone/cn
获取中国区公用时间同步服务,如下:
server 0.cn.pool.ntp.org
server 1.cn.pool.ntp.org
server 2.cn.pool.ntp.org
server 3.cn.pool.ntp.org
接下来,输入如下命令行:
vim /etc/ntp.conf
将这四个服务器添加到/etc/ntp.conf,用#注释掉文件中原有的:
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
再执行下面的命令手工从服务器同步并启动ntp服务:
ntpdate 0.cn.pool.ntp.org
hwclock -w
systemctl enable ntpd.service
systemctl start ntpd.service
三、创建ceph集群
此处我直接使用root用户部署集群
注意:如下操作都只在管理节点上执行,此处管理节点是node1(192.168.3.61)
1.安装ceph-deploy部署工具
yum install ceph-deploy
查看ceph-deploy版本:
ceph-deploy --version
2. 修改/etc/hosts
首先执行如下命令行:
vim /etc/hosts
然后在此文件中输入如下内容(对应你自己的服务器IP和主机名):
192.168.3.61 node1
192.168.3.71 node2
192.168.3.151 node3
3. 生成ssh密钥
ssh-keygen
将该密钥复制到其他节点上面
ssh-copy-id root@node2
ssh-copy-id root@node3
4. 创建集群
首先创建一个目录my-cluster
mkdir my-cluster
进入此目录,之后的操作都在该目录中执行:
cd my-cluster
部署monitor节点:
ceph-deploy new node1 node2 node3
查看my-cluster目录下生成的文件:
ls
将显示:
ceph.conf ceph-deploy-ceph.log ceph.mon.keyring
接下来修改配置文件。输入如下命令行:
vim ceph.conf
在配置文件ceph.conf中添加如下内容:
mon_initial_members = node1, node2,node3
mon_host = 192.168.3.61 ,192.168.3.71 ,192.168.3.151
auth_cluster_required = none
auth_service_required = none
auth_client_required = none
osd pool default size = 2
public network = 192.168.3.0/24
接下来,部署monitors,并获取密钥key:
ceph-deploy mon create-initial
查看my-cluster目录下生成的文件:
ls
ceph.bootstrap-mds.keyring
ceph.bootstrap-rgw.keyring
ceph.conf
ceph.mon.keyring
ceph.bootstrap-osd.keyring
ceph.client.admin.keyring
ceph-deploy-ceph.log
查看集群状态:
ceph -s
5. 部署osd
因为没有足够多的磁盘,因此使用文件夹
首先,登陆各台服务器,创建文件夹
分别在各个服务器上面输入如下命令:
mkdir /var/local/osd1
chmod 777 -R /var/local/osd1
以下在有ceph-deploy的节点(即管理节点)上执行:
准备osd:
ceph-deploy osd prepare node1:/var/local/osd1 node2:/var/local/osd1 node3:/var/local/osd1
激活osd:
ceph-deploy osd activate node1:/var/local/osd1 node2:/var/local/osd1 node3:/var/local/osd1
查看集群状态:
ceph -s
三、 遇到的问题
1. ERROR: missing keyring, cannot use cephx for authentication
管理KEY权限问题,普通用户无法读取导致无法进行cephx认证。
解决办法:
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
原文链接:http://blog.chinaunix.net/uid-21142030-id-5194237
2. unable to find a keyring on /etc/ceph/ceph.client.admin.keyring,/etc/ceph/ceph.keyring,missing keyring ,cannot use cephxfor authentication
在主节点node1上生成的五个keyring文件需要放在其他两个节点node2和node3的/etc/ceph目录下面,因此需要将主节点上面生成的五个keyring文件复制传递到其他节点的/etc/ceph
解决办法:
scp *.keyring node2:/etc/ceph/
scp *.keyring node3:/etc/ceph/
原文链接:https://blog.csdn.net/lk142500/article/details/77880386