Ceph官方文档翻译docx.docx
《Ceph官方文档翻译docx.docx》由会员分享,可在线阅读,更多相关《Ceph官方文档翻译docx.docx(36页珍藏版)》请在冰豆网上搜索。
![Ceph官方文档翻译docx.docx](https://file1.bdocx.com/fileroot1/2023-1/11/91271dba-a362-498d-aa44-b05cab90e7fd/91271dba-a362-498d-aa44-b05cab90e7fd1.gif)
Ceph官方文档翻译docx
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
发到各Ceph节点。
1.
用sudo或root
不支持输入密码,你必须在管理节点上生成SSH密钥并把其公钥分
ceph-deploy会尝试给初始monitors生成SSH密钥对。
生成SSH密钥对,但不要
用户。
提示“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.
点,把下列命令中的
{username}
替换成前面创建部署
把公钥拷贝到各Ceph
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。
在管理节点上,进入刚创建的放置配置文件的目录,用
1.创建集群。
ceph-deploy执行如下步骤。
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状态。
操作集群?