Ceph分布式存储系统共部署4个节点(使用云主机),即ceph1、ceph2、ceph3。系统均使用CentOS7.1。
使用三个云主机作为Ceph节点,第4个主机作为admin-node。 每个节点上增加两个虚拟磁盘 vda 和 vdb 作为 OSD 存储磁盘,每个节点上安装 MON,前两个节点上安装 MDS。
Ceph集群部署过程中,请保持各主机可以访问互联网下载rpm资源。部署完成后,可以切断Ceph子网的外网访问权限。
节点名称 IP 地址 部署进程 数据盘ceph1
10.0.2.5
1MON+1MDS+2OSD /dev/vdb, /dev/vdcceph2
10.0.2.7
1MON+1MDS+2OSD /dev/vdb, /dev/vdcceph3
10.0.2.8
1MON+1RGW+2OSD/dev/vdb, /dev/vdc
admin-node 10.0.2.16/192.168.10.16
注:192.168.10.16为管理节点使用的管理子网地址。
2、Ceph deploy管理节点部署
配置admin-node的ceph软件仓库镜像源:
yum install -y yum-utils && yum-config-manager --add-repo https://dl.Fedoraproject.org/pub/epel/7/x86_64/ && yum install --nogpgcheck -y epel-release && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && rm /etc/yum.repos.d/dl.fedoraproject.org*
创建一个Ceph yum源配置文件:
安装ceph-deploy工具:
yum update && yum install ceph-deploy
3、Ceph节点部署环境准备
(1)在4个主机上均配置好ntp服务
yum -y install ntp ntpdate ntp-doc
设置好定时任务:
# crontab -l
*/5 * * * * /usr/sbin/ntpdate s2m.time.edu.cn > /dev/null 2>&1
(2)在4个主机上设置主机名与IP地址映射关系
vi /etc/hosts 10.0.2.5 ceph1 10.0.2.7 ceph2 10.0.2.8 ceph3 10.0.2.16 ceph-mgmt
(3)在3个ceph节点上创建一个普通管理帐号,并授权sudo权限
# useradd -d /home/dpadmin -m dpadmin #echo "dpadmin ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/dpadmin #chmod 0440 /etc/sudoers.d/dpadmin
(4)在管理节点上创建一个普通帐号(不使用root,也不要授权sudo权限),用于管理ceph集群各server节点
建立该帐号对ceph集群内各存储节点的ssh免密码登录(对每个存储节点上有sudo权限的dpadmin用户)。
# useradd -d /home/dpadmin -m dpadmin #su - dpadmin $ssh-keygen 注:设置密钥密码为空 $ssh-copy-id dpadmin@ceph1 $ssh-copy-id dpadmin@ceph2 $ssh-copy-id dpadmin@ceph3
(5)打开系统防火墙端口
Ceph Monitors使用tcp端口6789,Ceph OSDs使用tcp端口6800:7300 ,Ceph RGW使用tcp端口7480 。
firewall-cmd --zone=public --add-port=6789/tcp --permanent firewall-cmd --zone=public --add-port=7480/tcp --permanent firewall-cmd --zone=public --add-port=6800:7300/tcp --permanent
关闭selinux。
(6)设置3个存储节点上requiretty参数
在使用ceph-deploy进行部署时需要登录存储节点执行sudo权限的命令。这需要在每个存储节点上都允许ceph执行这样的系统配置。
#visudo --修改如下 Defaults:ceph !requiretty
二、创建Ceph存储集群
1、在管理节点上创建一个目录,用于保存集群的配置文件和密钥文件。
使用我们前面创建的普通帐号dpadmin执行:
mkdir my-cluster cd my-cluster2、开始创建新集群,生成集群使用的配置文件和密钥
$ceph-deploy new ceph{1,2,3} $ ls ceph.conf ceph.log ceph.mon.keyring