Ceph技术权威概览.docx
《Ceph技术权威概览.docx》由会员分享,可在线阅读,更多相关《Ceph技术权威概览.docx(30页珍藏版)》请在冰豆网上搜索。
Ceph技术权威概览
Ceph技术权威概览
原理、安装、维护、最佳实践
目录
一、Ceph在存储中的层次4
二、Ceph原理4
1.Ceph存储系统的逻辑结构5
2.Rados的系统逻辑结构5
3.Ceph寻址流程5
4.ceph部署网络拓扑6
三、Ceph安装(ceph-deploy)6
1.环境准备以及各ceph节点初始化6
2.部署Ceph集群8
四、Ceph安装(kolla)11
1.环境准备以及各ceph节点初始化11
2.部署Ceph集群13
五、Ceph维护15
1.整个集群维护15
2.OSD查看|增加|删除15
3.Monitor增加|删除|查看17
4.MDS维护[暂不考虑]18
5.Pools&pg维护18
6.对象存储19
7.块存储22
8.文件存储(暂不考虑)24
9.推送配置文件&&重启服务24
10.环境清理至刚安装ceph时24
11.硬盘操作25
12.任意节点能执行管理功能27
六、Ceph注意事项/问题排查27
1.Rawdrive禁用写缓存27
2.谨慎选择文件系统27
3.cephX认证系统27
4.升级时需先关闭认证27
5.跑FetchingCephkeyrings报错28
6.Monitor时钟问题28
一、Ceph在存储中的层次
第一层:
物理存储介质。
a.LUN:
通常将硬件生成生成的虚拟磁盘叫LUN,比如raid卡生成的虚拟磁盘。
b.Volume:
通常将软件层次生成的虚拟磁盘叫做卷,比如LVM生成的逻辑卷。
c.Disk:
就是物理磁盘
第二层:
内核层次的文件系统,维护文件到磁层磁盘的映射关系。
(用户一般不需要管)
第三层:
应用层次的文件系统(需要用户自己手工安装应用程序,启动应用进程)
第四层:
网络文件访问系统NFS,CIFS(服务器端装Server,客户端装Client,挂载目录远程访问)
二、Ceph原理
参考:
1.Ceph存储系统的逻辑结构
2.Rados的系统逻辑结构
3.Ceph寻址流程
4.ceph部署网络拓扑
备注:
ClusterNetwork可选,但是最好建议有该网络,用于OSD扩展时,后端网络传输数据用。
在实际工作中时,深有体会,如果只有publicnetwork,在OSD扩展时,由于ceph需要重新“搬运”数据,导致升级长达5个小时。
如果有专门的集群网络(万兆交换机+光钎),几分钟升级完成。
三、Ceph安装(ceph-deploy)
参考:
http:
//docs.openfans.org/ceph/(上述官网的汉化版)
http:
//docs.openstack.org/mitaka/config-reference/block-storage.html
1.环境准备以及各ceph节点初始化
Ø部署逻辑架构
节点
安装组件
备注
hostname:
ceph1
ip:
192.168.11.119
ceph-deploy、mon、osd
OS:
Centos7.2
AdminNode与Ceph1共享
hostname:
ceph2
ip:
192.168.11.124
mon、osd
hostname:
ceph3
ip:
192.168.11.112
mon、osd
该章节的操作均通过root执行且在各个ceph节点均要执行
Ø修改/etc/hostname
#vi/etc/hostname#如果为其他节点调整为其他节点的名称
ceph{number}#如ceph1
#hostname-F/etc/hostname#立即生效,断开shell重新登录
Ø创建安装用户irteam且该用户不需要tty
#useradd-d/home/irteam-k/etc/skel-mirteam
#sudopasswdirteam
#echo"irteamALL=(root)NOPASSWD:
ALL"|sudotee/etc/sudoers.d/irteam
#chmod0440/etc/sudoers.d/irteam
修改/etc/sudoers,irteam用户不需要tty
#chmod755/etc/sudoers
#vi/etc/sudoers#添加如下配置,而不是将原来的Defaultrequiretty注释掉
Defaults:
irteam!
requiretty
#chmod440/etc/sudoers
Øyum源以及ceph源设置
#yumcleanall
#rm-rf/etc/yum.repos.d/*.repo
#wget-O/etc/yum.repos.d/CentOS-Base.repo
#wget-O/etc/yum.repos.d/epel.repo
#sed-i'/aliyuncs/d'/etc/yum.repos.d/CentOS-Base.repo
#sed-i's/$releasever/7.2.1511/g'/etc/yum.repos.d/CentOS-Base.repo
#vi/etc/yum.repos.d/ceph.repo#增加ceph源
[ceph]
name=ceph
baseurl=
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=
gpgcheck=0
Ø安装ceph
#yummakecache
#yuminstall-yceph
#ceph--version#版本查看
cephversion10.2.2(45107e21c568dd033c2f0a3107dec8f0b0e58374)
Ø关闭selinux&firewalld
#sed-i's/SELINUX=.*/SELINUX=disabled/'/etc/selinux/config
#setenforce0
#systemctlstopfirewalld
#systemctldisablefirewalld
Ø同步时间节点(rdate&ntp均可以)
参考:
http:
//www.android100.org/html/201407/26/46537.html
#timedatectlset-timezoneAsia/Shanghai#设置时区
#yuminstall-yrdate
#rdate-s#选个可用且权威的服务器
#echo"0001**rootrdate-s">>/etc/crontab#加入调度
2.部署Ceph集群
备注:
以下操作均在admin-node节点执行,在本文中,由于admin-node与ceph1共享,所以在ceph1执行就可以了,统一用用户:
irteam执行
Ø修改/etc/hosts
#sudovi/etc/hosts
192.168.11.119ceph1
192.168.11.124ceph2
192.168.11.112ceph3
Ø生成密钥对&复制秘钥到各节点(防止部署输入密码,即无密码验证)
#sudosu-irteam
#ssh-keygen
Generatingpublic/privatekeypair.
Enterfileinwhichtosavethekey(/irteam/.ssh/id_rsa):
Enterpassphrase(emptyfornopassphrase):
Entersamepassphraseagain:
Youridentificationhasbeensavedin/irteam/.ssh/id_rsa.
Yourpublickeyhasbeensavedin/irteam/.ssh/id_rsa.pub.
#ssh-copy-idirteam@ceph1
#ssh-copy-idirteam@ceph2
#ssh-copy-idirteam@ceph3
Ø用户配置,防止部署时输入用户名
#sudosu-irteam#如果当前登录用户是irteam,则忽略该步骤
#vi~/.ssh/config
StrictHostKeyCheckingno
Hostceph1
Hostnameceph1
Userirteam
Hostceph2
Hostnameceph2
Userirteam
Hostceph3
Hostnameceph3
Userirteam
#chmod600~/.ssh/config
Ø安装部署工具
#sudoyum-yinstallceph-deploy
#ceph-deploy--version
1.5.34
Ø创建集群
#sudosu-irteam#如果当前登录用户是irteam,则不用执行
#mkdir~/my-cluster&&cd~/my-cluster
#创建集群:
在当前目录下生成ceph.conf以及ceph.mon.keyring
#ceph-deploynewceph1ceph2ceph3
#ls~/my-cluster#查看生成的文件
ceph.confceph-deploy-ceph.logceph.mon.keyring
修改集群ceph.conf配置,增加public_network,增加monitor之间的时差(默认为0.05s,现改为2s),总共的副本数据调整为2
#viceph.conf
[global]
fsid=7cec0691-c713-46d0-bce8-5cb1d57f051f
mon_initial_members=ceph1,ceph2,ceph3#也可以用IP,用hostname最佳
mon_host=192.168.11.119,192.168.11.124,192.168.11.112
auth_cluster_required=cephx
auth_service_required=cephx
auth_client_required=cephx
public_network=192.168.11.0/24
mon_clock_drift_allowed=2
osd_pool_d