centos7 通过yum 安装jewel版本ceph

来源:互联网 发布:网络宣传怎么做 编辑:程序博客网 时间:2024/05/30 07:13

删除默认的源,国外的比较慢

yum clean all
rm -rf /etc/yum.repos.d/*.repo

下载阿里云的base源

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

下载阿里云的epel源

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

修改里面的系统版本为7.3.1611,当前用的centos的版本的的yum源可能已经清空了

sed -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo
sed -i '/aliyuncs/d' /etc/yum.repos.d/epel.repo
sed -i 's/$releasever/7.3.1611/g' /etc/yum.repos.d/CentOS-Base.repo

添加ceph源

vim /etc/yum.repos.d/ceph.repo

添加
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/

gpgcheck=0[ceph-source]
name=cephsource
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=0
[ceph-radosgw]
name=cephradosgw
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=0


进行yum的makecache

yum makecache

安装ceph集群

硬件环境准备


由于条件限制,本文所有实验机器全是虚拟机,共准备了3台虚拟机,其中1台做监控节点(master),2台做存储节点(slave1,slave2)。

Ceph要求必须是奇数个监控节点,而且最少3个(自己玩玩的话,1个也是可以的),ceph-adm是可选的,可以把ceph-adm放在monitor上,只不过把ceph-adm单独拿出来架构上看更清晰一些。当然也可以把mon放在 osd上,生产环境下是不推荐这样做的。

  • ADM 服务器硬件配置比较随意,只是用来操作和管理 Ceph;
  • MON 服务器1块硬盘用来安装操作系统;
  • OSD 服务器上用1块1GB的硬盘做Ceph存储,每个osd对应1块硬盘,每个osd需要1个Journal,所以1块硬盘需要1个Journal,如果多个硬盘的话,可以每个区分别对应一个osd硬盘的journal.

软件环境准备


所有Ceph集群节点采用CentOS-7.3.1611版本,所有文件系统采用Ceph官方推荐的xfs。

安装完CentOS后我们需要在每个节点上(包括master)做一点基础配置,比如关闭SELINUX、关闭防火墙、同步时间等。

关闭 SELINUX# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config# setenforce 0关闭iptables# systemctl stop firewalld# systemctl disable firewalld同步时间# yum -y ntp# ntpdate asia.pool.ntp.org修改/etc/hosts# cat /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.63.128        master192.168.63.130       slave1192.168.63.131        slave2
在每台osd服务器上对1块硬盘进行分区,创建XFS文件系统,对1块用作journal的硬盘分1个区,每个区对应一块硬盘,不需要创建文件系统,留给Ceph自己处理。

分别关闭虚拟机【slave1,slave2】并挂载2块1G的硬盘
# parted -a optimal --script /dev/sdb -- mktable gpt# parted -a optimal --script /dev/sdb -- mkpart primary xfs 0% 100%# mkfs.xfs -f /dev/sdbmeta-data=/dev/sdb              isize=256    agcount=4, agsize=1310592 blks     =                       sectsz=512   attr=2, projid32bit=1     =                       crc=0        finobt=0data     =                       bsize=4096   blocks=5242368, imaxpct=25     =                       sunit=0      swidth=0 blksnaming   =version 2              bsize=4096   ascii-ci=0 ftype=0log      =internal log           bsize=4096   blocks=2560, version=2     =                       sectsz=512   sunit=0 blks, lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0
# parted -a optimal --script /dev/sdc -- mktable gpt# parted -a optimal --script /dev/sdc -- mkpart primary xfs 0% 100%# mkfs.xfs -f /dev/sdcmeta-data=/dev/sdc1              isize=256    agcount=4, agsize=1310592 blks     =                       sectsz=512   attr=2, projid32bit=1     =                       crc=0        finobt=0data     =                       bsize=4096   blocks=5242368, imaxpct=25     =                       sunit=0      swidth=0 blksnaming   =version 2              bsize=4096   ascii-ci=0 ftype=0log      =internal log           bsize=4096   blocks=2560, version=2     =                       sectsz=512   sunit=0 blks, lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0

在生产环境中,每台osd服务器上硬盘远不止2台,以上命令需要对多个硬盘进行处理,重复的操作太多,以后还会陆续增加服务器,写成脚本parted.sh方便操作,其中/dev/sdc|d|e|f分别是4块硬盘,/dev/sdb是用做journal的硬盘:

1234567891011121314151617181920212223242526
#!/bin/bashset -eif [ ! -x "/sbin/parted" ]; then    echo "This script requires /sbin/parted to run!" >&2    exit 1fiDISKS="c d e f"for i in ${DISKS}; do    echo "Creating partitions on /dev/sd${i} ..."    parted -a optimal --script /dev/sd${i} -- mktable gpt    parted -a optimal --script /dev/sd${i} -- mkpart primary xfs 0% 100%    sleep 1    #echo "Formatting /dev/sd${i}1 ..."    mkfs.xfs -f /dev/sd${i}1 &doneJOURNALDISK="b"for i in ${JOURNALDISK}; do    parted -s /dev/sd${i} mklabel gpt    parted -s /dev/sd${i} mkpart primary 0% 25%    parted -s /dev/sd${i} mkpart primary 26% 50%    parted -s /dev/sd${i} mkpart primary 51% 75%    parted -s /dev/sd${i} mkpart primary 76% 100%done
设置master slave1 slave2 免密登录(root用户)

Ceph部署

 

比起在每个Ceph节点上手动安装Ceph,用ceph-deploy工具统一安装要方便得多,登录master:

# yum install ceph-deploy -y

创建一个ceph工作目录,以后的操作都在这个目录下面进行:

[root@master ~]# mkdir ~/ceph-cluster[root@master ~]# cd ceph-cluster/

初始化集群,告诉ceph-deploy哪些节点是监控节点,命令成功执行后会在ceph-cluster目录下生成ceph.conf,ceph.log,ceph.mon.keyring等相关文件:

[root@master ceph-cluster]# ceph-deploy new master

在每个Ceph节点上都安装Ceph:

[root@master ceph-cluster]# ceph-deploy install master slave1 slave2

此处可能出现类似如下错误:

[master][ERROR ]   File "/usr/lib64/python2.7/subprocess.py", line 1327, in _execute_child[master][ERROR ]     raise child_exception[master][ERROR ] OSError: [Errno 2] No such file or directory[master][ERROR ] [master][ERROR ] [ceph_deploy][ERROR ] RuntimeError: Failed to execute command: ceph --version

解决方法是在报错的节点上执行下面的命令:

[root@master ceph-cluster]# yum install *argparse* -y

初始化监控节点:

[root@master ceph-cluster]# ceph-deploy mon create-initial

查看一下Ceph存储节点的硬盘情况:

[root@master ceph-cluster]# ceph-deploy disk list slave1[root@master ceph-cluster]# ceph-deploy disk list slave2

初始化Ceph硬盘,然后创建osd存储节点,存储节点:单个硬盘:对应的journal分区,一一对应:

创建slave1存储节点[root@master ceph-cluster]# ceph-deploy disk zap slave1:sdb[root@master ceph-cluster]# ceph-deploy osd create slave1:sdb:/dev/sdc1创建slave2存储节点[root@master ceph-cluster]# ceph-deploy disk zap slave2:sdb[root@master ceph-cluster]# ceph-deploy osd create slave1:sdb:/dev/sdc1

最后,我们把生成的配置文件从master同步部署到其他几个节点,使得每个节点的ceph配置一致:

[root@master ceph-cluster]# ceph-deploy --overwrite-conf admin master slave1 slave2

测试

看一下配置成功了没?

[root@master ceph-cluster]# ceph health
[root@ceph-mon ceph-cluster]# ceph osd pool set rbd size 2set pool 0 size to 2[root@ceph-mon ceph-cluster]# ceph osd pool set rbd min_size 2set pool 0 min_size to 2[root@ceph-mon ceph-cluster]# ceph osd pool set rbd pg_num 128set pool 0 pg_num to 256[root@ceph-mon ceph-cluster]# ceph osd pool set rbd pgp_num 128set pool 0 pgp_num to 256[root@ceph-mon ceph-cluster]# ceph healthHEALTH_OK

 如果pool设置失败的话可以删除掉重新添加即可。

更详细一点:

[root@master ceph-cluster]# ceph -s    cluster 38a7726b-6018-41f4-83c2-911b325116df     health HEALTH_OK     monmap e1: 1 mons at {ceph-mon=192.168.128.131:6789/0}            election epoch 2, quorum 0 ceph-mon     osdmap e46: 8 osds: 8 up, 8 in      pgmap v72: 256 pgs, 1 pools, 0 bytes data, 0 objects            276 MB used, 159 GB / 159 GB avail                 256 active+clean

如果操作没有问题的话记得把上面操作写到ceph.conf文件里,并同步部署的各节点:

[root@ceph-mon ceph-cluster]# echo "osd pool default size = 2"  >> ~/ceph-cluster/ceph.conf[root@ceph-mon ceph-cluster]# echo "osd pool default min size = 2" >> ~/ceph-cluster/ceph.conf[root@ceph-mon ceph-cluster]# echo "osd pool default pg num = 256" >> ~/ceph-cluster/ceph.conf[root@ceph-mon ceph-cluster]# echo "osd pool default pgp num = 256" >> ~/ceph-cluster/ceph.conf[root@ceph-mon ceph-cluster]# ceph-deploy --overwrite-conf admin master slave1 slave2

如果一切可以重来

部署过程中如果出现任何奇怪的问题无法解决,可以简单的删除一切从头再来:

[root@ceph-mon ceph-cluster]# ceph-deploy purge ceph-mon ceph-osd1 ceph-osd2[root@ceph-mon ceph-cluster]# ceph-deploy purgedata ceph-mon ceph-osd1 ceph-osd2[root@ceph-mon ceph-cluster]# ceph-deploy forgetkeys

Troubelshooting

如果出现任何网络问题,首先确认节点可以互相无密码ssh,各个节点的防火墙已关闭或加入规则

参考:

http://www.koenli.com/2016-09-08-%E5%9C%A8CentOS7-1%E4%B8%8A%E5%AE%89%E8%A3%85%E5%88%86%E5%B8%83%E5%BC%8F%E5%AD%98%E5%82%A8%E7%B3%BB%E7%BB%9FCeph.html

http://int32bit.me/2016/05/19/Ceph-Pool%E6%93%8D%E4%BD%9C%E6%80%BB%E7%BB%93/



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃撑了肚子难受怎么办 喝水喝撑了难受怎么办 晚饭吃撑了难受怎么办 吃多了肚子难受怎么办 电信4g信号变3g怎么办 五险交了3月离职怎么办 怎么办工行携程灵通卡 易买得消费卡怎么办 贷款回执单丢了怎么办 医院挂号过号了怎么办 脑子里总是胡思乱想睡不着怎么办 被妹夫给睡了怎么办 被妹夫抱了下怎么办 最里面牙齿烂了怎么办 老公有外遇不承认怎么办 对老公疑心太重怎么办 当你发现老公出轨怎么办 发现自己老婆出轨了怎么办 笔袋密码忘记了怎么办 海关锁密码忘了怎么办 800度近视献了血怎么办 当老公有了外遇妻子该怎么办 妻子有外遇我该怎么办 喜欢拔粗的头发怎么办 小腿长水泡很痒怎么办 脚丫有水泡又痒怎么办 脚上起水泡怎么办很疼 脚上反复长水泡怎么办 高考没考上二本怎么办 车子被扣了60分怎么办 科目三挂了三次怎么办 装修到一半跑了怎么办 13岁自慰被发现怎么办 应用锁密码忘了怎么办 3d缺少dll文件怎么办 真三国无双6闪退怎么办 孙策死了大乔怎么办 30周羊水偏多怎么办 怀孕34周羊水多怎么办 孕34周羊水偏多怎么办 怀孕37周羊水少怎么办