分布式存储系统ceph部署、部署工具ceph-deploy

学思创的头像
学思创
180

部署前准备工作

1、准备3台及3台以上centos7

192.168.31.50 admin.chengrun.com    管理节点、监控节点、存储节点mds、mon、osd
192.168.31.51 osd1.chengrun.com     存储节点osd
192.168.31.52 osd2.chengrun.com     存储节点osd
192.168.31.53 client.chengrun.com   客户端client

2、修改每台要部署的机器的host文件,把要部署的机器分别把局域网ip与对应的域名或者主机名加到host中(host相当于域名解析通过域名找到对应的机器)

vi /etc/hosts

把下面内容追加到后面

192.168.31.50 admin.chengrun.com
192.168.31.51 osd1.chengrun.com
192.168.31.52 osd2.chengrun.com
192.168.31.53 client.chengrun.com

每台修改完成,然后测试能否ping通
ping admin.chengrun.com
ping osd1.chengrun.com
ping osd2.chengrun.com
ping client.chengrun.com

3、防火墙设置

第一种方法:关闭防火墙

在每台机器执行下面命令来关闭防火墙
service iptables stop
chkconfig iptables off
setenforce 0
getenforce

第二种方法:开放防火墙端口

查看防火墙相关命令操作:https://xsc.sxcrun.com/userarticle/detail/id/11

4、关闭selinux,执行下面命令
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config && setenforce 0

5、安装wget
yum install wget -y

6、免密钥登录

admin.chengrun.com、osd1.chengrun.com、osd2.chengrun.com节点配置免密钥登录

ssh-keygen用来生成ssh公钥认证所需的公钥和私钥文件
ssh-keygen

复制id到admin.chengrun.com、osd1.chengrun.com、osd2.chengrun.com节点上
ssh-copy-id root@admin.chengrun.com

ssh-copy-id root@osd1.chengrun.com

ssh-copy-id root@osd2.chengrun.com

使用下面命令测试免密ssh连接是否正常
必须在管理节点admin.chengrun.com上执行下面命令
ssh 'root@osd1.chengrun.com'

看到连接成功,表示已经登录对应的节点上的主机上了
然后要执行exit来退出登录,否则当前控制台显示的是对应节点的主机(注意:测试后必须要执行exit退出)
exit

各节点(除去客户端节点client.chengrun.com)重复上面操作测试

前提工作完成后正式开始部署ceph

正式开始部署ceph

通过下面命令通过rpm命令安装ceph-deploy(ceph部署工具)

rpm -ivh http://download.ceph.com/rpm-luminous/el7/noarch/ceph-deploy-2.0.1-0.noarch.rpm
yum install ceph-deploy -y

管理节点上使用ceph-deploy部署

先创建文件夹在根目录下的tmp(/tmp)

cd /tmp

mkdir ceph-cluster
cd ceph-cluster

创建一个ceph新集群

ceph-deploy new admin.chengrun.com

通过上面命令执行可以生成相关配置文件

如果存储节点只有2个需要把 Ceph 配置文件(ceph.conf)里的默认副本数从 3 改成 2 ,这样只有两个 OSD 也可以达到 active + clean 状态。把下面这行加入 [global] 段

osd pool default size = 2  (这个不是命令是配置文件中的配置项)

安装ceph 这个需要在3台存储节点机器上都要安装ceph(root用户操作)

方法1:
在admin.chengrun.com、osd1.chengrun.com、osd2.chengrun.com节点上执行下面命令来安装ceph
yum install -y yum-plugin-prioritie
rpm -ivh http://download.ceph.com/rpm-luminous/el7/noarch/ceph-release-1-1.el7.noarch.rpm
yum -y install ceph

方法2:
在管理节点上执行下面命令来统一安装安装 Ceph
ceph-deploy install admin.chengrun.com osd1.chengrun.com osd2.chengrun.com

仓库源选择(下面是阿里源)
centos 7 选择el7
http://mirrors.aliyun.com/ceph/rpm-15.2.5/el7/
centos8 选择el8
http://mirrors.aliyun.com/ceph/rpm-15.2.5/el8/

