一文参透分布式存储系统Ceph的架构设计、集群搭建(手把手) ...

打印 上一主题 下一主题

主题 928|帖子 928|积分 2784

1. Ceph概述

1.1  背景

Ceph是一个去中心化的分布式存储系统, 提供较好的性能、可靠性和可扩展性。Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区, 遵循LGPL协议(LESSER GENERAL PUBLIC LICENSE的简写,中文译为“较宽松公共许可证”)。在经过了数年的发展之后,目前已得到众多云计算厂商(OpenStack、CloudStack、OpenNebula、Hadoop)的支持并被广泛应用。
1.2  介绍

Ceph是一个可靠、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备和文件系统服务。
Ceph的主要优点是分布式存储,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,不存在传统的单点故障的问题,可以水平扩展。
Ceph存储集群至少需要一个Ceph Monitor和两个OSD守护进程。而运行Ceph文件系统客户端时,则必须要有元数据服务器(Metadata Server)。
1.3  特点

Ceph适合跨集群的小文件存储, 拥有以下特点:

  • 高性能
    Client和Server直接通信, 不需要代理和转发;
    Client不需要负责副本的复制, 有Primary主节点负责, 这样可以有效降低clien网络的消耗;
    采用CRUSH算法,数据分布均衡,并行度高,支持上千个存储节点, 支持TB及PB级数据。
  • 高可用性
    数据多副本, 支持故障域分隔,数据强一致性;
    没有单点故障,较好的容错性, 有效支撑各种故障场景;
    支持所有故障的检测和自动恢复,可以做到自动化管理;
    支持并行恢复,能够极大的降低数据恢复时间, 提高数据的可靠性。
  • 高扩展性
    高度并行化设计,没有单个中心控制组件,所有负载都能动态的划分到各个服务器上。
    去中心化、灵活、随节点增加线性增长。
  • 场景丰富
    支持三种存储接口类型: 块存储、文件存储、对象存储。 同时支持自定义接口,C++为底层实现, 兼容多种语言。

    • 块存储: 将磁盘空间映射给主机使用, 适用 docker容器、虚拟机磁盘存储分配;日志存储, 文件存储。
    • 文件存储: 解决块存储无法共享问题, 在服务器架设FTP和NFS服务器,适用目录结构的存储、日志存储等。
    • 对象存储: 大容量硬盘, 安装存储管理软件, 对外提供读写访问能力, 具备块存储的高速读写能力, 也具备文件存储共享的特性; 适用图片存储或视频存储。

1.4  分布式存储系统横纵对比

对比说明TFSFASTDFSMooseFSGlusterFSCEPH开发语言C++CCCC++数据存储方式块文件/Trunk块文件/块对象/文件/块在线扩容支持支持支持支持支持冗余备份支持支持支持支持支持单点故障存在不存在存在不存在不存在易用性安装复杂,官方文档少安装简单,社区相对活跃安装简单,官方文档多安装简单,官方文档专业化安装简单,官方文档专业化适用场景跨集群的小文件单集群的中小文件单集群的大中文件跨集群云存储单集群的大中小文件2. Ceph架构设计

2.1  Ceph整体设计



  • 基础存储系统RADOS
    Reliable, Autonomic,Distributed Object Store,即可靠的、自动化的、分布式的对象存储
    这就是一个完整的对象存储系统,所有存储在Ceph系统中的用户数据事实上最终都是由这一层来存储的。而Ceph的高可靠、高可扩展、高性能、高自动化等等特性本质上也是由这一层所提供的。
  • 基础库librados
    这层的功能是对RADOS进行抽象和封装,并向上层提供API,以便直接基于RADOS(而不是整个Ceph)进行应用开发。特别要注意的是,RADOS是一个对象存储系统,因此,librados实现的API也只是针对对象存储功能的。RADOS采用C++开发,所提供的原生librados API包括C和C++两种。
  • 高层应用接口
    这层包括了三个部分:RADOS GW(RADOS Gateway)、 RBD(Reliable Block Device)和Ceph FS(Ceph File System),其作用是在librados库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口。其中,RADOS GW是一个提供与Amazon S3和Swift兼容的RESTful API的gateway,以供相应的对象存储应用开发使用。RADOS GW提供的API抽象层次更高,但功能则不如librados强大。
  • 应用层
    这层是不同场景下对于Ceph各个应用接口的各种应用方式,例如基于librados直接开发的对象存储应用,基于RADOS GW开发的对象存储应用,基于RBD实现的云硬盘等等。librados和RADOS GW的区别在于,librados提供的是本地API,而RADOS GW提供的则是RESTfulAPI。
    由于Swift和S3支持的API功能近似,这里以Swift举例说明。Swift提供的API功能主要包括:

    • 用户管理操作:用户认证、获取账户信息、列出容器列表等;
    • 容器管理操作:创建/删除容器、读取容器信息、列出容器内对象列表等;
    • 对象管理操作:对象的写入、读取、复制、更新、删除、访问许可设置、元数据读取或更新等。

