<p id="156GTLE6">来源 | OSCHINA 社区</p><p id="156GTLE7">作者 | 博学谷狂野架构师</p><p id="156GTLE8">原文链接:https://my.oschina.net/jiagoushi/blog/</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0901%2F0cp00rhj9l00003d200a1003vg00a1003v.png&thumbnail=660x&quality=80&type=jpg"/><br/></p><p><strong>1. Ceph 概述</strong>1.1 背景</p><p id="156GTLEA">Ceph 是一个去中心化的分布式存储系统, 提供较好的性能、可靠性和可扩展性。Ceph 项目最早起源于 Sage 就读博士期间的工作(最早的成果于 2004 年发表),并随后贡献给开源社区, 遵循 LGPL 协议(LESSER GENERAL PUBLIC LICENSE 的简写,中文译为 “较宽松公共许可证”)。在经过了数年的发展之后,目前已得到众多云计算厂商(OpenStack、CloudStack、OpenNebula、Hadoop)的支持并被广泛应用。</p><p>1.2 介绍</p><p id="156GTLEB">Ceph 是一个可靠、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将 Ceph 分为三大块,分别是对象存储、块设备和文件系统服务。</p><p id="156GTLEC">Ceph 的主要优点是分布式存储,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,不存在传统的单点故障的问题,可以水平扩展。</p><p id="156GTLED">Ceph 存储集群至少需要一个 Ceph Monitor 和两个 OSD 守护进程。而运行 Ceph 文件系统客户端时,则必须要有元数据服务器(Metadata Server)。</p><p>1.3 特点</p><p id="156GTLEE">Ceph 适合跨集群的小文件存储, 拥有以下特点:</p><p><ul><li id="156GTLKB"></p><p id="156GTLEF"><strong>高性能</strong></p><p id="156GTLEG">Client 和 Server 直接通信, 不需要代理和转发;</p><p id="156GTLEH">Client 不需要负责副本的复制, 有 Primary 主节点负责, 这样可以有效降低 clien 网络的消耗;</p><p id="156GTLEI">采用 CRUSH 算法,数据分布均衡,并行度高,支持上千个存储节点, 支持 TB 及 PB 级数据。</p><p></li><li id="156GTLKC"></p><p id="156GTLEJ"><strong>高可用性</strong></p><p id="156GTLEK">数据多副本, 支持故障域分隔,数据强一致性;</p><p id="156GTLEL">没有单点故障,较好的容错性, 有效支撑各种故障场景;</p><p id="156GTLEM">支持所有故障的检测和自动恢复,可以做到自动化管理;</p><p id="156GTLEN">支持并行恢复,能够极大的降低数据恢复时间, 提高数据的可靠性。</p><p></li><li id="156GTLKD"></p><p id="156GTLEO"><strong>高扩展性</strong></p><p id="156GTLEP">高度并行化设计,没有单个中心控制组件,所有负载都能动态的划分到各个服务器上。</p><p id="156GTLEQ">去中心化、灵活、随节点增加线性增长。</p><p></li><li id="156GTLKE"></p><p id="156GTLER"><strong>场景丰富</strong></p><p id="156GTLES">支持三种存储接口类型:块存储、文件存储、对象存储。同时支持自定义接口,C++ 为底层实现, 兼容多种语言。</p><p></li><li style="list-style: none; display: inline"><ul><li id="156GTLKF"></p><p id="156GTLET"><strong>块存储</strong>:将磁盘空间映射给主机使用, 适用 docker 容器、虚拟机磁盘存储分配;日志存储, 文件存储。</p><p></li><li id="156GTLKG"></p><p id="156GTLEU"><strong>文件存储</strong>:解决块存储无法共享问题, 在服务器架设 FTP 和 NFS 服务器,适用目录结构的存储、日志存储等。</p><p></li><li id="156GTLKH"></p><p id="156GTLEV"><strong>对象存储</strong>:大容量硬盘, 安装存储管理软件, 对外提供读写访问能力, 具备块存储的高速读写能力, 也具备文件存储共享的特性;适用图片存储或视频存储。</p><p></li></ul></li></ul>1.4 分布式存储系统横纵对比 对比说明 TFS FASTDFS MooseFS GlusterFS CEPH 开发语言 C++ C C C C++ 数据存储方式 块 文件 / Trunk 块 文件 / 块 对象 / 文件 / 块 在线扩容 支持 支持 支持 支持 支持 冗余备份 支持 支持 支持 支持 支持 单点故障 存在 不存在 存在 不存在 不存在 易用性 安装复杂,官方文档少 安装简单,社区相对活跃 安装简单,官方文档多 安装简单,官方文档专业化 安装简单,官方文档专业化 适用场景 跨集群的小文件 单集群的中小文件 单集群的大中文件 跨集群云存储 单集群的大中小文件<strong>2. Ceph 架构设计</strong>2.1 Ceph 整体设计</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0901%2F6f85aa4bj00rhj9l1007id200o100a7g00id007s.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p><ul><li id="156GTLKI"></p><p id="156GTLF1"><strong>基础存储系统 RADOS</strong></p><p id="156GTLF2">Reliable, Autonomic,Distributed Object Store,即可靠的、自动化的、分布式的对象存储</p><p id="156GTLF3">这就是一个完整的对象存储系统,所有存储在 Ceph 系统中的用户数据事实上最终都是由这一层来存储的。而 Ceph 的高可靠、高可扩展、高性能、高自动化等等特性本质上也是由这一层所提供的。</p><p></li><li id="156GTLKJ"></p><p id="156GTLF4"><strong>基础库 librados</strong></p><p id="156GTLF5">这层的功能是对 RADOS 进行抽象和封装,并向上层提供 API,以便直接基于 RADOS(而不是整个 Ceph)进行应用开发。特别要注意的是,RADOS 是一个对象存储系统,因此,librados 实现的 API 也只是针对对象存储功能的。RADOS 采用 C++ 开发,所提供的原生 librados API 包括 C 和 C++ 两种。</p><p></li><li id="156GTLKK"></p><p id="156GTLF6"><strong>高层应用接口</strong></p><p id="156GTLF7">这层包括了三个部分: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 强大。</p><p></li><li id="156GTLKL"></p><p id="156GTLF8"><strong>应用层</strong></p><p id="156GTLF9">这层是不同场景下对于 Ceph 各个应用接口的各种应用方式,例如基于 librados 直接开发的对象存储应用,基于 RADOS GW 开发的对象存储应用,基于 RBD 实现的云硬盘等等。librados 和 RADOS GW 的区别在于,librados 提供的是本地 API,而 RADOS GW 提供的则是 RESTfulAPI。</p><p id="156GTLFA">由于 Swift 和 S3 支持的 API 功能近似,这里以 Swift 举例说明。Swift 提供的 API 功能主要包括:</p><p></li><li style="list-style: none; display: inline"><ul><li id="156GTLKM"></p><p id="156GTLFB">用户管理操作:用户认证、获取账户信息、列出容器列表等;</p><p></li><li id="156GTLKN"></p><p id="156GTLFC">容器管理操作:创建 / 删除容器、读取容器信息、列出容器内对象列表等;</p><p></li><li id="156GTLKO"></p><p id="156GTLFD">对象管理操作:对象的写入、读取、复制、更新、删除、访问许可设置、元数据读取或更新等。</p><p></li></ul></li></ul>2.2 逻辑架构</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0901%2Ff081d62bj00rhj9l2000sd200fl00b6g00fl00b6.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p>2.3 Ceph 专业术语</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0901%2F80fcb796j00rhj9l2001jd200j900dmg00id00cz.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p><ul><li id="156GTLKP"></p><p id="156GTLFG"><strong>OSD</strong>: Ceph 的对象存储设备,OSD 守护进程的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他 OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。</p><p></li><li id="156GTLKQ"></p><p id="156GTLFH"><strong>Monitors</strong>: Ceph 监视器,Monitor 维护着展示集群状态的各种图表,包括监视器图、OSD 图、归置组(PG)图、和 CRUSH 图。</p><p></li><li id="156GTLKR"></p><p id="156GTLFI"><strong>PG</strong>:Ceph 归置组,每个 Object 最后都会通过 CRUSH 计算映射到某个 PG 中,一个 PG 可以包含多个 Object。</p><p></li><li id="156GTLKS"></p><p id="156GTLFJ"><strong>MDS</strong>: Ceph 元数据服务器(MDS),为 Ceph 文件系统存储元数据。</p><p></li><li id="156GTLKT"></p><p id="156GTLFK"><strong>CephFS</strong>: Ceph 文件系统,CephFS 提供了一个任意大小且兼容 POSIX 的分布式文件系统。</p><p></li><li id="156GTLKU"></p><p id="156GTLFL"><strong>RADOS</strong>: Reliable Autonomic Distributed Object Store,表示可靠、自动、分布式的对象存储。Ceph 中的一切都是以对象形式存储,RADOS 就负责存储这些对象,RADOS 层确保数据一致性和可靠性。</p><p></li><li id="156GTLKV"></p><p id="156GTLFM"><strong>Librados</strong>:librados 库是一种用来简化访问 RADOS 的方法,目前支持 PHP、Python、Ruby、Java、C 和 C++ 语言。</p><p></li><li id="156GTLL0"></p><p id="156GTLFN"><strong>RBD</strong>:Ceph 的块设备,它对外提供块存储,可以被映射、格式化进而像其他磁盘一样挂载到服务器。</p><p></li><li id="156GTLL1"></p><p id="156GTLFO"><strong>RGW/RADOSGW</strong>:Ceph 对象网关,它提供了一个兼容 S3 和 Swift 的 restful API 接口。</p><p></li></ul><strong>3. Ceph 集群部署配置</strong>3.1 部署结构</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0901%2Fcaj00rhj9l3000ed200lo00d7g00id00b6.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="156GTLFQ">虚拟机创建三台服务器,CENTOS 版本为 7.6, IP 网段 192.168.116.0/24。三台主机名称为:</p><p><ul><li id="156GTLL2"></p><p id="156GTLFR">CENTOS7-1: IP 为 192.168.116.141, 既做管理节点, 又做子节点。</p><p></li><li id="156GTLL3"></p><p id="156GTLFS">CENTOS7-2: IP 为 192.168.116.142, 子节点。</p><p></li><li id="156GTLL4"></p><p id="156GTLFT">CENTOS7-3: IP 为 192.168.116.143, 子节点。</p><p></li></ul>3.2 系统配置</p><p id="156GTLFU">系统配置工作, 三台节点依次执行:</p><p><ol><li id="156GTLL5"></p><p id="156GTLFV">修改主机名称 [root@CENTOS7-1 ~]# vi /etc/hostname</p><p id="156GTLG0">CENTOS7-1</p><p></li><li id="156GTLL6"></p><p id="156GTLG1">编辑 hosts 文件</p><p><br/><ul><li id="156GTLL7"></li><li id="156GTLL8"></li><li id="156GTLL9"></li></ul><br/></li><li id="156GTLLA"></p><p id="156GTLG2">注意, 这里面的主机名称要和节点名称保持一致, 否则安装的时候会出现问题</p><p></li></ol></p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0901%2F283a3fd9p00rhj9l30004d200qn002hg00it001q.png&thumbnail=660x&quality=80&type=jpg"/><br/></p><p><ol><li id="156GTLLB"></p><p id="156GTLG4">修改 yum 源 vi /etc/yum.repos.d/ceph.repo, 为避免网速过慢问题, 这里采用的是清华镜像源:</p><p><br/><ul><li id="156GTLLC"></li><li id="156GTLLD"></li><li id="156GTLLE"></li><li id="156GTLLF"></li><li id="156GTLLG"></li><li id="156GTLLH"></li><li id="156GTLLI"></li><li id="156GTLLJ"></li><li id="156GTLLK"></li><li id="156GTLLL"></li><li id="156GTLLM"></li><li id="156GTLLN"></li><li id="156GTLLO"></li><li id="156GTLLP"></li><li id="156GTLLQ"></li><li id="156GTLLR"></li><li id="156GTLLS"></li><li id="156GTLLT"></li><li id="156GTLLU"></li><li id="156GTLLV"></li><li id="156GTLM0"></li><li id="156GTLM1"></li><li id="156GTLM2"></li><li id="156GTLM3"></li><li id="156GTLM4"></li><li id="156GTLM5"></li><li id="156GTLM6"></li></ul><br/></li><li id="156GTLM7"></p><p id="156GTLG5">安装 ceph 与 ceph-deploy 组件</p><p><br/><ul><li id="156GTLM8"></li></ul><br/></p><p id="156GTLG6">安装完成, 如果执行 ceph-deploy 出现 ImportError: No module named pkg_resources</p><p id="156GTLG7">安装 python2-pip:yum -y install python2-pip</p><p id="156GTLG8">yum install epel-release -y</p><p></li><li id="156GTLM9"></p><p id="156GTLG9">安装 NTP 时间同步工具</p><p><br/><ul><li id="156GTLMA"></li></ul><br/></p><p id="156GTLGA">确保时区是正确, 设置开机启动:</p><p><br/><ul><li id="156GTLMB"></li></ul><br/></p><p id="156GTLGB">并将时间每隔 1 小时自动校准同步。编辑 vi /etc/rc.d/rc.local 追加:</p><p><br/><ul><li id="156GTLMC"></li></ul><br/></p><p id="156GTLGC">配置定时任务,执行 crontab -e 加入:</p><p><br/><ul><li id="156GTLMD"></li></ul><br/></li></ol>3.3 免密码 SSH 登陆<ol><li id="156GTLME"></p><p id="156GTLGD">官方建议不用系统内置用户, 创建名为 ceph_user 用户, 密码也设为 ceph_user:</p><p><br/><ul><li id="156GTLMF"></li><li id="156GTLMG"></li></ul><br/></li><li id="156GTLMH"></p><p id="156GTLGE">设置 sudo 权限</p><p><br/><ul><li id="156GTLMI"></li><li id="156GTLMJ"></li></ul><br/></p><p id="156GTLGF">1、2 两个步骤依次在三台机器上执行。</p><p id="156GTLGG">接下来在主节点, 继续执行:</p><p></li><li id="156GTLMK"></p><p id="156GTLGH">生成密钥:</p><p id="156GTLGI">切换用户:su ceph_user</p><p id="156GTLGJ">执行 ssh-keygen,一直按默认提示点击生成 RSA 密钥信息。</p><p></li><li id="156GTLML"></p><p id="156GTLGK">分发密钥至各机器节点</p><p><br/><ul><li id="156GTLMM"></li><li id="156GTLMN"></li><li id="156GTLMO"></li></ul><br/></li><li id="156GTLMP"></p><p id="156GTLGL">修改管理节点上的文件, 简化 SSH 远程连接时的输入信息:</p><p id="156GTLGM">管理节点是会有 root 和 ceph_user 多个用户, ssh 远程连接默认会以当前用户身份进行登陆,</p><p id="156GTLGN">如果我们是 root 身份进行远程连接, 还是需要输入密码, 我们想简化, 该怎么处理?</p><p id="156GTLGO">切换 root 身份,</p><p id="156GTLGP">su root</p><p id="156GTLGQ">修改~/.ssh/config 文件</p><p><br/><ul><li id="156GTLMQ"></li><li id="156GTLMR"></li><li id="156GTLMS"></li><li id="156GTLMT"></li><li id="156GTLMU"></li><li id="156GTLMV"></li><li id="156GTLN0"></li><li id="156GTLN1"></li><li id="156GTLN2"></li></ul><br/></p><p id="156GTLGR">注意修改文件权限, 不能采用 777 最大权限:</p><p><br/><ul><li id="156GTLN3"></li></ul><br/></p><p id="156GTLGS">进行 ssh 远程连接时, Host 的主机名称是区分大小写的, 所以要注意配置文件的主机名称。</p><p></li><li id="156GTLN4"></p><p id="156GTLGT">开放端口, 非生产环境, 可以直接禁用防火墙:</p><p><br/><ul><li id="156GTLN5"></li><li id="156GTLN6"></li></ul><br/></li><li id="156GTLN7"></p><p id="156GTLGU">SELINUX 设置</p><p id="156GTLGV">SELinux 设为禁用:</p><p><br/><ul><li id="156GTLN8"></li></ul><br/></p><p id="156GTLH0">永久生效:编辑 vi /etc/selinux/config 修改:</p><p><br/><ul><li id="156GTLN9"></li></ul><br/></li></ol>3.4 集群搭建配置</p><p id="156GTLH1">采用 root 身份进行安装</p><p><ol><li id="156GTLNA"></p><p id="156GTLH2">在管理节点创建集群配置目录,cd /usr/local:</p><p><br/><ul><li id="156GTLNB"></li><li id="156GTLNC"></li></ul><br/></p><p id="156GTLH3">注意:此目录作为 ceph 操作命令的基准目录, 会存储处理配置信息。</p><p></li><li id="156GTLND"></p><p id="156GTLH4">创建集群, 包含三台机器节点:</p><p><br/><ul><li id="156GTLNE"></li></ul><br/></li><li id="156GTLNF"></p><p id="156GTLH5">创建成功后, 会生一个配置文件。</p><p id="156GTLH6">如果接下来集群的安装配置出现问题, 可以执行以下命令清除, 再重新安装:</p><p><br/><ul><li id="156GTLNG"></li><li id="156GTLNH"></li><li id="156GTLNI"></li></ul><br/></p><p id="156GTLH7">将三台节点的 mon 信息也删除</p><p><br/><ul><li id="156GTLNJ"></li></ul><br/></li><li id="156GTLNK"></p><p id="156GTLH8">修改配置文件, 有些配置后面需用到:</p><p><br/><ul><li id="156GTLNL"></li></ul><br/></p><p id="156GTLH9">加入:</p><p><br/><ul><li id="156GTLNM"></li><li id="156GTLNN"></li><li id="156GTLNO"></li><li id="156GTLNP"></li><li id="156GTLNQ"></li><li id="156GTLNR"></li><li id="156GTLNS"></li><li id="156GTLNT"></li><li id="156GTLNU"></li><li id="156GTLNV"></li><li id="156GTLO0"></li><li id="156GTLO1"></li><li id="156GTLO2"></li></ul><br/></p><p id="156GTLHA">第一项为副本数, 设为 2 份。</p><p id="156GTLHB">第二项为对外 IP 访问网段,注意根据实际 IP 修改网段。</p><p id="156GTLHC">第三、四项为允许一定时间的漂移误差。</p><p></li><li id="156GTLO3"></p><p id="156GTLHD">执行安装:</p><p><br/><ul><li id="156GTLO4"></li></ul><br/></p><p id="156GTLHE">如果出现错误:</p><p><br/><ul><li id="156GTLO5"></li></ul><br/></p><p id="156GTLHF">可以在各节点上单独进行安装:</p><p><br/><ul><li id="156GTLO6"></li></ul><br/></p><p id="156GTLHG">如果没有仓库文件 ceph.repo, 按上面的步骤手工创建。</p><p></li><li id="156GTLO7"></p><p id="156GTLHH">初始 monitor 信息:</p><p><br/><ul><li id="156GTLO8"></li><li id="156GTLO9"></li></ul><br/></p><p class="f_center">执行完成后, 会生成以下文件:<img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0901%2F95be7924p00rhj9l40027d200ib0028g00hp0025.png&thumbnail=660x&quality=80&type=jpg"/><br/></p><p></li><li id="156GTLOA"></p><p id="156GTLHJ">同步管理信息:</p><p id="156GTLHK">下发配置文件和管理信息至各节点:</p><p><br/><ul><li id="156GTLOB"></li></ul><br/></li><li id="156GTLOC"></p><p id="156GTLHL">安装 mgr (管理守护进程), 大于 12.x 版本需安装, 我们装的是最新版,需执行:</p><p><br/><ul><li id="156GTLOD"></li></ul><br/></li><li id="156GTLOE"></p><p id="156GTLHM">安装 OSD (对象存储设备)</p><p id="156GTLHN">注意:新版本的 OSD 没有 prepare 与 activate 命令。</p><p id="156GTLHO">这里需要新的硬盘作为 OSD 存储设备, 关闭虚拟机, 增加一块硬盘, 不用格式化。</p><p></li></ol></p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0901%2F0b2b65dbj00rhj9l5006hd200kf00ihg00it00h0.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p class="f_center">重启, fdisk -l 查看新磁盘名称:<img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0901%2Fda028d5cj00rhj9l600d2d200hn00cxg00hn00cx.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="156GTLHR">执行创建 OSD 命令:</p><p><br/><ul><li id="156GTLOF"></li></ul><br/></p><p id="156GTLHS">三台节点都需分别依次执行。</p><p><br/><ul><li id="156GTLOG"></li></ul><br/><ol><li id="156GTLOH"></p><p id="156GTLHT">验证节点:</p><p class="f_center">输入 ceph health 或 ceph -s 查看, 出现 HEALTH_OK 代表正常。<img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0901%2F49c00d9cj00rhj9l7004ld200ea007lg00ea007l.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p></li></ol></p><p id="156GTLHV">通过虚拟机启动,如果出现错误:</p><p><br/><ul><li id="156GTLOI"></li><li id="156GTLOJ"></li><li id="156GTLOK"></li><li id="156GTLOL"></li><li id="156GTLOM"></li><li id="156GTLON"></li><li id="156GTLOO"></li><li id="156GTLOP"></li><li id="156GTLOQ"></li><li id="156GTLOR"></li><li id="156GTLOS"></li><li id="156GTLOT"></li><li id="156GTLOU"></li><li id="156GTLOV"></li><li id="156GTLP0"></li><li id="156GTLP1"></li><li id="156GTLP2"></li><li id="156GTLP3"></li><li id="156GTLP4"></li><li id="156GTLP5"></li><li id="156GTLP6"></li><li id="156GTLP7"></li><li id="156GTLP8"></li><li id="156GTLP9"></li><li id="156GTLPA"></li><li id="156GTLPB"></li><li id="156GTLPC"></li></ul><br/></p><p id="156GTLI0">在各节点执行命令,确保时间同步一致:</p><p><br/><ul><li id="156GTLPD"></li></ul><br/>3.5 安装管理后台<ol><li id="156GTLPE"></p><p id="156GTLI1">开启 dashboard 模块</p><p><br/><ul><li id="156GTLPF"></li></ul><br/></li><li id="156GTLPG"></p><p id="156GTLI2">生成签名</p><p><br/><ul><li id="156GTLPH"></li></ul><br/></li><li id="156GTLPI"></p><p id="156GTLI3">创建目录</p><p id="156GTLI4">mkdir mgr-dashboard</p><p><br/><ul><li id="156GTLPJ"></li><li id="156GTLPK"></li></ul><br/></li><li id="156GTLPL"></p><p id="156GTLI5">生成密钥对</p><p><br/><ul><li id="156GTLPM"></li></ul></p><p><ul><li id="156GTLPN"></li></ul></p><p><ul><li id="156GTLPO"></li><li id="156GTLPP"></li><li id="156GTLPQ"></li><li id="156GTLPR"></li></ul><br/></li><li id="156GTLPS"></p><p id="156GTLIA">启动 dashboard</p><p><br/><ul><li id="156GTLPT"></li><li id="156GTLPU"></li></ul><br/></li><li id="156GTLPV"></p><p id="156GTLIB">设置 IP 与 PORT</p><p><br/><ul><li id="156GTLQ0"></li><li id="156GTLQ1"></li></ul><br/></li><li id="156GTLQ2"></p><p id="156GTLIC">关闭 HTTPS</p><p><br/><ul><li id="156GTLQ3"></li></ul><br/></li><li id="156GTLQ4"></p><p id="156GTLID">查看服务信息</p><p><br/><ul><li id="156GTLQ5"></li><li id="156GTLQ6"></li><li id="156GTLQ7"></li><li id="156GTLQ8"></li></ul><br/></li><li id="156GTLQ9"></p><p id="156GTLIE">设置管理用户与密码</p><p><br/><ul><li id="156GTLQA"></li></ul><br/></li><li id="156GTLQB"></p><p id="156GTLIF">访问</p><p></li></ol></p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0901%2Fafab0637j00rhj9l8005sd200u000cxg00it0083.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p>3.6 创建 Cephfs</p><p id="156GTLIH">集群创建完后, 默认没有文件系统, 我们创建一个 Cephfs 可以支持对外访问的文件系统。</p><p><br/><ul><li id="156GTLQC"></li></ul><br/></p><p><ol><li id="156GTLQD"></p><p id="156GTLIJ">创建两个存储池,执行两条命令:</p><p><br/><ul><li id="156GTLQE"></li><li id="156GTLQF"></li></ul><br/></p><p id="156GTLIK">少于 5 个 OSD 可把 pg_num 设置为 128</p><p id="156GTLIL">OSD 数量在 5 到 10,可以设置 pg_num 为 512</p><p id="156GTLIM">OSD 数量在 10 到 50,可以设置 pg_num 为 4096</p><p id="156GTLIN">OSD 数量大于 50,需要计算 pg_num 的值</p><p id="156GTLIO">通过下面命令可以列出当前创建的存储池:</p><p><br/><ul><li id="156GTLQG"></li></ul><br/></li><li id="156GTLQH"></p><p id="156GTLIP">创建 fs, 名称为 fs_test:</p><p><br/><ul><li id="156GTLQI"></li></ul><br/></li><li id="156GTLQJ"></p><p id="156GTLIQ">状态查看, 以下信息代表正常:</p><p><br/><ul><li id="156GTLQK"></li><li id="156GTLQL"></li><li id="156GTLQM"></li><li id="156GTLQN"></li></ul><br/></p><p id="156GTLIR">附:如果创建错误, 需要删除, 执行:</p><p><br/><ul><li id="156GTLQO"></li><li id="156GTLQP"></li></ul><br/></p><p id="156GTLIS">确保在 ceph.conf 中开启以下配置:</p><p><br/><ul><li id="156GTL"></li><li id="156GTLQR"></li></ul><br/></li><li id="156GTLQS"></p><p id="156GTLIT">采用 fuse 挂载</p><p id="156GTLIU">先确定 ceph-fuse 命令能执行, 如果没有, 则安装:</p><p id="156GTLIV">yum -y install ceph-fuse</p><p></li><li id="156GTLQT"></p><p id="156GTLJ0">创建挂载目录</p><p id="156GTLJ1">mkdir -p /usr/local/cephfs_directory</p><p></li><li id="156GTLQU"></p><p id="156GTLJ2">挂载 cephfs</p><p><br/><ul><li id="156GTLQV"></li><li id="156GTLR0"></li><li id="156GTLR1"></li><li id="156GTLR2"></li></ul><br/></li><li id="156GTLR3"></p><p id="156GTLJ3">查看磁盘挂载信息</p><p><br/><ul><li id="156GTLR4"></li><li id="156GTLR5"></li><li id="156GTLR6"></li><li id="156GTLR7"></li><li id="156GTLR8"></li><li id="156GTLR9"></li><li id="156GTLRA"></li><li id="156GTLRB"></li><li id="156GTLRC"></li><li id="156GTLRD"></li><li id="156GTLRE"></li><li id="156GTLRF"></li></ul><br/></p><p id="156GTLJ4">/usr/local/cephfs_directory 目录已成功挂载。</p><p></li></ol>3.7 客户端连接验证 (Rados Java)<ol><li id="156GTLRG"></p><p id="156GTLJ5">安装好 JDK、GIT 和 MAVEN。</p><p></li><li id="156GTLRH"></p><p id="156GTLJ6">下载 rados java 客户端源码</p><p id="156GTLJ7">git clone https://github.com/ceph/rados-java.git</p><p id="156GTLJ8">下载目录位置:</p><p><br/><ul><li id="156GTLRI"></li><li id="156GTLRJ"></li></ul><br/></li><li id="156GTLRK"></p><p id="156GTLJ9">执行 MAVEN 安装,忽略测试用例:</p><p><br/><ul><li id="156GTLRL"></li></ul><br/></p><p id="156GTLJA">生成 jar 包, rados-0.7.0.jar</p><p><br/><ul><li id="156GTLRM"></li><li id="156GTLRN"></li><li id="156GTLRO"></li><li id="156GTLRP"></li><li id="156GTLRQ"></li><li id="156GTLRR"></li><li id="156GTLRS"></li><li id="156GTLRT"></li></ul><br/></li><li id="156GTLRU"></p><p id="156GTLJB">创建软链接, 加入 CLASSPATH</p><p><br/><ul><li id="156GTLRV"></li></ul><br/></p><p id="156GTLJC">安装 jna</p><p id="156GTLJD">yum -y install jna</p><p id="156GTLJE">创建软链接</p><p><br/><ul><li id="156GTLS0"></li></ul><br/></p><p><br/><ul><li id="156GTLS1"></li><li id="156GTLS2"></li></ul></p><p><ul><li id="156GTLS3"></li><li id="156GTLS4"></li></ul><br/></li><li id="156GTLS5"></p><p id="156GTLJI">创建 JAVA 测试类</p><p id="156GTLJJ">CephClient 类,注意, 最新版 0.6 的异常处理包位置已发生变化。</p><p><br/><ul><li id="156GTLS6"></li><li id="156GTLS7"></li><li id="156GTLS8"></li><li id="156GTLS9"></li><li id="156GTLSA"></li><li id="156GTLSB"></li><li id="156GTLSC"></li><li id="156GTLSD"></li><li id="156GTLSE"></li><li id="156GTLSF"></li><li id="156GTLSG"></li><li id="156GTLSH"></li><li id="156GTLSI"></li><li id="156GTLSJ"></li><li id="156GTLSK"></li><li id="156GTLSL"></li><li id="156GTLSM"></li><li id="156GTLSN"></li><li id="156GTLSO"></li><li id="156GTLSP"></li><li id="156GTLSQ"></li><li id="156GTLSR"></li><li id="156GTLSS"></li><li id="156GTLST"></li></ul><br/></li><li id="156GTLSU"></p><p id="156GTLJK">运行验证</p><p id="156GTLJL">需要在 linux 环境下运行,且要在 client 节点。</p><p id="156GTLJM">编译并运行:</p><p><br/><ul><li id="156GTLSV"></li><li id="156GTLT0"></li><li id="156GTLT1"></li><li id="156GTLT2"></li><li id="156GTLT3"></li></ul><br/></li><li id="156GTLT4"></p><p id="156GTLJN">成功与 ceph 建立连接。</p><p id="156GTLJO">注意:如果 java 和 javac 版本不同,可以使用 rpm -qa |grep java 进行查找, rpm -e --nodeps jdk 进行删除,source /etc/profile 进行生效</p><p id="156GTLJP">jdk 的位数为 64 位</p><p></li></ol><br/></p>
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/164926.html