zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Centos7 搭建FTP服务
    Mitmproxy 安装
    NET Reflector 8 使用
    web sevice 生成代理类及使用
    WCF 动态生成 不用增加引用两种方式
    oracle 表空间、用户名 相关语句
    恢复24小时之内删除的表及表数据
    pl/sql插入报错
    jquer ajax
    pdf增加水印
  • 原文地址:https://www.cnblogs.com/NGU-PX/p/14210801.html
Copyright © 2011-2022 走看看