接上篇: 使用ceph-deploy安装Ceph 12.x(一) 创建虚拟机环境
控制节点(admin node)
Step 1. Enable epel (Extra Packages for Enterprise Linux) repository
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Step 2. 写ceph.repo配置文件
文件位于控制节点(即admin node)的 /etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
# baseurl=https://download.ceph.com/rpm/el7/noarch
baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
# gpgkey=https://download.ceph.com/keys/release.asc
gpgkey=http://mirrors.163.com/ceph/keys/release.asc
注意:
上面的注释部分,是Ceph官网的写法。但是对于我们国内的安装,这样几乎无法成功,因为下载Ceph太慢了,会导致失败。因此,需要改写repo文件以更新Ceph源。
常用的Ceph镜像是163镜像。但在使用163镜像之后,必须将rpm写成rpm-luminous,这样才会安装ceph-deploy-2.0.0;若只写成rpm,则实际安装的是ceph-deploy-1.5.
Step 3. 安装ceph-deploy
yum install -y ceph-deploy
Step 4. 修改/etc/hosts文件
/etc/hosts
<ip-node-1> node-1
<ip-node-2> node-2
<ip-node-3> node-3
Step 5. Enable password-less SSH
ssh-keygen
ssh-copy-id fdeploy@node-1
ssh-copy-id fdeploy@node-2
ssh-copy-id fdeploy@node-3
注意:
1. fdeploy 是ceph-deploy安装时所使用的在3个Ceph node上的用户名。至于这个fdeploy用户是如何创建的,请参见下文的Ceph node部分。
2. 在ssh-keygen这一步要求填写passphrase的时候,直接回车,即填写空的passphrase.
Step 6. 填写 ~/.ssh/config 文件
这个文件是给ceph-deploy使用的。通过此文件,ceph-deploy可以知道用户名和Ceph node的信息;这样,就不用每次在执行ceph-deploy的时候都指定–username {username}了。
Host node-1
Hostname node-1
User fdeploy
Host node-2
Hostname node-2
User fdeploy
Host node-3
Hostname node-3
User fdeploy
Step 7. 为ceph-deploy的工作添加国内镜像
这一步很重要,是官网上所没有的。
ceph-deploy在安装的时候,会先给Ceph node的/etc/ceph目录下生成一个ceph.repo文件。而这个文件并不是根据Step 2中的ceph.repo来的,而是有自己的生成规则。
简单来说,ceph-deploy会参考2个环境变量的值来填写ceph.repo.
具体做法是,在 ~/.bashrc 最后添加这么2个环境变量:
export CEPH_DEPLOY_REPO_URL=http://mirrors.163.com/ceph/rpm-luminous/el7
export CEPH_DEPLOY_GPG_URL=http://mirrors.163.com/ceph/keys/release.asc
注意:
上面如果把 rpm-luminous 改成 rpm 的话,那么将安装jewel版本,而不是目前最新的luminous版本。
以上所有步骤都是在admin node上做的。其中Step 5依赖于Ceph node上的添加用户的操作。
Ceph Node
Step 1. 安装ntp和openssh-server
因为将来拥有monitor的Ceph node需要使用ntp来同步时间,因此需要安装ntp相关工具。而openssh-server也是必须的。
yum install -y ntp ntpdate ntp-doc
yum install -y openssh-server
Step 2. 创建一个Ceph Deploy用户 - fdeploy
sudo useradd -d /home/fdeploy -m fdeploy
sudo passwd fdeploy
注意:
该用户名不能过是ceph
然后,给该用户sudo的权限:
echo "fdeploy ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/fdeploy
chmod 0440 /etc/sudoers.d/fdeploy
Step 3. 安装epel-release yum源
yum install -y wget
cd /etc/pki/rpm-gpg
wget https://archive.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
yum install -y epel-release
Step 4. 打开所需port
Ceph monitor使用6789端口,osd默认使用6800-7300端口,而对象存储的RGW默认使用7480端口。要确保这些端口都没有被防火墙(firewalld、iptables)关闭。
因为Cloud image上firewalld和iptables都是关闭的,所以这一步可以省略了。
Step 5. 关闭SELinux
sudo setenforce 0
做完了以上这些步骤,恭喜你,我们下面就可以进入真正的Ceph安装过程了。请看下篇:使用ceph-deploy安装Ceph 12.x(三) 安装Ceph集群