CEPH分布式集群搭建

ゝ一世哀愁。 2022-05-27 09:21 421阅读 0赞

1 概述

#

1.2 集群概述

  1. Ceph集群是一个集Monitors\[1\]OSDs\[2\]MDs\[3\]三种节点组成的一种集群。这里我所做的Ceph集群的搭建步骤主要以Monitor+OSDs为核心来搭建该集群,若掌握了这两个搭建集群的方法,理解其搭建流程,再在此基础上添加MDs就会变得很简单。总的来说,搭建集群难点在于集群前期的搭建以及让这个集群达到active(激活)状态,之后再添加OSD或是MD单元都只是一行命令的事。
  2. 本次搭建主要让大家熟悉Ceph集群的搭建流程,只做一个简要集群搭建的步骤详解,用于抛砖引玉。
  3. 本次搭建集群的主要结构如图1.1与表1.1
  4. ![20180416112912831][]

图1.1 集群主要结构

表1.1 各节点相关信息




























名称 hostname IP 功能
节点1 node1 192.168.80.129 Monitor
节点2 node2 192.168.80.130 OSD
节点3 node3 192.168.80.131 OSD

[1]Monitors维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。

[2] OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。

[3]元数据服务器( MDS )为 Ceph 文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。元数据服务器使得POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。

1.2 搭建配置

  1. 本次搭建的各项配置均列在下面表1.2,版本不同可能会有细小的偏差,详情主要还是以其官网发布的版本更替特性为主。这里只做这一个版本的搭建教程,如表1.2

表1.2 配置
























配置 版本号 备注
Ubuntu 14.0.4 LTS
ceph-deploy 1.5.37 Hammer
ceph 10.2.7 Hammer

#

#

2 搭建步骤

2.1 创建新用户

  1. 也许会在安装Ubuntu的过程中忽略创建用户的重要性而随便创建了一个用户,这个不要紧,这里我们重新创建一个新的用户用于我们ceph集群搭建的直接操作用户,之前安装系统时创建的用户暂时可以不用管。

2.2 创建方式

  1. 1.创建用户
  2. 控制台中输入:
  3. sudo useradd -d /home/[username] -m [username]
  4. 其中\[username\]为你所要设置的用户名,这里建议根据集群来有规律的命名,这样能够方便我们后续的操作。这里我是node1node2node3这样命名。记得要分别在三台电脑上创建三个用户,电脑1创建node1,电脑2创建node2,电脑3创建node3
  5. 2.设置密码
  6. 控制台中输入:
  7. sudo passwd [username]
  8. 这里\[username\]依然和上面一条命令所用的username一致,然后系统会要求你输入UNIX密码,这个密码是你去设置,要输入两编。然后会看到系统提示你“密码更新成功(passwordupdated successfully)”。
  9. 3.为你所创建的用户设置权限
  10. 每台电脑上控制台中输入:
  11. sudo gedit /etc/sudoers.d/[username]
  12. 这时会打开一个空的文本,我们在里面进行编辑,编辑内容如下:
  13. [username] ALL=(root) NOPASSWD:ALL
  14. 设置用户权限。这里\[username\]为你所要设置的用户名,我们这里就分别在每台电脑上设置为node1node2node3。下面我用一个表来系统的显示我们需要怎么样去设置,看表2.1

表2.1 设置用户权限




























电脑 Username 路径 文件内容
node1 node1 /etc/sudoers.d/node1 node1 ALL=(root) NOPASSWD:ALL
node2 node2 /etc/sudoers.d/node2 node2 ALL=(root) NOPASSWD:ALL
node3 node3 /etc/sudoers.d/node3 node3 ALL=(root) NOPASSWD:ALL
  1. 3.选择已创建用户
  2. 点击右上角“设置”图标,选择你新建的用户点击,如图2.1
  3. ![20180416115654300][]

图2.1 选择已创建用户

  1. 这里我设置的是node-test用户,如果你设置的是node1用户,这里则是node1
  2. 4.重新进入登录页面
  3. 这时系统会让你输入用户密码,输入你刚才设置的UNIX密码即可。

