1. 服务器基本信息:
服务器名称
|
服务器IP
|
节点类型
|
系统
|
Ceph-admin
|
192.168.195.30
|
管理节点
|
CentOS-7-x86_64-DVD-1611.iso
|
Node1
|
192.168.195.31
|
Mon,osd
|
CentOS-7-x86_64-DVD-1611.iso
|
Node2
|
192.168.195.32
|
Mon,osd
|
CentOS-7-x86_64-DVD-1611.iso
|
Node3
|
192.168.195.33
|
Mon,osd
|
CentOS-7-x86_64-DVD-1611.iso
|
2. 配置网络
在每个节点上按照上面的表配置好IP地址。
3. 禁用防火墙
在每个节点上执行:
[root@ceph-admin /]# systemctl stopfirewalld.service–立即关闭,再一次启动时失效
[root@ceph-admin /]# systemctl disable firewalld.service–使重启后防火墙依旧关闭
4. 修改主机名
[root@ceph-admin /]#vi /etc/hostname –每个节点上都需要修改,因为默认是localhost.domain
5. 设置selinux为disabled
[root@ceph-admin /]#vi /etc/selinux/config–设置SELINUX=disabled
6. 创建一个安装ceph的用户,这里测试使用dgb,并且授权用户“dgb”拥有sudo权限
[root@ceph-admin /]#echo "dgb ALL =(root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/dgb
[root@ceph-admin /]#sudo chmod 0440/etc/sudoers.d/dgb
7. 搭建NTP时钟服务
将ceph-admin作为ntp服务器,在服务器ceph-admin上操作。
查看是否安装了NTP:
[root@ceph-admin /]# rpm –qa | grep ntp
如果没有安装,那么先安装上ntp,然后编辑ntp.conf文件。
[root@ceph-admin /]#vi /etc/ntp.conf
以下是ntp.conf文件的一部分。
将原先为:
# Please consider joining the pool(http://www.pool./join.html).
server 0.centos.pool. iburst
server 1.centos.pool. iburst
server 2.centos.pool. iburst
server 3.centos.pool. iburst
修改为:
# Please consider joining the pool(http://www.pool./join.html).
#server 0.centos.pool. iburst
#server 1.centos.pool. iburst
#server 2.centos.pool. iburst
#server 3.centos.pool. iburst
server 127.127.1.0
fudge 127.127.1.0 stratum 10
因为这里需要将ceph-admin作为ntp服务器,所以server就是其本身,需要注意的是体现本机的IP是:127.127.1.0,而不是127.0.0.1;stratum 10指的就是顶级了,并没有更上一级的主机。
配置完后ntp.conf文件后,启动ntp服务:
[root@ceph-admin /]# systemctl start ntpd.service--开启ntp服务
[root@ceph-admin /]# systemctl enablentpd.service—开机自启动ntp服务
[root@ceph-admin /]# ntpq –p –-查看ceph-admin的ntp服务器是否为自身
remote refid st t when poll reach delay offset jitter
==========================================================================
*LOCAL(0) .LOCL. 10 l 28 64 377 0.000 0.000 0.000
这样的输出证明已经配置成功了。
8. 在node1,node2,node3节点上指定ntp服务器
以node1为例:
首先查看ntp是否安装:
[root@node1 /]#rpm –qa | grep ntp
配置ntp.conf文件,将原先
# Please consider joining the pool(http://www.pool./join.html).
server 0.centos.pool. iburst
server 1.centos.pool. iburst
server 2.centos.pool. iburst
server 3.centos.pool. iburst
修改为:
# Please consider joining the pool(http://www.pool./join.html).
#server 0.centos.pool. iburst
#server 1.centos.pool. iburst
#server 2.centos.pool. iburst
#server 3.centos.pool. iburst
server 192.168.195.30 –为ceph-admin的IP
fudge 127.127.1.0 stratum 11
配置完后ntp.conf文件后,启动ntp服务:
[root@node1 /]# systemctl start ntpd.service--开启ntp服务
[root@node1 /]# systemctl enablentpd.service—开机自启动ntp服务
[root@node1 /]# ntpq –p –-查看是否为ceph-admin
remote refid st t when poll reach delay offset jitter
===========================================================================
*ceph-admin LOCAL(0) 11 u 13 64 1 1.236 -0.700 0.000
Remote :*ceph-admin
Refid :LOCAL(0)
如果是其他的,如:refid:init就为配置不成功,按此步骤在其他节点进行配置。
9. ssh无密码访问
[root@ceph-admin /]#su – dgb
其他节点也一样,因为是dgb用户安装ceph。
在每一个节点上都执行如下:
[dgb@ceph-admin ~]$ssh-keygen
一路回车即可。
然后执行:
[dgb@ceph-admin ~]$ssh-copy-id dgb@node1
[dgb@ceph-admin ~]$ssh-copy-id dgb@node2
[dgb@ceph-admin ~]$ssh-copy-id dgb@node3
[dgb@ceph-admin ~]$ssh-copy-iddgb@ceph-admin
在每一个节点上都需要执行以上操作。
检查是否ssh无密码访问:
[dgb@ceph-admin ~]$ssh node1
[dgb@ceph-admin ~]$ssh node2
[dgb@ceph-admin ~]$ssh node3
[dgb@ceph-admin ~]$ssh ceph-admin
不需要输入密码才是正确的。
10. 在ceph-admin服务器上安装httpd服务器和安装本地yum源
首先安装httpd服务
安装httpd服务需要安装httpd-2.4.6-45.el7.centos.x86_64.rpm包,然而还有需要安装一些依赖包,不然会报错,如:
[root@study Packages]# rpm -ivh httpd-2.4.6-45.el7.centos.x86_64.rpm
warning:httpd-2.4.6-45.el7.centos.x86_64.rpm: Header V3 RSA/SHA256 Signature, key IDf4a80eb5: NOKEY
error: Failed dependencies:
/etc/mime.types is needed byhttpd-2.4.6-45.el7.centos.x86_64
httpd-tools = 2.4.6-45.el7.centos isneeded by httpd-2.4.6-45.el7.centos.x86_64
依赖包的安装顺序也是有关系的,以上报错是还缺少mailcap-2.1.41-2.el7.noarch.rpm,httpd-tools-2.4.6-45.el7.centos.x86_64.rpm
正确依赖包安装顺序如下:
mailcap-2.1.41-2.el7.noarch.rpm
apr-1.4.8-3.el7.x86_64.rpm
apr-util-1.5.2-6.el7.x86_64.rpm
httpd-tools-2.4.6-45.el7.centos.x86_64.rpm
httpd-2.4.6-45.el7.centos.x86_64.rpm
主要还是安装顺序的关系这个需要特别注意。
创建httpd目录
mkdir -p /var/www/html/ceph/10.2.5
这个“/var/www/html/”是httpd的默认目录,也可以自己指定,不在这里详述。
复制rpm包至/var/www/html/ceph/10.2.5
在/etc/yum.repos.d/下创建配置文件ceph.repo,删除系统原本的repo文件,或者在原本的repo文件中每一个属性参数都加上enabled=0,这样就不启动了;
如:
[root@ceph1]#cat /etc/yum.repos.d/ceph.repo
[ceph_local]
name=ceph-local
baseurl=http://192.168.195.30/ceph/10.2.5
gpgcheck=0
这个IP就是安装httpd的IP地址。
执行yum clean all清除缓存
createrepo /var/www/html/ceph/10.2.5 创建仓库
启动httpd:systemctl start httpd.service
yum makecache 下载服务器上的rpm包至缓存
局域网其他机器需要使用yum源,需要将192.168.195.30这台机器上ceph.repo分发过去,在同样的目录下;建议将所以其他的repo都删除。
这里的yum源,是将这个iso和ceph必须的所有rpm包全部添加进去了,除了iso镜像中的rpm外,还必须要一下rpm包:
二、安装CEPH
1. 安装ceph软件
使用dgb登录ceph-admin服务器,执行以下命令:
[dgb@ceph-admin ~]$sudo yum install cephceph-radosgw –y
此命令在其他三个节点都需要执行。
2. 在安装节点上安装ceph-deploy
[dgb@ceph-admin ~]$ sudo yum -y installceph-deploy
3. 在dgb用户目录下创建my-cluster目录
[dgb@ceph-admin ~]$ pwd
/home/dgb
[dgb@ceph-admin ~]$ mkdir /my-cluster
进入这个目录
4. 创建集群
[dgb@ceph-admin ~]$ceph-deploy newceph-admin node1 node2 node3
执行完后再当前目录下会多出三个文件:
[dgb@ceph-admin~]$ls –l
-rw-rw-r-- 1 dgbdgb 327 Mar 5 19:03 ceph.conf
-rw-rw-r-- 1 dgb dgb 68924 Mar 5 19:12 ceph-deploy-ceph.log
-rw------- 1 dgb dgb 73 Mar 5 19:02 ceph.mon.keyring
在ceph.conf末尾添加
osd pool default size = 2
5. 配置初始monitors,收集所有密钥
[dgb@ceph-admin ~]$ceph-deploy moncreate-initial
6. 创建OSD
在root用户下或者dgb用户下sudo执行
Node1:
mkdir -p /var/local/osd1
chmod 777 /var/local/osd1
Node2:
mkdir -p /var/local/osd2
chmod 777 /var/local/osd2
Node3:
mkdir -p /var/local/osd3
chmod 777 /var/local/osd3
创建完目录后准备:
ceph-deployosd prepare node1:/var/local/osd1 node2:/var/local/osd2node3:/var/local/osd3
激活OSD:
ceph-deploy osd activate node1:/var/local/osd1 node2:/var/local/osd2node3:/var/local/osd3
这里使用的是一个目录,也可以是一个独立磁盘和分区,如:
ceph-deployosd prepare node1:/dev/sdb1 node2:/dev/sdb1 node3:/dev/sdb1
ceph-deploy osd activate node1:/dev/sdb1 node2:/dev/sdb1 node3:/dev/sdb1
7. 授权各节点能访问admin节点上的
在ceph-admin上,root或者sudo dgb执行:
chmod +r/etc/ceph/ceph.client.admin.keyring
8. 检查ceph集群是否安装成功
[dgb@ceph-admin ~]$ ceph health
HEALTH_OK
至此,安装成功。