ceph分布式集群的搭建
一、前期准备
1.1、主机规划
IP | 系统 | 主机名 | 描述 |
---|---|---|---|
192.168.80.37 | CentOS7.6 | ceph01 | admin-node,mon-node1,osd1 |
192.168.80.47 | CentOS7.6 | ceph02 | mon-node2,osd2 |
192.168.80.57 | CentOS7.6 | ceph03 | osd3 |
1.2、修改主机名
按主机规划设备各主机的主机名,并在 /etc/hosts 文件中添加解析配置
#修改主机名
hostnamectl set-hostname ceph01
exec bash
#修改/etc/hosts,添加以下配置
vim /etc/hosts
192.168.80.37 ceph01
192.168.80.47 ceph02
192.168.80.57 ceph03
1.3、关闭防火墙
# 停止
systemctl stop firewalld.service
# 禁用
systemctl disable firewalld.service
1.4、关闭SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
1.5、配置yum源
cd /etc/yum.repos.d/
mkdir bak && mv *.repo bak/
#下载aliyun的yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
1.6、设置时间同步
# 设置时区
timedatectl set-timezone Asia/Shanghai
# 同步时间
yum install -y ntpdate
ntpdate time1.aliyun.com
1.7、创建免密钥登录
#在ceph01节点上执行
ssh-keygen
ssh-copy-id root@ceph01
ssh-copy-id root@ceph02
ssh-copy-id root@ceph03
二、ceph集群搭建
2.1、配置ceph源
vim /etc/yum.repos.d/ceph.repo
[ceph]
name=Ceph packages for
[ceph]
name=Ceph packages for
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
2.2、安装ceph-deploy和ceph
#在ceph01节点上执行
yum install -y ceph-deploy ceph python-setuptools
#在ceph02和ceph03节点上执行
yum install -y ceph python-setuptools
2.3、创建集群
(1) 在管理节点admin-node(ceph01)上创建mon并初始化,收集秘钥
#进行配置文件目录
cd /etc/ceph
#创建mon
ceph-deploy new ceph01 ceph02
#初始化mon
ceph-deploy mon create-initial
#查看集群状态
ceph -s
(2) 在管理节点admin-node(ceph01)上创建osd
#创建osd
ceph-deploy osd create --data /dev/sdb ceph01
ceph-deploy osd create --data /dev/sdb ceph02
ceph-deploy osd create --data /dev/sdb ceph03
#查看集群状态
ceph -s
#查看osd状态
ceph osd stat
#查看osd目录树
ceph osd tree
(3) 在管理节点admin-node(ceph01)上,将配置文件和admin秘钥下发到节点,并给秘钥增加权限
#在ceph01节点上执行
ceph-deploy admin ceph01 ceph02 ceph03
#在ceph01、ceph02、ceph03节点上执行(/etc/ceph目录下)
chmod +r ceph.client.admin.keyring
#查看集群状态
ceph -s
2.4、创建mgr网关
#在ceph01节点上执行
cd /etc/ceph
ceph-deploy gatherkeys ceph01 ceph02 ceph03
ceph-deploy mgr create ceph01 ceph02 ceph03
#查看集群健康状态
ceph health
#安装octopus版本时还需要装以下模块
pip3 install pecan werkzeug
2.5、创建mds和pool
#以下操作均在ceph01节点上执行
#创建mds
ceph-deploy mds create ceph01 ceph02 ceph03
#创建存储池
ceph osd pool create cephfs_data 120
ceph osd pool create cephfs_metadata 120
#创建文件系统
ceph fs new cephfs cephfs_metadata cephfs_data
#查看文件系统
ceph fs ls
#查看mds节点状态
ceph mds stat
#常用命令
ceph osd pool get [存储池名称] size #查看存储池副本数
ceph osd pool set [存储池名称] size 3 #修改存储池副本数
ceph osd lspools #打印存储池列表
ceph osd pool create [存储池名称] [pg_num的取值] #创建存储池
ceph osd pool rename [旧的存储池名称] [新的存储池名称] #存储池重命名
ceph osd pool get [存储池名称] pg_num #查看存储池的pg_num
ceph osd pool get [存储池名称] pgp_num #查看存储池的pgp_num
ceph osd pool set [存储池名称] pg_num [pg_num的取值] #修改存储池的pg_num值
ceph osd pool set [存储池名称] pgp_num [pgp_num的取值] #修改存储池的pgp_num值
2.6、客户端挂载
(1) 内核驱动挂载
#安装依赖
yum install -y ceph-common
#创建挂载点
mkdir /mnt/cephfs
#获取存储密钥,管理节点执行
ceph auth get-key client.admin
#或从文件中获取
cat /etc/ceph/ceph.client.admin.keyring
#直接挂载
mount -t ceph 192.168.80.37:6789:/ /mnt/cephfs -o name=admin,secret=AQBkMoJge6sUAxAAg2s7u+s4p3wDDQNNx0TP9Q==
#建议将密钥保存到文件中然后再挂载
echo 'AQBkMoJge6sUAxAAg2s7u+s4p3wDDQNNx0TP9Q==' > /etc/ceph/admin.secret
mount -t ceph 192.168.80.37:6789:/ /mnt/cephfs -o name=admin,secretfile=/etc/ceph/admin.secret
#卸载
umount /mnt/cephfs/
(2) 用户控件挂载
#安装依赖
yum install -y ceph-fuse
#挂载
ceph-fuse -m 192.168.80.37:6789 /mnt/cephfs
#卸载
fusermount -u /mnt/cephfs
2.7、扩容操作
假如有一个新的ceph04节点(提前安装好相关包,类似于ceph02节点)要加入集群,并且需要扩容mon和osd
(1) 扩容mon
#在ceph01节点上执行,修改ceph.conf文件
cd /etc/ceph
vim ceph.conf
[global]
fsid = 4ed770bf-5768-4ba5-b04f-f96a63bb98c9
mon_initial_members = ceph01, ceph02, ceph04 #添加ceph04
mon_host = 192.168.80.37,192.168.80.47,192.168.80.67 #添加ceph04的IP地址'
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
public network = 192.168.80.0/24 #添加内部通信网段
#重新下发配置文件
ceph-deploy --overwrite-conf config push ceph01 ceph02 ceph03
#添加mon
ceph-deploy mon add ceph04
#查看集群状态
ceph -s
(2) 扩容osd
ceph-deploy osd create --data /dev/sdb ceph04