2.3 设置静态IP

  1. 如果每台电脑直接运行ubuntu(不是在虚拟机上运行)的话,那么每个节点必须得有一个IP才能在局域网中相互识别。平时我们是连接到运营商,然后分配给我们一个IP,这个IP每次分配都是不固定的,但是连接局域网的话,不可能会有运营商给我们分配IP。所以,综上所述,我们需要在搭建之前为每台电脑设置一个静态IP

2.3.1 修改interfaces文件

  1. 对每个节点的/etc/network/interrfaces文件进行修改。原本的interfaces文件如下图2.2

2018041612034325

图2.2 原本interfaces文件内容

  1. 现在要将其内容修改为如下图2.3所示:

20180416120427112

图2.3 修改后的内容

  1. 也就是说要在interfaces文件后面再添加几行代码:
  2. auto eth0
  3. iface eth0 inet static
  4. address 192.168.80.129
  5. gateway 192.168.80.2
  6. netmask 255.255.255.0
  7. 其中,address为当前节点要设置的静态IPIP值;gateway为网关;netmask为子网掩码。
  8. IP值是每个节点都不相同,例如想把node1节点的静态IP设置为192.168.80.129,则interfacesaddress就应该写为192.168.80.129;想把node2节点的静态IP设置为192.168.80.130,则interfacesaddress就应该写成192.168.80.130
  9. 网关(netmask)则可以所有节点都用一个,子网掩码也是根据你设置的IP地址来进行设置。
  10. 重启电脑,在控制台输入ifconfig命令,若出现如图2.4addr为你所设置的IP时,则可以判断设置静态IP成功。

20180416120833363

图2.4 ifconfig显示内容

2.3.2 修改方式

  1. 1.切换root用户
  2. 控制台输入:
  3. su root
  4. 切换到root管理员用户,这样可以拥有管理员权限,省去我们使用sudo命令。
  5. 2.输入root密码
  6. 如果没有创建root的,可以重新创建一下:
  7. 1)控制台输入sudo passwd root
  8. 2)输入你要设置的密码(重复两次)
  9. 3)之后会提示你密码更新成功,这样就可以使用suroot命令来切换到root用户。
  10. 3.node1控制台输入:
  11. sudo gedit /etc/network/interfaces
  12. interfaces文本中添加如下内容:
  13. auto eth0
  14. iface eth0 inet static
  15. address 192.168.80.129
  16. gateway 192.168.80.2
  17. netmask 255.255.255.0
  18. node2控制台输入:
  19. sudo gedit /etc/network/interfaces
  20. interfaces文本中添加如下内容:
  21. auto eth0
  22. iface eth0 inet static
  23. address 192.168.80.130
  24. gateway 192.168.80.2
  25. netmask 255.255.255.0
  26. node3控制台输入:
  27. sudo gedit /etc/network/interfaces
  28. interfaces文本中添加如下内容:
  29. auto eth0
  30. iface eth0 inet static
  31. address 192.168.80.131
  32. gateway 192.168.80.2
  33. netmask 255.255.255.0
  34. 4.点击“保存(save)”并退出。
  35. 5.重启电脑。
  36. 6.每台电脑控制台输入:
  37. ifconfig
  38. 查看IP地址是否修改,如图2.4。如果变为自己设置的IP,则说明设置静态IP成功;反之则失败。

2.3.3 修改interfaces注意事项

  1. 这一步应该注意以下几点:
  2. 1.每个节点都需要对/etc/network/interfaces进行修改,且每个节点应该设置的address应该不一样。
  3. 2.interfaces文件只针对ubuntu系统,如果用除了ubuntu之外的系统,如:centOS则文件目录、文件名这些地方会有偏差,具体情况根据自己用的系统来决定,这里只对ubuntu系统下的搭建进行讲解。
  4. 3.修改了静态IP之后无法连接外网,这个问题依旧没有解决。若设置静态IP之后无法联网,可以选择先联网下载必要程序之后再进行设置静态IP
  5. 4.修改了静态IP之后,重启电脑才会生效。

