CentOS7.4下安装ceph

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-keygen(直接回车,不设密码就好) 
sudo ssh-copy-id cephnode01
sudo ssh-copy-id cephnode02
sudo ssh-copy-id cephnode03

再关闭防火墙
ssh root@cephuser
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

创建成功ceph健康状况良好

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

root@admin 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

 

简介: 4 一:安装配置环境介绍 5 1:系统版本: 5 2:内核版本: 5 3:ceph版本: 5 4:ceph-deploy版本: 5 4:网络拓扑图 6 5:设备位置图 6 6:服务器配置信息及运行服务统计 7 二:系统软件基础包初始化: 10 1:安装 EPEL 软件源: 10 2:常用软件包、常用工具等(非必须、推荐安装) 10 三:集群主机系统初始化准备 10 1:规范系统主机名; 11 2:添加hosts文件实现集群主机名与主机名之间相互能够解析 11 3:每台 ssh-copy-id 完成这些服务器之间免ssh密码登录; 11 4:关闭防火墙或者开放 6789/6800~6900端口、关闭SELINUX; 11 5:关闭防火墙及开机启动 12 5:配置ntp服务,保证集群服务器时间统一; 12 6:系统优化类 12 四:集群优化配置 12 1:优化前提 12 2: 开启VT和HT 13 3:关闭CPU节能 13 4:关闭NUMA 13 5:网络优化 15 6:修改read_ahead 15 7:关闭swap 16 8:调整Kernel pid max 16 9:修改I/O Scheduler 16 五:安装部署主机(ceph-deploy)安装环境准备 17 1:建立主机列表 17 2:为所有集群主机创建一个 ceph 工作目录 17 3:同步hosts文件 17 4:测试主机名解析 17 5:ceph-deploy安装配置 18 六:创建mon 节点 18 1:安装部署集群软件包: 18 2:在安装部署节使用ceph-deploy创建,生成MON信息: 18 3:添加初始monitor节点和收集秘钥 18 4:验证集群mon节点安装成功 19 七:安装集群osd服务 19 1:查看一下 Ceph 存储节点的硬盘情况: 19 2:批量格式化磁盘 20 3:执行osd初始化命令 21 4:验证日志写入位置在ssd 硬盘分区成功 22 5:验证osd启动状态 22 6:PGs per OSD (2 < min 30)报错解决: 23 7:官方推荐pg计算公式 24 八:添加元数据服务器 24 1:添加元数据服务器 24 2:验证mds服务 24 3:删除mds节点 26 4:同步集群配置文件 26 九:crush 规则配置 26 1:ceph crush规则介绍 26 2:集群crush规则配置 27 3:修改crushmap信息 28 十:集群配置清理 29 1:清理软件包 29 2:卸载之前挂载的osd磁盘 29 3:将写入分区表的分区挂载 29 4:查看一下状态,仅剩余系统盘 30 5:清理残余key文件和残余目录 30 6:新建安装目录 30 7:重新部署集群 30 十一:集群配置参数优化 30 1:配置参数优化 30 2:同步集群配置文件 49 十二:ceph集群启动、重启、停止 49 1:ceph 命令的选项 49 2:启动所有守护进程 50 3:启动单一实例 50 十三:维护常用命令 50 1:检查集群健康状况 50 1:检查集群健康状况 50 2:检查集群的使用情况 51 3:检查集群状态 51 4:检查MONITOR状态 52 5:检查 MDS 状态: 52 十四:集群命令详解 52 1:mon 相关 52 2: msd 相关 53 4:ceph auth 相关 54 5:osd 相关 54 6:pool 相关 56 7:rados命令相关 57 8:PG 相关 59 9: rbd命令相关 61 十五:ceph 日志和调试设置 63 1:配置文件修改 63 2:在线修改日志输出级别 63 3:修改集群子系统,日志和调试设置 64 4:日志输出级别默认值 65
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值