cephfs安装历程

一路采坑,一路报错,最终安装完成。采坑经验末尾分享。先记录可以成功执行的过程!

cephs的步骤顺序是:ceph集群、ceph安装、osd、mds(只有fs文件系统需要、块存储和对象存储不需要)、fs

准备工作

1、物理机2台:CentOS7.6,内核3.1

2、基于10版本,即Jewel

3、机器务必可以连外网

流程

一、预检

1、把软件包源加入软件仓库。用文本编辑器创建一个 YUM 库文件,其路径为 /etc/yum.repos.d/ceph.repo

sudo vim /etc/yum.repos.d/ceph.repo

2、把如下内容粘帖进去

[ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/$basearch
enabled=1
gpgcheck=1
priority=1
type=rpm-md
gpgkey=http://mirrors.163.com/ceph/keys/release.asc

[ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/noarch
enabled=1
gpgcheck=1
priority=1
type=rpm-md
gpgkey=http://mirrors.163.com/ceph/keys/release.asc

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/SRPMS
enabled=0
gpgcheck=1
type=rpm-md
gpgkey=http://mirrors.163.com/ceph/keys/release.asc
priority=1

3、更新软件库并安装 ceph-deploy

yum update
yum install ceph-deploy

4、安装 NTP

yum install ntp ntpdate ntp-doc

确保在各 Ceph 节点上启动了 NTP 服务,并且要使用同一个 NTP 服务器

5、安装 SSH 服务器

在各 Ceph 节点安装 SSH 服务器(如果还没有):

yum install openssh-server

确保所有 Ceph 节点上的 SSH 服务器都在运行

6、在所有节点创建ceph用户

useradd -d /home/ceph-node -m ceph-node
passwd ceph-node

密码要记住,ceph用户的密码

7、确保各 Ceph 节点上新创建的用户都有 sudo 权限。

echo "ceph-node ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph-node
chmod 0440 /etc/sudoers.d/ceph-node

8、允许无密码 SSH 登录

生成 SSH 密钥对,但不要用 sudo 或 root 用户。提示 “Enter passphrase” 时,直接回车,口令即为空:

[root@localhost ceph-node]# su ceph-node
[ceph-node@localhost ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ceph-node/.ssh/id_rsa): 
Created directory '/home/ceph-node/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ceph-node/.ssh/id_rsa.
Your public key has been saved in /home/ceph-node/.ssh/id_rsa.pub.

把公钥拷贝到各 Ceph 节点

ssh-copy-id ceph-node@node1

(推荐做法)修改 ceph-deploy 管理节点上的 ~/.ssh/config 文件,这样 ceph-deploy 就能用你所建的用户名登录 Ceph 节点了,而无需每次执行 ceph-deploy 都要指定 --username {username} 。这样做同时也简化了 ssh 和 scp 的用法。把 {username} 替换成你创建的用户名。

Host node1
   Hostname node1
   User ceph-node
Host node2
   Hostname node2
   User ceph-node

9、引导时联网

Ceph 的各 OSD 进程通过网络互联并向 Monitors 上报自己的状态。如果网络默认为 off ,那么 Ceph 集群在启动时就不能上线,直到你打开网络。

某些发行版(如 CentOS )默认关闭网络接口。所以需要确保网卡在系统启动时都能启动,这样 Ceph 守护进程才能通过网络通信。例如,在 Red Hat 和 CentOS 上,需进入 /etc/sysconfig/network-scripts 目录并确保 ifcfg-{iface} 文件中的 ONBOOT 设置成了 yes 

10、开放所需端口

Ceph Monitors 之间默认使用 6789 端口通信

对于 RHEL 7 上的 firewalld ,要对公共域开放 Ceph Monitors 使用的 6789 端口和 OSD 使用的 6800:7300 端口范围,并且要配置为永久规则,这样重启后规则仍有效。例如:

sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent

SELINUX

sudo setenforce 0

要使 SELinux 配置永久生效(如果它的确是问题根源),需修改其配置文件 /etc/selinux/config 。

二、创建集群

ceph-deploy 会把文件输出到当前目录,所以请确保在此目录下执行 ceph-deploy

1、创建集群

mkdir my-cluster
cd my-cluster
ceph-deploy new node1 node2

在当前目录下用 lscat 检查 ceph-deploy 的输出,应该有一个 Ceph 配置文件、一个 monitor 密钥环和一个日志文件

2、把 Ceph 配置文件里的默认副本数从 3 改成 2 ,这样只有两个 OSD 也可以达到 active + clean 状态。把下面这行加入 :

osd pool default size = 2

3、安装 Ceph

ceph-deploy install node1 node2

或者在各节点执行yum install ceph

4、配置初始 monitor(s)、并收集所有密钥:

ceph-deploy mon create-initial

完成上述操作后,当前目录里应该会出现这些密钥环:

  • {cluster-name}.client.admin.keyring

  • {cluster-name}.bootstrap-osd.keyring

  • {cluster-name}.bootstrap-mds.keyring

  • {cluster-name}.bootstrap-rgw.keyring

Note:只有在安装 Hammer 或更高版时才会创建 bootstrap-rgw 密钥环。

5、添加两个 OSD

先写到这,先睡觉了,待续

 

你可能感兴趣的:(cephfs安装历程)