2.4 修改hostname

  1. 为每个节点设置对应的hostname,因为搭建过程中有时候会以hostname作为标识,有时候又要以用户名作为标识。我选择一个折中的办法:将每一个节点的hostname设置为对应的用户名。
  2. 比如:node1节点的用户名为node1,你就可以把node1节点的hostname设置为node1

2.4.1 修改方式

  1. 设置方式如下:
  2. 1.控制台中输入
  3. su root
  4. 切换到root管理员运行
  5. 2.控制台中输入:
  6. gedit /etc/hostname
  7. 这时候会出现一个文本如图2.5

2018041612163870

图2.5 hostname文件内容

  1. 这里这个ubuntu即为我们的hostname,修改为你想要的hostname即可,尽量保证hostname与用户名一致。
  2. 3.单击“save”按钮保存文件。
  3. 4.关闭文件。
  4. 5.重启电脑。

2.5 修改host文件

2.5.1 host文件的修改

  1. hosts文件作用相当于一个路由表,打开/etc/hosts文件,显示如下图2.6

20180416121839395

图2.6 hosts文件内容

  1. 这里每个IP之后都有一个名称,相当于给每个IP起一个别名的意思。比如:你在控制台中ping 127.0.0.1和你ping localhost是一个意思。只是省去了你写IP的繁琐。
  2. 这一步我们需要修改的地方是:把你之前设置的静态IP添加进hosts文件中,并为每个IP设置一个“别名”。
  3. 例如:我有三台电脑,静态IP分别为:
  4. 192.168.80.129
  5. 192.168.80.130
  6. 192.168.80.131
  7. 我在hosts文件中设置如下图2.7

20180416121935333

图2.7 hosts文件配置内容

  1. 只需要在IP设置后面添加上自己要添加的一系列IP以及给他们一个“别名”。
  2. 为了验证自己是不是添加成功,可以在控制台中输入ping + \{别名\}看看是否能ping同(前提是你的静态IP设置正确且已经连入同一个交换机中)。

2.5.2 修改方式

  1. 1.切换管理员身份
  2. 控制台输入:
  3. su root
  4. 切换到管理员身份,如果之前已经切换到管理员的话,这一步可以省略。
  5. 2.打开hosts文件
  6. 控制台输入:
  7. gedit /etc/hosts
  8. 3.hosts文本进行修改,添加自己所设置的IP以及给IP一个“别名”。
  9. 4.单击“保存(save)”按钮。
  10. 5.关闭文本。

2.5.3 修改hosts注意事项

  1. 这一步需要注意以下几点:
  2. 1.如果127.0.1.1的别名与你的hostname同名,可以将其修改为别的一个名字,然后把你的hostname单独写一行,IP还是写为你当前设置的静态IP。比如:我的hostnameubuntu,我这里127.0.1.1别名为ubuntu,我的静态IP192.168.80.129,则我把127.0.1.1这一行的ubuntu随便改为一个不重名的别名test,然后再在最后添加一行192.168.80.129 ubuntu。用以保证ping ubuntu时解析的IP不是127.0.1.1而是192.168.80.129
  3. 2.保证一个“别名”不会对应多个IP,但可以一个IP有多个别名。

2.6 添加发布密钥并安装

  1. ceph仓库添加到ceph-deploy管理节点,然后安装ceph-deploy。这里得解释一下什么是ceph-deploy,根据英语字面意思就是“ceph部署”,这个ceph-deploy其实就是ceph的一个部署工具,我们能够利用它快速、简便地部署ceph集群。

2.6.1 操作步骤

  1. 1.添加release key
  2. 控制台输入:
  3. wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
  4. 2.添加ceph软件包源
  5. 控制台输入:
  6. echo deb http://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
  7. 注意,这里是一行,如图2.8

20180416122414811

图2.8 添加ceph软件包源

  1. 注意,这里需要用ceph稳定版(如hammercuttlefishdumplingemperorfirefly等等)来替换上面命令中的\{ceph-stable-release\}部分。我这里用的是hammer
  2. 3.更新仓库
  3. 控制台输入:
  4. sudo apt-get update
  5. 如果已经切换到root用户的话,就不用输入sudo了,直接输入apt-get update即可。
  6. 4.安装ceph-deploy
  7. 控制台输入:
  8. sudo apt-get install ceph-deploy
  9. 同样,如果已经是root用户的话,sudo可省去。
  10. 5.检验是否安装成功
  11. 控制台输入:
  12. ceph-deploy version
  13. 如果这里显示了版本号,则说明已经安装成功,如图2.9所示。

