ceph部署

非常简单的ceph部署手册,主要方便大家用于学习研究,非生产可用!!

基础环境信息

版本信息

操作系统:ubuntu16.04
内核版本:4.4.0-87-generic
ceph版本:13.2.7(mimic)

主机角色信息

主机名 IP地址 角色 配置
rke-node1 192.168.0.5 ceph-mon
rke-node2 192.168.0.6 ceph-osd1 100G HDD
rke-node3 192.168.0.7 ceph-osd2 100G HDD
rke-node4 192.168.0.8 ceph-osd3 100G HDD

部署安装

配置源

1
echo deb https://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
1
apt update

安装python-minimal

1
2
apt install

安装ceph-deploy

1
2
sudo apt install ceph-deploy

创建普通用户

在集群中所有节点创建ceph用户,主要用于ceph-deploy部署(虽然可以用root,但不建议这样做)

1
2
3
4
5
6
useradd -d /home/ceph -m ceph
passwd ceph

echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph

chmod 0440 /etc/sudoers.d/ceph

在ceph-deploy节点使用ceph用户登录,配置节点免密码ssh

1
su - ceph
1
ssh-keygen
1
ssh-copy-id host_name

建立集群

创建集群文件夹

1
sudo mkdir /etc/ceph
1
cd etc/ceph

创建集群部署ceph-monitor

1
2
3
4
5
sudo ceph-deploy new  rke-node1


注:
rke-node1为我要部署monitor的实际的FQDN主机名
1
2

sudo ceph-deploy install rke-node1 rke-node2 rke-node3 rke-node4 --repo-url=http://mirrors.aliyun.com/ceph/debian-mimic

注:
这里指定使用安装源,因为连国外网慢

初始化ceph-mon

1
ceph-deploy mon create-initial

注意:

1、若遇到没有权限创建/var/run/ceph目录时可以手动创建然后将用户和属主改为ceph。

同步权限配置文件

1
sudo ceph-deploy admin rke-node1 rke-node2 rke-node3 rke-node4

部署ceph-mgr

1
sudo ceph-deploy mgr create rke-node1

初始化并启动OSD

1
2
3
sudo ceph-deploy osd create --data /dev/vdb rke-node2
sudo ceph-deploy osd create --data /dev/vdb rke-node3
sudo ceph-deploy osd create --data /dev/vdb rke-node4

查看是否加入成功和ceph集群状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo ceph -s
cluster:
id: dc33e445-6157-47cd-81b2-23f9b233839e
health: HEALTH_OK

services:
mon: 1 daemons, quorum rke-node1
mgr: rke-node1(active)
osd: 3 osds: 3 up, 3 in

data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 3.0 GiB used, 294 GiB / 297 GiB avail
pgs:

查看osd状态

1
2
3
4
5
6
7
8
9
10
 sudo ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0.29008 root default
-3 0.09669 host rke-node2
0 hdd 0.09669 osd.0 up 1.00000 1.00000
-5 0.09669 host rke-node3
1 hdd 0.09669 osd.1 up 1.00000 1.00000
-7 0.09669 host rke-node4
2 hdd 0.09669 osd.2 up 1.00000 1.00000

启用ceph-dashboard

通过ceph-mgr启用dashboard功能

1
ceph mgr module enable dashboard

设置访问ip和端口

1
2
3
ceph config set mgr mgr/dashboard/server_addr 172.16.0.195
ceph config set mgr mgr/dashboard/server_port 8800

设置管理员帐号和密码

1
ceph dashboard set-login-credentials admin admin@2019

访问http://主机ip:8800

测试

创建pool

因为我们osd数量小于4设置pg为128

1
ceph osd pool create test-pool 128

在pool内创建文件

在test-pool内创建一个名为rbdtest的文件

1
rbd -p test-pool create rbdtest -s 1G

查看是否创建成功

1
2
rbd ls -p test-pool
rbdtest

使用nbd将块映射到宿主机

因为ceph比较新,ubuntu16.04默认内核不支持一些新feture,所以这里就不用rbd进行map了。
安装

1
apt-get install rbd-nbd
1
2
3
4
5
rbd-nbd map test-pool/test-rbd

rbd-nbd list-mapped
id pool image snap device
31755 test-pool rbdtest - /dev/nbd0

格式化

1
mkfs.xfs /dev/nbd0

挂载并测试写入数据

1
mount /dev/nbd0  /mnt/
1
echo test > /mnt/test

卸载

1
2
umount /mnt
rbd-nbd unmap /dev/nbd0