Ceph官方文档翻译_第1页
Ceph官方文档翻译_第2页
Ceph官方文档翻译_第3页
Ceph官方文档翻译_第4页
Ceph官方文档翻译_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在此处插入索引和目录准备]Newinversion.谢谢您尝试Ceph!我们建议安装一个ceph-deploy管理节点和一个三节点的Ceph存储集群来研究Ceph的基本特性。这篇预检会帮你准备一个ceph-deploy管理节点、以及三个Ceph节点(或虚拟机),以此构成Ceph存储集群。在进行下一步之前,请参见操作系统推荐以确认你安装了合适的Linux发行版。如果你在整个生产集群中只部署了单一Linux发行版的同一版本,那么在排查生产环境中遇到的问题时就会容易一点。在下面的描述中节点代表一台机器。在没有DNS的情况下,需要手动修改各个主机的hosts文件和主机名安装CEPH部署工具中把Ceph仓库添加到ceph-deploy管理节点,然后安装ceph-deploy高级包管理工具(APT)中在Debian和Ubuntu发行版上,执行下列步骤:添力口releasekey:wget-q-O-''|sudoapt-keyadd-添加Ceph软件包源,用Ceph稳定版(如cuttlefish、dumpling、emperorfirefly等等)替换掉{ceph-stable-release}。例如:echodeb$(lsb_release-sc)main|sudotee/etc/apt/更新你的仓库,并安装ceph-deploysudoapt-getupdate&&sudoapt-getinstallceph-deployNote你也可以从欧洲镜像下载软件包,只需把替换成即可。红帽包管理工具(RPM)』在RedHat(rhel6、rhel7)、CentOS(el6、el7)和Fedora19-20(f19-f20)上执行下列步骤:(只需要在管理节点)在RHEL7上,用subscription-manager注册你的目标机器,确认你的订阅,并启用安装依赖包的“Extras”软件仓库。例如:如果使用ceph-deploy部署,则不需要此步骤sudosubscription-managerrepos--enable=rhel-7-server-extras-rpms在RHEL6上,安装并启用ExtraPackagesforEnterpriseLinux(EPEL)软件仓库。请查阅EPELwiki获取更多信息。(只需要在管理节点)在CentOS上,可以执行下列命令:sudoyuminstall-yyum-utilssudoyum-config-manager--add-reposudoyuminstall--nogpgcheck-yepel-releasesudorpm--import/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7sudorm/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=Cephnoarchpackages5.baseurl二更新软件库并安装ceph-deploy5.sudoyumupdate&&sudoyuminstallceph-deployNote你也可以从欧洲镜像下载软件包,只需把替换成即可。CEPH节点安装中你的管理节点必须能够通过SSH无密码地访问各Ceph节点。如果ceph-deploy以某个普通用户登录,那么这个用户必须有无密码使用sudo的权限。安装NTPi我们建议在所有Ceph节点上安装NTP服务(特别是CephMonitor节点),以免因时钟漂移导致故障,详情见时钟。在CentOS/RHEL上,执行:sudoyuminstallntpntpdatentp-doc在Debian/Ubuntu上,执行:sudoapt-getinstallntp确保在各Ceph节点上启动了NTP服务,并且要使用同一个NTP服务器,详情见NTP。安装SSH服务器1在所有Ceph节点上执行如下步骤:在各Ceph节点安装SSH服务器(如果还没有):sudoapt-getinstallopenssh-server或者sudoyuminstallopenssh-server确保所有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”用户,升级前必须先删掉这个用户。在各Ceph节点创建新用户。sshuser@ceph-serversudouseradd-d/home/{username)-m{username)sudopasswd{username)确保各Ceph节点上新创建的用户都有sudo权限。echo”{username)ALL=(root)NOPASSWD:ALL”|sudoteeetc/{username)sudochmod0440/etc/{username)允许无密码SSH登录]正因为ceph-deploy不支持输入密码,你必须在管理节点上生成SSH密钥并把其公钥分发到各Ceph节点。ceph-deploy会尝试给初始monitors生成SSH密钥对。生成SSH密钥对,但不要用sudo或root用户。提示“Enterpassphrase”时,直接回车,口令即为空:ssh-keygenGeneratingpublic/privatekeypair.Enterfileinwhichtosavethekey(/ceph-admin/.ssh/id_rsa):Enterpassphrase(emptyfornopassphrase):Entersamepassphraseagain:Youridentificationhasbeensavedin/ceph-admin/.ssh/id_rsa.Yourpublickeyhasbeensavedin/ceph-admin/.ssh/.把公钥拷贝到各Ceph节点,把下列命令中的{username)替换成前面创建部署Ceph的用户里的用户名。ssh-copy-id{username}@node1ssh-copy-id{username}@node2ssh-copy-id{username}@node3(推荐做法)修改ceph-deploy管理节点上的〜/.ssh/config文件,这样ceph-deploy就能用你所建的用户名登录Ceph节点了,而无需每次执行ceph-deploy都要指定--username{username)。这样做同时SSH也简化了ssh和scp的用法。把{username}替换成你创建的用户名。需要使用chmod600〜/.ssh/config修改权限,否则会报错HostnodelHostnamenodelUser{username)Hostnode2Hostnamenode2User{username)Hostnode3Hostnamenode3User{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禁用它,并找至UDefaultsrequiretty选项,把它改为Defaults:ceph'requiretty或者直接注释掉,这样ceph-deploy就可以用之前创建的用户(创建部署Ceph的用户)连接了。sudovisudo修改确保配置如下

Defaults!visiblepwDefaults!requiretty{username}ALL=(ALL)NOPASSWD:ALLNote编辑配置文件/etc/sudoers时,必须用sudovisudo而不是文本编辑器。SELINUX』在CentOS和RHEL上,SELinux默认为Enforcing开启状态。为简化安装,我们建议把SELinux设置为Permissive或者完全禁用,也就是在加固系统配置前先确保集群的安装、配置没问题。用下列命令把SELinux设置为Permissivesudosetenforce0要使SELinux配置永久生效(如果它的确是问题根源),需修改其配置文件/etc/selinux/configYUM优先级/首选项插件中确保你的包管理器安装了优先级/首选项包且已启用。在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-clustercdmy-clusterceph-deploy会把文件输出到当前目录,所以请确保在此目录下执行ceph-deployImportant如果你是用另一普通用户登录的,不要用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执行如下步骤。创建集群。ceph-deploynew{initial-monitor-node(s)}例如:ceph-deploynewnode1在当前目录下用ls和cat检查ceph-deploy的输出,应该有一个Ceph配置文件、一个monitor密钥环和一个日志文件。详情见ceph-deploynew-h把Ceph配置文件里的默认副本数从3改成2,这样只有两个OSD也可以达到active+clean状态。把下面这行加入[global]段:osdpooldefaultsize=2如果你有多个网卡,可以把publicnetwork写入Ceph配置文件的[global]段下。详情见网络配置参考。publicnetwork={ip-address}/{netmask}安装Ceph。ceph-deployinstall{ceph-node}[{ceph-node}...]例如:ceph-deployinstalladmin-nodenodelnode2node3ceph-deploy将在各节点安装Ceph。注:如果你执行过ceph-deploypurge你必须重新执行这一步来安装Ceph。配置初始monitor(s)、并收集所有密钥:ceph-deploymoncreate-initial完成上述操作后,当前目录里应该会出现这些密钥环:{cluster-name}.只有在安装Hammer或更高版时才会创建bootstrap-rgw密钥环。Note如果此步失败并输出类似于如下信息“Unabletofind/etc/ceph/,请确认中为monitor指定的IP是PublicIP,而不是PrivateIP。添加两个OSD。为了快速地安装,这篇快速入门把目录而非整个硬盘用于OSD守护进程。如何为OSD及其日志使用独立硬盘或分区,请参考ceph-deployosd。登录到Ceph节点、并给OSD守护进程创建一个目录。sshnode2sudomkdir/var/local/osd0exitsshnode3sudomkdir/var/local/osdlexit

然后,从管理节点执行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用ceph-deploy把配置文件和admin密钥拷贝到管理节点和Ceph节点,这样你每次执行Ceph命令行时就无需指定monitor地址和了。ceph-deployadmin{admin-node}{ceph-node}例如:ceph-deployadminadmin-nodenode1node2node3ceph-deploy和本地管理主机(admin-node)通信时,必须通过主机名可达。必要时可修改/etc/hosts,加入管理主机的名字。确保你对有正确的操作权限。确保你对有正确的操作权限。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对象网关。扩展集群(扩容)』一个基本的集群启动并开始运行后,下一步就是扩展集群。在nodel上添加一个OSD守护进程和一个元数据服务器。然后分别在node2和node3上添加CephMonitor,以形成Monitors的法定人数。添加OSD』你运行的这个三节点集群只是用于演示的,把OSD添加到monitor节点就行。sshnodelsudomkdir/var/local/osd2exit然后,从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-deploymdscreatenodelNote当前生产环境下的Ceph只能运行一个元数据服务器。你可以配置多个,但现在我们还不会为多个元数据服务器的集群提供商业支持。添加RGW例程1要使用Ceph的Ceph对象网关组件,必须部署RGW例程。用下列方法创建新RGW例程:ceph-deployrgwcreate{gateway-node}例如:ceph-deployrgwcreatenodelNote这个功能是从Hammer版和ceph-deploy才开始有的。RGW例程默认会监听7480端口,可以更改该节点内与RGW相关的配置,如下:[client]rgwfrontends=civetwebport=80用的是IPv6地址的话:[client]rgwfrontends=civetwebport=[::]:80添加MONITORS』Ceph存储集群需要至少一个Monitor才能运行。为达到高可用,典型的Ceph存储集群会运行多个Monitors,这样在单个Monitor失败时不会影响Ceph存储集群的可用性。Ceph使用PASOX算法,此算法要求有多半monitors(即1、2:3、3:4、3:5、4:6等)形成法定人数。新增两个监视器到Ceph集群。ceph-deploymonadd{ceph-node}例如:ceph-deploymonaddnode2node3新增Monitor后,Ceph会自动开始同步并形成法定人数。你可以用下面的命令检查法定人数状态:cephquorum_status--formatjson-prettyTip当你的Ceph集群运行着多个monitor时,各monitor主机上都应该配置NTP,而且要确保这些monitor位于NTP服务的同一级。存入/检出对象数据』要把对象存入Ceph存储集群,客户端必须做到:指定对象名指定存储池Ceph客户端检出最新集群运行图,用CRUSH算法计算出如何把对象映射到归置组,然后动态地计算如何把归置组分配到OSD。要定位对象,只需要对象名和存储池名字即可,例如:cephosdmap{poolname){object-name)练习:定位某个对象作为练习,我们先创建一个对象,用radosput命令加上对象名、一个有数据的测试文件路径、并指定存储池。例如:echo{Test-data)>radosput{object-name){file-path)--pool=dataradosputtest-object-1--pool=data为确认Ceph存储集群存储了此对象,可执行:rados-pdatals现在,定位对象:cephosdmap{pool-name){object-name)cephosdmapdatatest-object-1Ceph应该会输出对象的位置,例如:osdmape537pool,data'(0)object'test-object-1'->pg->up[1,0]acting[1,0]用''radosrm''命令可删除此测试对象,例如:radosrmtest-object-1--pool=data随着集群的运行,对象位置可能会动态改变。Ceph有动态均衡机制,无需手动干预即可完成。块设备快速入门中要实践本手册,你必须先完成存储集群快速入门,并确保Ceph存储集群处于active+clean状态,这样才能使用Ceph块设备。NoteCeph块设备也叫RBD或RADOS块设备。你可以在虚拟机上运行ceph-client节点,但是不能在与Ceph存储集群(除非它们也用VM)相同的物理节点上执行下列步骤。详情见FAQ。安装CEP的确认你使用了合适的内核版本,详情见操作系统推荐。lsb_release-auname-r在管理节点上,通过ceph-deploy把Ceph安装到ceph-client节点。ceph-deployinstallceph-client在管理节点上,用ceph-deploy把Ceph配置文件和拷贝到ceph-clientceph-deployadminceph-clientceph-deploy工具会把密钥环复制到/etc/ceph目录,要确保此密钥环文件有读权限(如sudochmod+r/etc/ceph/)。配置块设备T在ceph-client节点上创建一个块设备image。rbdcreatefoo--size4096[-m{mon-IP}][-k/path/t在ceph-client节点上,把image映射为块设备。sudorbdmapfoo--name[-m{mon-IP}][-k/path/to/^ceph-client节点上,创建文件系统后就可以使用块设备了。sudo-m0/dev/rbd/rbd/foo此命令可能耗时较长。在ceph-client节点上挂载此文件系统。sudomkdir/mnt/ceph-block-devicesudomount/dev/rbd/rbd/foo/mnt/ceph-block-device

cd/mnt/ceph-block-device详情见块设备。CEPH文件系统快速入门』开始实践Ceph文件系统入门手册前,必须先完成存储集群快速入门。在管理节点上完成此入门。准备工作』确认你使用了合适的内核版本,详情见操作系统推荐lsb_release-auname-r在管理节点上,通过ceph-deploy把Ceph安装到ceph-client节点上。ceph-deployinstallceph-client创建文件系统1确保Ceph存储集群在运行,且处于active+clean状态。同时,确保至少有一个Ceph元数据服务器创建文件系统1ceph-s[-m{monitor-ip-address}][-k{path/to/虽然已创建了元数据服务器(存储集群快速入门),但如果你没有创建存储池和文件系统,它是不会变为活动状态的。参见创建Ceph文件系统cephosdpoolcreatecephfs_data<pg_num>cephosdpoolcreatecephfs_metadata<pg_num>cephfsnew<fs_name>cephfs_metadatacephfs_data创建密钥文件』Ceph存储集群默认启用认证,你应该有个包含密钥的配置文件(但不是密钥环本身)。用下述方法获取某一用户的密钥:在密钥环文件中找到与某用户对应的密钥,例如:cat找到用于挂载Ceph文件系统的用户,复制其密钥。大概看起来如下所示:[]key=AQCj2YpRiAe6CxAA7/ETt7Hcl9IyxyYciVs47w==打开文本编辑器。把密钥粘帖进去,大概像这样:AQCj2YpRiAe6CxAA7/ETt7Hcl9IyxyYciVs47w==保存文件,并把其用户名name作为一个属性(如)。确保此文件对用户有合适的权限,但对其他用户不可见。内核驱动T把CephFS挂载为内核驱动。sudomkdir/mnt/mycephfssudomount-tceph{ip-address-of-monitor}:6789://mnt/mycephfsCeph存储集群默认需要认证,所以挂载时需要指定用户名name和创建密钥文件一节中创建的密钥文件secretfile,例如:sudomount-tceph/mnt/mycephfs-oname二admin,secretfile二Note从管理节点而非服务器节点挂载CephFS文件系统,详情见FAQ用户空间文件系统(FUSE)中把CephFS挂载为用户空间文件系统(FUSE)。sudomkdir~/mycephfssudoceph-fuse-m{ip-address-of-monitor}:6789~/mycephfsCeph存储集群默认要求认证,需指定相应的密钥环文件,除非它在默认位置(即/etc/ceph):sudoceph-fuse-k./-m〜/mycephfs附加信息1附加信息见CephFS。CephFS还不像Ceph块设备和Ceph对象存储那么稳定,如果遇到问题请参考故障排除CEPH对象存储快速入门中从firefly()起,Ceph存储集群显著地简化了Ceph对象

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论