Ceph官方文档翻译.docx
- 文档编号:10569680
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:21
- 大小:33.24KB
Ceph官方文档翻译.docx
《Ceph官方文档翻译.docx》由会员分享,可在线阅读,更多相关《Ceph官方文档翻译.docx(21页珍藏版)》请在冰点文库上搜索。
Ceph官方文档翻译
Ceph官方文档翻译
石家庄众毅信息技术有限公司
2017年06月
在此处插入索引和目录
准备¶
Newinversion.
谢谢您尝试Ceph!
我们建议安装一个ceph-deploy管理节点和一个三节点的Ceph存储集群来研究Ceph的基本特性。
这篇预检会帮你准备一个ceph-deploy管理节点、以及三个Ceph节点(或虚拟机),以此构成Ceph存储集群。
在进行下一步之前,请参见操作系统推荐以确认你安装了合适的Linux发行版。
如果你在整个生产集群中只部署了单一Linux发行版的同一版本,那么在排查生产环境中遇到的问题时就会容易一点。
在下面的描述中节点代表一台机器。
在没有DNS的情况下,需要手动修改各个主机的hosts文件和主机名
安装Ceph部署工具¶
把Ceph仓库添加到ceph-deploy管理节点,然后安装ceph-deploy。
高级包管理工具(APT)¶
在Debian和Ubuntu发行版上,执行下列步骤:
1.添加releasekey:
wget-q-O-''|sudoapt-keyadd-
2.添加Ceph软件包源,用Ceph稳定版(如cuttlefish、dumpling、emperor、firefly等等)替换掉{ceph-stable-release}。
例如:
3.echodeb$(lsb_release-sc)main|sudotee/etc/apt/更新你的仓库,并安装ceph-deploy:
sudoapt-getupdate&&sudoapt-getinstallceph-deploy
Note
你也可以从欧洲镜像下载软件包,只需把替换成即可。
红帽包管理工具(RPM)¶
在RedHat(rhel6、rhel7)、CentOS(el6、el7)和Fedora19-20(f19-f20)上执行下列步骤:
1.(只需要在管理节点)在RHEL7上,用subscription-manager注册你的目标机器,确认你的订阅,并启用安装依赖包的“Extras”软件仓库。
例如:
如果使用ceph-deploy部署,则不需要此步骤
sudosubscription-managerrepos--enable=rhel-7-server-extras-rpms
2.在RHEL6上,安装并启用ExtraPackagesforEnterpriseLinux(EPEL)软件仓库。
请查阅EPELwiki获取更多信息。
3.(只需要在管理节点)在CentOS上,可以执行下列命令:
sudoyuminstall-yyum-utils
sudoyum-config-manager--add-repo
sudoyuminstall--nogpgcheck-yepel-release
sudorpm--import/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
4.sudorm/etc/(只需要在管理节点)把软件包源加入软件仓库。
用文本编辑器创建一个YUM(YellowdogUpdater,Modified)库文件,其路径为/etc/。
例如:
sudovim/etc/把如下内容粘帖进去,用Ceph的最新主稳定版名字替换{ceph-stable-release}(如firefly),用你的Linux发行版名字替换{distro}(如el6为CentOS6、el7为CentOS7、rhel6为RedHat、rhel7为RedHat7、fc19是Fedora19、fc20是Fedora20)。
最后保存到/etc/文件中。
[ceph-noarch]
name=Cephnoarchpackages
5.baseurl=更新软件库并安装ceph-deploy:
sudoyumupdate&&sudoyuminstallceph-deploy
Note
你也可以从欧洲镜像下载软件包,只需把替换成即可。
Ceph节点安装¶
你的管理节点必须能够通过SSH无密码地访问各Ceph节点。
如果ceph-deploy以某个普通用户登录,那么这个用户必须有无密码使用sudo的权限。
安装NTP¶
我们建议在所有Ceph节点上安装NTP服务(特别是CephMonitor节点),以免因时钟漂移导致故障,详情见时钟。
在CentOS/RHEL上,执行:
sudoyuminstallntpntpdatentp-doc
在Debian/Ubuntu上,执行:
sudoapt-getinstallntp
确保在各Ceph节点上启动了NTP服务,并且要使用同一个NTP服务器,详情见NTP。
安装SSH服务器¶
在所有Ceph节点上执行如下步骤:
1.在各Ceph节点安装SSH服务器(如果还没有):
sudoapt-getinstallopenssh-server
或者
sudoyuminstallopenssh-server
2.确保所有Ceph节点上的SSH服务器都在运行。
创建部署Ceph的用户¶
ceph-deploy工具必须以普通用户登录Ceph节点,且此用户拥有无密码使用sudo的权限,因为它需要在安装软件及配置文件的过程中,不必输入密码。
较新版的ceph-deploy支持用--username选项提供可无密码使用sudo的用户名(包括root,虽然不建议这样做)。
使用ceph-deploy--username{username}命令时,指定的用户必须能够通过无密码SSH连接到Ceph节点,因为ceph-deploy中途不会提示输入密码。
我们建议在集群内的所有Ceph节点上给ceph-deploy创建一个特定的用户,但不要用“ceph”这个名字。
全集群统一的用户名可简化操作(非必需),然而你应该避免使用知名用户名,因为黑客们会用它做暴力破解(如root、admin、{productname})。
后续步骤描述了如何创建无sudo密码的用户,你要用自己取的名字替换{username}。
Note
从Infernalis版起,用户名“ceph”保留给了Ceph守护进程。
如果Ceph节点上已经有了“ceph”用户,升级前必须先删掉这个用户。
1.在各Ceph节点创建新用户。
sshuser@ceph-server
sudouseradd-d/home/{username}-m{username}
sudopasswd{username}
2.确保各Ceph节点上新创建的用户都有sudo权限。
echo"{username}ALL=(root)NOPASSWD:
ALL"|sudoteeetc/{username}
sudochmod0440/etc/{username}
允许无密码SSH登录¶
正因为ceph-deploy不支持输入密码,你必须在管理节点上生成SSH密钥并把其公钥分发到各Ceph节点。
ceph-deploy会尝试给初始monitors生成SSH密钥对。
1.生成SSH密钥对,但不要用sudo或root用户。
提示“Enterpassphrase”时,直接回车,口令即为空:
ssh-keygen
Generatingpublic/privatekeypair.
Enterfileinwhichtosavethekey(/ceph-admin/.ssh/id_rsa):
Enterpassphrase(emptyfornopassphrase):
Entersamepassphraseagain:
Youridentificationhasbeensavedin/ceph-admin/.ssh/id_rsa.
Yourpublickeyhasbeensavedin/ceph-admin/.ssh/.
2.把公钥拷贝到各Ceph节点,把下列命令中的{username}替换成前面创建部署Ceph的用户里的用户名。
ssh-copy-id{username}@node1
ssh-copy-id{username}@node2
ssh-copy-id{username}@node3
3.(推荐做法)修改ceph-deploy管理节点上的~/.ssh/config文件,这样ceph-deploy就能用你所建的用户名登录Ceph节点了,而无需每次执行ceph-deploy都要指定--username{username}。
这样做同时SSH也简化了ssh和scp的用法。
把{username}替换成你创建的用户名。
需要使用chmod600~/.ssh/config修改权限,否则会报错
Hostnode1
Hostnamenode1
User{username}
Hostnode2
Hostnamenode2
User{username}
Hostnode3
Hostnamenode3
User{username}
启动时联网¶
Ceph的各OSD进程通过网络互联并向Monitors上报自己的状态。
如果网络默认为off,那么Ceph集群在启动时就不能上线,直到你打开网络。
某些发行版(如CentOS)默认关闭网络接口。
所以需要确保网卡在系统启动时都能启动,这样Ceph守护进程才能通过网络通信。
例如,在RedHat和CentOS上,需进入/etc/sysconfig/network-scripts目录并确保ifcfg-{iface}文件中的ONBOOT设置成了yes。
确保联通性¶
用ping短主机名(hostname-s)的方式确认网络联通性。
解决掉可能存在的主机名解析问题。
Note
主机名应该解析为网络IP地址,而非回环接口IP地址(即主机名应该解析成非的IP地址)。
如果你的管理节点同时也是一个Ceph节点,也要确认它能正确解析自己的主机名和IP地址(即非回环IP地址)。
开放所需端口¶
CephMonitors之间默认使用6789端口通信,OSD之间默认用6800:
7300这个范围内的端口通信。
详情见网络配置参考。
CephOSD能利用多个网络连接进行与客户端、monitors、其他OSD间的复制和心跳的通信。
某些发行版(如RHEL)的默认防火墙配置非常严格,你可能需要调整防火墙,允许相应的入站请求,这样客户端才能与Ceph节点上的守护进程通信。
对于RHEL7上的firewalld,要对公共域开放CephMonitors使用的6789端口和OSD使用的6800:
7300端口范围,并且要配置为永久规则,这样重启后规则仍有效。
例如:
sudofirewall-cmd--zone=public--add-port=6789/tcp--permanent
若使用iptables,要开放CephMonitors使用的6789端口和OSD使用的6800:
7300端口范围,命令如下:
sudoiptables-AINPUT-i{iface}-ptcp-s{ip-address}/{netmask}--dport6789-jACCEPT
在每个节点上配置好iptables之后要一定要保存,这样重启之后才依然有效。
例如:
/sbin/serviceiptablessave
终端(TTY)¶
在CentOS和RHEL上执行ceph-deploy命令时可能会报错。
如果你的Ceph节点默认设置了requiretty,执行sudovisudo禁用它,并找到Defaultsrequiretty选项,把它改为Defaults:
ceph!
requiretty或者直接注释掉,这样ceph-deploy就可以用之前创建的用户(创建部署Ceph的用户)连接了。
sudovisudo修改确保配置如下
Defaults!
visiblepw
Defaults!
requiretty
{username}ALL=(ALL)NOPASSWD:
ALL
Note
编辑配置文件/etc/sudoers时,必须用sudovisudo而不是文本编辑器。
SELinux¶
在CentOS和RHEL上,SELinux默认为Enforcing开启状态。
为简化安装,我们建议把SELinux设置为Permissive或者完全禁用,也就是在加固系统配置前先确保集群的安装、配置没问题。
用下列命令把SELinux设置为Permissive:
sudosetenforce0
要使SELinux配置永久生效(如果它的确是问题根源),需修改其配置文件/etc/selinux/config。
yum优先级/首选项插件¶
确保你的包管理器安装了优先级/首选项包且已启用。
在CentOS上你也许得安装EPEL,在RHEL上你也许得启用可选软件库。
sudoyuminstallyum-plugin-priorities
比如在RHEL7服务器上,可用下列命令安装yum-plugin-priorities并启用rhel-7-server-optional-rpms软件库:
sudoyuminstallyum-plugin-priorities--enablerepo=rhel-7-server-optional-rpms
总结¶
快速入门的预检部分到此结束,请继续存储集群快速入门。
存储集群快速入门¶
如果你还没完成预检,请先做完。
本篇快速入门用ceph-deploy从管理节点建立一个Ceph存储集群,该集群包含三个节点,以此探索Ceph的功能。
第一次练习时,我们创建一个Ceph存储集群,它有一个Monitor和两个OSD守护进程。
一旦集群达到active+clean状态,再扩展它:
增加第三个OSD、增加元数据服务器和两个CephMonitors。
为获得最佳体验,先在管理节点上创建一个目录,用于保存ceph-deploy生成的配置文件和密钥对。
mkdirmy-cluster
cdmy-cluster
ceph-deploy会把文件输出到当前目录,所以请确保在此目录下执行ceph-deploy。
Important
如果你是用另一普通用户登录的,不要用sudo或在root身份运行ceph-deploy,因为它不会在远程主机上调用所需的sudo命令。
禁用requiretty
在某些发行版(如CentOS)上,执行ceph-deploy命令时,如果你的Ceph节点默认设置了requiretty那就会遇到报错。
可以这样禁用此功能:
执行sudovisudo,找到Defaultsrequiretty选项,把它改为Defaults:
ceph!
requiretty,这样ceph-deploy就能用ceph用户登录并使用sudo了。
创建集群¶
如果在某些地方碰到麻烦,想从头再来,可以用下列命令清除配置:
ceph-deploypurgedata{ceph-node}[{ceph-node}]
ceph-deployforgetkeys
用下列命令可以连Ceph安装包一起清除:
ceph-deploypurge{ceph-node}[{ceph-node}]
如果执行了purge,你必须重新安装Ceph。
在管理节点上,进入刚创建的放置配置文件的目录,用ceph-deploy执行如下步骤。
1.创建集群。
ceph-deploynew{initial-monitor-node(s)}
例如:
ceph-deploynewnode1
在当前目录下用ls和cat检查ceph-deploy的输出,应该有一个Ceph配置文件、一个monitor密钥环和一个日志文件。
详情见ceph-deploynew-h。
2.把Ceph配置文件里的默认副本数从3改成2,这样只有两个OSD也可以达到active+clean状态。
把下面这行加入[global]段:
osdpooldefaultsize=2
3.如果你有多个网卡,可以把publicnetwork写入Ceph配置文件的[global]段下。
详情见网络配置参考。
publicnetwork={ip-address}/{netmask}
4.安装Ceph。
ceph-deployinstall{ceph-node}[{ceph-node}...]
例如:
ceph-deployinstalladmin-nodenode1node2node3
ceph-deploy将在各节点安装Ceph。
注:
如果你执行过ceph-deploypurge,你必须重新执行这一步来安装Ceph。
5.配置初始monitor(s)、并收集所有密钥:
ceph-deploymoncreate-initial
完成上述操作后,当前目录里应该会出现这些密钥环:
{cluster-name}.只有在安装Hammer或更高版时才会创建bootstrap-rgw密钥环。
Note
如果此步失败并输出类似于如下信息“Unabletofind/etc/ceph/,请确认中为monitor指定的IP是PublicIP,而不是PrivateIP。
1.添加两个OSD。
为了快速地安装,这篇快速入门把目录而非整个硬盘用于OSD守护进程。
如何为OSD及其日志使用独立硬盘或分区,请参考ceph-deployosd。
登录到Ceph节点、并给OSD守护进程创建一个目录。
sshnode2
sudomkdir/var/local/osd0
exit
sshnode3
sudomkdir/var/local/osd1
exit
然后,从管理节点执行ceph-deploy来准备OSD。
ceph-deployosdprepare{ceph-node}:
/path/to/directory
例如:
ceph-deployosdpreparenode2:
/var/local/osd0node3:
/var/local/osd1
最后,激活OSD。
ceph-deployosdactivate{ceph-node}:
/path/to/directory
例如:
ceph-deployosdactivatenode2:
/var/local/osd0node3:
/var/local/osd1
2.用ceph-deploy把配置文件和admin密钥拷贝到管理节点和Ceph节点,这样你每次执行Ceph命令行时就无需指定monitor地址和了。
ceph-deployadmin{admin-node}{ceph-node}
例如:
ceph-deployadminadmin-nodenode1node2node3
ceph-deploy和本地管理主机(admin-node)通信时,必须通过主机名可达。
必要时可修改/etc/hosts,加入管理主机的名字。
3.确保你对有正确的操作权限。
4.sudochmod+r/etc/ceph/检查集群的健康状况。
cephhealth
等peering完成后,集群应该达到active+clean状态。
操作集群¶
用ceph-deploy部署完成后它会自动启动集群。
要在Debian/Ubuntu发行版下操作集群守护进程,参见用Upstart运行Ceph;要在CentOS、RedHat、Fedora和SLES下操作集群守护进程,参见用sysvinit运行Ceph。
关于peering和集群健康状况请参见监控集群;关于OSD守护进程和归置组(placementgroup)健康状况参见监控OSD和归置组;关于用户管理请参见用户管理。
Ceph集群部署完成后,你可以尝试一下管理功能、rados对象存储命令,之后可以继续快速入门手册,了解Ceph块设备、Ceph文件系统和Ceph对象网关。
扩展集群(扩容)¶
一个基本的集群启动并开始运行后,下一步就是扩展集群。
在node1上添加一个OSD守护进程和一个元数据服务器。
然后分别在node2和node3上添加CephMonitor,以形成Monitors的法定人数。
添加OSD¶
你运行的这个三节点集群只是用于演示的,把OSD添加到monitor节点就行。
sshnode1
sudomkdir/var/local/osd2
exit
然后,从ceph-deploy节点准备OSD。
ceph-deployosdprepare{ceph-node}:
/path/to/directory
例如:
ceph-deployosdpreparenode1:
/var/local/osd2
最后,激活OSD。
ceph-deployosdactivate{ceph-node}:
/path/to/directory
例如:
ceph-deployosdactivatenode1:
/var/local/osd2
一旦你新加了OSD,Ceph集群就开始重均衡,把归置组迁移到新OSD。
可以用下面的ceph命令观察此过程:
ceph-w
你应该能看到归置组状态从active+clean变为active,还有一些降级的对象;迁移完成后又会回到active+clean状态(Control-C退出)。
添加元数据服务器¶
至少需要一个元数据服务器才能使用CephFS,执行下列命令创建元数据服务器:
ceph-deploymdscreate{ceph-node}
例如:
ceph-deploymdscreatenode1
Note
当前生产环境下的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Ceph 官方 文档 翻译