Ceph集群部署

  • 先检查是否已经安装Ceph,如有请卸载
	//检查Ceph
	ceph -s
	//卸载Ceph(如果没有相关命令,请先安装ceph-deploy脚本)
	ceph-deploy forgetkeys
    ceph-deploy purge node1 node2 node3
    ceph-deploy purgedata node1 node2 node3
  • 安装前准备
	//关闭防火墙 
	systemctl stop firewalld 
	systemctl disable firewalld 
	//查看防火墙状态 
	systemctl status firewalld 
	//临时关闭SElinux 
	setenforce 0
	//永久关闭SElinux
	vi /etc/selinux/config
	SELINUX=disabled
  • 配置各节点间的/etc/hosts文件
cat << "EOT" > /etc/hosts
172.31.236.221 opennebula00
172.31.236.222 opennebula01
172.31.236.223 opennebula02
172.31.236.224 opennebula03
172.31.236.225 opennebula04
EOT
  • 各节点安装NTP服务
//安装NTP服务
yum install ntp ntpdate ntp-doc
//校对系统时钟 
ntpdate 0.cn.pool.ntp.org
  • 安装部署ssh免密登陆
ssh-keygen
ssh-copy-id root@node1
ssh-copy-id root@node2
ssh-copy-id root@node3
  • 在控制节点上安装部署ceph
//安装相关依赖
yum install snappy leveldb gdisk python-argparse gperftools-libs -y 
  • 修改ceph安装源
//添加yum 源,导入key,这里我使用最新的mimic版本
rpm --import 'https://download.ceph.com/keys/release.asc'
su -c 'rpm -Uvh https://download.ceph.com/rpm-mimic/el7/noarch/ceph-release-1-0.el7.noarch.rpm' 
vi /etc/yum.repos.d/ceph.repo
mimic版本源
[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
  • 在所有节点安装ceph
yum install ceph -y
  • 检查包是否完整
rpm -qa |egrep -i "ceph|rados|rbd"
  • 部署ceph集群
//控制节点安装ceph部署工具
yum install -y ceph-deploy
//创建配置文件目录并生成配置文件
mkdir my-cluster
cd my-cluster/
ceph-deploy new opennebula00
ceph-deploy new opennebula00 opennebula01 opennebula02 opennebula03 opennebula04 opennebula10 opennebula11 opennebula12 opennebula13 opennebula14
//安装ceph
ceph-deploy install opennebula00 opennebula01
  • 初始化monitor
//初始monitor并收集所有密钥
 ceph-deploy mon create-initial	
//各节点部署mgr
 ceph-deploy mgr create opennebula00 opennebula01
// 复制key
 ceph-deploy admin opennebula00 opennebula01
  • 手动增加mon
// 在正常的mon上导出monmap,好的节点写再前面,后面把所有的坏的节点加上即可
monmaptool --create --clobber --fsid xxx --add opennebula00 172.31.236.221:6789 --add control1 172.16.12.41:6789 --add control2 172.16.12.42:6789 /tmp/monmap
// 在坏的节点上把/var/lib/ceph/mon目录删掉
rm -rf /var/lib/ceph/mon
// 将keyring 文件传到其他坏的节点上
scp /var/lib/ceph/mon/ceph-opennebula00/keyring root@opennebula01:/tmp/
// 重做坏节点的mon
ceph-mon --cluster ceph -i opennebula01 --mkfs --monmap /tmp/monmap --keyring /tmp/keyring -c /etc/ceph/ceph.conf
> 做完后如果mon无法启动,请将/var/lib/ceph/mon/ceph-opennebula00下的store.db进行替换,如还有问题,请根据日志进行对应文件的替换与修改
// 最后加入mon监控集群
ceph mon add opennebula01 172.31.236.222
// 查看验证
ceph mon stat
  • 添加OSD
ceph-deploy disk list opennebula00 opennebula01
 //添加OSD
 ceph-deploy osd create --data /dev/sda3 opennebula00
 ceph-deploy osd create --data /dev/sda3 opennebula01

如果无法挂载分区时,请先umount 分区,再重新添加OSD

  • 开启Dashboard
//开启Dashboard
ceph mgr module enable dashboard
 //生成SSL证书
ceph dashboard create-self-signed-cert
//创建管理员及登录密码
 ceph dashboard set-login-credentials admin admin
 //确认验证
 ceph mgr services
  • 创建存储池
systemctl restart ceph-mon@mon-node3
//创建存储池
ceph osd pool create one 128
//列出存储池
ceph osd lspools
//创建访问用户池的用户
ceph auth get-or-create client.libvirt mon 'profile rbd' osd 'profile rbd pool=one'
//获取用户密钥并分发到节点
ceph auth get-key client.libvirt | tee client.libvirt.key
ceph auth get client.libvirt -o ceph.client.libvirt.keyring
//修改配置文件
vi ceph.conf

[global]
rbd_default_format = 2

//复制密钥环到各个节点
scp ceph.client.libvirt.keyring root@opennebula00:/etc/ceph
scp client.libvirt.key oneadmin@opennebula00:
  • 节点设置
UUID=`uuidgen`; echo $UUID

cat > secret.xml <<EOF
<secret ephemeral='no' private='no'>
 <uuid>$UUID</uuid>
 <usage type='ceph'>
 <name>client.libvirt secret</name>
 </usage>
</secret>
EOF

//拷贝密钥到各节点
scp secret.xml oneadmin@opennebula00:

//为各节点上的libvirt用户定义密钥,并移除key
virsh -c qemu:///system secret-define secret.xml
virsh -c qemu:///system secret-set-value --secret $UUID --base64 $(cat client.libvirt.key)
rm client.libvirt.key
//验证配置
ssh oneadmin@opennebula00
rbd ls -p one --id libvirt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘎七马八

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值