ceph集群部署+基于ceph的对象存储部署方案
一 环境准备:
- 注:此标题下的操作所有节点均需配置
- 主机名和hosts文件设置
1
2
3
4
5
6
7
8
9
10
11#零时修改主机名:
hostname ceph-node1|ceph-node2|ceph-node3
#重启生效
vim /etc/sysconfig/network
HOSTNAME=ceph-node1|ceph-node2|ceph-node3
#修改hosts文件配置映射关系
vim /etc/hosts
#ceph集群
192.168.1.11 ceph-node1
192.168.1.12 ceph-node2
192.168.1.13 ceph-node3 - ssh免密登录
1
2
3
4
5
6
7
8#需要配置ceph-node1上配置免密登录到ceph-node2、ceph-node3
#服务器A:ssh客户端,服务器B:ssh服务端。在A机器上使用ssh 命令登录B机器
#在A机器上生成公钥加秘钥对
ssh-keygen -t rsa
#将公钥id_rsa.pub内容加到服务器端的~/.ssh/authorized_keys 即可
#所以本机上的authorized_keys文件中的公钥信息即是有哪些机器可以登录本机
#如无 authorized_keys 文件,可自行创建,但需要将权限改成600
ssh ceph-node1 - 安全设置
1
2
3
4
5
6
7#设置selinux临时状态为permissive
setenforce 0
#设置selinux重启默认关闭
sed -i 's@^\(SELINUX=\).*@\1disabled@' /etc/sysconfig/selinux
#关闭防火墙
service firewalld status
sudo service firewalld stop - ntp时间同步
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20#1. 安装chrony
sudo yum install chrony -y
#2. 修改配置文件/etc/chrony.conf,增加如下配置
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server time1.cloud.tencent.com iburst
server time2.cloud.tencent.com iburst
#3. 启动chrony
systemctl enable chronyd.service
systemctl restart chronyd.service
systemctl status chronyd.service
#4. 常用命令
#查看系统时间信息
timedatectl
#查看时间同步源
chronyc sources -v
#查看时间同步源状态:
chronyc sourcestats -v
#校准时间服务器:
chronyc tracking
二 ceph集群安装
配置python环境
所有节点均需配置1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29#对于解压的源码进行编译,所以首先设置编译环境: gcc
yum install -y gcc gcc-c++
#Perl库,包括 perl 兼容的正则表达式库
yum install -y pcre pcre-devel
#zlib库提供了很多种压缩和解压缩的方式
yum install -y zlib zlib-devel
#OpenSSL 是一个强大的安全套接字层密码库
yum install -y openssl openssl-devel
sudo yum install -y bzip2-devel ncurses-devel sqlite-devel gdbm-devel xz-devel tk-devel readline-devel
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz
cd Python-3.6.8/
./configure --prefix=/usr/local/python3
sudo make && sudo make install
sudo ln -snf /usr/local/python3/bin/python3 /usr/bin/python
sudo ln -snf /usr/local/python3/bin/python3 /usr/bin/python3
sudo ln -snf /usr/local/python3/bin/pip3 /usr/bin/pip3
vim /usr/bin/yum
把#! /usr/bin/python修改为#! /usr/bin/python2
vim /usr/libexec/urlgrabber-ext-down
把#! /usr/bin/python 修改为#! /usr/bin/python2
sudo yum install -y python-setuptools
sudo pip3 install ceph-deploy
sudo pip3 install pecan werkzeug -i https://pypi.tuna.tsinghua.edu.cn/simple
#对象存储测试
sudo pip install --upgrade python-swiftclient -i https://pypi.tuna.tsinghua.edu.cn/simpleyum源环境修改
所有节点均需配置1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21cat << EOF > /etc/yum.repos.d/ceph.repo
[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-octopus/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
EOF
#若官方源太慢可换成阿里源
https://mirrors.aliyun.com/ceph/rpm-octopus/el7/noarch/
vim /etc/yum.repos.d/ceph.repo
:%s/https\:\/\/download\.ceph\.com/https\:\/\/mirrors\.aliyun\.com/g
:%s/http\:\/\/download\.ceph\.com/http\:\/\/mirrors\.aliyun\.com/g
#因为Ceph包会依赖epel仓库的源包,会解决依赖关系,因此需要在每台主机上安装epel-release包
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sudo yum update -y
sudo yum install epel-release -y
sudo yum install -y ceph-deploy #deploy只需要安装在一台主机上
sudo yum -y install ceph-radosgw cephceph集群配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34#创建初始化目录 所有节点均需配置
mkdir /data/ceph-cluster/ && cd /data/ceph-cluster/
#创建命名为ceph集群
#ceph-deploy命令只需在安装有ceph-deploy的主机上执行,命令通过ssh免密认证操作所有节点
ceph-deploy new ceph-node1 ceph-node2 ceph-node3
cat ceph.conf
[global]
fsid = 76b533c8-f23a-46fb-8fd8-70c33c36cb3d
mon_initial_members = ceph-node1, ceph-node2, ceph-node3
mon_host = 192.168.1.11,192.168.1.12,192.168.1.13
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
public network = 172.16.1.0/24
osd_pool_default_size = 2 #配置文件的默认副本数从3改成2,这样只有两个osd也能达到active+clean状态,把下面这行加入到[global]段(可选配置)
ceph-deploy install ceph-node1 ceph-node2 ceph-node3
#如需指定版本安装或者换源,需在deploy命令里指定,如下
#ceph-deploy install --repo-url https://download.ceph.com/rpm-15.2.8/el7/ ceph-node1 ceph-node2 ceph-node3
#部署mon
ceph-deploy mon create-initial
#推送配置文件到各Ceph节点
ceph-deploy admin ceph-node1 ceph-node2 ceph-node3
ceph-deploy mgr create ceph-node1 ceph-node2 ceph-node3
#初始化OSD,sdb盘需申请,申请后无需格式化和挂载操作
ceph-deploy osd create --data /dev/sdb ceph-node1
ceph-deploy osd create --data /dev/sdb ceph-node2
ceph-deploy osd create --data /dev/sdb ceph-node3
#dashboard安装
sudo yum install -y ceph-mgr-dashboard
sudo yum install -y python3-routes python3-cherrypy python3-jwt
#注:centos7 不提供这三个包,需更新至centos8
#检查ceph状态
sudo ceph -s
三 配置对象存储
1 | #默认Ceph没有安装rgw,需要安装rgw,在所有rgw节点上安装 |
四 对象存储性能测试
1 | wget https://github.com/intel-cloud/cosbench/releases/download/v0.4.2.c4/0.4.2.c4.zip |