2.2  逻辑架构


2.3 Ceph 专业术语



  • OSD:  Ceph的对象存储设备,OSD守护进程的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD守护进程的心跳来向Ceph Monitors 提供一些监控信息。
  • Monitors: Ceph监视器,Monitor维护着展示集群状态的各种图表,包括监视器图、OSD图、归置组(PG)图、和CRUSH图。
  • PG:Ceph归置组,每个Object最后都会通过CRUSH计算映射到某个PG中,一个PG可以包含多个Object。
  • MDS: Ceph元数据服务器(MDS),为Ceph文件系统存储元数据。
  • CephFS: Ceph文件系统,CephFS提供了一个任意大小且兼容POSIX的分布式文件系统。
  • RADOS:  Reliable Autonomic Distributed Object Store,表示可靠、自动、分布式的对象存储。Ceph中的一切都是以对象形式存储,RADOS就负责存储这些对象,RADOS层确保数据一致性和可靠性。
  • Librados:librados库是一种用来简化访问RADOS的方法,目前支持PHP、Python、Ruby、Java、C和C++语言。
  • RBD:Ceph 的块设备,它对外提供块存储,可以被映射、格式化进而像其他磁盘一样挂载到服务器。
  • RGW/RADOSGW:Ceph 对象网关,它提供了一个兼容S3和Swift的restful API接口。
3. Ceph集群部署配置

3.1 部署结构


虚拟机创建三台服务器,CENTOS版本为7.6, IP网段192.168.116.0/24。三台主机名称为:

  • CENTOS7-1:  IP为192.168.116.141, 既做管理节点, 又做子节点。
  • CENTOS7-2:  IP为192.168.116.142, 子节点。
  • CENTOS7-3:  IP为192.168.116.143, 子节点。
3.2 系统配置

系统配置工作, 三台节点依次执行:

  • 修改主机名称
    [root@CENTOS7-1 ~]# vi /etc/hostname
    1. CENTOS7-1
    复制代码
  • 编辑hosts文件
    1. 192.168.116.141 CENTOS7-1
    2. 192.168.116.142 CENTOS7-2
    3. 192.168.116.143 CENTOS7-3
    复制代码
    注意, 这里面的主机名称要和节点名称保持一致, 否则安装的时候会出现问题


  • 修改yum源
    vi /etc/yum.repos.d/ceph.repo, 为避免网速过慢问题, 这里采用的是清华镜像源:
    1. [Ceph]
    2. name=Ceph packages for $basearch
    3. baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/x86_64/
    4. enabled=1
    5. gpgcheck=1
    6. type=rpm-md
    7. gpgkey=https://download.ceph.com/keys/release.asc
    8. [Ceph-noarch]
    9. name=Ceph noarch packages
    10. # 官方源
    11. #baseurl=http://download.ceph.com/rpm-mimic/el7/noarch
    12. # 清华源
    13. baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch/
    14. enabled=1
    15. gpgcheck=1
    16. type=rpm-md
    17. gpgkey=https://download.ceph.com/keys/release.asc
    18. [ceph-source]
    19. name=Ceph source packages
    20. baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS/
    21. enabled=1
    22. gpgcheck=1
    23. type=rpm-md
    24. gpgkey=https://download.ceph.com/keys/release.asc
    复制代码
  • 安装ceph与ceph-deploy组件
    1. yum update && yum -y install ceph ceph-deploy
    复制代码
    安装完成, 如果执行ceph-deploy出现ImportError: No module named pkg_resources
    安装python2-pip: yum -y install python2-pip
    yum install epel-release   -y
  • 安装NTP时间同步工具
    1. yum install ntp ntpdate ntp-doc -y
    复制代码
    确保时区是正确, 设置开机启动:
    1. systemctl enable ntpd
    复制代码
    并将时间每隔1小时自动校准同步。编辑 vi /etc/rc.d/rc.local 追加:
    1. /usr/sbin/ntpdate ntp1.aliyun.com > /dev/null 2>&1; /sbin/hwclock -w
    复制代码
    配置定时任务,  执行crontab -e 加入:
    1. 0 */1 * * * ntpdate ntp1.aliyun.com > /dev/null 2>&1; /sbin/hwclock -w
    复制代码