2018041612263039

图2.9 ceph-deploy版本号

2.6.2 注意事项

  1. 这一步主要注意以下几点:
  2. 1.命令里面有很多空格,这里不能很好的展示出来,自己写的时候可以多注意一下,空格如果出现差错会导致命令出错。
  3. 2.因为使用的包源都是国外的,可能下载速度会比较慢。使用国内的镜像包源请查看附件一。

2.7 安装NTP和SSH服务器

  1. 要想搭建出一个集群,你的管理节点必须能够通过SSH无密码地访问各节点。如果ceph-deploy以某个普通用户登录,那么这个用户必须有无密码使用sudo命令的权限。

2.7.1 操作步骤

  1. 1.安装NTP
  2. 控制台输入:
  3. sudo apt-get install ntp
  4. 2.查看服务状态
  5. 安装完成之后,在控制台输入:
  6. service status-all
  7. 此时会显示很多服务的状态,找到其中如图2.9所示的内容。

2018041612303221

图2.10 NTP服务状态

  1. 前面这个“+”号就代表ntp服务已经启动,说明我们已经安装成功。
  2. 3.安装SSH
  3. 控制台输入:
  4. sudo apt-get install openssh-server
  5. 安装完后,在控制台输入:
  6. ssh -V
  7. 检查ssh是否安装成功,若安装成功,则会显示当前ssh的版本号。如图2.11

20180416123154796

图2.11 SSH版本号

  1. 4.SSH服务器生成密钥
  2. 控制台输入:
  3. ssh-keygen
  4. 显示如图2.12所示
  5. ![20180416123359147][]

图2.12 生成的秘钥(部分打码)

  1. 所有需要设置的(地址、密码)我都是直接回车,按照默认设置就好。
  2. 5.把公钥拷贝到各节点
  3. 控制台输入:
  4. ssh-copy-id [username]@[hostname]
  5. 这里\[username\]为节点上用于ceph集群搭建的用户名,即我们之前创建的用户名,\[hostname\]为节点的hostname,因为我们已经把hostname设置为和用户名一致的,所以我们这里可以直接写成:
  6. ssh-copy-id node2@node2
  7. 这是把公钥复制到node2节点上。还要分别复制到node3节点上(如果有node4node5同理)。
  8. 所以,要在控制台分别输入以下命令:
  9. ssh-copy-id node1@node1
  10. ssh-copy-id node2@node2
  11. ssh-copy-id node3@node3
  12. 6.新建/home/\[username\]/.ssh/config
  13. 这里\[username\]是当前操作的用户(也是ceph集群操作用户之一)。比如说我们在node1节点(用户名为node1)上操作,这里就是/home/node1/.ssh/config,我们创建用户的时候就已经有/home/node1这个路径了,我们只需要在/home/node1路径基础上,创建一个.ssh文件夹。控制台输入:
  14. sudo mkdir -p /home/[username]/.ssh
  15. 然后在.ssh文件夹中新建config文本。控制台输入:
  16. sudo touch /home/[username]/.ssh/config
  17. 这两句的\[username\]都是当前用户名。比如,在node1上操作,这里\[username\]就是node1
  18. 7.config文本添加内容。控制台输入:
  19. sudo gedit /home/[username]/.ssh/config
  20. 打开config文本之后,添加如下内容:
  21. Host node1
  22. Hostname node1
  23. User node1
  24. Host node2
  25. Hostname node2
  26. User node2
  27. Host node3
  28. Hostname node3
  29. User node3
  30. 这里node1node2node3根据自己设置的用户名以及hostname来进行修改。如果是按照我的设置,就直接这样写就行。
  31. 8.单击“保存(save)”,然后退出。

