zoukankan      html  css  js  c++  java
  • CEPH篇 CEPH部署(在线和离线 Centos 7)

    引入

      这篇只记录部署,如果需要概念理解,则前往其他篇章查看。暂时不包含MDS的部署,因为不准备使用文件系统,所以不需要元数据服务器

      在线部署和离线部署差别只在包的下载,如果在线部署过了,那么资源包可以放入U盘,下次就可以离线部署。

    正文

    部署准备

    关闭防火墙和selinux

    systemctl stop firewalld
    systemctl disable firewalld
    
    setenforce 0
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

    修改主机名

    各个机器下分别执行如下命令

    hostnamectl set-hostname  host145
    hostnamectl set-hostname  host146
    hostnamectl set-hostname  host147

    修改后在每台机器上修改/etc/hosts文件

    10.1.12.145  host145
    10.1.12.146  host146
    10.1.12.147  host147

    配置SSH互信

    选择一台部署主机,这边选择host146,在root用户下开启SSH互信操作

    在部署节点上, 使用这个命令ssh-keygen   一路回车 ,生成公钥。
    然后通过命令ssh-copy-id -i  ~/.ssh/id_rsa.pub {hostname} 把公钥复制到部署需要设计的主机上。
    Ssh  hostname测试是否成功。

    配置yum(分为在线和离线)

    在线
    #链接阿里云的配置
    rm -rf /etc/yum.repo.d/ *.repo
    
    #CentOS 7 源设置   
     wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
    #epel 仓库源
    wget -O /etc/yum.repos.d/epel.repo  http://mirrors.aliyun.com/repo/epel-7.repo

    编辑 Ceph.repo源:

    [ceph-nautilus] 
    name=ceph-nautilus
    baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
    enabled=1
    gpgcheck=0
    
    [ceph-nautilus-noarch]
    name=ceph-nautilus-noarch
    baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
    enabled=1
    gpgcheck=0 
    #生成缓存
     yum  clean all, yum makecache
    #生成包
    yum install ceph-14.2.2-0.el7   ceph-deploy
    离线
    #安装 createrepo  rpm包
    yum install httpd 
    #开启httpd服务:    
    systemctl start httpd
    #复制所有的ceph和第三方的rpm包到(包已经提前准备好,如果没有包则使用在线部署)
    10.1.12.146: /var/www/html/ceph/
    #执行命令  
    createrepo /var/www/html/ceph/  
    
    
    #在需要安装的客户端配置 repo 文件 
    /etc/yum.repos.d/ceph.repo 
    [ceph_local]
    name=ceph
    baseurl=http://10.1.12.146/ceph/ 
    gpgcheck=0
    
    
    #将此ceph.repo  复制到每个主机  /etc/yum.repo.d/目录中。
    scp ceph.repo  root@host145:/etc/yum.repos.d/
    scp ceph.repo  root@host147:/etc/yum.repos.d/

    NTP安装

    #安装
    yum install ntp
    #执行 最好在局域网内,建立自己的时间同步源。其中ntpdate 是客户端命令, 连接时间同步服务器,修改自己的时间。 一定要同步时间,
    ntpdate -s time-b.nist.gov  

    修改配置文件

    #修改 /etc/ntp.conf文件
    #注释下面4行
    server 0.centos.pool.ntp.org iburst
    server 1.centos.pool.ntp.org iburst
    server 2.centos.pool.ntp.org iburst
    server 3.centos.pool.ntp.org iburst

    服务器节点修改如下

    server 127.127.1.0
    fudge  127.127.1.0 stratum 10

    验证下

    ntpq –p –-查看ceph-admin的ntp服务器是否为自身
    remote           refid      st t when poll reach   delay  offset  jitter
    ==========================================================================
    *LOCAL(0)        .LOCL.          10 l  28   64  377   0.000    0.000   0.000
    这样的输出证明已经配置成功了。

    配置其他节点

    #其他服务器都连接admin节点,其中段: server 210.72.145.44   iburst
    Server 10.1.12.146 -----------–为ceph-admin的IP
    fudge  127.127.1.0 stratum 11

    重启后检查

    systemctl restart ntpd 
    systemctl enable ntpd 
    #查看是否为ceph-admin
    ntpq –p  
    #结果如下
    remote           refid      st t when poll reach   delay  offset  jitter
    ===========================================================================
    *ceph-admin      LOCAL(0)        11 u  13   64    1   1.236   -0.700   0.000
    Remote :*ceph-admin
    Refid  :LOCAL(0)
    如果是其他的,如:refid:init就为配置不成功,按此步骤在其他节点进行配置。

    部署CEPH

    部署ceph和ceph-deploy  

    在所有上都安装ceph,主节点上额外安装ceph-deploy

    #每个主机安装 ceph
    yum install ceph 
    #Admin节点安装
    yum install ceph-deploy

    部署监控节点(mon)

    添加节点

    #在管理节点上
    cd /root/ceph
    ceph-deploy new host146  host145  host147
      
    
    #修改这个文件,添加:  overwrite_conf = true
     vim  / root/.cephdeploy.conf 

    部署mon

    mkdir  -p /etc/ceph/  
    mkdir /var/lib/ceph 
    #ceph用户是ceph的默认用户,不要去新建哦
    chown  ceph:ceph -R /var/lib/ceph
    
    #(必须当前目录有ceph.mon.keyring)
    ceph-deploy  --overwrite-conf  mon create-initial

    重启命令

    #host是主机
    systemctl   restart/start/stop  ceph-mon@host

    部署mgr

    ceph-deploy mgr create  host146
    
    ps -ef | grep ceph    查找host
    #重启   
    systemctl   restart/start/stop  ceph-mgr@host

    部署OSD

    先要有挂载磁盘,用系统盘也可以,但是并不安全,这里有两个方案

      1.找几台新机器,OSD挂载的目录反正随便定,新机器上的数据都无所谓

      2.额外挂载磁盘,可以对挂载磁盘做虚拟化,LVM,可以部署更多OSD

    可以执行lsblk命令查看,如果磁盘已经被挂载,则会报错哦

    #新版本ceph默认是 bluetore .使用如下命令
    ceph-deploy --overwrite-conf   osd create  --data /dev/vdb   $HOSTNAME
    
    #查看 集群硬盘树编号。(部署节点) 需要拷贝配置文件(ceph.conf)到/etc/ceph/!!!否则会连接不到集群
    ceph osd tree 
    #重启  
    systemctl   restart/start/stop  ceph-osd@0, 1, 2,3, 

    部署RGW

    #单机的只需要在一台服务器上安装, 如果负载均衡,可以安装3台服务器。S
    现在安装在146
     yum  install  ceph-radosgw  
    #或者  
    ceph-deploy install  --rgw   wn

    启动

    ceph-deploy   --overwrite  rgw create  host173(主机名) 
    #查看启动端口为7480
    
    #检查服务是否启动    
    ps aux|grep radosgw
    
    #重启   这个id可以通过查看rados进程,查看名称得到,例如rgw.host146
    systemctl   restart/start/stop  ceph-radosgw@id 

    桶分片

    # 如果每个桶中对象数量较少,比如小于10000, 可以不操作此步骤,  大于10万对象,一定要设置下面的参数。
    #如果设计方案中,一个桶中存储对象数量大于几千万,需要关闭动态分片, 同时设置最大分片数量。
    #在  radosgw 进程所在的服务器。
    vi  /etc/ceph.conf  
    #桶动态分片默认开启
    rgw_dynamic_resharding = false  
    #桶中最大分片的数量           ,
    rgw_override_bucket_index_max_shards=16   
    #重启服务。(rgw)

    建立账号(S3)

    # system参数是为了使用dashboard,该账号可以再页面上看到数据
    radosgw-admin user create --uid testid --display-name 'M. Tester'  --system 
    #记住这两个东西
    "access_key": 
     "secret_key":
    #部署失败返回错误的处理方法:
    #只有建立 bucket ,  上传一个对象后, 才能出现  default.rgw.buckets.data池, 然后调整pg num .
    #这个时候,解决pg/osd 太少的警报。
    
    #部署时候如果遇到 rgw 失败,现实的日志为:
    # 0 ext_mime_map_init failed to open file=/etc/mime.types : (2) No such file or ##directory
    #7f709e8c48c0 -1 ERROR: unable to initialize rgw tools
    #这是因为没有  /etc/mime.types 
    #需要安装
    yum install mailcap
    
    #如果启动失败, 有时候需要将 /var/lib/ceph/radosgw   的用于  root 改成   ceph .
    chown ceph:ceph –R  *

    部署dashboard

    yum install ceph-mgr-dashboard
    ceph dashboard create-self-signed-cert  
    #写上账号和密码
    ceph dashboard set-login-credentials  admin admin

    打开页面后长这样:

    这时候你有可能(就是如此)在object gateway里面看不到bucket内容,需要再添加一个命令:

    $ ceph dashboard set-rgw-api-access-key <access_key>
    $ ceph dashboard set-rgw-api-secret-key <secret_key>

    如果你忘记了你的账户,或者需要新建一个账户:

    $ radosgw-admin user create --uid=<user_id> --display-name=<display_name> 
        --system

    如果是忘了两个key

    $ radosgw-admin user info --uid=<user_id>

    这样就可以啦,完

  • 相关阅读:
    用Python完成Excel的常用操作
    用Python实现excel 14个常用操作
    ubuntu and centos各种上网代理设置
    vim 熟练度练习
    Ansible-playbook 使用方式 看一篇就够了
    python 使用ldap3 查询跨域的用户信息
    python pyinstaller 的使用
    vs code新建python虚拟环境
    vs code 远程开发环境设置
    上下文管理器(Context Manager)
  • 原文地址:https://www.cnblogs.com/garfieldcgf/p/12145504.html
Copyright © 2011-2022 走看看