服务器离线部署ceph分布式存储服务集群

因为工作需要离线部署一个ceph分布式存储集群,这里针对工作进行记录。需要相关资源私信作者。

安装ntp

系统自带的有ntpdate但没有ntp服务 ,ntpdate为同步服务。ntp为守护进程。

需要下载rpm包手动安装ntp

设置一台主机为服务端。服务端配置、etc/ntp.conf 内容为 server 127.127.1.0 #本机作为ntp服务器进行时间同步。

安装依赖包括 autogen-libopts-5.18-5.el7.x86_64.rpm

ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm

修改配置文件

ntp.conf
restrict 192.168.16.0 mask 255.255.255.0 nomodify
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust
restrict 127.0.0.1
restrict -6 ::1

server 127.127.1.0

fudge 127.127.1.0 startum 8

在客户端执行定时任务配置

crontab -e#对crontab定时器编辑命令

00 23 * * * /usr/sbin/ntpdate 192.168.16.162 #执行定时更新每天23:00执行更新命令。

搭建本地的yum仓库和下载相关的软件包

使用createrepo制作本地及内网yum源_yum createrepo-CSDN博客

利用createrepo工具在联网计算机制作yum源,将生成的仓库拷贝到新主机上我这里叫cephDeps,运行脚本即可使用yum进行安装,这里附上脚本信息。

buid_localrepo.sh

#!/bin/bash
parent_path=$(cd"$(dirname "${BASH_SOURCE}")";pwd -P)
cd "$parent_path"
mkdir /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
#create local repositry
rm -rf /tmp/localrepo
mkdir -p /tmp/localrepo
cp -rf ./cephDeps/* /tmp/localrepo
echo "
[localrepo]
name=Local Repository
baseurl=file:///tmp/localrepo
gpgcheck=0
enabled=1" > /etc/yum.repos.d/ceph.repo
yum clean all

安装ceph

  • 配置源(所有节点),阿里源保证下载速度
  • cat >/etc/yum.repos.d/ceph.repo<<EOF
    [ceph]
    name=ceph
    baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
    gpgcheck=0
    priority=1

    [ceph-noarch]
    name=cephnoarch
    baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
    gpgcheck=0
    priority=1

    [ceph-source]
    name=Ceph source packages
    baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/SRPMS
    enabled=0
    gpgcheck=1
    type=rpm-md
    gpgkey=http://mirrors.163.com/ceph/keys/release.asc
    priority=1
    EOF

  • yum makecache

  • master节点安装ceph-deploy(master节点执行)
  • sudo yum install -y ceph-deploy
    
  • 创建master为monitor(master节点执行)
  • sudo ceph-deploy new master
    
  • 执行完上一步骤之后,会在当前目录生才ceph.conf文件,修改文件内容(fsid用你自己机器生成的,不要改) (master节点执行)
  • [global]
    fsid = 37f0ff26-d8e3-4aa6-ae47-99a5f0e1eed3
    mon_initial_members = master
    mon_host = 192.168.1.21
    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx
    
    public network = 192.168.1.0/24
    cluster network = 192.168.1.0/24
    osd pool default size = 2 
  • 安装ceph包(master节点都执行)

  • ceph-deploy install master node1 node2

  • 配置初始 monitor(s)、并收集所有密钥 (master节点)
  • ceph-deploy mon create-initial
    ls -l *.keyring
    
  • 复制文件到node节点(master节点执行)
  • ceph-deploy admin master node1 node2
    
  • 在所有节点创建目录(master节点也作为一个node数据节点)
  • sudo rm -rf /data/osd
    sudo mkdir -pv /data/osd
    sudo chmod 777 -R /data/osd
    sudo chown ceph.ceph -R /data/osd
    
  • 以文件挂载的方式添加osd(master节点执行)
  • ##ceph-deploy osd prepare master:/data/osd node1:/data/osd node2:/data/osd
    ##ceph-deploy osd activate master:/data/osd node1:/data/osd node2:/data/osd
    
    ceph-deploy disk zap $HOSTNAME /dev/sd$
    ceph-deploy osd create $HOSTNAME --data /dev/sd$
    
    ceph-deploy mgr create kube-node-1 
    
    这里会遇到这样一个错误。在系统安装时会给硬盘配置一个挂载区。但是ceph创建新的lv卷会修改硬盘挂载但不会更改配置文件,
    需要去/etc/fstab文件下修改配置(注释掉)才能使系统在重启时正常启动
    
  • 查看状态
  • [aipaas@master ceph-conf]$ sudo ceph health
    HEALTH_OK
    [aipaas@master ceph-conf]$ sudo ceph -s
        cluster 14489e3d-f96d-452d-a99c-951362857668
         health HEALTH_OK
         monmap e1: 1 mons at {master=192.168.1.21:6789/0}
                election epoch 3, quorum 0 master
         osdmap e14: 3 osds: 3 up, 3 in
                flags sortbitwise,require_jewel_osds
          pgmap v31: 64 pgs, 1 pools, 0 bytes data, 0 objects
                26297 MB used, 124 GB / 149 GB avail
                      64 active+clean
    
    
    如果ceph health不加sudo直接执行报错,则是权限问题,可使用下列方式解决
    sudo chmod +r /etc/ceph/ceph.client.admin.keyring
    
  • 删除集群 (若安装出错,可以删除集群配置重新安装)
  • ceph-deploy purge master node1 node2
    ceph-deploy purgedata master node1 node2
    ceph-deploy forgetkeys
    rm ceph.*
    
  • 扩展集群(在node1 node2上启动monitor和manager提高集群可用性)
  • # 添加monitor
    ceph-deploy mon add node1
    ceph-deploy mon add node2
    
    在添加monitor时可能会出现这样一个错误。报错信息为
    admin_socket: exception getting command descriptions: [Errno 2] No such file or directory
    检查日志信息如下提示
    kube-master-1 is not defined in `mon initial members`
    monitor kube-master-1 does not exist in monmap
    neither `public_addr` nor `public_network` keys are defined for monitors
    解决方法
    在ceph文件中【global】下增加 public_network 在覆盖给其他节点,更新ceph.conf文件。
    ceph-deploy --overwrite-conf config push kube-master-1 kube-node-2 kube-master-2
    再执行mon增加指令可以正常增加mon
    
    # 在monitor节点查看状态
    ceph quorum_status --format json-pretty
    

     

  • 14
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值