Ceph分布式存储部署基础教程

Ceph是一个分布式存储,可以提供对象存储、块存储和文件存储,其中对象存储和块存储可以很好地和各大云平台集成。一个Ceph集群中有Monitor节点、MDS节点(可选,用于文件存储)、至少两个OSD守护进程。
Ceph OSD:OSD守护进程,用于存储数据、处理数据拷贝、恢复、回滚、均衡,并通过心跳程序向Monitor提供部分监控信息。一个Ceph集群中至少需要两个OSD守护进程。
Monitor:维护集群的状态映射信息,包括monitor、OSD、Placement Group(PG)。还维护了Monitor、OSD和PG的状态改变历史信息。
MDS:存储Ceph文件系统的元数据。

环境规划

4台服务器:1台作为Monitor,1台作为OSD RGW,还有两台作为OSD。ps:我们不搭建CephFS。
所有服务器都安装Ubuntu 16.04。

环境准备: 编辑hosts文件及hostname

分别将Monitor节点定义为node1,两台OSD节点定义为node2、node3,RGW节点定义为node4。
打开Monitor节点的/etc/hostname文件,内容修改为node1,保存退出。但该文件需OS重启后才能生效,因此需再手动执行命令让其立刻生效,命令为:

# hostname node1

再分别打开各节点的/etc/hosts文件,加入这四个节点ip与名称的对应关系,类似如下:

127.0.0.1 localhost 127.0.1.1 node1 192.168.1.100 node1 192.168.1.101 node2 192.168.1.102 node3 192.168.1.103 node4 # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 搭建NTP环境

使用Monitor服务器作为NTP server,另外3台作为NTP client。

NTP server

需安装NTP服务,执行命令:apt-get install ntp。
完成后,修改配置文件/etc/ntp.conf。因为环境不通外网,无法访问Ubuntu时间源。并且,这个环境也没有其他的NTP时间源,因此,在这里,我们使用Monitor服务器作为NTP server的本地时间源。在文件末尾添加如下内容:

server 127.127.1.0 # 如果有其他的NTP源,可以更换这里的ip地址。 fudge 127.127.1.0 stratum 10 并注销掉以Ubuntu时间源的部分。 #pool 0.ubuntu.pool.ntp.org iburst #pool 1.ubuntu.pool.ntp.org iburst #pool 2.ubuntu.pool.ntp.org iburst #pool 3.ubuntu.pool.ntp.org iburst #pool ntp.ubuntu.com

修改完成后,保存退出。并重启ntp服务,执行命令:service ntp restart。
注意:NTP服务刚重启时,需要一定的时间来同步时间源,不能立刻提供服务,需一定时间后才能正常工作(一般5分钟左右)。可在NTP server端执行明令ntpq -p来查看服务状态。

NTP client

需安装ntpdate,执行命令:apt install ntpdate。
安装后,执行命令ntpdate [-d] {serverIp}来同步时间。-d表示打开调试信息,可不打开。例如:

# ntpdate 109.105.115.67

成功时会出现类似提示:ntpdate[39600]: step time server 109.105.115.67 offset -46797.696033 sec。如果出现:ntpdate[28489]: no server suitable for synchronization found。可能是因为server还未能正常提供服务,等待一段时间后再次尝试。
同步成功后,还需要将时间写入硬件时钟,防止OS重启后时间恢复至原样。执行命令hwclock –w。

安装SSH SERVER

在所有的节点上都安装SSH server服务。

# apt-get install openssh-server

因为我们搭建的Ceph直接使用root用户,所以需要修改ssh配置文件/etc/ssh/sshd_config,搜索PermitRootLogin选项,将其参数改为yes。保存退出文件,并重启SSH服务,执行命令:service ssh restart。

使用SSH免密码登录

生成SSH keys,不要设置passphrase,所有的输入选项都直接回车。

# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c257db19d0e1a71643abe59829fcdafa.html