Centos7部署ceph-14.2.22(nautilus)版集群(手动部署)

一、安装前准备
1、系统准备

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

#关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
setenforce 0  # 临时

#根据规划设置主机名
hostnamectl set-hostname 

#在master添加hosts
cat >> /etc/hosts << EOF
192.168.112.130 ceph1
192.168.112.131 ceph2
192.168.112.132 ceph3
EOF

2、安装chrony服务

yum -y install chrony

设置hdp01.bbdops.com为主服务器,开启nptd服务(主服务器)
#主服务器上该配置文件修改项如下:
vim /etc/chrony.conf
server ntp6.aliyun.com iburst
allow 192.168.112.0/24 
local stratum 10

#从服务器配置
vim /etc/chrony.conf
server 192.168.112.130 iburs
修改保存后执行:
systemctl restart chronyd.service #启动服务
systemctl enable chronyd.service #开机自启动

查看时间同步状态:
chronyc -a makestep
chronyc sourcestats
chronyc sources -v

3、添加阿里云镜像cepo.repo文件

vi /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
gpgcheck=0
priority=1

[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
gpgcheck=0
priority=1

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS
gpgcheck=0
priority=1

4、安装epel源

curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

5、仅下载镜像源包组

这么做的好处就是仅仅把最新所需要的包下载了下来,如果通过同步镜像的方式,会把一些暂时无用的包下载下来,占用空间!
yum install --downloadonly --downloaddir=/data/mirrors/ceph/ ceph ceph-radosgw ntp ceph-deploy
其中--downloadonly表示仅下载,--downloaddir指定下载到哪个目录

6、安装nginx

vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

#安装最新版nginx
yum install nginx -y

7、修改nginx配置文件创建demo.conf

vim demo.conf
server
    {
        listen 80;
        server_name   _;

        location / {
          root   /data/mirrors;
          index  index.html index.htm;
          autoindex on;
          autoindex_exact_size off;
          autoindex_localtime on;
        }
}

8、创建本地源

yum install createrepo -y
createrepo -pdo /data/mirrors/ceph/ /data/mirrors/ceph/
后续如果有更新增加或删减包,使用以下命令更新
createrepo --update /data/mirrors/ceph/
至此一个本地ceph源镜像就配置完成了

9、配置本地源

#在其他内网机器上配置源地址
vi /etc/yum.repos.d/ceph.repo
[http-repo]
name=internal-ceph-repo
baseurl=http://源IP/ceph
enabled=1
gpgcheck=0

10、刷新缓存,元数据缓存建立

yum clean all
yum makecache
yum repolist

二、ceph相关的包安装(手动部署)

节点规划:
192.168.112.130   ceph-mon、ceph-mgr、ceph-osd             /dev/sdb   osd盘  /dev/sdc  日志盘
192.168.112.131   ceph-mon、ceph-mgr、ceph-osd             /dev/sdb   osd盘  /dev/sdc  日志盘                
192.168.112.132   ceph-osd                                /dev/sdb   osd盘  /dev/sdc  日志盘

1、在部署节点(192.168.112.130)安装ceph的部署工具

yum install -y python-setuptools -y
yum install -y ceph-deploy
确保ceph-deploy的版本是2.0.1,不要安装1.x的版本
ceph-deploy --version
在其他节点执行下面命令,安装ceph相关的包
yum install -y ceph ceph-mon ceph-osd ceph-mds ceph-radosgw ceph-mgr

2、部署monitor,在部署(192.168.112.130)创建一个工作目录,后续的命令都在该目录下执行,产生的配置文件保存在该目录中

mkdir ~/my-cluster
cd ~/my-cluster
ceph-deploy new --public-network 192.168.112.0/24 --cluster-network 192.168.13.0/24 ceph1

初始化monitor
ceph-deploy mon create-initial
将配置文件拷贝到对应的节点
ceph-deploy admin ceph2 ceph3
如果想部署高可用的monitor ,可以将ceph2、ceph3也加入mon集群
ceph-deploy mon add ceph2
ceph-deploy mon add ceph3

让部署节点(192.168.112.130)可以使用ceph -s命令
cp ceph.client.admin.keyring /etc/ceph/

ceph-mon
如果在某些地方碰到麻烦,想从头再来,可以用下列命令清除配置:

ceph-deploy purgedata {ceph-node} [{ceph-node}]
ceph-deploy forgetkeys

用下列命令可以连Ceph 安装包一起清除:

ceph-deploy purge {ceph-node} [{ceph-node}]

注意:如果执行了purge ,你必须重新安装Ceph 。
3、部署mgr服务,在部署节点(192.168.112.130)执行

cd my-cluster
ceph-deploy mgr create ceph1
如果想部署高可用mgr,可以将ceph2、ceph3也添加进来
ceph-deploy mgr create ceph2 ceph3

ceph-mgr
4、部署osd

osd规划,选用filestore作为存储引擎,每个节点上选用/dev/sdb作为数据盘,每个节点上选用/dev/sdc作为日志盘,先确定每个节点的硬盘情况,然后在部署节点(client)执行:

确认每个节点的硬盘情况:
ceph-deploy disk list ceph1 ceph2 ceph3 

清理ceph1、ceph2、ceph3节点上硬盘上现有数据和文件系统
ceph-deploy disk zap ceph1 /dev/sdb
ceph-deploy disk zap ceph2 /dev/sdb
ceph-deploy disk zap ceph3 /dev/sdb
ceph-deploy disk zap ceph1 /dev/sdc
ceph-deploy disk zap ceph2 /dev/sdc
ceph-deploy disk zap ceph3 /dev/sdc

添加osd
ceph-deploy osd create --data /dev/sdb --journal /dev/sdc --filestore ceph1
ceph-deploy osd create --data /dev/sdb --journal /dev/sdc --filestore ceph2
ceph-deploy osd create --data /dev/sdb --journal /dev/sdc --filestore ceph3

ceph-osd
5、ceph基本命令

#检查集群状态命令
ceph -s
ceph osd status
ceph tree
#列出所有ceph服务
systemctl status ceph\*.service ceph\*.target

#启动所有服务的守护进程
systemctl start ceph.target

#停止所有服务的守护进程
systemctl stop ceph.target

#按照服务类型启动服务守护进程
systemctl start ceph-osd.target
systemctl start ceph-mon.target
systemctl start ceph-mds.target

ceph
三、问题解决
1、问题:遇到集群状态不健康

health: HEALTH_WARN
            mon is allowing insecure global_id reclaim
解决:禁用不安全模式
ceph config set mon auth_allow_insecure_global_id_reclaim false

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注