• CentOS 6.8安装Ceph


    机器规划

    IP 主机名 角色
    10.101.0.1 ceph01 mon admin mds
    10.101.0.2 ceph02 ods
    10.101.0.3 ceph03 ods
    10.101.0.4 ceph04 ods
    10.101.0.5 client client(挂载点)

    考虑到高可用性,生产集群应该至少有 3 个监视器。

    在每台机添加hosts

    10.101.0.1 ceph01
    10.101.0.2 ceph02
    10.101.0.3 ceph03
    10.101.0.4 ceph04

    关闭防火墙和SELINUX

    每个节点上创建ceph用户并添加sudo权限

    useradd ceph
    echo "ceph ALL = (root) NOPASSWD:ALL" >/etc/sudoers.d/ceph
    echo "Defaults:ceph |requiretty" >/etc/sudoers.d/ceph

    在管理节点ceph01上生成ceph用户的ssh公钥并实现免密码登录其他主机

    1.所有机器安装epel和ceph源

    rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
    
    rpm -ivh https://download.ceph.com/rpm-hammer/el6/noarch/ceph-release-1-1.el6.noarch.rpm

    2.在管理节点上安装ceph-deploy(ceph01节点)

    yum install -y ceph-deploy

    3.在ceph集群安装

    部署过程中有错误可以查看日志/var/log/ceph/

    3.1切换到ceph用户执行(ceph01节点)

    mkdir /home/ceph/ceph-cluster
    cd /home/ceph/ceph-cluster
    
    生成集群配置文件
    ceph-deploy new ceph01
    
    #上面的命令会生成3个文件
    ceph.conf    #集群配置文件,此配置可按需修改或不修改也行
    ceph.log    #日志文件
    ceph.mon.keyring #keyring文件,集群验证用

    3.2安装ceph(ceph01节点)

    ceph-deploy install ceph01 ceph02 ceph03 ceph04 --repo-url=https://download.ceph.com/rpm-hammer/el6/
    #此命令将会按顺序在3台机上安装ceph

    3.3创建并初始化监控节点(ceph01)

    ceph-deploy mon create-initial
    #执行此命令后会初始化mon节点,ceph.conf文件中声明了mon节点等信息

    3.4添加数据节点(ceph02,ceph03,ceph04)

    挂载好要使用的磁盘
    mount /dev/sdb1 /data/osd0(另外两个节点类似,不过是osd1,osd2。名称可自定义)

    3.5

    在管理节点初始化磁盘(ceph01)

    ceph-deploy disk zap ceph01:sdb ceph02:sdb ceph03:sdb

    在管理节点准备OSD(ceph01)

    ceph-deploy osd prepare ceph01:/data/osd0 ceph02:/data/osd1 ceph03:/data/osd2

    3.6激活OSD(ceph01)

    ceph-deploy osd activate ceph01:/data/osd0 ceph02:/data/osd1 ceph03:/data/osd2

    3.7分发配置和密钥
    使用ceph-deploy命令将配置文件和管理密钥复制到管理节点和你的Ceph节点。

    ceph-deploy admin ceph01 ceph02 ceph03

    3.8查看集群状态

    sudo ceph health #集群健康状态,返回OK状态
    sudo ceph -s #
    sudo ceph status #集群状态

    4.安装、挂载cephfs

    4.1创建mds(ceph01节点)

    ceph-deploy mds create ceph04 
    #如果报如下错误
    RuntimeError: config file /etc/ceph/ceph.conf exists with different content; use --overwrite-conf to overwrite
    加上--overwrite-conf参数
    ceph-deploy --overwrite-conf mds create ceph04
    
    查看mds进程
    netstat -tnlp | grep mds
    tcp 0 0 172.16.100.5:6804 0.0.0.0:* LISTEN 12787/ceph-mds

    4.2创建pool(ceph01节点)

    查看pool
    ceph osd lspools
    新创建的ceph集群默认只有rdb一个pool。这时我们需要创建新的pool
    
    创建两个存储池。MDS需要使用两个pool,一个pool用来存储数据,一个pool用来存储元数据。
    
    ceph osd pool create fs_data 32  #这里的32指的是PG组
    ceph osd pool create fs_metadata 32
    查看pool
        rados lspools

    4.3创建Cephfs(ceph01节点)

    ceph fs new cephfs fs_metadata fs_data
    #查看
        ceph fs ls
    #查看MDS状态
      ceph mds stat

    4.4在client节点挂载cephfs(client节点)

    Client挂载方式有两种:内核kernal方式和fuse方式。(内核挂载方式需要2.6.34及其以后的版本才支持

    使用fuse方式挂载(注意:此方式读写效率很低

    安装ceph-fuse
    yum install -y ceph-fuse
    
    复制配置文件
    将ceph配置文件ceph.conf从管理节点copy到client节点
    scp ceph@ceph01:/etc/ceph/ceph.conf /etc/ceph/
    
    复制密钥
    将ceph的ceph.client.admin.keyring从管理节点copy到client节点
    scp ceph@ceph01:/etc/ceph/ceph.client.admin.keyring /etc/ceph/
    
    查看ceph授权
    ceph auth list
    
    创建挂载目录
    mkdir /cephfs
    
    挂载到指定目录
    将ceph挂载到/cephfs
    ceph-fuse -m ceph01:6789 /cephfs(可以挂在多个mon节点保证高可用,ip:6789,ip:6789)

    5.rbd块设备映射

    使用rbd块设备方式挂载(读写效率高),但需要加载rbd内核模块,2.6.34之前的版本都没有该模块,要把系统内核升级到2.6.34或者更新。

    创建一个pool

    ceph osd pool create press 100

    设置pool 的pgp_num

    ceph osd pool set press pgp_num 100

     查看创建的pool

    ceph osd lspools

     创建一个100G 名为 image 镜像

    rbd create -p press --size 100000 image

     查看镜像

    rbd -p press info image

     客户端块存储挂载:

    rbd -p press map image
    mkfs.xfs /dev/rbd0
    mount /dev/rbd0 /mnt/rbd

     卸载map镜像

    umount /mnt/rbd
    rbd unmap /dev/rbd0

    参考文档:

    http://www.cnblogs.com/keithtt/p/6410288.html

    http://blog.csdn.net/yhao2014/article/details/51394815

    https://www.cnblogs.com/jicki/p/5844592.html

  • 相关阅读:
    C# 与Sql server 获取数据和执行命令
    关于*.ashx 处理程序调试时 未能创建类型 错误
    winform 利用Http向服务器上传与下载文件
    CSS 使用absolute 是<div>居中
    C# int[,] 和 int[][]
    《Head First JavaScript》 学习笔记
    【单片机】关于头文件
    【单片机】【710】定时器
    【C#】委托
    【C#】关于接口的理解
  • 原文地址:https://www.cnblogs.com/wsl222000/p/7382836.html
Copyright © 2020-2023  润新知