CEPH简介
ceph提供:对象存储,块设备,文件系统。
Ceph存储集群至少需要一个Ceph Monitor,Ceph Manager和Ceph OSD(对象存储守护进程)。运行Ceph Filesystem客户端时也需要Ceph元数据服务器。
Monitors :ceph-mon 维护集群状态的映射,管理守护进程和客户端之间的身份验证,高可用至少需要3个Monitors 节点
Managers:ceph-mgr Ceph集群的当前状态,高可用性通常至少2个Managers节点
Ceph OSDs:ceph-osd 存储数据,处理数据复制,恢复,重新平衡,并通过检查其他Ceph OSD守护进程来获取心跳,为Ceph监视器和管理器提供一些监视信息。冗余和高可用性通常至少需要3个Ceph OSD。
MDSs :ceph-mds 文件系统存储原数据服,Ceph块设备和Ceph对象存储不使用MDS
手动部署
ceph版本 minic 13.2
主机名 | ip地址 | 系统版本 | ceph版本 | 节点 |
node01 | 172.16.50.104 | CentOS Linux release 7.4.1708 (Core) | minic 13.2 | mon,osd |
node02 | 172.16.50.111 | CentOS Linux release 7.4.1708 (Core) | minic 13.2 | osd |
node03 | 172.16.50.131 | CentOS Linux release 7.4.1708 (Core) | minic 13.2 | osd |
系统初始化
关闭selinux
启用epel源:yum install epel-releas
添加ceph源:/etc/yum.repos.d/ceph.repo 内容如下:
[Ceph] name=Ceph packages for $basearch baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/$basearch enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc priority=1 [Ceph-noarch] name=Ceph noarch packages baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc priority=1 [ceph-source] name=Ceph source packages baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/SRPMS enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc priority=1
安装ceph
yum install ceph ceph-radosgw -y
Mon节点部署
创建配置文件:/etc/ceph/ceph.conf
[global] fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993 mon initial members = node01 mon host = 172.16.50.104 auth cluster required = cephx auth service required = cephx auth client required = cephx osd journal size = 1024 osd pool default size = 2 osd pool default min size = 1 osd crush chooseleaf type = 1 [mon] mon data = /data/ceph/mon/$cluster-$id
为群集创建密钥环,并生成监视器密钥。
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
生成管理员密钥;生成client.admin 用户,并将用户添加到密钥环。
ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
生成一个bootstrap-osd密钥环,生成client.bootstrap-osd用户,并将用户添加到密钥环。
ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd'
将生成的密钥添加到ceph.mon.keyring环中
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
使用主机名、主机IP地址和FSID生成监视器映射,保存到/tmp/monmap
uuid=a7f64266-0894-4f1e-a635-d0aeaca0e993
name=node01
ip=172.16.50.104
monmaptool --create --add $name $ip --fsid $uuid /tmp/monmap
在mon主机上创建默认数据目录
mkdir /data/ceph/mon -p
初始化mon
ceph-mon --mkfs -i $name --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
touch /data/ceph/mon/ceph-$name/done
chown ceph:ceph /data/ceph/ -R
systemctl enable ceph-mon@$name
systemctl start ceph-mon@$name
验证monitor运作
ceph -s cluster: id: ef88b5bc-3eba-495b-a00c-9851c465bc2b health: HEALTH_OK services: mon: 1 daemons, quorum node01 mgr: no daemons active osd: 0 osds: 0 up, 0 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0 B usage: 0 B used, 0 B / 0 B avail pgs:
在运行ceph-mon守护程序的每个节点上,还应该设置ceph-mgr守护程序。
ceph-mgr部署
创建身份认证密钥
ceph auth get-or-create mgr.node01 mon 'allow profile mgr' osd 'allow *' mds 'allow *'
将输出保存到 /var/lib/ceph/mgr/ceph-node01/keyring
文件中
启动
systemctl enable ceph-mgr@node01
systemctl start ceph-mgr@node01
验证mgr:
ceph -s ..... services: mgr: node01(active) ......
添加osd以node02为列
将配置文件/var/lib/ceph/bootstrap-osd/ceph.keyring
,/etc/ceph/ceph.conf
拷贝到需要安装osd服务器
scp /var/lib/ceph/bootstrap-osd/ceph.keyring root@node02:/var/lib/ceph/bootstrap-osd/ceph.keyring scp /etc/ceph/ceph.conf root@node02:/etc/ceph
ssh node02 UUID=$(uuidgen) OSD_SECRET=$(ceph-authtool --gen-print-key) ID=$(echo "{\"cephx_secret\": \"$OSD_SECRET\"}" | ceph osd new $UUID -i - -n client.bootstrap-osd -k /var/lib/ceph/bootstrap-osd/ceph.keyring) mkdir /data/ceph/osd -p && ln -s /data/ceph/osd/ /var/lib/ceph/osd/ceph-$ID ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-$ID/keyring --name osd.$ID --add-key $OSD_SECRET ceph-osd -i $ID --mkfs --osd-uuid $UUID chown ceph:ceph /var/lib/ceph/osd/ceph-$ID -R systemctl enable ceph-osd@$ID systemctl start ceph-osd@$ID
在查看集群状态
cluster: id: a7f64266-0894-4f1e-a635-d0aeaca0e993 health: HEALTH_OK services: mon: 1 daemons, quorum node01 mgr: node01(active) osd: 3 osds: 3 up, 3 in data: pools: 1 pools, 8 pgs objects: 5 objects, 389 B usage: 3.3 GiB used, 297 GiB / 300 GiB avail pgs: 8 active+clean
至此可以使用对象存储,及块设备(生产不建议这样使用至少需要3个mon节点,2个mgr节点)
dashboard 部署
它是基于mgr python的插件
启用dashboard插件
ceph mgr module enable dashboard
生成自签名证书
ceph dashboard create-self-signed-cert
配置dashboard监听
ceph config set mgr mgr/dashboard/node01/server_addr 172.16.50.104
ceph config set mgr mgr/dashboard/node01/server_port 1888
配置dashboard认证
ceph dashboard set-login-credentials root 123456
访问:https://172.16.50.104:1888