2.7.2 注意事项

  1. 1.检查自己ssh是否安装成功时用的ssh-V命令注意V是大写(linux中查看版本是要区分大小写的)。
  2. 2.有可能在运行了ssh-keygen命令之后自动会在当前用户(/home/\[username\])下创建一个.ssh文件,可以先用cd.ssh来查看是否有改文件,若有则可以不用创建,直接在里面新建config就行了。

2.8 设置onboot=yes

2.8.1 操作步骤

  1. 1.创建文件夹
  2. 控制台输入:
  3. sudo mkdir -p /etc/sysconfig/network-scripts
  4. 2.创建ifcfg-eth0文本
  5. 控制台输入:
  6. sudo touch /etc/sysconfig/network-scripts/ifcfg-eth0
  7. 3.ifcfg-eth0文本添加onboot=yes内容
  8. 控制台输入:
  9. echo "onboot=yes" | sudo tee /etc/sysconfig/network-scripts/ifcfg-eth0
  10. 4.查看自己是否添加成功
  11. 控制台输入:
  12. cat /etc/sysconfig/network-scripts/ifcfg-eth0
  13. 看看是否会出现“onboot=yes”字样,若有,则说明添加成功。

2.8.2 注意事项

  1. 1.这一系列操作需要在每个节点上都执行一遍,也就是每个节点上都要设置“onboot=yes”。
  2. 2.文件名“ifcfg-eth0”不是一定要这样写,这里eth0是根据之前在/etc/network/interfaces中设置静态IP的那个eth0而定,若在interfaces中是设置的eth1为静态IP,则这里文件名字也应该改为ifcfg-eth1

2.9 给Monitor节点创建一个部署路径

  1. 我们创建集群需要有一个管理节点,这里我们的管理节点可以设置为monitor节点,然后集群的很多操作都可以通过这个管理节点来完成。

2.9.1 操作步骤

  1. 1.创建一个存放配置文件、日志的文件夹
  2. 控制台输入:
  3. sudo mkdir my-cluster
  4. 此时当前路径应该为/home/\[username\],也就是说my-cluster的完整路径应该是/home/\[username\]/my-cluster。如果我们在node1上的话,应该这么写:
  5. sudo mkdir /home/node1/my-cluster
  6. 2.进入刚创建的my-cluster文件夹
  7. 控制台输入:
  8. cd my-cluster

2.9.2 注意事项

  1. 1.我们可以在控制台中输入:
  2. cd ~
  3. 返回根目录,如果是node1用户的话,根目录就是/home/node1,如果是root用户则根目录为/home/路径的上一级。也就是说/home/node1属于其根目录的二级子目录。
  4. 2.若无法确定当前所在目录,则可以考虑使用绝对路径。即把/home/node1/这部分带上。
  5. 3.之后的很多ceph集群操作,都需要先进入到my-cluster文件夹中才能运行,因为ceph需要把执行命令时的日志存放到该文件夹下。

2.10 创建集群

2.10.1 操作步骤

  1. 1.先进入my-cluster文件夹
  2. 控制台输入:
  3. cd my-cluster
  4. 2.创建ceph集群
  5. 控制台输入:
  6. ceph-deploy new node1
  7. 3.修改配置文件
  8. 创建之后就会在my-cluster文件夹中出现ceph.conf配置文件,里面记录了一些ceph集群的配置信息。打开该文件,我们需要添加一行。控制台输入:
  9. sudo gedit ceph. conf
  10. 该文件内容如图2.13

20180416124433190

图2.13 配置文件内容

  1. 最初的配置只有这些,我们能够看到只有\[global\]字段有配置信息,该字段是设置ceph集群的全局信息。
  2. 4.设置默认OSD
  3. \[global\]字段后面添加一句“osd\_pool\_default\_size= 2”。直接在上面已经打开的文本中后面加一句:
  4. osd_pool_default_size = 2
  5. 因为我们这里只用了3个节点,其中一个为monitor节点,另外两个才是OSD节点。Ceph中默认是3OSD,所以我们这里需要修改一下,把默认OSD节点改为2个。
  6. 5.点击“保存(save)”,然后退出。

