Ceph 集群部署


Ceph部署(Mimic 13.2.10)
快速部署步骤
1、准备环境
    4台机器,操作系统centos 7.6,每台机器都有一个系统盘/dev/vba 和一个数据盘dev/vdb,规划如下
    

192.168.162.6	client
192.168.162.6	admin
192.168.162.4	storage1
192.168.162.7	storage3
192.168.162.5	storage2

  


2、配置环境

  1、在每个对应的节点修改主机名,vim /etc/hostname
  2、在每台机器上配置hosts,vim /etc/hosts (见第一点)
  3、在每台机器上 sudo执行visudo命令,注释#Defaults requiretty
  4、在每台机器上 配置yum源,在/etc/yum.repos.d/下添加ceph.repo,其他yum源的配置参考附件

  



5、各个节点,关闭selinux和firewall

setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config
systemctl disable firewalld.service
systemctl stop firewalld.service

  


6、各个节点 yum clean all 和 yum update -y
7、各个节点,创建用户bybceph 并设置密码 12345678

useradd bybceph
echo 12345678 | passwd --stdin bybceph

  


8、各节点为bybceph 用户配置sudo 免密,

echo "bybceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/bybceph
sudo chmod 0440 /etc/sudoers.d/bybceph

  


9、 在各个节点上启动了 NTP 服务,并且要使用同一个 NTP 服务器

10、确保每个节点都安装了ssh
3、安装和配置ceph
1、在admin 节点配置免密登陆, 规划admin 节点既是cepy-deploy节点也是monitor节点

su - bybceph
ssh-keygen
ssh-copy-id admin
ssh-copy-id storage1
ssh-copy-id storage2
ssh-copy-id storage3

  


2、在admin 节点安装ceph-deploy

sudo yum -y install ceph-deploy
如果报错,可以先安装 yum install python-setuptools ,可能出现的异常见右图

  



3、本次练习时,我们创建一个 Ceph 存储集群,它有一个 Monitor 和3个 OSD 守护进程。

一旦集群达到 active + clean 状态,再扩展它:增加第4个 OSD 、增加元数据服务器和两个 Ceph Monitors。为获得最佳体验,先在admin点上创建一个目录,用于保存 ceph-deploy 生成的配置文件和密钥对。
mkdir my-cluster
cd my-cluster
ceph-deploy 会把文件输出到当前目录,所以请确保在此目录下执行 ceph-deploy 

  


4、如果之前安装出现了问题,需要重新安装,请在admin节点执行如下命令

删除ceph相关的配置:ceph-deploy purgedata {ceph-node} [{ceph-node}]
删除key:ceph-deploy forgetkeys
删除ceph相关的安装包:ceph-deploy purge {ceph-node} [{ceph-node}]

停止所有进程: stop ceph-all (可选)
卸载所有ceph程序:ceph-deploy uninstall [{ceph-node}] (可选)

  

5、在admin 节点创建集群,也是创建minitor,语法:ceph-deploy new {initial-monitor-node(s)},本次实例只有一个monitor放在admin节点,所以执行:

ceph-deploy new admin
执行完成后在当前目录下用 ls输出,应该有一个 Ceph 配置文件、一个 monitor 密钥环和一个日志文件。
1)修改ceph.conf配置文件里的默认副本数从 3 改成 2 。把下面这行加入 [global] 段
osd pool default size = 2
2)如果果你有多个网卡,可以把 public network 写入 Ceph 配置文件的 [global] 段,比如:
语法:public network = {ip-address}/{netmask}
public network= 192.168.162.0/24

  


6、安装ceph,在admin 节点执行:

ceph-deploy install admin storage1 storage2 storage3

  


执行该步骤后,实际上在各个节点都安装了ceph
7、在各osd 节点上执行如下命令,安装对象网关,实际上就是在每台osd机器上部署了对象网关:(第6点安装的时候其实已经装了,到各个osd上去检查下执行也行)

yum -y install ceph ceph-radosgw

  


8、在admin节点,配置初始化配置初始 monitor(s)、并收集所有密钥,执行命令:ceph-deploy mon create-initial,执行完成后,在安装目录可以看到如下内容

9、用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了,在admin节点执行

语法:ceph-deploy admin {admin-node} {ceph-node}
例子:ceph-deploy admin admin storage1 storage2 storage3

  


10、启动OSD,在 admin 节点执行即可,默认采用的是bluestore,关于挂载见左侧:

ceph-deploy osd create --data /dev/vdb1 storage1
ceph-deploy osd create --data /dev/vdb1 storage2
ceph-deploy osd create --data /dev/vdb1 storage3
TODO:关于裸盘的操作

  


