使用的官方的教程,ceph-deploy进行安装和部署。
环境准备
最小要求是准备4台虚拟机。1台作为管理机,作用是安装程序和创建服务应用。
1台为mon节点,2台为node节点。mon和node节点都需要挂载一块除系统使用外的硬盘,用来做存储用。
为了安装能顺利进行,还要准备相应的账号、sudo权限、镜像站点、安全配置
测试环境使用的是CENTOS7,安装按照默认即可。
系统参数配置
- 账号。ceph需要一个统一的不是ceph的账号,这个普通账号需要具有sudo权限,并且sudo应该是免密码的。本测试使用qyceph。
创建账号
useradd qyceph
passwd qyceph
- sudo配置
使用visudo编辑sudo配置
#comment the tty conf
#Defaults requiretty
#add
qyceph ALL=(ALL) NOPASSWD: ALL
- 镜像站点
找了几个镜像站点
https://mirrors.163.com/ceph/
https://mirrors.aliyun.com/ceph/
- 关闭selinux和firewalld
- 为了方便访问配置hostname 以及 hosts
每个节点都写一样的hosts,例如:
192.168.1.240 ceph-admin
192.168.1.241 ceph-node1
192.168.1.242 ceph-node2
192.168.1.243 ceph-node3
*统一配置timezone和ntpserver
为了保持时间一直需要安装ntpdate并配置crontab做时间同步
timedatectl set-timezone 'Asia/Shanghai'
yum install ntpdate -y
#crontab add
*/10 * * * * ntpdate cn.pool.ntp.org
- admin节点需要生成ssh-key,并同步到其他节点
ssh-keygen
ssh-copy-id qyceph@192.168.1.241
ssh-copy-id qyceph@192.168.1.242
ssh-copy-id qyceph@192.168.1.243
安装
###Admin节点上
mkdir my-cluster
cd my-cluster
- 创建ceph集群并定义mon节点,命令会创建ceph.conf并将ceph-node1节点定义为mon
ceph-deploy new ceph-node1 ceph-node2
默认的osd是3份,为了测试可以修改ceph.conf,在[global]下增加配置改为2.
另外一个就是最好增加 public network={ip-address}/{netmask}
osd pool default size = 2
public network={ip-address}/{netmask}
- 给每个节点安装ceph程序
ceph-deploy install ceph-node1 ceph-node2 ceph-node3
如果这样安装比较慢,可以直接手动在节点上安装好epel和ceph的安装包。
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
#ceph.repo需要自己配置
yum install ceph-osd ceph-common ceph-selinux ceph-release ceph-mds ceph-mon ceph-radosgw ceph-base -y
- 初始化mon节点
ceph-deploy mon create-initial
此命令会将之前定义的mon节点进行初始化配置,新的版本会自动启动mon节点,完成选举。
此命令完成后,会在my-cluster目录创建keyrings
{cluster-name}.client.admin.keyring
{cluster-name}.bootstrap-osd.keyring
{cluster-name}.bootstrap-mds.keyring
- 创建osd。格式是 主机:磁盘
ceph-deploy osd prepare ceph-node1:/dev/vdb ceph-node2:/dev/vdb ceph-node3:/dev/vdb
在ceph-node1节点上
- 查看集群状态
ssh ceph-node1
ceph health
至此,一个测试集群就已经可以测试使用了。不过,现在只能做object storage,其他的还不能做。需要在mon节地上部署增加功能才能支持rbd和cephfs。
ceph集群扩展
增加一个mon节点
可以新配置一个节点,只要系统配置和软件都配置好了,可以使用ceph-deploy方便的将节点加入。
注意事项:一定要注意机器的时间保持一致,尤其是时区。
ceph-deploy mon create ceph-node4
如果增加过程都正常,最后会提示
ceph-node4 is not defined inmon initial members
这主要是ceph动态的将ceph-node4加入到mon里。一下命令查看mon信息
ceph quorum_status --format json-pretty