centos7-ceph搭建三个节点一个客户端

1.ceph安装原理

ceph分布式存储由若干个组件组成,包括:Ceph Monitor、Ceph OSD和Ceph .MDS,其中如果你仅使用对象存储和块存储时,MDS不是必须的,仅当你用使用Cephfs时,MDS才是需要安装的。
ceph的安装模型与k8是有些类似,也是通过一个deploy node远程操作其他Node以进行create、prepare和activate各个node上的组件,官方给的组件示意图如下.

Ceph 安装前准备,环境与拓扑图如下:

主机名

外网IP

内网IP

安装组件

磁盘块

c720181

172.22.69.84

192.168.20.181

ceph-deploy

osd

sdb

c720182

172.22.69.85

192.168.20.182

mon

osd

sdb

c720183

172.22.69.86

192.168.20.183

mon

osd

sdb

c720184

172.22.69.95

192.168.20.184

cli

 

 

 

 

2.本次安装实际环境

ceph-deploy 192.168.0.101
ceph-node1 192.168.0.101
ceph-node2 192.168.0.102
ceph-node3 192.168.0.103
ceph-node4 192.168.0.104

3.环境准备

  1. 配置host(各主机)

    vim /etc/hosts
    ceph-node1 192.168.0.101
    ceph-node2 192.168.0.102
    ceph-node3 192.168.0.103
    ceph-node4 192.168.0.104
  2. 创建ceph账户(各节点)

    useradd -d /home/${username} -m ${username}
    passwd ${uasername}
    cat << EOF > /etc/sudoers.d/ceph
    ceph All = (root) NOPAASSWD ALL
    EOF
    
    #创建账户ceph,官方不支持root,不推荐root,请注意。
     登录设备后,创建ceph用户
    useradd -d /home/ceph -m ceph
        为ceph用户修改密码
    passwd ceph
        为用户添加root权限
    sudo echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph
          sudo chmod 0440 /etc/sudoers.d/ceph
    
        在两个osd 设备上建立相同的ceph用户 和密码
        检查是否存在ssh服务
        如果不存在,则需要安装一个
            sudo apt-get install openssh-server
  3. 配置免密登陆(各节点)

    ssh-keygen(各节点)
    #回车
    #回车
    #回车
    完成后, /home/ceph/.ssh/ 路径下:
    
        admin-node 多了文件 id_rsa、id_rsa.pub 和 known_hosts;
        node1, node2, node3 多了文件authorized_keys。
    
    # 然后把master上的公钥拷贝到其他的节点上去(各节点)
    ssh-copy-id ceph@ceph-node2
    ssh-copy-id ceph@ceph-node3
    
    #编辑ssh配置文件,可使ceph远程登陆的时候直接 ssh ceph-node2 (=ssh ceph@ceph-node2)
    
        修改~/.ssh/config 文件
    
    修改 ~/.ssh/config 文件(没有则新增),这样 ceph-deploy 就能用你所建的用户名登录 Ceph 节点了。
    
    // 必须使用sudo
    cat > ~/.ssh/config <<EOF(各节点)
    $ sudo vi ~/.ssh/config
    
    Host ceph-node1
      Hostname ceph-node1
      User ceph
    Host ceph-node2
      Hostname ceph-node2
      User ceph
    Host ceph-node3
      Hostname ceph-node3
      User ceph
    EOF
    chmod 600 config
    yum install ceph-deploy -y
    
  4. 安装ntpd(主要是为了时钟同步)(各节点)

    yum install ntpdate -y &&ntpdate 0.asia.pool.ntp.org
  5. 安装ceph源(各节点)

    sudo yum install -y yum-utils && sudo yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/ && sudo yum install --nogpgcheck -y epel-release && sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && sudo rm /etc/yum.repos.d/dl.fedoraproject.org*
    yum clean all
    yum makecache
    
  6. 安装ceph-deploy(ceph-node1)

    su - ceph
    mkdir ceph-cluster
    cd ceph-cluster
    ceph-deploy new ceph-node1
    #创建ceph新集群,ceph-node1是monit监控节点主机名
  7. 安装ceph(各节点)

    yum install ceph
  8. 创建并初始化监控节点(ceph-node1)

    cd ceph-cluster
    ceph-deploy mon create-initial
  9. 查看各节点ceph存储节点硬盘情况

    ceph-deploy disk list ceph-node1
    ceph-deploy disk list ceph-node2
    ceph-deploy disk list ceph-node3
  10. 创建数据节点(各节点),因为我只是测试没有没有挂载多余硬盘

    #ceph-node1
    sudo mkdir -p /data/osd0 && sudo chmod -R 777 /data/
    sudo chown -R ceph:ceph /data
    #ceph-node2
    sudo mkdir -p /data/osd1 && sudo  chmod -R 777 /data/
    sudo chown -R ceph:ceph /data
    #ceph-node3
    sudo mkdir -p /data/osd2 && sudo chmod -R 777 /data/
    sudo chown -R ceph:ceph /data
    
  11. 各虚拟机添加硬盘,并立即生效,格式为xfs格式。(各节点)

    #虚拟机添加磁盘
    echo "- - -" > /sys/class/scsi_host/host0/scan 
    echo "- - -" > /sys/class/scsi_host/host1/scan 
    echo "- - -" > /sys/class/scsi_host/host2/scan
    fdisk -l
    fdisk /dev/sdb
    #n
    #p
    #1
    #entry
    #enty
    #w
    mkfs.xfs /dev/sdb1
  12. 挂载磁盘到/data/osdx(各节点)

    mount /dev/sdb1 /data/osdx
  13. 准备OSD(ceph-node1)

    cd ceph-cluster
    ceph-deploy osd prepare ceph-node1:/data/osd0 ceph-node2:/data/osd1 ceph-node3:/data/osd2
  14. 激活OSD(ceph-node1)

    cd ceph-cluster
    ceph-deploy osd activate ceph-node1:/data/osd0 ceph-node2:/data/osd1 ceph-node3:/data/osd2
  15. 为了防止挂载好的磁盘下次重启或者开机生效,我们修改编辑/etc/fstab

    vim /etc/fstab
    #ceph-node1
    /dev/sdb1      /data/osd0        xfs     defaults        0 0
    #ceph-node2
    /dev/sdb1      /data/osd1        xfs     defaults        0 0
    #ceph-node3
    /dev/sdb1      /data/osd2        xfs     defaults        0 0
    
  16. ceph-deploy将配置文件和管理秘钥复制到管理节点和它的ceph节点。(ceph-node1)

    cd ceph-cluster
    ceph-deploy admin ceph-node1 ceph-node2 ceph-node3
  17. 更改文件权限

    sudo chown   -R ceph:ceph /etc/ceph
  18. 查看集群健康状态

    ceph health
  19. 创建文件系统(ceph-node1)

    ceph-deploy mds create ceph-node1
    ceph mds stat
    
  20. 查看pool,pool是存储数据时的逻辑分区,起到namespace作用。

    ceph osd lspools
  21. 创建ceph集群

    ceph osd pool create cephfs_data 10
  22. 创建ceph元数据

    ceph osd pool create cephfs_metadata 10
  23. 创建一个文件系统

    ceph fs new myceph  cephfs_metadata cephfs_data
    ceph mds stat
    
  24. 查看集群状态

    ceph -s
  25. 客户端安装ceph-fuse,并创建挂载目录(ceph-node4)

    yum install -y ceph-fuse
    mkdir /cephfs
    
  26. 复制配置文件到client

    rsync -e "ssh -p22" -avp root@192.168.0.101:/etc/ceph/ceph.conf /etc/ceph/
  27. 复制秘钥到client

    rsync -e "ssh -p22" -avp root@192.168.10.200:/etc/ceph/ceph.client.admin.keyring /etc/ceph/
  28. 查看ceph授权client

    ceph auth list
  29. 挂载文件到cephfs,并查看

    mkdir /cephfs
    ceph-fuse -m 192.168.0.101:6789 /cephfs
    df -Th
    
  30. 卸载挂载

    umount/cephfs
    
  31. 常用命令集

    查看ceph集群状态:ceph -s
    查看mon状态:ceph mon stat
    查看msd状态:ceph msd stat
    查看osd状态:ceph osd stat
    查看osd目录树(可以查看每个osd挂在哪台机,是否已启动):ceph osd tree
    
    查看机器的健康状态:ceph health
    查看ceph实时运行装填 ceph -w
    检查信息状态 ceph -s
    查看ceph存储状态 ceph df
    清除节点数据:
        ceph-deploy purge ceph-nodex
        ceph-deploy purgedata ceph-nodex
        #我发现清除后ceph-repo也会被清除,请注意
    为ceph创建一个admin用户并为admin用户创建一个密钥,把密钥保存到/etc/ceph目录下:
    # ceph auth get-or-create client.admin mds 'allow' osd 'allow ' mon 'allow ' > /etc/ceph/ceph.client.admin.keyring
    查看ceph集群中的认证用户及相关的key:ceph auth list
    查看mon的状态信息: ceph mon stat
    查看mon选举状态: ceph quorum_status
    查看mon映射信息 ceph mon dump
    

    最近在学习rook,想了解下ceph知识,未做深入了解,仅想理解原理和基本操作。

    基本的原理和概念,请看链接,我选取的都是精华。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值