【Ceph】手动搭建ceph集群

手动部署Ceph集群

  • 3台ceph机器
hostnameIPmon_id磁盘快journal
Ceph1192.168.1.10/dev/sdb2/dev/sdb1
Ceph2192.168.1.21/dev/sdb2/dev/sdb1
Ceph3192.168.1.32/dev/sdb2/dev/sdb1
  • 下载部署所需要的ceph集群的rpm包

    ceph-mon ceph-common fcgi ceph-base ceph-selinux ceph-mgr ceph-dash ceph-radosgw ceph-osd
    根据系统内核版本号下载对应的enhanceio包

  • 使用yum来安装这些包

  • 初始化moniter

  1. 根据uuidgen获取uuid:

    ceph_uuid=$(uuidgen)
    
  2. 使用monmaptool创建一个空的ceph文件系统

      monmaptool --create  -add mon_id1 IP1   --add mon_id2 IP2 ...  --fsdi $ceph_uuid --clobber /tmp/montap
    其中:
        --clobber表示允许 monmaptool 覆盖 mapfilename
        IP1:表示第一台moniter的IP
        IP2:表示第二台moniter的IP
        mon_id1:表示第一台ceph的moniter的ID,随意字符
    
  3. 更改ceph的配置文件

    改为:/etc/ceph/ceph.conf
        fsid=$ceph_uuid
        mon_host= IP1,IP2....
        public_addr= IP1
    
  4. 创建ceph的mon目录

        mkdir  /var/lib/ceph/mon
    
  5. 创建

    ceph-mon -i mon_id --mkfs --monmap /tmp/montap
    注:每台moniter对应的mon_id不同
    在Ceph1上执行: 
    ceph-mon -i 0 --mkfs --monmap /tmp/montap
    在Ceph2上执行:
    ceph-mon -i 1 --mkfs --monmap /tmp/montap
    
  6. 改变/var/log/ceph和/var/lib/ceph的用户组和用户

        chow -R ceph.ceph /var/lib/ceph /var/log/ceph
    
  7. 开启moniter

        systemctl reset-failed  ceph-mon@mon_id
        systemctl   start ceph-mon@mon_id
    
  8. 开启dash并加入自启动

    /etc/init/ceph-dash start
    echo '/etc/init.d/ceph-dash start & ' > /etc/rc.d/rc.local
    
  • 初始化mgr

     systemctl start ceph-mgr@mon_id
    
  • 初始化s3 :$name=任意值 在其中一台mon上执行

  1. 新建keyring

     ceph-authtool -C /etc/ceph/ceph.client.radosgw.keyring
     chmod +r /etc/ceph/ceph.client.radosgw.keyring
    
  2. 生成radosgw服务对应的用户和key,其中name为radows网关的实例名称,常为gateway

    ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.radosgw.$name -g
    
  3. 添加用户访问权限

    ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.radosgw.$name --cap osd 'allow rwx' --cap mon 'allow rwx'
    
  4. 将秘钥添加到Ceph集群中

    ceph -k /etc/ceph/ceph.client.radosgw.keyring  auth add  client.radosgw.$name -i /etc/ceph/ceph.client.radosgw.keyring
    
  5. 配置ceph配置文件

    [client.radosgw.lirui]
    debug_rgw =100
    rgw_data=/var/lib/ceph/radosgw/radosgw-$name
    rgw_socket_path=/var/run/ceph/ceph.radosgw.$name
    admin_socket=/var/run/ceph/ceph.radosgw.$name
    rgw_enable_usage_log = true
    rgw_frontends = civetweb port=12345
    
    注:这里采用S3的civetweb的前端方式,除此之外还有Apache和Nginx
    
  6. 创建S3用户

    radosgw-admin user create --uid='uid' --display-name='name' --email=xxx@xxx.com
    
  7. 启动radosgw

    radosgw -c /etc/ceph/ceph.conf  -n client.radosgw.$name
    
  • 初始化osd 每块盘都得执行一下命令
  1. 创建OSD

    osd_id=$(ceph osd create)
    
  2. 创建OSD目录

    	mkdir /var/lib/ceph/osd/$osd_id
    
  3. 获取UUID并写入fsid文件中

     osd_uuid=$(uuidgen)
     echo '$osd_uuid'  > /var/lib/ceph/osd/$osd_id/fsid
    
  4. 格式化数据盘

    ceph-mkfs -i $osd_id  /dev/sdb2  
    如果出现格式化失败使用一下命令:
            mkfs.xfs  /dev/sdb2
            xfs_admin -U $osd_uuid /dev/sdb2
    
  5. 创建mkfs_done文件

    touch /var/lib/ceph/$osd_id/mkfs_done
    

  1. 数据盘挂在到/var/lib/ceph/osd/$osd_id目录下

     mount -o noatime UUID=$osd_uuid /var/lib/ceph/osd/$osd_id
    
  2. 讲osd_uuid写进fsid文件,将字符串filestore写进type文件中

        echo $osd_id > /var/lib/ceph/osd/$osd_id/fsid
        echo "filestore"  > /var/lib/ceph/osd/$osd_id/type
    
  3. 创建journal链接

        ln -sf /dev/sdb1 /var/lib/ceph/osd/$osd_id/journal
    
  4. 初始化数据目录

        ceph-osd -i $osd_id --mkfs
    
  5. 改变权限

       chown -HR ceph:ceph /var/lib/ceph/osd
       chown -R ceph:ceph /var/log/ceph 
    
  6. 创建链接

    ln -sf /dev/disk/ceph/by-uuid/$osd_uuid      /var/lib/ceph/osd/$osd_id/journal
    
  7. 取消挂载

       umount /var/lib/ceph/osd/$osd_id
    
  8. 修改ceph-osd@serivce文件

       删除/usr/lib/systemd/system/ceph-osd@.service文件中ProtectHome,ProtectSystem,PrivateTmp行
    
  9. 开启OSD

systemctl reset-failed ceph-osd@$osd_id
systemctl start ceph-osd@$osd_id
systemctl enable ceph-osd@$osd_id
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值