文档章节

ceph 集群访问权限配置

 惊浪
发布于 2015/01/16 17:51
字数 481
阅读 2.2K
收藏 6

码上生花,ECharts 作品展示赛正式启动!>>>

1、配置文件/etc/ceph/ceph.conf如下

[global]
    auth cluster required = cephx
    auth service required = cephx
    auth client required = cephx
    ;keyring = /etc/ceph/keyring
    ax open files = 131072
    log file = /var/log/ceph/$name.log
    pid file = /var/run/ceph/$name.pid
    osd pool default size = 2
    osd pool default min_size = 1
[mon]
    mon data = /data/$name
    ;keyring = /data/mon.0/keyring
[mon.0]
    host = ceph-one
    mon addr = 192.168.122.1:6789
;[mds]
;[mds.0]
    ;host = ceph-one
[osd]
    osd data = /data/$name
    osd journal = /data/$name/journal
    osd journal size = 1000
    osd mkfs type = xfs
    devs = /dev/ceph/$name
    osd crush update on start = 0
    ;keyring = /etc/ceph/keyring
[osd.0]
    host = ceph-one
[osd.1]
    host = ceph-two
[osd.2]
    host = ceph-three
[osd.3]
    host = ceph-four
[osd.4]
    host = ceph-five
[osd.5]
    host = ceph-six

如上所示auth cluster required=cepghx中三项全部配置为cephx选项,如果不做权限校验全部配置为none

2、生成keyring文件

ceph-authtool --create-keyring /data/mon.0/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'

上面的命令生成keyring文件在/data/mon.0/ceph.mon.keyring,如果不配置monitor使用默认keyring文件/data/mon.0/keyring,其中/data/mon.0是ceph.conf的mon data配置目录
ceph auth get-or-create osd.0 mon 'allow rwx' osd 'allow *' -o /data/osd.0/keyring

上面命令生成osd的keyring

ceph auth get-or-create client.admin mds 'allow' osd 'allow *' mon 'allow *' > /etc/ceph/ceph.client.admin.keyring

上面命令生成client.admin的keyring,应该为rados的访问命令。

3、rados使用keyring访问代码示例

#include <stdio.h>
#include <string.h>
#include <rados/librados.h>

   rados_t cluster; //声明 集群句柄
    rados_ioctx_t io;
    char *poolname = "data";
    char cluster_name[] = "ceph";
    char user_name[] = "client.admin"; //用户名
    uint64_t flags;
    char xattr[] = "en_US";
  int err;
 
  char *buf, *st;
  size_t buflen, stlen;
  char *cmd[2];
  cmd[1] = NULL;
 
  err = rados_create2(&cluster, cluster_name, user_name, flags); //创建集群句柄
 
  char fsid[50]={0};
    if (err < 0)
    {
        fprintf(stderr, "%s: Couldn't create the cluster handle! %s\n", argv[0], strerror(-err));
        exit(EXIT_FAILURE);
    }
    else
    {
        printf("\nCreated a cluster handle.\n");
    }


       //读取配置文件,完成cluster句柄
  err = rados_conf_set(cluster,"mon_host", "127.0.0.1");
  err = rados_conf_set(cluster,"key", "AQDhSK9UeA+nOhAAhA7s2GLdU8seDVMBqK+iwg==");  
    //err = rados_conf_read_file(cluster, "/etc/ceph/ceph.conf");
    if (err < 0)
    {
        fprintf(stderr, "%s: cannot read config file: %s\n", argv[0], strerror(-err));
        exit(EXIT_FAILURE);
    }
    else
    {
        printf("\nRead the config file.\n");
    }

err = rados_connect(cluster);

注意rados_conf_set两行代码,我使用的ceph_test.c编译命令行

gcc ceph_test.c -o ceph_test -lrados


© 著作权归作者所有

上一篇: Ceph读写流程
下一篇: python学习笔记
粉丝 15
博文 32
码字总数 19096
作品 0
福州
程序员
私信 提问
加载中
请先登录后再评论。
Ceph对象存储网关安装配置

引言 基于已部署好的Ceph集群,部署一个网关服务器,进行对象存储服务。操作系统CentOS6.5 CEPH0.94.3其实基于librados可以直接进行访问,但是我看了百度,UCLOUD的对象存储,用户在网页上进...

西昆仑
2015/10/10
3.7K
5
ceph rbd与openstack的结合

openstack通过libvirt调用qemu来启动具体的虚拟机,qemu通过librbd这个库与librados通信,而librados是ceph集群的统一API库,这样一来openstack就与ceph rbd联系起来了。具体调用流程如下图所...

linuxhunter
2015/12/09
749
0
002.RHCS-配置Ceph存储集群

一 前期准备 1 [kiosk@foundation0 ~]$ ssh ceph@serverc #登录Ceph集群节点 2 [ceph@serverc ~]$ ceph health #确保集群状态正常 3 HEALTH_OK 提示:相关部署参考《001.Ansible部署RHCS存储...

osc_lit0zkpv
2019/03/18
9
0
005 Ceph配置文件及用户管理

一、Ceph的配置文件 Ceph 配置文件可用于配置存储集群内的所有守护进程、或者某一类型的所有守护进程。要配置一系列守护进程,这些配置必须位于能收到配置的段落之下。默认情况下,无论是cep...

osc_lu3hkb21
2019/03/17
2
0
一步一步安装配置Ceph分布式存储集群

Ceph可以说是当今最流行的分布式存储系统了,本文记录一下安装和配置Ceph的详细步骤。 提前配置工作 从第一个集群节点开始的,然后逐渐加入其它的节点。对于Ceph,我们加入的第一个节点应该是...

osc_ymlf86ez
04/16
3
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊puma的ChangedEvent

序 本文主要研究一下puma的ChangedEvent Event puma/core/src/main/java/com/dianping/puma/core/event/Event.java public abstract class Event implements Serializable {private stat......

go4it
21分钟前
9
0
为什么Kubernetes和容器与机器学习密不可分?

当前,数字化转型的热潮在IT领域发展的如火如荼,越来越多的企业投身其中,机器学习和人工智能等现代技术的融合在公司组织内部也逐渐流行起来。 随着那些构成企业复杂IT基础架构的技术日益成...

京东智联云开发者
21分钟前
5
0
协程swoole对比golang

协程概念 协程(Coroutines)是一种比线程更加轻量级的存在,正如一个进程可以拥有多个线程一样,一个线程可以拥有多个协程。 协程具有以下几个特点 用户态执行,完全由程序所控制,不是被操...

冻结not
39分钟前
5
0
如何在macOS或OS X上安装pip? - How do I install pip on macOS or OS X?

问题: This post is a Community Wiki . 这篇文章是社区维基 。 Edit existing answers to improve this post. 编辑现有答案以改善此职位。 It is not currently accepting new answers. 它......

fyin1314
55分钟前
11
0
net.sf.JSONException Map中value字段为null,服务响应500

6月2号凌晨系统生产发布,2号白天仓库作业时有仓库拣选单打印面单接口500,不是所有的拣选单掉接口都是500, 当时通过接口响应正产和响应500,逻辑梳理以及数据对比,最后发现是Map 对象里面...

Lbj虞
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部