> CentOS > CentOS教程 >

centos7.1安装部署ceph0.94(2)

centos7.1安装部署ceph0.94

时间:2015-08-29 13:02来源:blog.51cto.com 作者:kjh2007abc 的BLOG 举报 点击:次

 

一:CEPH简介

 

 

二:ceph集群硬件的选择

 

 

三:集群安装配置环境介绍

 

1:系统:

 more /etc/redhat-release 

CentOS Linux release 7.1.1503 (Core) 

 

2:内核:

uname -a

Linux localhost.localdomain 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

 

3:ceph版本:

ceph -v

ceph version 0.94.3

 

4:集群服务部署分配:

主机名           运  行       服  务

ceph-deploy      ceph-deploy 

node241 mon  osd

node242  mds  osd

node243    osd 

 

5:IP对应主机名

192.168.2.40 ceph-deploy  

192.168.2.41 node241

192.168.2.42 node242

192.168.2.43 node243

 

四:集群主机系统配置准备

 

所有 Ceph 集群节点采用 CentOS 7.1 版本(CentOS-7-x86_64-Minimal-1503-01.iso),所有文件系统采用 Ceph 官方推荐的 xfs,

所有节点的操作系统都装在 RAID1 上,其他的硬盘单独用,不做任何 RAID.

 

安装完 CentOS 后我们需要在每个节点上(包括 ceph-deploy)做以下配置:

 

 

1:规范系统主机名;

centos使用以下命令: 

hostnamectl set-hostname 主机名

 

2:添加hosts文件实现集群主机名与主机名之间相互能够解析(host 文件添加主机名不要使用fqdn方式)

[root@ceph-deploy ceph]# more /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.2.40 ceph-deploy  

192.168.2.41 node241

192.168.2.42 node242

192.168.2.43 node243

 

3:每台 ssh-copy-id 完成这些服务器之间免ssh密码登录;

ssh-copy-id   node###

 

4:关闭防火墙或者开放 6789/6800~6900端口、关闭SELINUX;

#关闭 SELINUX

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

setenforce 0

 

#修改SELINUX模式

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

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

 

#打开 Ceph 需要的端口

firewall-cmd --zone=public --add-port=6789/tcp --permanent

firewall-cmd --zone=public --add-port=6800-7100/tcp --permanent

firewall-cmd --reload

 

systemctl stop firewalld.server

 

5:配置ntp服务,开启时间服务,保证集群服务器时间统一;

安装 ntp 同步时间

yum -y install ntp ntpdate ntp-doc

 

ntpdate 0.us.pool.ntp.org

hwclock --systohc

systemctl enable ntpd.service

systemctl start ntpd.service

 

或者添加crontab ,执行自动时间同步;

 

[root@admin yum.repos.d]# more /etc/crontab 

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

 

# For details see man 4 crontabs

 

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed

 

20 */1 * * * root ntpdate s1a.time.edu.cn && --systohc 

 

6:系统优化类

#set max user processes

sed -i 's/4096/102400/' /etc/security/limits.d/20-nproc.conf

 

#set ulimit

cat /etc/rc.local | grep "ulimit -SHn 102400" || echo "ulimit -SHn 102400" >> /etc/rc.local

 

#修改最大打开文件句柄数

cat /etc/security/limits.conf | grep "^* - sigpending 256612" ||

cat >>/etc/security/limits.conf<<EOF

*           soft   nofile       102400

*           hard   nofile       102400

*           soft   nproc        102400

*           hard   nproc        102400

* - sigpending 256612

EOF

 

 

 

五:软件基础包初始化:

 

1:安装 EPEL 软件源:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

yum -y update

yum -y upgrade

 

2:常用软件包、常用工具等(非必须、推荐安装)

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \

zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel zip unzip ncurses ncurses-devel curl curl-devel e2fsprogs \

e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssh openssl-devel nss_ldap openldap openldap-devel openldap-clients \

openldap-servers libxslt-devel libevent-devel ntp  libtool-ltdl bison libtool vim-enhanced python wget lsof iptraf strace lrzsz \

kernel-devel kernel-headers pam-devel Tcl/Tk  cmake  ncurses-devel bison setuptool popt-devel net-snmp screen perl-devel \

pcre-devel net-snmp screen tcpdump rsync sysstat man iptables sudo idconfig git system-config-network-tui bind-utils update \

arpscan tmux elinks numactl iftop  bwm-ng

 

3:提前填坑,根据以往配置部署经验,安装配置部署过程中会有不断报错,部分是因为个别依赖软件包没有安装导致,提前安装避免不必要的错误;

centos6.x 系统配置时总结提炼池的方法,centos7.X 版本系统没有没有安装,也顺利完成集群配置,在配置过程中如果提示缺少软件包可以考虑安装。

for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip yum install *argparse* redhat-lsb xfs* -y;done

 

 

3:安装部署主机(ceph-deploy)安装环境准备

 

4:为所有集群主机创建一个 ceph 工作目录,以后的操作都在这个目录下面进行:

for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip mkdir -p  /etc/ceph ;done

 

5:建立主机列表 

vim /workspace/ceph/cephlist.txt   

192.168.2.40 ceph-deploy  

192.168.2.41 node241

192.168.2.42 node242

192.168.2.43 node243

 

 

6:传输key、hosts文件到其它节点服务器

--delete 删除那些DST中SRC没有的文件

 

#同步key文件