3.3 免密码SSH登陆


  • 官方建议不用系统内置用户, 创建名为ceph_user用户, 密码也设为ceph_user:
    1. useradd -d /home/ceph_user -m ceph_user
    2. passwd ceph_user
    复制代码
  • 设置sudo权限
    1. echo "ceph_user ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph_user
    2. sudo chmod 0440 /etc/sudoers.d/ceph_user
    复制代码
    1、2两个步骤依次在三台机器上执行。
    接下来在主节点, 继续执行:
  • 生成密钥:
    切换用户: su ceph_user
    执行ssh-keygen,一直按默认提示点击生成RSA密钥信息。
  • 分发密钥至各机器节点
    1. ssh-copy-id ceph_user@CENTOS7-1
    2. ssh-copy-id ceph_user@CENTOS7-2
    3. ssh-copy-id ceph_user@CENTOS7-3
    复制代码
  • 修改管理节点上的 ~/.ssh/config 文件, 简化SSH远程连接时的输入信息:
    管理节点是会有root和ceph_user多个用户, ssh远程连接默认会以当前用户身份进行登陆,
    如果我们是root身份进行远程连接, 还是需要输入密码, 我们想简化, 该怎么处理?
    切换root身份,
    1. su root
    复制代码
    修改~/.ssh/config 文件
    1. Host CENTOS7-1
    2.    Hostname CENTOS7-1
    3.    User ceph_user
    4. Host CENTOS7-2
    5.    Hostname CENTOS7-2
    6.    User ceph_user
    7. Host CENTOS7-3
    8.    Hostname CENTOS7-3
    9.    User ceph_user
    复制代码
    注意修改文件权限, 不能采用777最大权限:
    1. chmod 600 ~/.ssh/config
    复制代码
    进行ssh远程连接时, Host的主机名称是区分大小写的, 所以要注意配置文件的主机名称。
  • 开放端口, 非生产环境, 可以直接禁用防火墙:
    1. systemctl stop firewalld.service
    2. systemctl disable firewalld.service
    复制代码
  • SELINUX设置
    SELinux设为禁用:
    1. setenforce 0
    复制代码
    永久生效:
    编辑 vi /etc/selinux/config修改:
    1. SELINUX=disabled
    复制代码
3.4 集群搭建配置

