分布式存储Ceph
3mon在controller节点
4osd在compute节点上
1. 设置yum源 (所有MON&OSD节点操作) (我这边使用的是ceph的mimic版本)
[root@DT_Node-172_17_7_1 ~]# curl -Lk https://github.com/xiaoyawl/centos_init/raw/master/ceph.repo > /etc/yum.repos.d/ceph.repo [root@DT_Node-172_17_7_1 ~]# yum clean all [root@DT_Node-172_17_7_1 ~]# yum makecache [root@DT_Node-172_17_7_1 ~]# yum repolist
2. 环境
基础环境,如hosts,时间同步ntp,开放端口iptables等相关操作
3. 设置ssh的config (Deploy节点操作)
[root@DT_Node-172_17_7_1 ~]# cat ~/.ssh/config Host controller1 Hostname controller1 User cephde Port 22992 Host controller2 Hostname controller2 User cephde Port 22992 Host controller3 Hostname controller3 User cephde Port 22992 Host compute1 Hostname compute1 User cephde Port 22992 Host compute2 Hostname compute2 User cephde Port 22992 Host compute3 Hostname compute3 User cephde Port 22992 Host compute4 Hostname compute4 User cephde Port 22992 [root@DT_Node-172_17_7_1 ~]#
4.准备环境 (所有MON&OSD节点操作)
[root@DT_Node-172_17_7_1 ~]# yum -y install yum-plugin-priorities [root@DT_Node-172_17_7_1 ~]# yum install -y yum-utils snappy leveldb gdiskpython-argparse gperftools-libs ntpdate [root@DT_Node-172_17_7_1 ~]# echo 'kernel.pid_max = 4194303' >> /etc/sysctl.conf && sysctl -p
5. 清理环境(Deploy节点操作)
[root@DT_Node-172_17_7_1 ~]# yum install -y ceph-deploy [root@DT_Node-172_17_7_1 ~]# mkdir -p /data/ceph/deploy && cd /data/ceph/deploy [root@DT_Node-172_17_7_1 /data/ceph/deploy]# echo 'alias ceph-deploy="ceph-deploy --username root"' >> /etc/profile #因为是基于root用户安装的,所以为了后面的命令执行方便这里这个命令别名 [root@DT_Node-172_17_7_1 /data/ceph/deploy]# source /etc/profile
6. 清理环境(Deploy节点操作)
[root@DT_Node-172_17_7_1 /data/ceph/deploy]# ceph-deploy purge controller1 controller2 controller3 compute1 compute2 compute3 compute4 #清理安装包 [root@DT_Node-172_17_7_1 /data/ceph/deploy]# ceph-deploy purgedata controller1 controller2 controller3 compute1 compute2 compute3 compute4 #清理数据 [root@DT_Node-172_17_7_1 /data/ceph/deploy]# ceph-deploy forgetkeys #清理秘钥文件 [root@DT_Node-172_17_7_1 /data/ceph/deploy]# \rm -rf ceph.* && >ceph-deploy-ceph.log #删除配置文件
7、安装环境(Deploy节点操作)
[root@DT_Node-172_17_7_1 /data/ceph/deploy]# ceph-deploy install --no-adjust-repos controller1 controller2 controller3 compute1 compute2 compute3 compute4 [root@DT_Node-172_17_7_1 /data/ceph/deploy]# ceph-deploy new --cluster-network 172.17.0.0/21 --public-network 172.17.0.0/21 controller1 controller2 controller3 [root@DT_Node-172_17_7_1 /data/ceph/deploy]# echo '# 默认保护机制不允许删除pool,根据情况设置 mon_allow_pool_delete = true' >> ceph.conf
8、添加防火墙规则 (所有MON&OSD节点操作)
-A INPUT -s 172.17.0.0/21 -p tcp -m tcp -m state --state NEW -m multiport --dports 6789 -m comment --comment "Ceph_MON_Port" -j ACCEPT -A INPUT -s 172.17.0.0/21 -p tcp -m tcp -m state --state NEW -m multiport --dports 6800:7300 -m comment --comment "Ceph_OSD_Port" -j ACCEPT
9、初始化
#初始化monitor [root@DT_Node-172_17_7_1 ~]# ceph-deploy --overwrite-conf mon create-initial #查看状态 [root@DT_Node-172_17_7_1 ~]# for i in 1 2 3;do ssh root@controller$i "systemctl status ceph-mon@controller$i.service";done
10、分发ceph.conf与秘钥
[root@DT_Node-172_17_7_1 ~]# ceph-deploy --overwrite-conf admin controller1 controller2 controller3 compute1 compute2 compute3 compute4
11、安装mgr
[root@DT_Node-172_17_7_1 ~]# ceph-deploy mgr create controller1:controller1_mgr controller2:controller2_mgr controller3:controller3_mgr [root@DT_Node-172_17_7_1 ~]# for i in 1 2 3;do ssh root@controller$i "systemctl status ceph-mgr@controller${i}_mgr";done #查看状态 # 使用ceph -s命令确认mgr的active状态在哪个节点上 然后去那个节点上netstat -tunlp | grep mgr看端口监听情况 # 如果想更换mgractive状态节点 只需要systemctl stop ceph-mgr@controller3_mgr ceph-mgr.target就可以做状态转移,然后再启用服务就可以了 [root@DT_Node-172_17_7_1 ~]# ceph mgr module enable dashboard #启用mgr的dashboard [root@DT_Node-172_17_7_1 ~]# ceph dashboard create-self-signed-cert #给dashboard签发一个证书 [root@DT_Node-172_17_7_1 ~]# ceph config-key set mgr/dashboard/server_addr 0.0.0.0 #指定dashboard绑定到0.0.0.0 IP上 [root@DT_Node-172_17_7_1 ~]# ceph mgr module disable dashboard && ceph mgr module enable dashboard #重启dashboard服务 [root@DT_Node-172_17_7_1 ~]# ceph dashboard set-login-credentials admin admin #配置dashboard的登录账户密码 [root@DT_Node-172_17_7_1 /data/ceph/deploy]# ceph config dump #查看刚才修改的配置
12. 创建osd(存储)
# 创建osd存储
[root@DT_Node-172_17_7_1 ~]# ceph-deploy osd create compute1 --data /dev/sdb && \ ceph-deploy osd create compute1 --data /dev/sdc && \ ceph-deploy osd create compute1 --data /dev/sdd && \ ceph-deploy osd create compute1 --data /dev/sde && \ \ ceph-deploy osd create compute2 --data /dev/sdb && \ ceph-deploy osd create compute2 --data /dev/sdc && \ ceph-deploy osd create compute2 --data /dev/sdd && \ ceph-deploy osd create compute2 --data /dev/sde && \ \ ceph-deploy osd create compute3 --data /dev/sdb && \ ceph-deploy osd create compute3 --data /dev/sdc && \ ceph-deploy osd create compute3 --data /dev/sdd && \ ceph-deploy osd create compute3 --data /dev/sde && \ \ ceph-deploy osd create compute4 --data /dev/sdb && \ ceph-deploy osd create compute4 --data /dev/sdc && \ ceph-deploy osd create compute4 --data /dev/sdd && \ ceph-deploy osd create compute4 --data /dev/sde
# 查看osd状态
[root@DT_Node-172_17_7_1 /data/ceph/deploy]# for i in 1 2 3 4;do ceph-deploy osd list compute$i 2>&1|egrep '^\[compute.]\[DEBUG ] [= ]{1,}';done
# 在管理节点查看osd状态等
[root@DT_Node-172_17_7_1 /data/ceph/deploy]# ceph osd stat [root@DT_Node-172_17_7_1 /data/ceph/deploy]# ceph osd tree
[root@DT_Node-172_17_7_1 /data/ceph/deploy]# ceph df
# 在osd节点查看
[root@DT_Node-172_17_7_4 ~]# lsblk [root@DT_Node-172_17_7_4 ~]# pvs [root@DT_Node-172_17_7_4 ~]# vgs [root@DT_Node-172_17_7_4 ~]# lvs [root@DT_Node-172_17_7_4 ~]#
# ceph-osd进程,根据启动顺序,每个osd进程有特定的序号
[root@DT_Node-172_17_7_4 ~]# systemctl status ceph-osd@0
# osd进程端口号;
# 或:ps aux | grep osd | grep -v grep [root@DT_Node-172_17_7_4 ~]# netstat -tunlp | grep osd
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