ceph-deploy install admin.chengrun.com osd1.chengrun.com osd2.chengrun.com  --repo-url=http://mirrors.aliyun.com/ceph/rpm-15.2.5/el7/

配置初始 monitor(s)、并收集所有密钥
ceph-deploy mon create-initial

执行下列命令列举各节点上的磁盘:
ceph-deploy disk list admin.chengrun.com
ceph-deploy disk list osd1.chengrun.com
ceph-deploy disk list osd2.chengrun.com

用下列命令擦净(删除分区表)磁盘,以用于 Ceph :

ceph-deploy disk zap admin.chengrun.com:sdb

创建 OSD (用 create 命令一次完成准备 OSD 、部署到 OSD 节点、并激活它)
lsblk
方法1:
for dev in /dev/sdb /dev/sdb /dev/sdb
do
ceph-deploy disk zap admin.chengrun.com $dev
ceph-deploy osd create admin.chengrun.com --data $dev
ceph-deploy disk zap osd1.chengrun.com $dev
ceph-deploy osd create osd1.chengrun.com --data $dev
ceph-deploy disk zap osd2.chengrun.com $dev
ceph-deploy osd create osd2.chengrun.com --data $dev
done
方法2:
ceph-deploy disk zap admin.chengrun.com /dev/sdb
ceph-deploy osd create admin.chengrun.com --data /dev/sdb

ceph-deploy disk zap osd1.chengrun.com /dev/sdb
ceph-deploy osd create osd1.chengrun.com --data /dev/sdb

ceph-deploy disk zap osd2.chengrun.com /dev/sdb
ceph-deploy osd create osd2.chengrun.com --data /dev/sdb

分发配置和密钥
ceph-deploy admin admin.chengrun.com osd1.chengrun.com osd2.chengrun.com

部署 mgr , L版以后才需要部署 mgr 为web端口 随机 组
ceph-deploy mgr create admin.chengrun.com osd1.chengrun.com osd2.chengrun.com

开启 dashboard 模块
ceph mgr module enable dashboard

查看集群存储节点的当前布局
查看OSD目录树
ceph osd tree

查看集群的osd状态
ceph osd dump

增加元数据服务器

在管理节点创建mds
ceph-deploy mds create admin.chengrun.com

一个 Ceph 文件系统需要至少两个 RADOS 存储池,一个用于数据、一个用于元数据
$ ceph osd pool create cephfs_data <pg_num>
$ ceph osd pool create cephfs_metadata <pg_num>

eg:
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128

创建cephfs文件系统,注意一个ceph只能创建一个cephfs
ceph fs new cephfs cephfs_metadata cephfs_data

客户端挂载分布式存储

安装ceph-fuse
yum install -y ceph-fuse

如果安装失败,先执行以下命令,再执行上述安装命令

yum -y install epel-release

rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm

 

使用cephfs必须要一个元数据服务器
配置客户端访问的key
方法1:
创建目录
mkdir /etc/ceph/
vi /etc/ceph/ceph.client.admin.keyring
[client.admin]
key =XX(这里的XX替换成管理节点这个文件中的/etc/ceph/ceph.client.admin.keyring)
方法2:
直接复制管理节点下/etc/ceph/ceph.client.admin.keyring文件到当前主机/etc/ceph/目录下

ceph-fuse 挂载
ceph-fuse -m <mons_IP1>:6789,<mons_IP2>:6789,<mons_IP3>:6789 -r <ceph集群中的目录> <宿主机目录> -o nonempty

mkdir /tmp/cephfs
ceph-fuse -m 192.168.31.50:6789 /tmp/cephfs

删除pool error的解决方法

注:1-3步的操作必须在mon节点上执行

1. 打开mon节点的配置文件:
vi /etc/ceph/ceph.conf
2. 在配置文件中添加如下内容:
[mon]
mon allow pool delete = true
3. 重启ceph-mon服务:
systemctl restart ceph-mon.target
4. 执行删除pool命令:
ceph osd pool delete ecpool ecpool --yes-i-really-really-mean-it

 

 

 

用户评论
评论列表