采用root身份进行安装

  • 在管理节点创建集群配置目录,cd /usr/local:
    1. mkdir ceph-cluster
    2. cd ceph-cluster
    复制代码
    注意: 此目录作为ceph操作命令的基准目录, 会存储处理配置信息。
  • 创建集群, 包含三台机器节点:
    1. ceph-deploy new CENTOS7-1  CENTOS7-2 CENTOS7-3
    复制代码
    创建成功后, 会生一个配置文件。
  • 如果接下来集群的安装配置出现问题, 可以执行以下命令清除, 再重新安装:
    1. ceph-deploy purge CENTOS7-1  CENTOS7-2 CENTOS7-3
    2. ceph-deploy purgedata CENTOS7-1  CENTOS7-2 CENTOS7-3
    3. ceph-deploy forgetkeys
    复制代码
    将三台节点的mon信息也删除
    1. rm -rf /var/run/ceph/
    复制代码
  • 修改配置文件, 有些配置后面需用到:
    1. vi /usr/local/ceph-cluster/ceph.conf
    复制代码
    加入:
    1. [global]
    2. # 公网网络
    3. public network = 192.168.116.0/24
    4. # 设置pool池默认分配数量 默认副本数为3
    5. osd pool default size = 2
    6. # 容忍更多的时钟误差
    7. mon clock drift allowed = 2
    8. mon clock drift warn backoff = 30
    9. # 允许删除pool
    10. mon_allow_pool_delete = true
    11. [mgr]
    12. # 开启WEB仪表盘
    13. mgr modules = dashboard
    复制代码
    第一项为副本数, 设为2份。
    第二项为对外IP访问网段,注意根据实际IP修改网段。
    第三、四项为允许一定时间的漂移误差。
  • 执行安装:
    1. ceph-deploy install  CENTOS7-1  CENTOS7-2 CENTOS7-3
    复制代码
    如果出现错误:
    1. ceph_deploy][ERROR ] RuntimeError: Failed to execute command: ceph --version
    复制代码
    可以在各节点上单独进行安装:
    1. yum -y install ceph
    复制代码
    如果没有仓库文件ceph.repo, 按上面的步骤手工创建。
  • 初始monitor信息:
    1. ceph-deploy mon create-initial
    2. ## ceph-deploy --overwrite-conf mon create-initial
    复制代码
    执行完成后, 会生成以下文件:

  • 同步管理信息:
    下发配置文件和管理信息至各节点:
    1. ceph-deploy admin  CENTOS7-1  CENTOS7-2 CENTOS7-3
    复制代码
  • 安装mgr(管理守护进程), 大于12.x版本需安装, 我们装的是最新版,需执行:
    1. ceph-deploy mgr create CENTOS7-1  CENTOS7-2 CENTOS7-3
    复制代码
  • 安装OSD(对象存储设备)
    注意: 新版本的OSD没有prepare与activate命令。
    这里需要新的硬盘作为OSD存储设备, 关闭虚拟机, 增加一块硬盘, 不用格式化。

重启, fdisk -l 查看新磁盘名称:

执行创建OSD命令:
  1. ceph-deploy osd create --data /dev/sdb CENTOS7-2
复制代码
三台节点都需分别依次执行。
  1. ceph-deploy gatherkeys CENTOS7-1
复制代码

  • 验证节点:
    输入ceph health 或  ceph -s查看, 出现HEALTH_OK代表正常。

通过虚拟机启动, 如果出现错误:
  1. [root@CENTOS7-1 ~]# ceph -s
  2.   cluster:
  3.     id:     0ec99aa9-e97e-43d3-b5b9-90eb21c4abff
  4.     health: HEALTH_WARN
  5.             1 filesystem is degraded
  6.             1 osds down
  7.             1 host (1 osds) down
  8.             Reduced data availability: 41 pgs inactive
  9.             Degraded data redundancy: 134/268 objects degraded (50.000%), 22 pgs degraded, 87 pgs undersized
  10.             39 slow ops, oldest one blocked for 2286 sec, daemons [osd.0,mon.CENTOS7-2,mon.CENTOS7-3] have slow ops.
  11.             clock skew detected on mon.CENTOS7-2, mon.CENTOS7-3
  12.   services:
  13.     mon: 3 daemons, quorum CENTOS7-1,CENTOS7-2,CENTOS7-3
  14.     mgr: centos7-1(active), standbys: centos7-3, centos7-2
  15.     mds: fs_test-1/1/1 up  {0=centos7-1=up:replay}
  16.     osd: 3 osds: 1 up, 2 in
  17.   data:
  18.     pools:   9 pools, 128 pgs
  19.     objects: 134  objects, 64 KiB
  20.     usage:   1.0 GiB used, 19 GiB / 20 GiB avail
  21.     pgs:     32.031% pgs unknown
  22.              134/268 objects degraded (50.000%)
  23.              65 active+undersized
  24.              41 unknown
  25.              22 active+undersized+degraded
复制代码
在各节点执行命令, 确保时间同步一致:
  1. ntpdate ntp1.aliyun.com
