一路采坑,一路报错,最终安装完成。采坑经验末尾分享。先记录可以成功执行的过程!
cephs的步骤顺序是:ceph集群、ceph安装、osd、mds(只有fs文件系统需要、块存储和对象存储不需要)、fs
准备工作
1、物理机2台:CentOS7.6,内核3.1
2、基于10版本,即Jewel
3、机器务必可以连外网
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、
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 。
二、创建集群
mkdir my-cluster
cd my-cluster
ceph-deploy new node1 node2
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
先写到这,先睡觉了,待续