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