版本1.0
撰写时间:2018-5-31
Author:李松杉
环境:
192.168.8.196 node1
192.168.8.197 node2(admin server)
192.168.8.199 node3
1、更改主机名,增加主机对应关系
192.168.8.196 node1
192.168.8.197 node2
192.168.8.199 node3
hostnamectl set-hostnamenode1
hostnamectl set-hostnamenode2
hostnamectl set-hostnamenode3
2、无秘钥
node2:
ssh-keygen
ssh-copy-id node1
ssh-copy-id node3
3、更新yum源
yum install -yhttps://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
4、添加ceph源
[Ceph]
name=Ceph packages for$basearch
baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/$basearch
enabled=1
priority=1
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/noarch
enabled=1
priority=1
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/SRPMS
enabled=0
priority=1
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
5、安装ceph-deploy
yum -yinstallpython-setuptools ceph-deploy
6、安装ceph
先在所有server上部署yuminstall-y deltarpm
在node2
ceph-deployinstall--release=luminous node1 node2 node3
二、建立ceph集群
1、创建ceph-deploy执行过程中生成控制文件的目录
node2:
mkdir/etc/test-ceph-deploy
cdmkdir/etc/test-ceph-deploy
2、创建集群:1mon+1mgr
2.1 创建一个monitor
node2:
ceph-deploynewnode2
配置ceph网络
注:如果一开始没有配置网络(ceph集群使用两个网络:public network和cluster network。前者用于服务client;后者用于集群内部通信,例如osd之间迁移数据。另外,两个网络上都有heartbeat。)后面在扩展mon节点时会报错
解决方案增加ceph.conf中网络配置,并且推送到所有节点
node2:
ceph-deploy --overwrite-conf config push node1 node2 node3
2.2 获取密钥
node2:
ceph-deploy mon create-initial
2.3 分发密钥
node2:
ceph-deployadminnode1 node2 node3
2.4 部署initial monitor
node2:
ceph-deploy moncreatenode2
2.5创建mgr
node2:
ceph-deploy mgr createnode2
检查
2.6 添加osd
1)、添加node1上的osd.1
node2:
ceph-deploy osd create node1 --data /dev/sdb
2)、添加node2上的osd.2
node2:
ceph-deploy osd create node2 --data /dev/sdb
3)、添加node3上的osd.3
node2:
ceph-deploy osd create node3 --data /dev/sdb
检查状态
2.7添加两个mon+添加两个mgr
node2:
ceph-deploy monaddnode1
ceph-deploy monaddnode3
ceph-deploy mgr create node1
ceph-deploy mgr create node3
检查
注:检查提示 node2和node3 时间不一致,集群异常,处理方法同步时间
node1、node2、node3:
配置时间管理工具chrony
2.7 增加一个mds
node2:
ceph-deploy mds createnode2
如下,我们通过ceph -s看不到mds服务。直到创建ceph filesystem的时候,mds才进入active状态(见4.1节)。
至此,ceph集群就完全部署起来了。下面,我们为ceph集群增加一些client。
3 增加rgw(在node2,管理端操作)
我们可以使用ceph集群之外的server来部署rgw。部署之前,需要保证默认端口(7480)没有被防火墙禁止。并且需要安装ceph-radosgw包机器依赖:
ceph-deploy install --rgw []
为了方便起见,我们复用集群内的node1和node3来部署rgw。(可以在node1和node3上ps查看,并且可以通过http访问)
ceph-deploy rgw createnode1node3
node2上http访问
4、增加cephfs
ceph filesystem需要mds,并且有两种方式来挂载:ceph fuse和ceph kernel driver。
在这一节,我们:
创建一个ceph filesystem
通过ceph fuse挂载
通过ceph kernel driver挂载
4.1 创建ceph filesystem (在集群内任意主机皆可)
1)、创建所需的pool
ceph osd pool create cephfs_data 80
ceph osd pool create cephfs_metadata 40
2)、创建ceph filesystem
ceph fsnewmycephfscephfs_metadata cephfs_data
创建filesystem 后mds就会active
4.2 通过ceph fuse挂载(在任意客户端机器,这里复用了node2)
和rgw一样,原则上我们在ceph集群之外的某台server上挂载ceph filesystem。但为了方便起见,我们还是在node2上挂载。
1)、部署ceph fuse包;
yum -yinstallceph-fuse
2)、创建一个挂载点,就可以挂载了。注意ceph-fuse使用admin权限,所以通过-k选项传入admin的key。
[root@node2~]# mkdir /mnt/cephfs
[root@node2~]# ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m node1:6789 /mnt/cephfs
这时候,一个全新的ceph filesystem就可以使用了。注意:这时cephfs_data是空的,但cephfs_metadata不空:
ceph df
创建文件后cephfs_data也有数据
5.增加rbd
5.1 准备rbd pool
在集群内的任意server上创建一个pool:
ceph osd pool create rbd_pool 10 10
5.2 创建块设备
首先我们尝试在集群内的 一个server(node1)上创建块设备
需要先安装ceph-common
yum-y install ceph-common
创建块设备
1、将admin的key独立保存admin.secret文件
rbd create foo --size4906--image-feature layering -m192.168.8.196-K admin.secret -p rbd_pool
rbd map foo --name client.admin -m192.168.8.196-K admin.secret -p rbd_pool
错误:
此错误是因为内核版本低造成,需要升级内核版本
石墨链接:
https://shimo.im/docs/aQqL932X2R4rrMpo/ 点击链接查看「ceph12.2.5部署记录」
关注链接:
http://cephnotes.ksperis.com
http://docs.ceph.org.cn/
https://ceph.com/