欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CentOS7.4下安装ceph

程序员文章站 2022-07-10 15:41:56
...

Ceph简介

     Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统

 

准备工作

准备3台主机,并且修改主机名(hostnamectl set-hostname xxx 后重启

IP地址                                   主机名(修改后的hostname)

172.16.37.125                       cephnode01(管理节点主机)

172.16.37.128                       cephnode02(osd.0 节点)

172.16.37.123                       cephnode03(osd.1 节点)

解决yum下载巨慢问题,使用国内下载源(注意三台主机都要更改下载源

备份本地yum源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak

获取阿里yum源配置文件

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

更新cache

yum makecache

查看

yum -y update

添加ceph源(注意:不要有空行)

vim /etc/yum.repos.d/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.aliyun.com/ceph/rpm-jewel/el7/SRPMS
gpgcheck=0
priority=1

配置下载源结束!

回到cephnode01

开始配置

修改cephnode01节点/etc/hosts文件,增加以下内容:

172.16.37.125    cephnode01

172.16.37.128    cephnode02

172.16.37.123    cephnode03

分别这三个节点上存储创建用户且赋予它root权限(本人这里用cephuser,三台主机都要建)

useradd -d /home/cephuser -m cephuser
passwd cephuser#密码最好设一样的

修改cephnode01主机上的~/.ssh/config文件(没有这个文件的话就新建一个)

Host cephnode01
   Hostname cephnode01
   User cephuser
Host cephnode02
   Hostname cephnode02
   User cephuser
Host cephnode03
   Hostname cephnode03
   User cephuser

分别给每台节点的主机添加root权限

首先修改/etc/sudoers文件可写(因为文件原本不可写)
chmod 777 /etc/sudoers

修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root    ALL=(ALL)     ALL
tommy   ALL=(ALL)     NOPASSWD: ALL

再改回原来的设置(一定要改回,因为后面可能会出现bug)
pkexec chmod 0440 /etc/sudoers

修改完毕,现在可以用cephuser帐号登录,然后用命令 su - cephuser,即可获得root权限进行操作。

设置cephnode01主机可以无密码访问其他node

su - cephuser 
sudo ssh-******(直接回车,不设密码就好) 
sudo ssh-copy-id cephnode01
sudo ssh-copy-id cephnode02
sudo ssh-copy-id cephnode03

再关闭防火墙
ssh [email protected]
systemctl stop firewalld
systemctl disable firewalld

这个时候应该就可以免密码登录了
sudo ssh cephnode02    (看是否可以免密码登录成功)

一般情况就可以连接成功了,若有问题,可以试一下重启

安装NTP服务

sudo yum install -y ntp ntpdate ntp-doc
sudo ntpdate 0.us.pool.ntp.org
sudo hwclock --systohc
sudo systemctl enable ntpd.service
sudo systemctl start ntpd.service

禁用selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

准备磁盘

note:测试时使用的磁盘不要太小,否则后面添加磁盘时会报错,建议磁盘大小为20G及以上。

检查磁盘
sudo fdisk -l /dev/
格式化磁盘
sudo parted -s /dev/sdc mklabel gpt mkpart primary xfs 0% 100%
sudo mkfs.xfs /dev/sdc -f
 
查看磁盘格式
sudo blkid -o value -s TYPE /dev/sdc

部署阶段

安装ceph-deploy

sudo yum update -y && sudo yum install ceph-deploy -y

创建cluster目录

mkdir cluster
cd cluster/

创建集群

sudo ceph-deploy new cephnode01 cephnode02 cephnode03

修改ceph.conf文件

//在生成的ceph.conf中加入(写入[global] 段下)
osd pool default size = 2
//如果你有多个网卡,可以把 public network 写入 Ceph 配置文件的 [global] 段下
#public network = {ip-address}/{netmask}

搭建集群

//安装ceph
sudo ceph-deploy install cephnode01 cephnode02 cephnode03
 
//配置初始 monitor(s)、并收集所有**
# ceph-deploy mon create-initial

新建osd

//添加两个 OSD ,登录到 Ceph 节点、并给 OSD 守护进程创建一个目录。
#ssh cephnode02
#sudo mkdir /var/local/osd0
#exit
 
#ssh cephnode03
#sudo mkdir /var/local/osd1
#exit
 
//然后,从管理节点执行 ceph-deploy 来准备 OSD 
#sudo ceph-deploy osd prepare cephnode02:/var/local/osd0 cephnode03:/var/local/osd1
 
//最后,** OSD 
#sudo ceph-deploy osd activate cephnode02:/var/local/osd0 cephnode03:/var/local/osd1
 
//确保你对 ceph.client.admin.keyring 有正确的操作权限。
#sudo chmod +r /etc/ceph/ceph.client.admin.keyring
 
//检查集群的健康状况
#ceph health等 peering 完成后,集群应该达到 active + clean 状态。

报错解决

ceph用户没有权限
**执行**osd盘时出现 **

ceph-deploy osd activate node2:/var/local/osd0 node3:/var/local/osd1
[node3][WARNIN] ceph_disk.main.Error: Error: ['ceph-osd', '--cluster', 'ceph', '--mkfs', '--mkkey', '-i', '1', '--monmap', '/var/local/osd1/activate.monmap', '--osd-data', '/var/local/osd1', '--osd-journal', '/var/local/osd1/journal', '--osd-uuid', 'ee9c4a6c-e2b5-46cd-9e91-fd5d6f36fd57', '--keyring', '/var/local/osd1/keyring', '--setuser', 'ceph', '--setgroup', 'ceph'] failed : 2016-08-31 16:38:58.909449 7f48adbb7800 -1 filestore(/var/local/osd1) mkfs: write_version_stamp() failed: (13) Permission denied
[node3][WARNIN] 2016-08-31 16:38:58.909475 7f48adbb7800 -1 OSD::mkfs: ObjectStore::mkfs failed with error -13
[node3][WARNIN] 2016-08-31 16:38:58.909529 7f48adbb7800 -1  ** ERROR: error creating empty object store in /var/local/osd1: (13) Permission denied
[node3][WARNIN]
[node3][ERROR ] RuntimeError: command returned non-zero exit status: 1
[ceph_deploy][ERROR ] RuntimeError: Failed to execute command: /usr/sbin/ceph-disk -v activate --mark-init systemd --mount /var/local/osd1

解决方法

分别再cephnode02 cephnode03下面执行
chown ceph:ceph  /var/local/osd0
chown ceph:ceph  /var/local/osd1

CentOS7.4下安装ceph

创建成功ceph健康状况良好

RuntimeError: bootstrap-rgw keyring not found; run 'gatherkeys'

[email protected] ceph]# ceph-deploy rgw create node2
[ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (1.5.34): /usr/bin/ceph-deploy rgw create node2
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  rgw                           : [('node2', 'rgw.node2')]
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  subcommand                    : create
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf instance at 0x24aed88>
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  func                          : <function rgw at 0x241da28>
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.rgw][DEBUG ] Deploying rgw, cluster ceph hosts node2:rgw.node2
[ceph_deploy][ERROR ] RuntimeError: bootstrap-rgw keyring not found; run 'gatherkeys'

执行如下命令解决

ceph-deploy gatherkeys node2

 

相关标签: ceph centos7