复制代码
3.5 安装管理后台


  • 开启dashboard模块
    1. ceph mgr module enable dashboard
    复制代码
  • 生成签名
    1. ceph dashboard create-self-signed-cert
    复制代码
  • 创建目录
    mkdir mgr-dashboard
    1. [root@CENTOS7-1 mgr-dashboard]# pwd
    2. /usr/local/ceph-cluster/mgr-dashboard
    复制代码
  • 生成密钥对
    1. cd  /usr/local/ceph-cluster/mgr-dashboard
    复制代码
    1. openssl req -new -nodes -x509   -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650   -keyout dashboard.key -out dashboard.crt -extensions v3_ca
    复制代码
    1. [root@CENTOS7-1 mgr-dashboard]# ll
    2. total 8
    3. -rw-rw-r-- 1 ceph_user ceph_user 1155 Jul 14 02:26 dashboard.crt
    4. -rw-rw-r-- 1 ceph_user ceph_user 1704 Jul 14 02:26 dashboard.key
    复制代码
  • 启动dashboard
    1. ceph mgr module disable dashboard
    2. ceph mgr module enable dashboard
    复制代码
  • 设置IP与PORT
    1. ceph config set mgr mgr/dashboard/server_addr 192.168.116.141
    2. ceph config set mgr mgr/dashboard/server_port 18843
    复制代码
  • 关闭HTTPS
    1. ceph config set mgr mgr/dashboard/ssl false
    复制代码
  • 查看服务信息
    1. [root@CENTOS7-1 ceph-cluster]# ceph mgr services
    2. {
    3.     "dashboard": "http://192.168.116.142:18843/"
    4. }
    复制代码
  • 设置管理用户与密码
    1. ceph dashboard set-login-credentials admin admin
    复制代码
  • 访问

3.6 创建Cephfs

集群创建完后, 默认没有文件系统, 我们创建一个Cephfs可以支持对外访问的文件系统。
  1. ceph-deploy --overwrite-conf mds create CENTOS7-1 CENTOS7-2 CENTOS7-3
复制代码

  • 创建两个存储池, 执行两条命令:
    1. ceph osd pool create cephfs_data 128
    2. ceph osd pool create cephfs_metadata 64
    复制代码
    少于5个OSD可把pg_num设置为128
    OSD数量在5到10,可以设置pg_num为512
    OSD数量在10到50,可以设置pg_num为4096
    OSD数量大于50,需要计算pg_num的值
    通过下面命令可以列出当前创建的存储池:
    1. ceph osd lspools
    复制代码
  • 创建fs,  名称为fs_test:
    1. ceph fs new fs_test cephfs_metadata cephfs_data
    复制代码
  • 状态查看, 以下信息代表正常:
    1. [root@CENTOS7-1 mgr-dashboard]# ceph fs ls
    2. name: fs_test, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
    复制代码
    1. [root@CENTOS7-1 mgr-dashboard]# ceph mds stat
    2. fs_test-1/1/1 up  {0=centos7-1=up:active}
    复制代码
    附: 如果创建错误, 需要删除, 执行:
    1. ceph fs rm fs_test --yes-i-really-mean-it
    2. ceph osd pool delete cephfs_data cephfs_data  --yes-i-really-really-mean-it
    复制代码
    确保在ceph.conf中开启以下配置:
    1. [mon]
    2. mon allow pool delete = true
    复制代码
  • 采用fuse挂载
    先确定ceph-fuse命令能执行, 如果没有, 则安装:
    1. yum -y install ceph-fuse
    复制代码
  • 创建挂载目录
    1. mkdir -p /usr/local/cephfs_directory
    复制代码
  • 挂载cephfs
    1. [root@node3 ~]# ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 192.168.116.141:6789 /usr/local/cephfs_directory
    2. ceph-fuse[6687]: starting ceph client
    3. 2019-07-14 21:39:09.644181 7fa5be56e040 -1 init, newargv = 0x7fa5c940b500 newargc=9
    4. ceph-fuse[6687]: starting fuse
    复制代码
  • 查看磁盘挂载信息
    1. [root@CENTOS7-1 mgr-dashboard]# df -h
    2. Filesystem               Size  Used Avail Use% Mounted on
    3. /dev/mapper/centos-root   38G  3.0G   35G   8% /
    4. devtmpfs                 1.9G     0  1.9G   0% /dev
    5. tmpfs                    1.9G     0  1.9G   0% /dev/shm
    6. tmpfs                    1.9G   20M  1.9G   2% /run
    7. tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
    8. /dev/sda1                197M  167M   31M  85% /boot
    9. tmpfs                    378M     0  378M   0% /run/user/0
    10. tmpfs                    1.9G   24K  1.9G   1% /var/lib/ceph/osd/ceph-0
    11. ceph-fuse                 27G     0   27G   0% /usr/local/cephfs_directory
    12. tmpfs                    378M     0  378M   0% /run/user/1000
    复制代码
    /usr/local/cephfs_directory目录已成功挂载。