for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;rsync -avp --delete /root/.ssh/* $ip:/root/.ssh/;done

 

#同步hosts文件

for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;rsync -avp --delete /etc/hosts  $ip:/etc/;done

 

#测试主机名解析

for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh $ip ping -c3 ceph-deploy;done

 

 

六:ceph-deploy安装配置

 

###########################cephdeploy节点执行,在/etc/ceph/目录下面进行#################################################

 

1:安装ceph-deploy

cd /etc/ceph/

yum install ceph-deploy -y

 

 

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

ceph-deploy new node241 node242 node243

 

3:传输key 配置文件到其它节点服务器

for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;rsync -avp --delete /etc/ceph $ip:/etc/;done

 

验证:

for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip ls /etc/ceph/ ;done

 

 

七: 创建mon节点:

 

#######################集群服务部署分配#######################

主机名           运  行       服  务

ceph-deploy      ceph-deploy 

node241 mon  osd

node242  mds  osd

node243    osd 

 

1:在安装部署节使用ceph-deploy创建,生成MON信息:

 

命令格式:

 

cd /etc/ceph/

ceph-deploy new node241

 

 

执行成功后该目录下会增加三个文件

[root@ceph-deploy ceph]# ll

total 16

-rw-r--r-- 1 root root  229 Aug 28 14:30 ceph.conf

-rw-r--r-- 1 root root 5878 Aug 28 14:30 ceph.log

-rw------- 1 root root   73 Aug 28 14:30 ceph.mon.keyring

 

 

2:安装部署集群软件包:

在所有节点安装ceph软件包 ceph-deploy install{ceph-node}[{ceph-node}...]

(注:如果已经用yum在每台机器上安装了ceph,这步可省略)

 

ceph-deploy install  node241  node242  node243 

 

 

3:添加初始monitor节点和收集秘钥 ceph-deploy mon create-initial {node} 

 

ceph-deploy mon create-initial

 

4:收集密钥

 

ceph-deploy gatherkeys node241

 

在本地目录下可看到如下密钥环文件:

 

     1. {cluster-name}.client.admin.keyring

     2. {cluster-name}.bootstrap-osd.keyring

     3. {cluster-name}.bootstrap-mds.keyring

 

5:传输key 配置文件到其它节点服务器

 

for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;rsync -avp --delete /etc/ceph $ip:/etc/;done

--delete 删除那些DST中SRC没有的文件

 

至此mon节点配置基本告一段落;

 

6:验证集群mon节点安装成功

[root@node241 ceph]# ceph -s

    cluster 3adc4d9d-587e-424f-ab67-dd4d50493782

     health HEALTH_ERR

            64 pgs stuck inactive

            64 pgs stuck unclean

            no osds

     monmap e1: 1 mons at {node241=192.168.2.41:6789/0}

            election epoch 2, quorum 0 node241

     osdmap e1: 0 osds: 0 up, 0 in

      pgmap v2: 64 pgs, 1 pools, 0 bytes data, 0 objects

            0 kB used, 0 kB / 0 kB avail

                  64 creating

 

7:登录mon节点查看进程已启动

ps -ef|grep ceph

[root@node241 ceph]# ps -ef|grep ceph

root      7087     1  0 15:04 ?        00:00:00 /bin/bash -c ulimit -n 32768; /usr/bin/ceph-mon -i node241 --pid-file /var/run/ceph/mon.node241.pid -c /etc/ceph/ceph.conf --cluster ceph -f

root      7097  7087  0 15:04 ?        00:00:00 /usr/bin/ceph-mon -i node241 --pid-file /var/run/ceph/mon.node241.pid -c /etc/ceph/ceph.conf --cluster ceph -f

root      9179  5080  0 16:59 pts/0    00:00:00 grep --color=auto ceph

 

 

 

八:安装集群osd服务

 

1:执行osd初始化命令

每台有1块磁盘,为 /dev/sdb

 

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

 

ceph-deploy disk list node241 node242 node243

 

初始化 Ceph 硬盘,然后创建 osd 存储节点,(执行此步骤,osd自动激活了,不用执行激活操作);

 

for ip in $(cat /workspace/ceph/cephlist.txt);do echo ----$ip-----------;ceph-deploy --overwrite-conf osd prepare $ip:/dev/sdb;done

 

 

 

2:验证:

root     13531     2  0 21:32 ?        00:00:00 [xfsaild/sdb1]

root     13844     1  0 21:32 ?        00:00:00 /bin/bash -c ulimit -n 32768; /usr/bin/ceph-osd -i 0 --pid-file /var/run/ceph/osd.0.pid -c /etc/ceph/

root     13848 13844  1 21:32 ?        00:00:00 /usr/bin/ceph-osd -i 0 --pid-file /var/run/ceph/osd.0.pid -c /etc/ceph/ceph.conf --cluster ceph -f

 

[root@ceph-deploy ceph]# ceph osd tree

ID WEIGHT  TYPE NAME        UP/DOWN REWEIGHT PRIMARY-AFFINITY 

-1 0.26999 root default                                       

-2 0.09000     host node241                                   

 0 0.09000         osd.0         up  1.00000          1.00000 

-3 0.09000     host node242                                   

 1 0.09000         osd.1         up  1.00000          1.00000 

-4 0.09000     host node243                                   

 2 0.09000         osd.2         up  1.00000          1.00000 

 

(责任编辑:IT)