2.10.2 注意事项

  1. 1.这一步只需要在monitor节点进行,不需要在每个节点都去操作一遍。
  2. 2.注意路径的正确性,路径如果错误之后的操作都将无法进行。

2.11 安装CEPH

  1. 现在我们正式到了安装ceph的阶段了。之前我们所做的一切都是在配置本地信息,而且之前安装的只是ceph-deploy,只属于ceph集群的搭建工具。

2.11.1 操作步骤

  1. 1.安装CEPH
  2. 控制台输入:
  3. ceph-deploy install [node1] [node2] [node3]
  4. 这里install后面跟的参数就是我们需要安装的ceph节点名称。例如我的三个节点分别为node1node2node3,则我应该写成:
  5. ceph-deploy install node1 node2 node3
  6. 可以根据自己节点来进行修改。

2.11.2 注意事项

  1. 1.有的教程上写的是:
  2. ceph-deploy install node1 node2 node3 no-adjust-repos
  3. 我自己弄得过程中并没有发现二者的区别,所以这里暂时给出我自己写的命令。
  4. 2.受限于实验室里只能有一台电脑联网的情况,这一步我是分开在每个节点上分别执行的。
  5. node1
  6. ceph-deploy install node1
  7. node2
  8. ceph-deploy install node2
  9. node3
  10. ceph-deploy install node3

2.12 配置初始监视器

  1. 配置初始监视器,并收集所有密钥。

2.12.1 操作步骤

  1. 1.配置monitor节点。控制台输入:
  2. ceph-deploy mon create-initial
  3. 2.检查my-cluster目录中是否有如下文件:
  4. \[clustername\]. client. admin. keyring
  5. \[clustername\]. bootstrap-osd. keyring
  6. \[clustername\]. bootstrap-mds. Keyring
  7. 如果有这些文件,则说明monitor节点创建成功。

2.12.2 注意事项

  1. 1.如果是第一次创建集群的monitor节点则使用该命令;如果是在原有集群的基础上添加monitor节点,则用如下命令:
  2. ceph-deploy mon add [nodename]
  3. \[nodename\]为你所要添加进来的monitor的名称,你会在/etc/hosts中设置,还是注意保持hostshostname和用户名一致,可以减少很多不必要的麻烦。
  4. 2.如果用早期的版本创建monitor节点创建命令有所不同,而且创建完成之后不一定有上述所说的三个文件。具体区别还是参考具体资料,这里不过多赘述。
  5. 3.这一步有可能会有很多错误,如果在设置了静态IP的情况下,还连着wifi,记得把wifi断开,在执行这一步操作。

2.13 添加两个OSD

  1. 为了快速地安装,这篇快速入门把目录而非整个硬盘用于OSD守护进程。关于单独把硬盘或分区用于OSD及其日志,请参考官方文档关于OSD的资料。

2.12.1 操作步骤

  1. 1.先在每个所要创建的OSD节点上创建一个用于集群的目录。
  2. node2控制台输入:
  3. 第一步:
  4. sudo mkdir -p /var/local/osd2
  5. 第二步:
  6. ls -l /var/local/osd2
  7. 第三步:
  8. sudo chmod 777 /var/local/osd2
  9. node3控制台输入:
  10. 第一步:
  11. sudo mkdir -p /var/local/osd3
  12. 第二步:
  13. ls -l /var/local/osd3
  14. 第三步:
  15. sudo chmod 777 /var/local/osd3
  16. 2.monitor节点(node1)上执行以下命令:
  17. ceph-deploy osd prepare node2:/var/local/osd2 node3:/var/local/osd3
  18. 用于为激活OSD节点做准备。
  19. 3.monitor节点上执行以下命令:
  20. ceph-deploy osd activate node2:/var/local/osd2 node3:/var/local/osd3

2.13.2 注意事项

  1. 1.wifi断开再进行这一步,保证集群在一个不受其他外界网络影响下进行搭建。

2.14 最后几步

