0%

Ceph luminous 安装配置

备注:
简易安装ceph luminous版本,用于kubernetes PV,详情移至Ceph官网,部署Ceph至少一个MON,三个OSD。Ceph 分布式存储集群有三大组件组成,分为:Ceph Monitor、Ceph OSD、Ceph MDS,后边使用对象存储和块存储时,MDS 非必须安装,只有当使用 Cephfs 文件存储时,才需要安装。

  • 自动部署osd可以采用 ceph-deploy ,也可以采用 ceph-disk 命令

  • luminous版本中,删除OSD可以直接使用 ceph osd purge 命令,比较省心

  • 生产环境中磁盘的挂载尽量采用uuid/partuuid

    1
    http://docs.ceph.com/docs/master/start/quick-ceph-deploy/
ip hosts 备注
172.16.2.30 server01 mon
172.16.2.31 server02 mon、osd,一块硬盘sdb
172.16.2.32 server03 mon、osd,三块硬盘sdb、sbc、sbd
172.16.2.33 server04 osd,一块硬盘sdb

环境准备(无必要说明,基本在172.16.2.30 server01操作)

基础阿里源

1
2
3
4
#使用阿里源
mv /etc/yum.repos.d/CentOS-Base.repo /home/CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

ceph阿里源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#创建ceph源
echo '
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/
gpgcheck=0
[ceph-source]
name=ceph-source
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS/
gpgcheck=0
'>/etc/yum.repos.d/ceph.repo
#生成缓存
yum clean all && yum makecache

关闭selinux、防火墙(每台服务器运行)

1
2
3
4
5
6
7
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
sed -i '/^SELINUX=.*/c SELINUX=disabled' /etc/selinux/config
sed -i 's/^SELINUXTYPE=.*/SELINUXTYPE=disabled/g' /etc/selinux/config
grep --color=auto '^SELINUX' /etc/selinux/config
setenforce 0

时间同步(每台服务器运行)

1
2
3
4
yum install ntp -y
/usr/sbin/ntpdate ntp6.aliyun.com
echo "*/3 * * * * /usr/sbin/ntpdate ntp6.aliyun.com &> /dev/null" > /tmp/crontab
crontab /tmp/crontab

hosts(每台服务器运行)

1
2
3
4
5
6
echo '#ceph
172.16.2.30 server01
172.16.2.31 server02
172.16.2.32 server03
172.16.2.33 server03
'>>/etc/hosts

添加硬盘、查看状态,无需分区、格式化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 如在server04、server03、server02添加硬盘,如server03
[root@server03 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 7.9G 0 lvm
└─centos-home 253:2 0 41.1G 0 lvm /home
sdb 8:16 0 10G 0 disk
sdc 8:32 0 10G 0 disk
sdd 8:48 0 10G 0 disk
sr0 11:0 1 4.2G 0 rom

免密访问

1
2
3
4
ssh-kengen
ssh-copy-id root@172.16.2.31
ssh-copy-id root@172.16.2.32

安装Ceph

更新仓库并安装ceph-deploy

1
yum update && yum install ceph-deploy -y

创建集群配置

ceph-deploy 工具部署集群前需要创建一些集群配置信息,其保存在 ceph.conf 文件中

1
2
3
4
5
6
# 创建集群配置目录
mkdir ceph-cluster && cd ceph-cluster
# 创建 monitor-node
ceph-deploy new server01 server02 server03
# 追加 OSD 副本数量(测试虚拟机总共有3台)
echo "osd pool default size = 3" >> ceph.conf

创建集群

创建集群使用 ceph-deploy 工具即可

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
35
36
37
38
39
40
# 安装 ceph
ceph-deploy install server01 server02 server03 server04
#yum install -y ceph-radosgw ceph ceph-release ceph-common
# 初始化 monitor node 和 秘钥文件
ceph-deploy mon create-initial
# 部署 ceph cli 工具和秘钥文件,以便在各个 Node 上使用 ceph 命令时,无需指定 monitor 地址和 ceph.client.admin.keyring 密钥
ceph-deploy admin server01 server02 server03 server04
# 部署管理守护进程
ceph-deploy mgr create server01 server02 server03
# 添加osd存储,添加硬盘,生产环境需要在OSD节点添加
ceph-deploy osd create --data /dev/sdb server02
ceph-deploy osd create --data /dev/sdb server03
ceph-deploy osd create --data /dev/sdc server03
ceph-deploy osd create --data /dev/sdd server03
ceph-deploy osd create --data /dev/sdb server04

# 假如重新部署ceph,删ceph之前没有删除osd,可以使用以下命令
lvscan
vgscan
pvscan

lvremove
vgremove
pvremove

# 检测集群状态
ceph health
# 查看集群状态
ceph -s

#启动dashboard
ceph mgr module enable dashboard
ceph config-key put mgr/dashboard/server_addr 172.16.2.30
ceph config-key put mgr/dashboard/server_port 7000

# 重置集群重新部署
ceph-deploy purge {ceph-node} [{ceph-node}]
ceph-deploy purgedata {ceph-node} [{ceph-node}]
ceph-deploy forgetkeys
rm ceph.*

新增组件,如mon

1
2
3
4
5
6
7
8
9
10
# 创建 MDS
ceph-deploy mds create server01
# 创建 RGW
ceph-deploy rgw create server01
# 增加 monitor
echo "public network = 172.16.2.0/24" >> ceph.conf
ceph-deploy --overwrite-conf mon add server02
ceph-deploy --overwrite-conf mon add server03
# 查看仲裁信息
ceph quorum_status --format json-pretty

创建块设备

1
2
3
4
5
6
7
8
9
10
# 创建存储池
rados mkpool data
# 创建 image
rbd create data --size 10240 -p data
# 关闭不支持特性
rbd feature disable data exclusive-lock, object-map, fast-diff, deep-flatten -p data
# 映射(每个节点都要映射)
rbd map data --name client.admin -p data
# 格式化块设备(单节点即可)
mkfs.xfs /dev/rbd0

其他操作

#增加pool
ceph osd pool create kube 128
#删除 pool,先在ceph.conf 增加下面:
mon_allow_pool_delete = true
#重启ceph-mon:
systemctl restart ceph-mon@server01
#删除
ceph osd pool rm kube kube --yes-i-really-really-mean-it