zoukankan      html  css  js  c++  java
  • 002.Ceph安装部署

    一 前期准备

    1.1 配置规格

    005
    节点
    类型
    IP
    CPU
    内存
    ceph-deploy
    部署管理平台
    172.24.8.71
    2 C
    4 G
    node1
    Monitor OSD
    172.24.8.72
    2 C
    8 G
    node2
    OSD
    172.24.8.73
    2 C
    8 G
    node3
    OSD
    172.24.8.74
    2 C
    8 G
    Ceph版本:mimic
    OS:CentOS 7.5
    kernel:4.20.2
    关闭防火墙和SELinux;
    提示:
    Ceph Monitors之间默认使用6789端口通信,OSD之间默认用6800:7300范围内的端口通信。Ceph OSD能利用多个网络连接进行与客户端、monitors、其他OSD间的复制和心跳的通信。若需要开启防火墙则必须同时放通相应规则,具体操作见:http://docs.ceph.org.cn/rados/configuration/network-config-ref/

    1.2 前置准备

    • 所有节点NTP安装及配置,具体操作略;
    • 所有节点更新环境:
      1 yum -y update
    • deploy节点安装pip环境:
      1 [root@deploy ~]# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
      2 [root@deploy ~]# python get-pip.py
     
    • 配置国内yum源:
      1 [root@node1 ~]# rm /etc/yum.repos.d/* -rf
      2 [root@node1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
      3 [root@node1 ~]# yum -y install epel-release
      4 [root@node1 ~]# mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
      5 [root@node1 ~]# mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
      6 [root@node1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
     
    提示:以上操作需要在所有节点操作,工具会默认安装(采用)国外官方源,国内环境建议EPEL和CEPH都替换为国内源。
    • 部署节点配置主机名:
      1 [root@deploy ~]# vi /etc/hosts
      2 172.24.8.71 deploy
      3 172.24.8.72 node1
      4 172.24.8.73 node2
      5 172.24.8.74 node3
     
    提示:主机名应该能正确解析主机名,若管理节点同时也是一个Ceph节点,也要确认能正确解析自己的主机名和IP地址。
    • 配置deploy节点到所有OSD node节点的免秘钥登录:
      1 [root@deploy ~]# useradd manager
      2 [root@deploy ~]# echo manager | passwd --stdin manager		#创建非root的管理用户
      3 [root@deploy ~]# for i in {1..3}; do echo "====node${i}====";ssh root@node${i} 'useradd -d /home/cephuser -m cephuser; echo "cephuser" | passwd --stdin cephuser'; done		        #所有OSD node节点创建cephuser用户
      4 [root@deploy ~]# for i in {1..3}; do echo "====node${i}====";ssh root@node${i} 'echo "cephuser ALL = (root) NOPASSWD:ALL" > /etc/sudoers.d/cephuser'; done
      5 [root@deploy ~]# for i in {1..3}; do echo "====node${i}====";ssh root@node${i} 'chmod 0440 /etc/sudoers.d/cephuser'; done
      6 [root@deploy ~]# su - manager
      7 [manager@deploy ~]$ ssh-keygen -f ~/.ssh/id_rsa -N ''
      8 [manager@deploy ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub cephuser@172.24.8.72
      9 [manager@deploy ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub cephuser@172.24.8.73
     10 [manager@deploy ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub cephuser@172.24.8.74
     
    提示:管理节点必须能够通过SSH无密码地访问各Ceph节点,建议使用非root用户;
    用户名 “ceph” 保留给了Ceph守护进程。若Ceph节点上已经存在“ceph”用户,升级前必须先删掉这个用户。
      1 [manager@deploy ~]$ vi ~/.ssh/config	        #修改ceph-deploy管理节点上~/.ssh/config文件
      2 Host node1
      3    Hostname node1
      4    User cephuser
      5 Host node2
      6    Hostname node2
      7    User cephuser
      8 Host node3
      9    Hostname node3
     10    User cephuser
     11 [manager@deploy ~]$ chmod 600 .ssh/config
     12 [manager@deploy ~]$ ssh node1			#测试
     13 [cephuser@node1 ~]$ exit
     
    提示:修改config后deploy节点所建的用户名登录Ceph节点无需每次指定 --username cephuser ,简化了ssh和scp的用法。

    1.3 部署需求

    首先创建一个Ceph存储集群,它有一个Monitor和三个OSD守护进程,Monitor节点也作为OSD节点。

    二 正式部署

    2.1 部署deploy节点

      1 [root@deploy ~]# cat << EOM > /etc/yum.repos.d/ceph.repo
      2 [ceph-noarch]
      3 name=Ceph noarch packages
      4 baseurl=https://download.ceph.com/rpm-mimic/el7/noarch
      5 enabled=1
      6 gpgcheck=1
      7 type=rpm-md
      8 gpgkey=https://download.ceph.com/keys/release.asc
      9 EOM
    提示:国内也可采用阿里源,参考如下:
      1 [root@deploy ~]# vi /etc/yum.repos.d/ceph.repo
      2 [ceph-noarch]
      3 name=Ceph noarch packages
      4 baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch
      5 enabled=1
      6 gpgcheck=1
      7 type=rpm-md
      8 gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
      1 [root@deploy ~]# yum install -y ceph-deploy

    2.2 创建集群

      1 [root@deploy ~]# su - manager
      2 [manager@deploy ~]$ mkdir my-cluster
      3 [manager@deploy ~]$ cd my-cluster/
      4 [manager@deploy my-cluster]$ ceph-deploy new node1
      5 [manager@deploy my-cluster]$ ll
     
    006
    提示:该目录存在一个 Ceph 配置文件、一个 monitor 密钥环和一个日志文件。

    2.3 安装Ceph

      1 [manager@deploy my-cluster]$ ceph-deploy install node1 node2 node3
    007
    提示:ceph-deploy将在各节点安装Ceph,若部署过程出现异常,可通过以下命令清除相应配置,从而重新部署:
    ceph-deploy purgedata node1 node2 node3
    ceph-deploy forgetkeys
    rm ceph.*
    或用以下命令将安装包也一并清除:
    ceph-deploy purge node1 node2 node3
    注意:如果你执行过 ceph-deploy purge ,你必须重新执行这一步来安装Ceph;
    若出现以下报错,可能是版本不兼容,可通过yum -y remove ceph-release卸载后重新执行install。
    008
    注意:若使用ceph-deploy部署的时候出现安装包无法下载,可在部署时候指定ceph.repo为国内源:
      1 ceph-deploy install node1 node2 node3 --repo-url=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/ --gpg-url=https://mirrors.aliyun.com/ceph/keys/release.asc

    2.4 初始化monitor

      1 [manager@deploy my-cluster]$ ceph-deploy mon create-initial	#初始monitor、并收集所有密钥
      2 [manager@deploy my-cluster]$ ll
     
    009

    2.5 部署MGR

      1 [manager@deploy my-cluster]$ ceph-deploy mgr create node1 node2 node3
    提示:ceph12版本之后,就需要为集群部署mgr服务,Ceph-Mgr将作为Ceph集群的管理进程,负责整个集群的管理操作和监控。

    2.6 复制key

      1 [manager@deploy my-cluster]$ ceph-deploy admin node1 node2 node3
    提示:为方便后期deploy节点管理node1、node2、node3,在CLI中使用命令中简化相关key的输出,可将key复制至相应节点。

    2.7 添加OSD

      1 [manager@deploy my-cluster]$ ceph-deploy disk list node1 node2 node3	        #列出磁盘
      2 [manager@deploy my-cluster]$ ceph-deploy osd create --data /dev/sdb node1
      3 [manager@deploy my-cluster]$ ceph-deploy osd create --data /dev/sdb node2
      4 [manager@deploy my-cluster]$ ceph-deploy osd create --data /dev/sdb node3
     
    提示:生产环境强烈强烈不建议在单分区单硬盘上运行多个OSD;
    强烈不建议在运行OSD的单分区硬盘上同时运行监视器或元数据服务器,即OSD建议采用独立的硬盘,且OSD及其日志使用独立硬盘或分区。
    当前官方似乎已经不支持指定不同目录弄多个OSD节点的形式。

    2.8 检测健康状态

      1 [manager@deploy my-cluster]$ ssh node1 sudo ceph health
      2 [manager@deploy my-cluster]$ ssh node1 sudo ceph -s
     
    010
    提示:若出现如下mgr没有active的warn提示,是因为没有添加mgr,集群处于WARN状态。可参考2.5步骤部署MGR。

    2.9 开启dashboard

      1 [root@node1 ~]# ceph mgr module enable dashboard			#开启dashboard模块
      2 [root@node1 ~]# ceph dashboard create-self-signed-cert
     
    提示:默认情况下,dashboard的所有HTTP连接均使用SSL/TLS进行保护。以上内置命令可快速生成并安装自签名证书。
      1 [root@node1 ~]# ceph dashboard set-login-credentials admin admin	#创建管理员
      2 [root@node1 ~]# ceph mgr services					#确认验证
     
    011
    提示:以上操作在node1节点操作即可。
    浏览器访问:https://172.24.8.72:8443
    012
    参考官方文档:http://docs.ceph.org.cn/start/quick-start-preflight/
  • 相关阅读:
    Redis 主从复制架构配置及原理
    IPTABLES详解(10):IPTABLES自定义链
    ipset
    Atitit 数据库核心技术index索引技术 btree hash lsm fulltxt目录1.1. HASH
    Atitit 存储引擎核心技术 总结目录1. 表的存储有三个文件:结构+数据+索引 12. 页式管理
    Atitit 为什么oracle这类大型数据库比mysql的性能机制目录1. 分区机制差别 11.1. Join算
    Atitit 存储与数据库性能调优流程目录1. 数据库出现性能瓶颈,对外表现有几个方面:
    ATITIT db perf enhs 数据库性能优化 目录 第一章 Cache类 1 第一节 查询cache 1 第二节 Update cache 2 第三节 内存表机制 零时表 2 第四节 雾
    Atitit 核心技术有哪些一般 目录 第一章 Rest调用交互 2 第二章 2 第三章 Cmd调用交互 2 第四章 2 第五章 爬虫技术 2 第一节 Httpclient 2 第二节 Html
    Atitit保证架构超前性 前瞻性 目录 第一章 为什么需要修改代码 1 第一节 业务增加功能 1 第二节 增加字段 1 第三节 增加表数据需要查询 修改 1 第四节 类库升级 1 第二章 简单抽象
  • 原文地址:https://www.cnblogs.com/itzgr/p/10275863.html
Copyright © 2011-2022 走看看