3.7 客户端连接验证(Rados Java)


  • 安装好JDK、GIT和MAVEN。
  • 下载rados java客户端源码
    1. git clone https://github.com/ceph/rados-java.git
    复制代码
    下载目录位置:
    1. [root@CENTOS7-1 rados-java]# pwd
    2. /usr/local/sources/rados-java
    复制代码
  • 执行MAVEN安装, 忽略测试用例:
    1. [root@CENTOS7-1 rados-java]# mvn install -Dmaven.test.skip=true
    复制代码
    生成jar包, rados-0.7.0.jar
    1. [root@CENTOS7-1 target]# ll
    2. 总用量 104
    3. drwxr-xr-x 3 root root     17 8月  11 18:32 classes
    4. drwxr-xr-x 2 root root     27 8月  11 18:32 dependencies
    5. drwxr-xr-x 3 root root     25 8月  11 18:32 generated-sources
    6. drwxr-xr-x 2 root root     28 8月  11 18:32 maven-archiver
    7. drwxr-xr-x 3 root root     35 8月  11 18:32 maven-status
    8. -rw-r--r-- 1 root root 105701 8月  11 18:32 rados-0.7.0.jar
    复制代码
  • 创建软链接, 加入CLASSPATH
    1. ln -s /usr/local/sources/rados-java/target/rados-0.7.0.jar /opt/jdk1.8.0_301/jre/lib/ext/rados-0.7.0.jar
    复制代码
    安装jna
    1. yum -y install jna
    复制代码
    创建软链接
    1. ln -s /usr/share/java/jna.jar /opt/jdk1.8.0_301/jre/lib/ext/jna.jar
    复制代码
    查看
    1. [root@CENTOS7-1 target]# ll /opt/jdk1.8.0_301/jre/lib/ext/jna.jar
    2. lrwxrwxrwx 1 root root 23 8月  11 19:00 /opt/jdk1.8.0_301/jre/lib/ext/jna.jar -> /usr/share/java/jna.jar
    复制代码
    1. [root@CENTOS7-1 target]# ll /opt/jdk1.8.0_301/jre/lib/ext/rados-0.7.0.jar
    2. lrwxrwxrwx 1 root root 52 8月  11 18:59 /opt/jdk1.8.0_301/jre/lib/ext/rados-0.7.0.jar -> /usr/local/sources/rados-java/target/rados-0.7.0.jar
    复制代码
  • 创建JAVA测试类
    CephClient类,注意, 最新版0.6的异常处理包位置已发生变化。
    1. import com.ceph.rados.Rados;
    2. import com.ceph.rados.exceptions.*;
    3. import java.io.File;
    4. public class CephClient {
    5.         public static void main (String args[]){
    6.                 try {
    7.                         Rados cluster = new Rados("admin");
    8.                         System.out.println("Created cluster handle.");
    9.                         File f = new File("/etc/ceph/ceph.conf");
    10.                         cluster.confReadFile(f);
    11.                         System.out.println("Read the configuration file.");
    12.                         cluster.connect();
    13.                         System.out.println("Connected to the cluster.");
    14.                 } catch (RadosException e) {
    15.                         System.out.println(e.getMessage() + ": " + e.getReturnValue());
    16.                 }
    17.         }
    18. }
    复制代码
  • 运行验证
    需要在linux环境下运行,且要在client节点。
    编译并运行:
    1. [root@CENTOS7-1 sources]# javac CephClient.java
    2. [root@CENTOS7-1 sources]# java CephClient
    3. Created cluster handle.
    4. Read the configuration file.
    5. Connected to the cluster.
    复制代码
    成功与ceph建立连接。
    注意:如果java和javac版本不同,可以使用rpm -qa |grep java 进行查找, rpm -e --nodeps jdk进行删除,source /etc/profile进行生效
    jdk的位数为64位
本文由传智教育博学谷 - 狂野架构师教研团队发布
如果本文对您有帮助,欢迎关注和点赞;如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力
转载请注明出处!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81429

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表