精华内容
下载资源
问答
  • Ceph存储集群

    2015-12-09 21:36:51
    基于RADOS,Ceph存储集群基于两类进程: Ceph OSD Daemon(OSD):将数据作为对象存储在存储节点Ceph Monitor:维护一个cluster map的副本 一个Ceph存储集群可能包含成千上万个存储节点。一个最小的系统则包含最少...

    CEPH STORAGE CLUSTER

     Ceph Storage Cluster是部署的基础。基于RADOS,Ceph存储集群基于两类进程:
    • Ceph OSD Daemon(OSD):将数据作为对象存储在存储节点
    • Ceph Monitor:维护一个cluster map的副本
    一个Ceph存储集群可能包含成千上万个存储节点。一个最小的系统则包含最少一个Ceph Monitor和进行数据复制的两个OSD。
    Ceph文件系统、Ceph对象存储、Ceph块设备都痛Ceph存储集群读取或者写入数据。

    配置和部署

    Ceph存储集群有一些必要的设置,但是大多数设置有默认值。一个典型的部署是使用一个部署工具定义一个集群和引导一个monitor。
    部署工具ceph-deploy参考Deployment

    操作

    一旦你部署完毕一个Ceph集群,你就可以对集群进行操作了。

    APIS

    Most Ceph deployments use Ceph Block DevicesCeph Object Storage and/or theCeph Filesystem. You may also develop applications that talk directly to the Ceph Storage Cluster.

    展开全文
  • 该文章采用的ceph-deploy版本为:ceph-deploy-1.5.38-0.noarch 下载地址: https://download.ceph.com/rpm-kraken/el7/noarch/ ceph的源采用的是zte的源,可在附件中下载 在下面步骤的后面带有 “(节点信息)”的...

    文章目录

    前言

    该文章采用的ceph-deploy版本为:ceph-deploy-1.5.38-0.noarch

    下载地址:https://download.ceph.com/rpm-kraken/el7/noarch/

    文章主要针对内网、不能上外网或者外网下载速度很慢的一部分用户。
    外网用户和内网用户有差异的地方只有源的配置那部分,,其余部分都是一样的。

    ceph的源采用的是公司内部自己的源,如果是外网可以直接用阿里源。

    在下面步骤的后面带有 “(节点信息)”的描述,代表在哪个节点上面执行。

    一、准备机器

    本文描述如何在 CentOS 7 下搭建 Ceph 存储集群(STORAGE CLUSTER)。
    在这里插入图片描述

    一共4台机器,其中1个是管理节点,其他3个是ceph节点(一个monitor节点,两个osd节点):
    admin-node 10.74.125.60 ceph-deploy 管理节点
    mon-node 10.74.125.61 monitor ceph节点-监控节点
    osd-node1 10.74.125.62 osd1 ceph节点-OSD节点
    osd-node2 10.74.125.63 osd2 ceph节点-OSD节点
    管理节点:admin-node

    ceph节点:mon-node, osd-node1,osd-node2

    所有节点:admin-node, mon-node, osd-node1,osd-node2

    1. 修改各自的主机名为上表对应的hostname

    hostnamectl set-hostname xxxx
    

    2. 修改hosts文件

    vi /etc/hosts
    将4个虚机的hosts文件里都加上下面内容:

    10.74.125.60 admin-node
    10.74.125.61 mon-node
    10.74.125.62 osd-node1
    10.74.125.63 osd-node2
    

    然后再重启虚机

    3. 确保联通性(管理节点)

    用 ping主机名的方式确认网络联通性。解决掉可能存在的主机名解析问题。

    ping mon-node
    ping osd-node1
    ping osd-node2
    

    二、ceph节点安装

    1. 安装SSH(所有节点)

    如已安装SSH,则直接进行下一步,没有安装的,请安装:

    sudo yum install openssh-server
    

    2. 创建部署 CEPH 的用户(所有节点)

    ceph-deploy 工具必须以普通用户登录 Ceph 节点,且此用户拥有无密码使用 sudo 的权限,因为它需要在安装软件及配置文件的过程中,不必输入密码。
    建议在集群内的所有 Ceph 节点上给 ceph-deploy 创建一个特定的用户,但不要用 “ceph” 这个名字。

    1) 在各 Ceph 节点创建新用户

    sudo useradd -d /home/cheng -m cheng
    sudo passwd cheng
    

    2) 确保各 Ceph 节点上新创建的用户都有 sudo 权限

    echo "cheng ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cheng
    sudo chmod 0440 /etc/sudoers.d/cheng
    

    3. 允许无密码SSH登录(管理节点)

    因为 ceph-deploy 不支持输入密码,你必须在管理节点上生成 SSH 密钥并把其公钥分发到各 Ceph 节点。 ceph-deploy 会尝试给初始 monitors 生成 SSH 密钥对。

    1) 生成 SSH 密钥对

    不要用 sudo 或 root 用户。提示 “Enter passphrase” 时,直接回车,口令即为空:

    //切换用户,如不特别说明,后续的操作均在该用户下进行

    su cheng
    

    //生成密钥对

    ssh-keygen
     
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/cheng/.ssh/id_rsa):
    Created directory '/home/cheng/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/cheng/.ssh/id_rsa.
    Your public key has been saved in /home/cheng/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:Tb0VpUOZtmh+QBRjUOE0n2Uy3WuoZVgXn6TBBb2SsGk cheng@admin-node
    The key's randomart image is:
    +---[RSA 2048]----+
    |          .+@=OO*|
    |           *.BB@=|
    |          ..O+Xo+|
    |         o E+O.= |
    |        S oo=.o  |
    |           .. .  |
    |             .   |
    |                 |
    |                 |
    +----[SHA256]-----+
    

    2) 把公钥拷贝到各 Ceph 节点

    ssh-copy-id cheng@admin-node
    ssh-copy-id cheng@mon-node
    ssh-copy-id cheng@osd-node1
    ssh-copy-id cheng@osd-node2
    

    完成后, /home/zeng/.ssh/ 路径下:

    admin-node 多了文件 id_rsa、id_rsa.pub 和 known_hosts;
    node1, node2, node3 多了文件authorized_keys。

    3) 修改~/.ssh/config 文件

    修改 ~/.ssh/config 文件(没有则新增),这样 ceph-deploy 就能用你所建的用户名登录 Ceph 节点了。

    Host admin-node
       Hostname admin-node
       User cheng
    Host mon-node
       Hostname mon-node
       User cheng
    Host osd-node1
       Hostname osd-node1
       User cheng
    Host osd-node2
       Hostname osd-node2
       User cheng
    

    执行命令修改文件权限。避免出现 “Bad owner or permissions on /home/zeng/.ssh/config”,

    sudo chmod 644 ~/.ssh/config
    
    1. 测试ssh能否成功
    ssh cheng@mon-node
    exit
    ssh cheng@osd-node1
    exit
    ssh cheng@osd-node2
    exit
    

    4. 引导时联网(ceph节点)

    Ceph 的各 OSD 进程通过网络互联并向 Monitors 上报自己的状态。如果网络默认为 off ,那么 Ceph 集群在启动时就不能上线,直到你打开网络。

    cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
     
    //确保ONBOOT 设置成了 yes
    

    5. 关闭防火墙(所有节点)

    sudo systemctl stop firewalld
    sudo systemctl disable firewalld
    

    6. 修改visudo文件(所有节点)

    在 CentOS 和 RHEL 上执行 ceph-deploy 命令时可能会报错。如果你的 Ceph 节点默认设置了 requiretty ,执行

    sudo visudo
    

    找到 Defaults requiretty 选项,把它改为 Defaults:ceph !requiretty 或者直接注释掉,这样 ceph-deploy 就可以用之前创建的用户(创建部署 Ceph 的用户 )连接了。

    注意:编辑配置文件 /etc/sudoers 时,必须用 sudo visudo 而不是文本编辑器。

    7. 关闭selinux(所有节点)

    sudo setenforce 0
    

    要使 SELinux 配置永久生效,需修改其配置文件 /etc/selinux/config:

    sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
    

    即修改 SELINUX=disabled。

    8. 配置源(所有节点)

    将公司的源放到 /etc/yum.repos.d/ 目录下,如果是外网用户,可以直接用阿里源。

    9. 手动安装 epel-release 包(所有节点)

    sudo yum install epel-release
    

    问题:如果在安装后, /etc/yum.repos.d/ 目录下产生了多余的repo文件,请将多余的文件删掉,只保留最初那个源文件

    10. 手动安装 python-setuptools 包(管理节点)

    虚机可能装了 python2-setuptools这个包,请先将该包卸载,再安装python-setuptools这个包。

    卸载方法:

    sudo yum remove python2-setuptools
    

    安装方法:

    sudo yum install python-setuptools
    

    11. 安装python-remoto包(管理节点)

    sudo yum install python-remoto
    

    12. 安装ceph-deploy(管理节点)

    如果仓库没有1.5.38版本的ceph-deploy ,请自行下载:

    https://download.ceph.com/rpm-kraken/el7/noarch/

    13. 修改代码,只针对内网用户(管理节点)

    修改 sudo vim /usr/lib/python2.7/site-packages/ceph_deploy/hosts/centos/install.py 文件:

    将以下几句话注释掉:

     58     # Get EPEL installed before we continue:
     59     if adjust_repos:
     60         distro.packager.install('epel-release')
     61         distro.packager.install('yum-plugin-priorities')
     62         #distro.conn.remote_module.enable_yum_priority_obsoletes()
     63         logger.warning('check_obsoletes has been enabled for Yum priorities plugin')
     64     if version_kind in ['stable', 'testing']:
     65         key = 'release'
     66     else:
     67         key = 'autobuild'
     68
     69     if adjust_repos:
     70         if version_kind in ['stable', 'testing']:
     71             #distro.packager.add_repo_gpg_key(gpg.url(key))
     72
     73             if version_kind == 'stable':
     74                 url = 'https://download.ceph.com/rpm-{version}/{repo}/'.format(
     75                     version=version,
     76                     repo=repo_part,
     77                     )
     78             elif version_kind == 'testing':
     79                 url = 'https://download.ceph.com/rpm-testing/{repo}/'.format(repo=repo_part)
     80
     81             """remoto.process.run(
     82                 distro.conn,
     83                 [
     84                     'rpm',
     85                     '-Uvh',
     86                     '--replacepkgs',
     87                     '{url}noarch/ceph-release-1-0.{dist}.noarch.rpm'.format(url=url, dist=dist),
     88                 ],
     89             )"""
     90
     91         elif version_kind in ['dev', 'dev_commit']:
     92             logger.info('skipping install of ceph-release package')
     93             logger.info('repo file will be created manually')
     94             shaman_url = 'https://shaman.ceph.com/api/repos/ceph/{version}/{sha1}/{distro}/{distro_version}/repo/?arch={arch}'.format(
     95                 distro=distro.normalized_name,
     96                 distro_version=distro.normalized_release.major,
     97                 version=kw['args'].dev,
     98                 sha1=kw['args'].dev_commit or 'latest',
     99                 arch=machine
    100                 )
    101             LOG.debug('fetching repo information from: %s' % shaman_url)
    102             content = net.get_chacra_repo(shaman_url)
    103             """mirror_install(
    104                 distro,
    105                 '',  # empty repo_url
    106                 None,  # no need to use gpg here, repos are unsigned
    107                 adjust_repos=True,
    108                 extra_installs=False,
    109                 gpgcheck=gpgcheck,
    110                 repo_content=content
    111             )"""
    112
    113         else:
    114             raise Exception('unrecognized version_kind %s' % version_kind)
    115
    116         # set the right priority
    117         logger.warning('ensuring that /etc/yum.repos.d/ceph.repo contains a high priority')
    118         #distro.conn.remote_module.set_repo_priority(['Ceph', 'Ceph-noarch', 'ceph-source'])
    119         logger.warning('altered ceph.repo priorities to contain: priority=1')
    120
    121     if packages:
    122         distro.packager.install(packages)
    123
    124
    

    然后删除 /usr/lib/python2.7/site-packages/ceph_deploy/hosts/centos/install.pyc 和 /usr/lib/python2.7/site-packages/ceph_deploy/hosts/centos/install.pyo 两个文件

    修改 sudo vim /usr/lib/python2.7/site-packages/ceph_deploy/hosts/init.py 文件:

    将56行等号后面的内容改为如下内容

    56     distro_name, release, codename = "centos","","1"
    

    然后删除 /usr/lib/python2.7/site-packages/ceph_deploy/hosts/init.pyc 和 /usr/lib/python2.7/site-packages/ceph_deploy/hosts/init.pyo 两个文件

    14.安装yum-plugin-priorities(管理节点)

    sudo yum install yum-plugin-priorities
    

    三、搭建集群

    在 管理节点 下执行如下步骤:

    1. 安装准备,创建文件夹

    在管理节点上创建一个目录,用于保存 ceph-deploy 生成的配置文件和密钥对。

    cd /home/cheng/
    mkdir my-cluster
    cd my-cluster
    

    注:若在后面安装时遇到麻烦,想清除环境重新开始,可以使用以下命令进行清除包和配置:

    // 删除安装包
    $ ceph-deploy purge admin-node mon-node osd-node1 osd-node2
     
    // 清除配置
    $ ceph-deploy purgedata admin-node mon-node osd-node1 osd-node2
    $ ceph-deploy forgetkeys
    

    2. 创建集群和监控节点

    创建集群并初始化监控节点:

    这里mon-node是monitor节点,所以执行:

    ceph-deploy new mon-node
    

    完成后,my-clster 下多了3个文件:ceph.conf、ceph-deploy-ceph.log 和 ceph.mon.keyring。

    问题:如果出现 “[ceph_deploy][ERROR ] RuntimeError: remote connection got closed, ensure requiretty is disabled for mon-node”,执行 sudo visudo 将 Defaults requiretty 注释掉。

    3. 修改配置文件

    cat ceph.conf
    

    内容如下:

    [global]
    fsid = a610ebcd-1df1-49ca-a6ee-3b0df53f26ef
    mon_initial_members = mon-node
    mon_host = 10.74.125.61
    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx
    filestore_xattr_use_omap = true
    

    把 Ceph 配置文件里的默认副本数从 3 改成 2 ,这样只有两个 OSD 也可以达到 active + clean 状态。把 osd_pool_default_size = 2 加入 [global] 段:

    osd_pool_default_size = 2
    

    把 public_network 写入 Ceph 配置文件的 [global] 段:

    public_network = {ip-address}/{netmask}
    

    完整的配置如下:

    [global]
    fsid = a610ebcd-1df1-49ca-a6ee-3b0df53f26ef
    mon_initial_members = mon-node
    mon_host = 10.74.125.61
    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx
    filestore_xattr_use_omap = true
     
    osd_pool_default_size = 2
    public_network = 10.74.125.0/23
    

    4. 安装Ceph

    在所有节点上安装ceph:

    ceph-deploy install admin-node mon-node osd-node1 osd-node2
    

    问题:[ceph_deploy][ERROR ] RuntimeError: Failed to execute command: yum -y install epel-release

    1. 解决方法1:

      重新拉取yum缓存,这样做大多数RuntimeError: Failed to execute command: yum -y install
      xxxxx 错误都可解决

    2. 解决方法2: sudo yum -y remove epel-release

    5. 配置初始 monitor(s)、并收集所有密钥

    ceph-deploy mon create-initial
    

    完成上述操作后,当前目录里应该会出现这些密钥环:

    • {cluster-name}.client.admin.keyring
    • {cluster-name}.bootstrap-osd.keyring
    • {cluster-name}.bootstrap-mds.keyring
    • {cluster-name}.bootstrap-rgw.keyring

    6. 创建osd

    1). 删除磁盘数据

    ceph-deploy disk zap osd-node1:/dev/vdb
    ceph-deploy disk zap osd-node2:/dev/vdb
    

    2). 创建osd

    ceph-deploy osd create osd-node1:/dev/vdb
    ceph-deploy osd create osd-node2:/dev/vdb
    

    7. 创建eph秘钥拷贝(管理节点)

    用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了

    ceph-deploy admin mon-node osd-node1 osd-node2
    

    修改密钥权限(ceph节点)

    chmod +r /etc/ceph/ceph.client.admin.keyring
    
    

    8. 创建mgr守护进程(管理节点)

    建议在每个 mon 中都创建独立的 ceph-mgr,只会active一个,其他的standby

    ceph-deploy mgr create mon-node
    

    9. 查看集群状态

    两条命令

    ceph health
    ceph -s
    

    四、dashboard配置(扩展功能)

    dashboard其实就是一个web管理后台

    1. 修改/etc/ceph/ceph.conf,增加如下配置(管理节点)

    [mgr]
    mgr modules = dashboard
    

    2. 将主节点上的配置文件推送到从节点(管理节点)

    ceph-deploy --overwrite-conf config push mon-node osd-node1 osd-node2
    

    3. 查看当前集群在使用哪几个模块

    ceph mgr dump
    

    结果:

    {
        "epoch": 27,
        "active_gid": 4118,
        "active_name": "ceph01",
        "active_addr": "192.168.20.148:6804/12748",
        "available": true,
        "standbys": [],
        "modules": [
            "balancer",
            "restful",
            "status"
        ],
        "available_modules": [
            "balancer",
            "dashboard",
            "influx",
            "localpool",
            "prometheus",
            "restful",
            "selftest",
            "status",
            "zabbix"
        ],
        "services": {}
    }
    

    4. 使dashboard可用

    ceph mgr module enable dashboard
    
    

    5. 查看是否支持dashboard

    ceph mgr module ls
    

    结果:

    {
        "enabled_modules": [
            "balancer",
            "dashboard",
            "restful",
            "status"
        ],
        "disabled_modules": [
            "influx",
            "localpool",
            "prometheus",
            "selftest",
            "zabbix"
        ]
    }
    

    6. 置dashboard web网页监控的ip及端口(根据需求配置)10.74.x.x为此主机外网ip

    ceph config-key put mgr/dashboard/server_addr 10.74.x.x set mgr/dashboard/server_addr
    ceph config-key put mgr/dashboard/server_port 7000 set mgr/dashboard/server_port
    

    可以使用此命令查看当前设置的值

    ceph config-key dump
    

    结果:

    {
        "mgr/dashboard/server_addr": "10.74.x.x",
        "mgr/dashboard/server_port": "7000"
    }
    
    

    现在就可以在浏览器上面输入链接:10.74.x.x:7000 进行访问了。
    界面类似这样:
    在这里插入图片描述

    参考文献:
    https://www.cnblogs.com/zengzhihua/p/9829472.html
    https://www.jianshu.com/p/cc254cf8842b


    技 术 无 他, 唯 有 熟 尔。
    知 其 然, 也 知 其 所 以 然。
    踏 实 一 些, 不 要 着 急, 你 想 要 的 岁 月 都 会 给 你。


    展开全文
  • 目录 一、准备机器 二、ceph节点安装 三、搭建集群 ...本文描述如何在 CentOS 7 下搭建 Ceph 存储集群(STORAGE CLUSTER)。 一共4台机器,其中1个是管理节点,其他3个是ceph节点: hos...

     

    一、准备机器

    本文描述如何在 CentOS 7 下搭建 Ceph 存储集群(STORAGE CLUSTER)。

    ditaa-cffd08dd3e192a5f1d724ad7930cb04200b9b425.png

    一共4台机器,其中1个是管理节点,其他3个是ceph节点:

    hostname ip role 描述
    admin-node 192.168.0.130 ceph-deploy 管理节点
    node1 192.168.0.131 mon.node1 ceph节点,监控节点
    node2 192.168.0.132 osd.0 ceph节点,OSD节点
    node3 192.168.0.133 osd.1 ceph节点,OSD节点

    管理节点:admin-node

    ceph节点:node1, node2, node3

    所有节点:admin-node, node1, node2, node3

    1. 修改主机名

    # vi /etc/hostname

    2. 修改hosts文件

    # vi /etc/hosts
    192.168.0.130 admin-node
    192.168.0.131 node1
    192.168.0.132 node2
    192.168.0.133 node3

    3. 确保联通性(管理节点)

    用 ping 短主机名( hostname -s )的方式确认网络联通性。解决掉可能存在的主机名解析问题。

    $ ping node1
    $ ping node2
    $ ping node3

     

    二、ceph节点安装

    1. 安装NPT(所有节点)

    我们建议在所有 Ceph 节点上安装 NTP 服务(特别是 Ceph Monitor 节点),以免因时钟漂移导致故障,详情见时钟。

    # sudo yum install ntp ntpdate ntp-doc

    2. 安装SSH(所有节点)

    # sudo yum install openssh-server

    3. 创建部署 CEPH 的用户(所有节点)

    ceph-deploy 工具必须以普通用户登录 Ceph 节点,且此用户拥有无密码使用 sudo 的权限,因为它需要在安装软件及配置文件的过程中,不必输入密码。
    建议在集群内的所有 Ceph 节点上给 ceph-deploy 创建一个特定的用户,但不要用 “ceph” 这个名字。

    1) 在各 Ceph 节点创建新用户

    # sudo useradd -d /home/zeng -m zeng
    # sudo passwd zeng

    2) 确保各 Ceph 节点上新创建的用户都有 sudo 权限

    # echo "zeng ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/zeng
    # sudo chmod 0440 /etc/sudoers.d/zeng

    4. 允许无密码SSH登录(管理节点)

    因为 ceph-deploy 不支持输入密码,你必须在管理节点上生成 SSH 密钥并把其公钥分发到各 Ceph 节点。 ceph-deploy 会尝试给初始 monitors 生成 SSH 密钥对。

    1) 生成 SSH 密钥对

    不要用 sudoroot 用户。提示 “Enter passphrase” 时,直接回车,口令即为空:

    //切换用户,如不特别说明,后续的操作均在该用户下进行
    # su zeng
    
    //生成密钥对
    $ ssh-keygen
    
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/zeng/.ssh/id_rsa): 
    Created directory '/home/zeng/.ssh'.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /home/zeng/.ssh/id_rsa.
    Your public key has been saved in /home/zeng/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:Tb0VpUOZtmh+QBRjUOE0n2Uy3WuoZVgXn6TBBb2SsGk zeng@admin-node
    The key's randomart image is:
    +---[RSA 2048]----+
    |          .+@=OO*|
    |           *.BB@=|
    |          ..O+Xo+|
    |         o E+O.= |
    |        S oo=.o  |
    |           .. .  |
    |             .   |
    |                 |
    |                 |
    +----[SHA256]-----+

    2) 把公钥拷贝到各 Ceph 节点

    $ ssh-copy-id zeng@node1
    $ ssh-copy-id zeng@node2
    $ ssh-copy-id zeng@node3

    完成后, /home/zeng/.ssh/ 路径下:

    • admin-node 多了文件 id_rsaid_rsa.pubknown_hosts
    • node1, node2, node3 多了文件authorized_keys

    3) 修改~/.ssh/config 文件

    修改 ~/.ssh/config 文件(没有则新增),这样 ceph-deploy 就能用你所建的用户名登录 Ceph 节点了。

    // 必须使用sudo
    $ sudo vi ~/.ssh/config
    Host admin-node
       Hostname admin-node
       User zeng
    Host node1
       Hostname node1
       User zeng
    Host node2
       Hostname node2
       User zeng
    Host node3
       Hostname node3
       User zeng

    4) 测试ssh能否成功

    $ ssh zeng@node1
    $ exit
    $ ssh zeng@node2
    $ exit
    $ ssh zeng@node3
    $ exit
    • 问题:如果出现 "Bad owner or permissions on /home/zeng/.ssh/config",执行命令修改文件权限。
    $ sudo chmod 644 ~/.ssh/config

    5. 引导时联网(ceph节点)

    Ceph 的各 OSD 进程通过网络互联并向 Monitors 上报自己的状态。如果网络默认为 off ,那么 Ceph 集群在启动时就不能上线,直到你打开网络。

    $ cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
    
    //确保ONBOOT 设置成了 yes 

    6. 开放所需端口(ceph节点)

    Ceph Monitors 之间默认使用 6789 端口通信, OSD 之间默认用 6800:7300 这个范围内的端口通信。Ceph OSD 能利用多个网络连接进行与客户端、monitors、其他 OSD 间的复制和心跳的通信。

    $ sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent
    // 或者关闭防火墙
    $ sudo systemctl stop firewalld
    $ sudo systemctl disable firewalld

    7. 终端(TTY)(ceph节点)

    在 CentOS 和 RHEL 上执行 ceph-deploy 命令时可能会报错。如果你的 Ceph 节点默认设置了 requiretty ,执行

    $ sudo visudo

    找到 Defaults requiretty 选项,把它改为 Defaults:ceph !requiretty 或者直接注释掉,这样 ceph-deploy 就可以用之前创建的用户(创建部署 Ceph 的用户 )连接了。

    编辑配置文件 /etc/sudoers 时,必须用 sudo visudo 而不是文本编辑器。

    8. 关闭selinux(ceph节点)

    $ sudo setenforce 0

    要使 SELinux 配置永久生效(如果它的确是问题根源),需修改其配置文件 /etc/selinux/config:

    $ sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

    即修改 SELINUX=disabled

    9. 配置EPEL源(管理节点)

    $ 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*

    10. 把软件包源加入软件库(管理节点)

    $ sudo vi /etc/yum.repos.d/ceph.repo

    把如下内容粘帖进去,保存到 /etc/yum.repos.d/ceph.repo 文件中。

    [Ceph]
    name=Ceph packages for $basearch
    baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
    enabled=1
    gpgcheck=0
    type=rpm-md
    gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
    priority=1
    
    [Ceph-noarch]
    name=Ceph noarch packages
    baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
    enabled=1
    gpgcheck=0
    type=rpm-md
    gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
    priority=1
    
    [ceph-source]
    name=Ceph source packages
    baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS/
    enabled=1
    gpgcheck=0
    type=rpm-md
    gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
    priority=1

    11. 更新软件库并安装ceph-deploy(管理节点)

    $ sudo yum update && sudo yum install ceph-deploy
    $ sudo yum install yum-plugin-priorities

    时间可能比较久,耐心等待。

     

    三、搭建集群

    管理节点 下执行如下步骤:

    1. 安装准备,创建文件夹

    在管理节点上创建一个目录,用于保存 ceph-deploy 生成的配置文件和密钥对。

    $ cd ~
    $ mkdir my-cluster
    $ cd my-cluster

    注:若安装ceph后遇到麻烦可以使用以下命令进行清除包和配置:

    // 删除安装包
    $ ceph-deploy purge admin-node node1 node2 node3
    
    // 清除配置
    $ ceph-deploy purgedata admin-node node1 node2 node3
    $ ceph-deploy forgetkeys

    2. 创建集群和监控节点

    创建集群并初始化监控节点

    $ ceph-deploy new {initial-monitor-node(s)}

    这里node1是monitor节点,所以执行:

    $ ceph-deploy new node1

    完成后,my-clster 下多了3个文件:ceph.confceph-deploy-ceph.logceph.mon.keyring

    • 问题:如果出现 "[ceph_deploy][ERROR ] RuntimeError: remote connection got closed, ensure requiretty is disabled for node1",执行 sudo visudo 将 Defaults requiretty 注释掉。

    3. 修改配置文件

    $ cat ceph.conf

    内容如下:

    [global]
    fsid = 89933bbb-257c-4f46-9f77-02f44f4cc95c
    mon_initial_members = node1
    mon_host = 192.168.0.131
    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx

    把 Ceph 配置文件里的默认副本数从 3 改成 2 ,这样只有两个 OSD 也可以达到 active + clean 状态。把 osd pool default size = 2 加入 [global] 段:

    $ sed -i '$a\osd pool default size = 2' ceph.conf

    如果有多个网卡,
    可以把 public network 写入 Ceph 配置文件的 [global] 段:

    public network = {ip-address}/{netmask}

    4. 安装Ceph

    在所有节点上安装ceph:

    $ ceph-deploy install admin-node node1 node2 node3
    • 问题:[ceph_deploy][ERROR ] RuntimeError: Failed to execute command: yum -y install epel-release

    解决方法:

    sudo yum -y remove epel-release

    5. 配置初始 monitor(s)、并收集所有密钥

    $ ceph-deploy mon create-initial

    完成上述操作后,当前目录里应该会出现这些密钥环:

    {cluster-name}.client.admin.keyring
    {cluster-name}.bootstrap-osd.keyring
    {cluster-name}.bootstrap-mds.keyring
    {cluster-name}.bootstrap-rgw.keyring

    6. 添加2个OSD

    1) 登录到 Ceph 节点、并给 OSD 守护进程创建一个目录,并添加权限。

    $ ssh node2
    $ sudo mkdir /var/local/osd0
    $ sudo chmod 777 /var/local/osd0/
    $ exit
    
    $ ssh node3
    $ sudo mkdir /var/local/osd1
    $ sudo chmod 777 /var/local/osd1/
    $ exit

    2) 然后,从管理节点执行 ceph-deploy 来准备 OSD 。

    $ ceph-deploy osd prepare node2:/var/local/osd0 node3:/var/local/osd1

    3) 最后,激活 OSD 。

    $ ceph-deploy osd activate node2:/var/local/osd0 node3:/var/local/osd1

    7.把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点

    $ ceph-deploy admin admin-node node1 node2 node3

    8. 确保你对 ceph.client.admin.keyring 有正确的操作权限

    $ sudo chmod +r /etc/ceph/ceph.client.admin.keyring

    9. 检查集群的健康状况和OSD节点状况

    [zeng@admin-node my-cluster]$ ceph health
    HEALTH_OK
    
    [zeng@admin-node my-cluster]$ ceph -s
        cluster a3dd419e-5c99-4387-b251-58d4eb582995
         health HEALTH_OK
         monmap e1: 1 mons at {node1=192.168.0.131:6789/0}
                election epoch 3, quorum 0 node1
         osdmap e10: 2 osds: 2 up, 2 in
                flags sortbitwise,require_jewel_osds
          pgmap v22: 64 pgs, 1 pools, 0 bytes data, 0 objects
                12956 MB used, 21831 MB / 34788 MB avail
                      64 active+clean
                      
    [zeng@admin-node my-cluster]$ ceph osd df
    ID WEIGHT  REWEIGHT SIZE   USE    AVAIL  %USE  VAR  PGS 
     0 0.01659  1.00000 17394M  6478M 10915M 37.24 1.00  64 
     1 0.01659  1.00000 17394M  6478M 10915M 37.25 1.00  64 
                  TOTAL 34788M 12956M 21831M 37.24          
    MIN/MAX VAR: 1.00/1.00  STDDEV: 0

     

    四、扩展集群(扩容)

    ditaa-c5495708ed5fc570308611ac28339196614c050a.png

    1. 添加OSD

    在 node1 上添加一个 osd.2。

    1) 创建目录

    $ ssh node1
    $ sudo mkdir /var/local/osd2
    $ sudo chmod 777 /var/local/osd2/
    $ exit

    2) 准备OSD

    $ ceph-deploy osd prepare node1:/var/local/osd2

    3) 激活OSD

    $ ceph-deploy osd activate node1:/var/local/osd2

    4) 检查集群状况和OSD节点:

    [zeng@admin-node my-cluster]$ ceph -s
        cluster a3dd419e-5c99-4387-b251-58d4eb582995
         health HEALTH_OK
         monmap e1: 1 mons at {node1=192.168.0.131:6789/0}
                election epoch 3, quorum 0 node1
         osdmap e15: 3 osds: 3 up, 3 in
                flags sortbitwise,require_jewel_osds
          pgmap v37: 64 pgs, 1 pools, 0 bytes data, 0 objects
                19450 MB used, 32731 MB / 52182 MB avail
                      64 active+clean
    
    [zeng@admin-node my-cluster]$ ceph osd df
    ID WEIGHT  REWEIGHT SIZE   USE    AVAIL  %USE  VAR  PGS 
     0 0.01659  1.00000 17394M  6478M 10915M 37.24 1.00  41 
     1 0.01659  1.00000 17394M  6478M 10915M 37.24 1.00  43 
     2 0.01659  1.00000 17394M  6494M 10899M 37.34 1.00  44 
                  TOTAL 52182M 19450M 32731M 37.28          
    MIN/MAX VAR: 1.00/1.00  STDDEV: 0.04

    2. 添加MONITORS

    在 ndoe2 和 node3 添加监控节点。

    1) 修改 mon_initial_membersmon_hostpublic network 配置:

    [global]
    fsid = a3dd419e-5c99-4387-b251-58d4eb582995
    mon_initial_members = node1,node2,node3
    mon_host = 192.168.0.131,192.168.0.132,192.168.0.133
    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx
    
    osd pool default size = 2
    public network = 192.168.0.120/24

    2) 推送至其他节点:

    $ ceph-deploy --overwrite-conf config push node1 node2 node3

    3) 添加监控节点:

    $ ceph-deploy mon add node2 node3

    4) 查看集群状态和监控节点:

    [zeng@admin-node my-cluster]$ ceph -s
        cluster a3dd419e-5c99-4387-b251-58d4eb582995
         health HEALTH_OK
         monmap e3: 3 mons at {node1=192.168.0.131:6789/0,node2=192.168.0.132:6789/0,node3=192.168.0.133:6789/0}
                election epoch 8, quorum 0,1,2 node1,node2,node3
         osdmap e25: 3 osds: 3 up, 3 in
                flags sortbitwise,require_jewel_osds
          pgmap v3919: 64 pgs, 1 pools, 0 bytes data, 0 objects
                19494 MB used, 32687 MB / 52182 MB avail
                      64 active+clean
                      
    [zeng@admin-node my-cluster]$ ceph mon stat
    e3: 3 mons at {node1=192.168.0.131:6789/0,node2=192.168.0.132:6789/0,node3=192.168.0.133:6789/0}, election epoch 8, quorum 0,1,2 node1,node2,node3

     

    参考链接:
    PREFLIGHT
    STORAGE CLUSTER QUICK START

    转载于:https://www.cnblogs.com/zengzhihua/p/9829472.html

    展开全文
  • Ceph存储集群&配置

    2020-06-15 16:51:23
    Ceph存储集群 导读: 1.从零部署一个ceph集群 2.ceph block device与cephfs快速入门 3.ceph 对象存储快速入门 Overview 一个Ceph存储群集至少需要一个Ceph monitor,Ceph Managers和Ceph OSD(对象存储守护程序)。 ...

    Ceph存储集群

    导读:
    1.从零部署一个ceph集群
    2.ceph block device与cephfs快速入门
    3.ceph 对象存储快速入门

    Overview

    一个Ceph存储群集至少需要一个Ceph monitorCeph ManagersCeph OSD(对象存储守护程序)。 运行Ceph文件系统客户端时,也需要Ceph Metadata Server

    在这里插入图片描述

    • Monitors:Ceph Monitor(ceph-mon)维护集群状态的映射,包括monitor映射,manager映射,OSD映射,MDS映射和CRUSH映射。 这些映射是Ceph守护程序相互协调所需的关键群集状态。 monitor还负责管理守护程序和客户端之间的身份验证。 通常至少需要三个monitor才能实现冗余和高可用性。
    • Managers:ceph manager daemon(ceph-mgr)负责跟踪运行时指标和Ceph集群的当前状态,包括存储利用率,当前性能指标和系统负载。Ceph Manager daemon还托管基于python的模块,以管理和公开Ceph集群信息,包括基于Web的Ceph仪表板和REST API。 高可用性通常至少需要两个管理器。
    • Ceph OSDs:ceph osd(object storage daemon,ceph-osd)存储数据,处理数据复制,恢复,重新平衡,并通过检查其他Ceph OSD守护程序的heartbeat来向Ceph监视器和管理器提供一些监视信息。通常至少需要3个Ceph OSD才能实现冗余和高可用性。
    • MDSs:ceph metadata server(ceph-mds)Ceph文件系统存储元数据(Ceph块设备和Ceph对象存储不使用MDS)。 Ceph元数据服务器允许POSIX文件系统用户执行基本命令(如ls,find等),而不会给Ceph存储集群带来巨大负担

    Ceph将数据作为对象存储在逻辑存储池中。 使用CRUSH算法,Ceph计算哪个placement group(pg,中译:放置组)应包含该对象,并进一步计算哪个Ceph OSD守护程序应存储该pg。 CRUSH算法使Ceph存储集群能够动态扩展,重新平衡和恢复。

    configuration

    storage device

    在存储数据的磁盘上有两个ceph守护进程,osd和mon。

    • osd:是大多数数据存储在Ceph中的地方。 一般而言,每个OSD都由单个存储设备(例如传统硬盘(HDD)或固态磁盘(SSD))支持。 OSD也可以由多种设备组合来支持,例如用于大多数数据的HDD和用于某些元数据的SSD(或SSD的分区)。 群集中OSD的数量通常取决于存储的数据量,每个存储设备的容量以及冗余(复制或擦除编码)的级别和类型。
    • mon:管理关键的群集状态,例如群集成员身份和身份验证信息。 对于较小的群集,只需要几GB的容量,尽管对于较大的群集,监控器数据库可以达到数十或数百GB的容量

    后端OSD

    OSD可以通过两种方式管理它们存储的数据。 从Luminous 12.2.z版本开始,新的默认(推荐)后端是BlueStore。 在这之前,默认(也是唯一的选项)是FileStore。

    filestore

    FileStore是在Ceph中存储对象的传统方法。 它依赖于标准文件系统(通常为XFS)以及键/值数据库(传统为LevelDB,现在为RocksDB)来获取某些元数据。但是由于其总体设计以及对用于存储对象数据的传统文件系统的依赖,因此存在许多性能缺陷。

    bluestore settings

    BlueStore是专用于存储的后端,专门用于管理Ceph OSD工作负载的磁盘上的数据。 BlueStore的主要功能包括:

    • 直接管理存储设备。 BlueStore使用原始块设备或分区。这避免了可能影响性能或增加复杂性的任何中间抽象层(例如XFS之类的本地文件系统)。
    • RocksDB的元数据管理。嵌入RocksDB的键/值数据库管理内部元数据,例如从对象名称到磁盘上块位置的映射。
    • 完整的数据和元数据校验和。默认情况下,所有写入BlueStore的数据和元数据都受到一个或多个校验和的保护。未经验证,不会从磁盘读取任何数据或元数据或将其返回给用户。
    • 压缩。写入的数据在写入磁盘之前可以选择压缩。
    • 多设备元数据分层。 BlueStore允许将其内部日志(预写日志)写入单独的高速设备(例如SSD,NVMe或NVDIMM),以提高性能。如果有大量的更快的存储空间,内部元数据也可以存储在更快的设备上。
    • 高效的写时复制。 RBD和CephFS快照依赖于在BlueStore中有效实现的写时复制克隆机制。这将为常规快照和擦除代码池(依赖克隆实现高效的两阶段提交)提供高效的IO。

    集群至少运行一台Ceph元数据服务器(ceph-mds), 支持Ceph对象存储的集群运行Ceph网关守护程序(radosgw)。每个守护进程都有一系列配置选项,每个配置选项都有一个默认值。 我们可以通过更改这些配置选项来调整系统的行为。

    config names

    配置由小写字母和下划线组成唯一的名称。在命令行指定配置的时候下划线( _ )和破折号( - )是等效的,在配置文件中,也可以通过空格代替。

    配置资源

    每个Ceph守护进程,进程和库都将从以下列出的几个来源中提取其配置。 如果同时存在,则下列列表中,位置靠下的优先级高。

    • 编译的默认值

    • 监视器集群的集中式配置数据库

    • 存储在本地主机上的配置文件

    • 环境变量

    • 命令行参数

    • 管理员设置的运行时覆盖的值

    Ceph进程在启动时要做的第一件事就是解析通过命令行,环境和本地配置文件提供的配置选项。 然后,该过程将与mon集群联系,以检索整个群集集中存储的配置。 一旦可获得完整的配置,则将继续执行守护进程。

    启动项

    有一些配置项会影响与mon的关联,进行身份验证和检索集群存储的配置的能力,因此可能需要将其本地存储在节点上并在本地配置文件中进行设置。这些选项包括:

    • mon_host:集群的监视器列表
    • mon_dns_serv_name:DNS SRV记录的名称,该记录用于检查以通过DNS识别集群监视器
    • mon_data, osd_data, mds_data, mgr_data等:定义守护程序将数据存储在哪个本地目录中。
    • keyring, keyfile, and/or key:指定用于与监视器进行身份验证的身份验证凭据

    在大多数情况下,这些默认值都是合适的,但mon_host选项除外,该选项标识群集的监视器的地址。使用DNS标识监视器时,可以完全避免使用本地ceph配置文件。

    跳过Mon配置

    可以通过--no-mon-config选项跳过从集群监视器检索配置的步骤。 在完全通过配置文件管理配置或监视器集群当前处于关闭状态但需要完成一些维护活动的情况下,这很有用。

    配置段

    任何给定的进程或守护程序的每个配置选项都有一个值。 但是,选项的值可能在不同的守护程序类型之间变化,甚至是同一类型的守护程序也可能不同。 存储在监视器配置数据库或本地配置文件中的Ceph选项分为几部分,以指示它们适用于哪些守护程序或客户端。

    • global:配置在这个段中的配置项会影响所有进程。

      例如:

      log_file = /var/log/ceph/$cluster-$type.$id.log
      
    • mon:mon下的设置会影响Ceph存储群集中的所有ceph-mon守护程序,并覆盖global中的相同设置。

      例如:

      mon_cluster_log_to_syslog = true
      
    • mgr:mgr部分中的设置会影响Ceph Storage Cluster中的所有ceph-mgr守护程序,并在global中覆盖相同的设置。

      例如:

      mgr_stats_period = 10
      
    • osd:osd下的设置会影响Ceph Storage Cluster中的所有ceph-osd守护进程,并覆盖global中的相同设置。

      例如:

      osd_op_queue = wpq
      
    • mds:mds部分中的设置会影响Ceph Storage Cluster中的所有ceph-mds守护进程,并覆盖global中的相同设置。

      例如:

      mds_cache_memory_limit = 10G
      
    • client:客户端下的设置会影响所有Ceph客户端(例如已安装的Ceph文件系统,已安装的Ceph块设备等)以及Rados Gateway(RGW)守护程序。

      例如:

      objecter_inflight_ops = 512
      

      部分还可以指定单个客户端的名称。例如指定客户端ceph-adminrgw的端口

      [client.rgw.ceph-admin]
      rgw_frontends = "civetweb port=80"
      

      如果在同一部分中指定了相同配置选项的多个值,则以最后一个值为准。

      本地配置文件中的值始终优先于监视器配置数据库中的值,而不管它们出现在哪个部分中。

    元变量(metavariables)

    元变量极大地简化了Ceph存储集群的配置。 在配置值中设置了元变量后,Ceph会在使用配置值时将元变量扩展为具体值。 Ceph元变量类似于Bash shell中的变量扩展。

    Ceph支持以下元变量:

    • $cluster:Ceph存储群集名称。

      例如:

      /etc/ceph/$cluster.keyring
      

      默认值:ceph

    • $type:扩展为守护程序或进程类型

      例如:

      /var/lib/ceph/$type
      
    • $id:守护进程或者客户端身份标识

      例如:

      /var/lib/ceph/$type/$cluster-$id
      
    • $host:运行进程的主机名

    • $name:扩展为$type.$id.

      例如:

      /var/run/ceph/$cluster-$name.asok
      
    • $pid:扩展为守护进程id

      例如:

      /var/run/ceph/$cluster-$name-$pid.asok
      

    配置文件

    启动时,Ceph进程在以下位置搜索配置文件:

    1. $CEPH_CONF (CEPH_CONF环境变量)
    2. -c path/path (-c参数指定的路径)
    3. /etc/ceph/$cluster.conf
    4. ~/.ceph/$cluster.conf
    5. ./$cluster.conf (i.e., in the current working directory)
    6. 在 FreeBSD系统仅在, /usr/local/etc/ceph/$cluster.conf

    $cluster指的是集群的名称

    配置文件,段的名称

    配置文件分为几部分。 每个部分都必须以有效的配置部分名称开头,并用方括号括起来。

    [global]
    fsid = 1362b160-ef6a-42d9-9833-8094b97408ce
    mon_initial_members = ceph-admin
    mon_host = 10.10.128.174
    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx
    public network = 10.10.128.0/24
    
    [client.rgw.ceph-admin]
    rgw_frontends = "civetweb port=80"
    
    配置文件选项值

    配置中的值为字符串,如果太长了,我们想进行换行可以使用\符号

    [global]
    foo = long long ago\
    long ago
    

    如果值当中出现空格,我们不想其被隐藏,可以使用单引号或者双引号将其包起来

    [global]
    line = "to be, or not to be"
    

    值当中不允许出现=,#、; 和[符号,如果需要,要使用\进行转义

    [global]
    secret = "i love \# and \["
    

    mon数据库配置

    监视群集管理整个群集可以使用的配置选项数据库,从而可以简化整个系统的中央配置管理。 可以并且应该将绝大多数配置选项存储在此处,以简化管理和提高透明度。

    少数设置可能仍需要存储在本地配置文件中,因为它们会影响连接到监视器,验证和获取配置信息的能力。 在大多数情况下,这仅限于mon_host选项,尽管也可以通过使用DNS SRV记录来避免。

    命令行获取

    以下CLI命令用于配置群集:

    • ceph config dump查看集群的整个配置数据库

    • ceph config get 将显示特定的守护程序或客户端的配置,该配置存储在监视器的配置数据库中。

    • ceph config set 将在监视器的配置数据库中设置一个配置选项。

    • ceph config show 将显示正在运行的守护程序的报告运行配置。如果还使用本地配置文件,或者在命令行或运行时覆盖了选项,则这些设置可能与监视器存储的设置不同。选项值的来源报告为输出的一部分。

    • ceph config assimilate-conf -i <输入文件> -o <输出文件>将从输入文件中提取配置文件,并将所有有效选项移至监视器的配置数据库。监视器无法识别,无效或无法控制的任何设置都将在输出文件中存储的简短配置文件中返回。此命令对于从旧版配置文件过渡到基于集中式监视器的配置很有用。

    运行时更改

    在大多数情况下,Ceph允许您在运行时更改守护程序的配置。 此功能对于增加/减少日志记录输出,启用/禁用调试设置,甚至用于运行时优化非常有用。

    一般来说,可以通过ceph config set命令以常规方式更新配置选项。 例如,在特定的OSD上启用调试日志级别,可以执行以下操作:

    ceph config set osd.0 debug_ms 20
    
    覆盖值

    用Ceph CLI上的tell或daemon界面临时设置一个选项。 这些替代值是短暂的,因为它们仅影响正在运行的进程,并且在守护程序或进程重新启动时将被丢弃/丢失。

    覆盖值有两种用法:

    1. 在任何主机上,我们都可以使用以下命令通过网络向守护进程发送消息:

      ceph tell <name> config set <option> <value>
      

      例如

      ceph tell osd.0 config set debug_osd 20
      

      ell命令还可以接受守护程序标识符的通配符。 例如,要调整所有OSD守护程序的调试级别,可以执行以下操作:

      ceph tell osd.* config set debug_osd 20
      
    2. 在运行该进程的主机上,我们可以通过/ var / run / ceph中的套接字直接连接到该进程,使用:

      ceph daemon <name> config set <option> <value>
      

      例如

      ceph daemon osd.0 config set debug_osd 20
      

    查看运行时设置

    通过ceph config show node

    [root@ceph-admin ceph-cluster]# ceph config show osd.0
    NAME                  VALUE             SOURCE   OVERRIDES IGNORES 
    auth_client_required  cephx             file                       
    auth_cluster_required cephx             file                       
    auth_service_required cephx             file                       
    cluster_addr          10.10.128.174:0/0 override                   
    daemonize             false             override                   
    keyring               $osd_data/keyring default                    
    leveldb_log                             default                    
    mon_host              10.10.128.174     file                       
    mon_initial_members   ceph-admin        file                       
    public_addr           10.10.128.174:0/0 override                   
    public_network        10.10.128.0/24    file                       
    rbd_default_features  61                default                    
    setgroup              ceph              cmdline                    
    setuser               ceph              cmdline 
    

    上述命令只显示部分的,可以查看所有的

    [root@ceph-admin ceph-cluster]# ceph config show-with-defaults  osd.0 
    

    可以通过管理套接字从本地主机连接到正在运行的守护程序来观察其设置

    [root@ceph-admin ceph-cluster]# ceph daemon osd.0 config show | more
    {
        "name": "osd.0",
        "cluster": "ceph",
        "admin_socket": "/var/run/ceph/ceph-osd.0.asok",
        "admin_socket_mode": "",
        "auth_client_required": "cephx",
        "auth_cluster_required": "cephx",
        "auth_debug": "false",
        "auth_mon_ticket_ttl": "43200.000000",
        "auth_service_required": "cephx",
        "auth_service_ticket_ttl": "3600.000000",
        "auth_supported": "",
        "bdev_aio": "true",
        "bdev_aio_max_queue_depth": "1024",
        "bdev_aio_poll_ms": "250",
        "bdev_aio_reap_max": "16",
        "bdev_async_discard": "false",
        "bdev_block_size": "4096",
        "bdev_debug_aio": "false",
        "bdev_debug_aio_suicide_timeout": "60.000000",
        "bdev_debug_inflight_ios": "false",
        "bdev_enable_discard": "false",
        "bdev_inject_crash": "0",
        "bdev_inject_crash_flush_delay": "2",
    

    显示所有当前设置

    [root@ceph-admin ceph-cluster]# ceph daemon osd.0 config diff
    {
        "diff": {
            "auth_client_required": {
                "default": "cephx, none",
                "file": "cephx",
                "final": "cephx"
            },
            "auth_cluster_required": {
                "default": "cephx",
                "file": "cephx",
                "final": "cephx"
            },
            "auth_service_required": {
                "default": "cephx",
                "file": "cephx",
                "final": "cephx"
            },
            "cluster_addr": {
                "default": "-",
                "override": "10.10.128.174:0/0",
                "final": "10.10.128.174:0/0"
            },
            "daemonize": {
                "default": true,
                "override": false,
                "final": false
            },
            "fsid": {
                "default": "00000000-0000-0000-0000-000000000000",
                "file": "1362b160-ef6a-42d9-9833-8094b97408ce",
                "override": "1362b160-ef6a-42d9-9833-8094b97408ce",
                "final": "1362b160-ef6a-42d9-9833-8094b97408ce"
            },
            "mon_host": {
                "default": "",
                "file": "10.10.128.174",
                "final": "10.10.128.174"
            },
            "mon_initial_members": {
                "default": "",
                "file": "ceph-admin",
                "final": "ceph-admin"
            },
            "public_addr": {
                "default": "-",
                "override": "10.10.128.174:0/0",
                "final": "10.10.128.174:0/0"
            },
            "public_network": {
                "default": "",
                "file": "10.10.128.0/24",
                "final": "10.10.128.0/24"
            },
            "setgroup": {
                "default": "",
                "cmdline": "ceph",
                "final": "ceph"
            },
            "setuser": {
                "default": "",
                "cmdline": "ceph",
                "final": "ceph"
            }
        }
    }
    
    展开全文
  • Centos7 Ceph 存储集群搭建

    千次阅读 2019-04-16 20:56:13
    Ceph存储集群中,包含了三大角色组件,他们在Ceph存储集群中表现为3个守护进程,分别是Ceph OSD、Monitor、MDS。当然还有其他的功能组件,但是最主要的是这三个。 Ceph OSD: Ceph的OSD(Obj...
  • CEPH存储集群(ceph storage cluster)是部署CEPH的基础,在RADOS之上,主要包括两个部署项目:OSD(object storage deamon)与MON(ceph monitor)。OSD将数据以对象的形式存储在存储节点上,MON维护storage map的...
  • CEPH存储集群(ceph storage cluster)是部署CEPH的基础,在RADOS之上,主要包括两个部署项目:OSD(object storage deamon)与MON(ceph monitor)。OSD将数据以对象的形式存储在存储节点上,MON维护storage map的...
  • 之前搭建好了k8s集群,现在在此基础上...参考博客为 初试 Centos7 上 Ceph 存储集群搭建 一、环境说明 centos的版本信息:CentOS Linux release 7.6.1810 (Core) 主机信息: 服务器名称 服务器ip k8s集群角色
  • 部署ceph存储集群 软件信息:  操作系统: Linux release 7.4.1708 (Core)  内核版本:3.10.0-693.el7.x86_64  Ceph版本:0.94.6 主机信息:  Ceph210 10.220.218.210 (osd)  Ceph211 10....
  • ceph存储集群搭建

    2020-10-04 22:35:42
    Ubuntu下通过Docker快速搭建Ceph测试集群
  • 目录 Ceph 介绍 环境、软件准备 ... Ceph 存储集群搭建 1、Ceph 介绍 Ceph 是一个开源的分布式存储系统,包括对象存储、块设备、文件系统。它具有高可靠性、安装方便、管理简便、能够轻松管理海量数据...
  • Ceph 存储集群集成到 OpenStack 云中
  • 转载:我所了解的各公司使用的 Ceph 存储集群 (携程、乐视、有云、宝德云、联通等) 首先这是一篇4年前的Ceph市场部分使用情况,给想对业务部署的筒子们了解下。 Ceph 作为软件定义存储的代表之一,最近几年其发展...
  • ceph存储集群测试方案

    2018-03-05 11:12:00
    测试ceph集群的读写性能,根据测试数据了解整个ceph集群的性能情况。 --测试环境 1、8节点ceph集群环境,1台虚拟机(cpu 8核,内存8G),8k的块大小,时长2小时 2、8节点ceph集群环境,5台虚拟机(cpu 8核,内存...
  • ceph是一种可以提供存储集群服务的软件 它可以实现将主机做成存储集群,并提供分布式文件存储的功能 ceph服务可以提供三种存储方式: 1.块存储 2.对象存储 2.文件系统存储 这里我将介绍如何使用ceph搭建一个...
  • 目录 ... 一、存储池介绍 二、存储池命令 1. 列出存储池 2. 创建存储池 3. 设置存储池配额 4. 删除存储池 5. 重命名存储池 6. 查看存储池统计信息 7. 生成存储池快照 8. 删除存储池快照...
  • 一 前期准备 1 [kiosk@foundation0 ~]$ ssh ceph@serverc #登录Ceph集群节点 2 [ceph@serverc ~]$ ceph ...提示:相关部署参考《001.Ansible部署RHCS存储集群》。 二 存储池概述 2.1 存储池 Red Hat ...
  • 所有 Ceph 部署都始于 Ceph 存储集群。基于 RADOS 的 Ceph 对象存储集群包括两类守护进程: 1.对象存储守护进程( OSD )把存储节点上的数据存储为对象; 2.Ceph 监视器( MON )维护集群运行图的主拷贝。一个 ...
  • 低级运维还经常遇到扩展、缩减 Ceph 集群,以及更换老旧、或损坏的硬件。 一、增加/删除 OSD 如果您的集群已经在运行,你可以在运行时添加或删除 OSD 。 增加 OSD 你迟早要扩容集群Ceph 允许在运行时...
  • 执行 ceph health 或 ceph -s 命令时,监视器会报告 Ceph 存储集群的当前状态。监视器通过让各 OSD 自己报告、并接收 OSD 关于邻居状态的报告来掌握集群动态。如果监视器没收到报告,或者它只收到集群的变更报告,那...
  • Ceph 通过 RADOS 集群动态地存储、复制和重新均衡数据对象。很多不同用户因不同目的把对象存储在不同的存储池里,而它们都坐落于无数的 OSD 之上,所以 Ceph 的运营需要些数据归置计划。 Ceph 的数据归置计划概念...
  • Kubernetes使用Rook部署Ceph存储集群

    千次阅读 2020-03-20 14:24:26
    依据《CentOS7使用KubeSpray搭建多节点K8S集群》部署一个3个节点的K8S集群 每个节点增加一块存储设备/dev/sdb 适应性变更: 以下变更在所有节点上均实施 更改原时间同步方案 crontab -l>/tmp/crontab.tmp ...
  • 存档日期:2019年5月13日 | 首次发布:2013年4月23日 对于部署和提议作为基础设施即服务的云计算产品的... Ceph是一个开放源代码,统一的分布式存储系统,它提供了一种方便的方式来部署带有商品硬件的低成本且可...
  • Ceph 存储集群3-部署:

    2017-11-28 11:05:00
    如果你安装、拆卸过很多 Ceph 集群,不想要额外的工具,那 ceph-deploy 是理想之选。它不是个通用部署系统,只为 Ceph 用户设计,用它可以快速地设置并运行一个默认值较合理的集群,而无需头疼 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,894
精华内容 757
关键字:

ceph存储集群