2.14.1 操作步骤

  1. 1.拷贝配置文件和admin秘钥
  2. monitor节点(node1)控制台输入:
  3. ceph-deploy admin node1 node2 node3
  4. ceph-deploy把配置文件和 admin 密钥拷贝到管理节点、和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定监视器地址和\[clustername\].client.admin.keyring 了。
  5. 2.确保 ceph.client.admin.keyring的权限正确无误
  6. monitor节点(node1)控制台输入:
  7. sudo chmod +r /etc/ceph/[clustername]. client. admin. keyring
  8. 3.检查集群健康状况
  9. monitor节点(node1)控制台输入:
  10. ceph health

2.14.2 注意事项

  1. 1. 这里\[clustername\]为你的ceph集群的cluster名称,默认的cluster名称为ceph。所以上面第2步可以根据自己的clustername来替换。比如我的cluster名称为ceph,那么我第2步应该写:
  2. sudo chmod +r /etc/ceph/ceph. client. admin. keyring
  3. 2.检查集群的状态还可以用:
  4. ceph osd tree
  5. 来查看各节点的状态,down为节点没起来(也就是没激活成功),up则为起来了,说明你的集群已经处于运行状态。

3 其他

3.1 国内镜像ceph包源地址及使用方法

  1. 由于网络方面的原因,Ceph的部署经常受到干扰,通常为了加速部署,基本上大家都是将Ceph的源同步到本地进行安装。根据Ceph中国社区的统计,当前已经有国内的网站定期将Ceph安装源同步,极大的方便了我们的测试。本节就是介绍如何使用国内源,加速ceph-deploy部署Ceph集群。

3.1.1 关于国内源

  1. 根据ceph中国社区的统计,国内已经有四家网站开始同步ceph源,分别是:
  2. 1.网易镜像源:

http://mirrors.163.com/ceph

  1. 2.阿里镜像源:

http://mirrors.aliyun.com/ceph

  1. 3.中科大镜像源:

http://mirrors.ustc.edu.cn/ceph

  1. 4.宝德镜像源:

http://mirrors.plcloud.com/ceph

3.1.2 安装指定版本的CEPH

  1. 这里以安装hammer为例。我们并不需要在repos里增加相应的源,只需要设置环境变量,即可让ceph-deploy使用国内源,具体过程如下:
  2. Ubuntu
  3. export CEPH_DEPLOY_REPO_URL=http://mirrors.163.com/ceph/debian-hammer
  4. export CEPH_DEPLOY_GPG_URL=http://mirrors.163.com/ceph/keys/release.asc

3.1.3 注意事项

  1. 1.设置环境变量这一步应该在创建集群之前,也就是ceph-deploy new node1之前。
  2. 2.之后的步骤和原本一样,继续:
  3. ceph-deploy new node1
  4. ceph-deploy install node1 node2 node3
  5. ……

3.2 删除之前的CEPH配置

  1. 如果在配置过程中遇到的问题太多,而且发现自己已经把整个集群配置修改得杂乱无章,想要重新配置的话,可以用如下步骤:

3.2.1 停止所有的CEPH服务

  1. 控制台输入:
  2. sudo stop ceph-all

3.2.2 卸载所有CEPH程序

  1. 控制台输入:
  2. ceph-deploy uninstall [nodename]
  3. 这里\[nodename\]是你想卸载ceph程序的节点名,比如我在node1上,想卸载node1本机上的ceph程序,应该输入:
  4. ceph-deploy uninstall node1

3.2.3 删除CEPH相关的包

  1. ceph-deploy purgedata [nodename]
  2. ceph-deploy purge [nodename]
  3. 这里purgedata只删除ceph相关的配置文件,而purge则是要把ceph的安装包一起删除。我的处理方式是两个一起运行,不管怎么说,全部清理总比清理一部分要好。

3.2.4 删除key

  1. ceph-deploy forgetkeys
  2. 到这里,ceph所有的配置都已经删除完了,你可以重新开始部署ceph了。从ceph-deploy new \[nodename\]那里重新开始部署。

后记

  1. 到这里大致的CEPH分布式集群搭建就已经结束了,作为一名新手也仅是把自己小小的经验拿出来和大家分享,如果有什么建议或者认为有什么不妥之处,欢迎大家指出。

发表评论

表情:
评论列表 (有 0 条评论,421人围观)

还没有评论,来说两句吧...

相关阅读