11、验证ceph health 或ceph -s
12、对象网关配置
  1)、创建存储池 ,在admin 节点执行,语法见 ceph osd pool create --help

ceph osd pool create test 128

  



2)安装rgw服务,在admin 节点执行,ceph-deploy rgw create storage1 storage2 storage3 ,
  完成后即可访问,默认情况下是7480端口,http://ip:7480,返回数据为 :
  对象网关重启命令:sudo systemctl restart ceph-radosgw.service???
3)  在admin 节点安装mgr,ceph-deploy mgr create storage1 storage2 storage3
4)创建对象网关用户,在admin 节点执行:radosgw-admin user create --uid="rgwuser" --display-name="This is first rgw test user"
参考:https://www.jianshu.com/p/79903d72c066

创建完成后,得到accessKey和secetKey 
"access_key": "2HYN0UPBJ0E1VDIA94DY",
"secret_key": "wBtVs1YN5OoxeGb0oOMzlLpmCG69xTVUWff1daxY"

5)基于第4点,有了两个key 和对象网关访问的url ,这样就可以创建桶 (分别创建: bnc-private-bucket 和 bnc-public-bucket),私有桶用了存储个人的身份证和资料信息,公共桶用了存放广告或新闻图片

6)安装S3cmd,便于管理ceph文件和桶的策略,在admin 节点执行:yum -y install s3cmd
7)在用户的家目录,新建一个.s3cfg的文件,内容如下,其中access-key、都是来自前面的信息:可参考右边的附件

[default]
access_key = 2HYN0UPBJ0E1VDIA94DY
secret_key = wBtVs1YN5OoxeGb0oOMzlLpmCG69xTVUWff1daxY
host_base = 192.168.162.7:7480
host_bucket = 192.168.162.7:7480/bnc-private-bucket
use_https = False
.s3cfg

  


8)验证s3,执行:s3cmd info s3://bnc-private-bucket/

9)配置公共桶策略,在用户的家目录新建一个examplepol 的文件,可参与右边的examplepol附件,内容如下:

{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": [
"arn:aws:s3:::bnc-public-bucket/*"
]
}]
}

  


为公共桶添加策略:s3cmd setpolicy examplepol s3://bnc-public-bucket
删除策略:s3cmd delpolicy s3://bnc-public-bucket
examplepol
13、安装dashboard
  1)开启dashboard 功能,ceph mgr module enable dashboard
  2)创建证书 ceph dashboard create-self-signed-cert
  3)创建 web 登录用户密码,ceph dashboard set-login-credentials user-name password
  4)查看服务访问方式 ceph mgr services
  5)dashboard的安装参考:https://blog.csdn.net/don_chiang709/article/details/97148101
14、关于卸载,中途装了一半没成功或想卸载ceph
清理机器上的ceph相关配置:
  停止所有进程: stop ceph-all
  卸载所有ceph程序:ceph-deploy uninstall [{ceph-node}]
  删除ceph相关的安装包:ceph-deploy purge {ceph-node} [{ceph-node}]
  删除ceph相关的配置:ceph-deploy purgedata {ceph-node} [{ceph-node}]
  删除key:ceph-deploy forgetkeys

  卸载ceph-deploy管理:yum -y remove ceph-deploy
15、本案例的安装参考:

https://www.cnblogs.com/happy1983/p/9246379.html
https://blog.csdn.net/wylfengyujiancheng/article/details/85613361
https://blog.csdn.net/don_chiang709/article/details/97148101
https://www.icode9.com/content-3-642657.html


关于s3cmd的使用, 比如查看:s3cmd ls -rH s3://bnc-private-bucket

部署异常处理

pkill ceph


创建存储池

ceph osd pool create test 128


必须挂裸盘

vim /etc/rc.local 
pvs
vgs
lvs
lvremove /dev/akulaku_vg/akulaku_vol 
vgremove akulaku_vg
pvremove /dev/vdb1
fdisk -l
fdisk /dev/vdb1
partx -a /dev/vdb1
public network 和修改hostname


系统管理
存储池:池是对象存储的逻辑部分
基本概念
配置文件、服务存放路径、命令存储路径
service 配置路径:

/etc/systemd/system
/usr/lib/systemd/system

命令执行路径:

/usr/bin/


配置文件路径:

/etc/sysconfig/
ceph 的启动都做成了sysctl的启动方式,启动日志和状态查看


// 启动与关闭 /usr/lib/systemd/system
systemctl status ceph-mgr@storage1.service

ceph 相关的日志路径/var/log/ceph
修改ceph.conf 后需要修改monitor重启
systemctl restart ceph-mon.target
原文地址:https://www.cnblogs.com/NGU-PX/p/14210801.html