CentOS 7部署 Ceph分布式存储架构

2023-10-26

一、概述

  随着OpenStack日渐成为开源云计算的标准软件栈,Ceph也已经成为OpenStack的首选后端存储。Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。
  ceph官方文档 http://docs.ceph.org.cn/
  ceph中文开源社区 http://ceph.org.cn/

  Ceph是一个开源的分布式文件系统。因为它还支持块存储、对象存储,所以很自然的被用做云计算框架openstack或cloudstack整个存储后端。当然也可以单独作为存储,例如部署一套集群作为对象存储、SAN存储、NAS存储等。

ceph支持
  1、对象存储:即radosgw,兼容S3接口。通过rest api上传、下载文件。

  2、文件系统:posix接口。可以将ceph集群看做一个共享文件系统挂载到本地。

  3、块存储:即rbd。有kernel rbd和librbd两种使用方式。支持快照、克隆。相当于一块硬盘挂到本地,用法和用途和硬盘一样。比如在OpenStack项目里,Ceph的块设备存储可以对接OpenStack的后端存储

Ceph相比其它分布式存储有哪些优点?

  1、统一存储
    虽然ceph底层是一个分布式文件系统,但由于在上层开发了支持对象和块的接口。所以在开源存储软件中,能够一统江湖。至于能不能千秋万代,就不知了。

  2、高扩展性
    扩容方便、容量大。能够管理上千台服务器、EB级的容量。

  3、可靠性强
    支持多份强一致性副本,EC。副本能够垮主机、机架、机房、数据中心存放。所以安全可靠。存储节点可以自管理、自动修复。无单点故障,容错性强。

  4、高性能
    因为是多个副本,因此在读写操作时候能够做到高度并行化。理论上,节点越多,整个集群的IOPS和吞吐量越高。另外一点ceph客户端读写数据直接与存储设备(osd) 交互。


Ceph各组件介绍:
  •Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。
  •Monitors:  Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。
  •MDSs:  Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。元数据服务器使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。

二、Ceph实验集群部署

 1. 主机准备 (禁用selinux, 关闭防火墙)

  xuegod67    10.10.10.67    admin,osd, mon   作为管理和监控节点
  xuegod68    10.10.10.68    osd,mds
  xuegod69    10.10.10.69    osd,mds
  xuegod70    10.10.10.70    client

  #xuegod67作管理. osd. mon节点;   xuegod68和69作osd mds;  xuegod70客户端
  前三台服务器增加一块硬盘/dev/sdb实验, 创建目录并挂载到/var/local/osd{0,1,2}

1

2

3

4

5

6

7

[root@xuegod67 ~]# mkfs.xfs  /dev/sdb

[root@xuegod67 ~]# mkdir -p /var/local/osd0

[root@xuegod67 ~]# mount /dev/sdb  /var/local/osd0/

[root@xuegod68 ~]# mkfs.xfs  /dev/sdb

[root@xuegod68 ~]# mount /dev/sdb  /var/local/osd1/

[root@xuegod69 ~]# mkfs.xfs  /dev/sdb

[root@xuegod69 ~]# mount /dev/sdb  /var/local/osd2/

2. 编辑hosts文件

(规范系统主机名添加hosts文件实现集群主机名与主机名之间相互能够解析(host 文件添加主机名不要使用fqdn方式)可用hostnamectl set-hostname name设置
分别打开各节点的/etc/hosts文件,加入这四个节点ip与名称的对应关系
  10.10.10.67    xuegod67
  10.10.10.68    xuegod68
  10.10.10.69    xuegod69
  10.10.10.70    xuegod70
SSH免密码登录
在管理节点使用ssh-keygen 生成ssh keys 发布到各节点

1

2

3

4

5

6

[root@xuegod67 ~]# ssh-keygen #所有的输入选项都直接回车生成。

[root@xuegod67 ~]# ssh-copy-id xuegod67

[root@xuegod67 ~]# ssh-copy-id xuegod68

[root@xuegod67 ~]# ssh-copy-id xuegod69

[root@xuegod67 ~]# ssh-copy-id xuegod70

3. 管理节点安装ceph-deploy工具

第一步:增加 yum配置文件(各个节点都需要增加yum源)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

[root@xuegod67 ~]#vim /etc/yum.repos.d/ceph.repo

添加以下内容:(ceph国内163源)

[Ceph]

name=Ceph packages for $basearch

baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/x86_64

enabled=1

gpgcheck=1

type=rpm-md

gpgkey=http://mirrors.163.com/ceph/keys/release.asc

priority=1

[Ceph-noarch]

name=Ceph noarch packages

baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/noarch

enabled=1

gpgcheck=1

type=rpm-md

gpgkey=http://mirrors.163.com/ceph/keys/release.asc

priority=1

[ceph-source]

name=Ceph source packages

baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/SRPMS

enabled=1

gpgcheck=1

type=rpm-md

gpgkey=http://mirrors.163.com/ceph/keys/release.asc

priority=1

第二步:更新软件源并安装ceph-deploy 管理工具

[root@xuegod67 ~]# yum clean all && yum list

[root@xuegod67 ~]# yum -y install ceph-deploy

4.创建monitor服务

1

2

3

4

5

[root@xuegod67 ~]# mkdir /etc/ceph && cd /etc/ceph

[root@xuegod67 ceph]#  ceph-deploy new xuegod67    #mon安装在xuegod67节点

[root@xuegod67 ceph]# ls                                #生成配置文件在当前目录下

ceph.conf  ceph.log  ceph.mon.keyring

Ceph配置文件、一个monitor密钥环和一个日志文件

5.修改副本数

1

2

3

4

5

6

7

8

9

[root@xuegod67 ceph]# vim ceph.conf 配置文件的默认副本数从3改成2,这样只有两个osd也能达到active+clean状态,把下面这行加入到[global]段(可选配置)

[global]

fsid = 92f5581d-79d2-4c9f-a523-4965eedc846b

mon_initial_members = xuegod67

mon_host = 10.10.10.67

auth_cluster_required = cephx

auth_service_required = cephx

auth_client_required = cephx

osd_pool_default_size = 2

6.在所有节点安装ceph

(如果网络源安装失败,手工安装epel-release 然后安装yum –yinstall cep-release再yum –y install ceph ceph-radosgw)

错误参考:https://blog.csdn.net/yenai2008/article/details/72457463

1

2

3

4

5

6

[root@xuegod67 ceph]# ceph-deploy install xuegod67 xuegod68 xuegod69 xuegod70

安装ceph monitor

[root@xuegod67 ceph]# ceph-deploy mon create xuegod67

收集节点的keyring文件

[root@xuegod67 ceph]# ceph-deploy  gatherkeys xuegod67

7.部署osd服务

添加osd节点 (所有osd节点执行)

我们实验准备时已经创建目录/var/local/osd{id}

8.创建激活osd

1

2

3

4

#创建osd 

[root@xuegod67 ceph]# ceph-deploy osd prepare xuegod67:/var/local/osd0 xuegod68:/var/local/osd1 xuegod69:/var/local/osd2

#激活osd 

[root@xuegod67 ceph]# ceph-deploy osd activate xuegod67:/var/local/osd0 xuegod68:/var/local/osd1 xuegod69:/var/local/osd2

1

如果报错

解决:在各个节点上给/var/local/osd1/和/var/local/osd2/添加权限
如下:
  chmod 777 -R /var/local/osd1/
  chmod 777 -R /var/local/osd2/*

1

2

查看状态:

[root@xuegod67 ceph]# ceph-deploy osd list xuegod67 xuegod68 xuegod69

9.统一配置

1

2

3

4

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

[root@xuegod67 ceph]# ceph-deploy admin xuegod67 xuegod68 xuegod69

各节点修改ceph.client.admin.keyring权限:

1

[root@xuegod67 ceph]#chmod +r /etc/ceph/ceph.client.admin.keyring

10.查看osd状态

1

2

[root@xuegod67 ceph]# ceph health 或 ceph -s

HEALTH_OK

11.部署mds服务

[root@xuegod67 ceph]# ceph-deploy mds create xuegod68 xuegod69 #我们MDS安装2台
[root@xuegod67 ceph]# ceph mds stat #查看状态

12.集群状态

[root@xuegod67 ceph]# ceph -s

以上基本上完成了ceph存储集群的搭建。 

 三 、创建ceph文件系统

1

2

3

4

5

[root@xuegod67 ceph]# ceph fs ls   #创建之前

No filesystems enabled

创建存储池

[root@xuegod67 ceph]# ceph osd pool create cephfs_data <pg_num> 

[root@xuegod67 ceph]# ceph osd pool create cephfs_metadata <pg_num>

其中:<pg_num> = 128 ,
关于创建存储池
确定 pg_num 取值是强制性的,因为不能自动计算。下面是几个常用的值:
  *少于 5 个 OSD 时可把 pg_num 设置为 128
  *OSD 数量在 5 到 10 个时,可把 pg_num 设置为 512
  *OSD 数量在 10 到 50 个时,可把 pg_num 设置为 4096
  *OSD 数量大于 50 时,你得理解权衡方法、以及如何自己计算 pg_num 取值
  *自己计算 pg_num 取值时可借助 pgcalc 工具
随着 OSD 数量的增加,正确的 pg_num 取值变得更加重要,因为它显著地影响着集群的行为、以及出错时的数据持久性(即灾难性事件导致数据丢失的概率)。 

1. 创建文件系统

创建好存储池后,你就可以用 fs new 命令创建文件系统了

1

2

3

4

5

6

7

[root@xuegod67 ceph]# ceph fs new <fs_name> cephfs_metadata cephfs_data 

其中:<fs_name> = cephfs  可自定义

[root@xuegod67 ceph]# ceph fs ls              #查看创建后的cephfs

[root@xuegod67 ceph]# ceph mds stat          #查看mds节点状态

e6: 1/1/1  up  {0=xuegod69=up:active}, 1  up:standby

active是活跃的,另1个是处于热备份的状态

2.挂载Ceph文件系统

有不同挂载方式

A.内核驱动挂载Ceph文件系统

1

2

3

4

5

6

7

8

[root@xuegod70 ceph]# mkdir /opt #创建挂载点

存储密钥(如果没有在管理节点使用ceph-deploy拷贝ceph配置文件)

cat /etc/ceph/ceph.client.admin.keyring

将key对应的值复制下来保存到文件:/etc/ceph/admin.secret中。

挂载

[root@xuegod70 ceph]# mount -t ceph 10.10.10.67:6789:/ /opt -o name=admin,secretfile=/etc/ceph/admin.secret

取消挂载

[root@xuegod70 ceph]# umount /opt

B.用户控件挂载Ceph文件系统

1

2

3

4

5

6

安装ceph-fuse

[root@xuegod70 ceph]# yum install -y ceph-fuse

挂载

[root@xuegod70 ceph]# ceph-fuse -m 10.10.10.67:6789 /opt

取消挂载

[root@xuegod70 ceph]# fusermount -u /opt

  ceph在开源社区还是比较热门的,但是更多的是应用于云计算的后端存储。所以大多数在生产环境中使用ceph的公司都会有专门的团队对ceph进行二次开发,ceph的运维难度也比较大。但是经过合理的优化之后,ceph的性能和稳定性都是值得期待的。


关于其他:
  清理机器上的ceph相关配置:
  停止所有进程: stop ceph-all
  卸载所有ceph程序:ceph-deploy uninstall [{ceph-node}]
  删除ceph相关的安装包:ceph-deploy purge {ceph-node} [{ceph-data}]
  删除ceph相关的配置:ceph-deploy purgedata {ceph-node} [{ceph-data}]
  删除key:ceph-deploy forgetkeys

  卸载ceph-deploy管理:yum -y remove ceph-deploy

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOS 7部署 Ceph分布式存储架构 的相关文章

  • APC缓存碎片问题

    我在 CentOS 服务器 5 上运行 APC php 缓存 每天 13 000 次访问 运行 php 5 3 3 APC 3 1 4 和 4Gb RAM 在过去的几周里 我经历了很多 unable to allocate memory f
  • 在 Linux 中向当前日期添加 x 秒

    我这里有两台 Linux CentOS 6 0 机器 我需要在当前日期时间上添加 或删除 5 秒 最后 我的两台机器都会有5秒的差距 一台时间正确 另一台或多或少有5秒 我知道我可以使用以下命令更改日期 date s DD MMM YYYY
  • 在 CentOS 中使用 /etc/resolv.conf 解析 AD 域

    我已使用 Realm 配置 SSSD 以使用 AD 凭据登录 centOS VM 请参考设置here https stackoverflow com questions 63705156 sssd integration with micr
  • 启用 mod_http2 并在conf文件中设置协议后,HTTP/2配置未运行[重复]

    这个问题在这里已经有答案了 在看似正确的安装之后 HTTP 2 似乎并未运行 我运行的是 CentOS 7 我安装了最新版本的 Apache 版本 httpd 2 4 35 5 el7 x86 64 并一直在尝试让 HTTP 2 正常工作
  • 未找到 jmap 命令

    我正在尝试使用jmap对我的命令CentOS服务器 但它一直告诉我 即使我安装了 JDK 也找不到该命令 这是命令的输出java version java version 1 7 0 25 OpenJDK Runtime Environme
  • make: *** /lib/modules/2.6.32-279.el6.x86_64/build: 没有这样的文件或目录。停止

    我从他们的网站下载了 RALINK 驱动程序 untar xvf rtl 然后我在其中运行 make 谷歌搜索建议 kernel devel 需要安装 我安装了 kernel devel 软件包 但仍然收到此错误 make lib modu
  • Centos 上的 MSBuild 返回“未找到导入的项目“/Microsoft.Cpp.Default.props””

    我正在尝试在 CentOS 中构建 VS 项目 我通过安装 dotnet sdk 2 2yum install dotnet sdk 2 2 执行时dotnet msbuild myproj vcxproj I get Microsoft
  • 编译 Lua - 创建 .so 文件?

    我正在 Centos 6 5 上编译 Lua 5 2 3 编译 安装工作正常 但是 我还需要编译另一个程序的开发库 我通常会通过这样做来安装它们 yum install lua devel 问题是安装 Lua 5 1 共享库 而不是 5 2
  • Python - 什么时候可以使用 os.system() 发出常见的 Linux 命令

    从另一个线程中分离出来 什么时候适合使用 os system 发出 rm rf cd make xterm ls 等命令 考虑到上述命令有模拟版本 make 和 xterm 除外 我假设使用这些内置 python 命令而不是使用 os sy
  • Ceph:每个 OSD PG 太多

    我使用推荐值配置了 Ceph 使用文档中的公式 我有 3 个 OSD 我的配置 我已将其放在监视器节点和所有 3 个 OSD 上 包括以下内容 osd pool default size 2 osd pool default min siz
  • 从现有虚拟机创建 docker 镜像

    我需要使用 CentOS 和 MySQL 创建 docker 基础镜像 但我已经有这样的虚拟机 没有docker 如何从现有的虚拟机创建基础 docker 镜像并在另一台带有 docker 的机器上使用它 虽然其他评论者正确地指出 将虚拟机
  • apache centos 上的多个 php

    如何在 Centos 6 5 上同时运行多个 php 版本 就是这样 要求Centos 6 5 可能适用于 6 6 和 7 Apache Apache 2 2 15 可能与其他版本一起使用 本指南安装和使用FASTCGI 请参阅替代安装的注
  • EC2 增加大小后无法调整卷大小

    我已按照调整 EC2 卷大小的步骤进行操作 停止实例 拍摄当前卷的快照 在同一区域中从上一个快照创建了一个更大大小的新卷 从实例中分离旧卷 将新卷附加到同一安装点的实例 旧卷是 5GB 我创建的卷是 100GB 现在 当我重新启动实例并运行
  • 如何在Linux中打开端口[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经安装了 Web 应用程序 该应用程序在 RHEL centOS 上的端口 8080 上运行 我只能通过命令行访问该机器 我尝试从我的
  • 当安装的 RPM 取代了另一个 RPM 时如何检测升级

    RPM scriptlet 被传入 1 https fedoraproject org wiki Packaging Scriptlets rd Packaging ScriptletSnippets Syntax 操作完成后 系统中将保留
  • 导入错误:没有名为 django 的模块

    我使用的是centos Linux 我有 python 2 6 和 django 现在我升级到 python 2 7 Python 2 6 位于 usr lib python2 6 Python 2 7 位于 usr local lib p
  • 如何在CentOS 5.3上安装php-mongodb?

    我已经在我的 VPS 上安装了 mongoDB 效果很好 现在我想安装 php 驱动程序以使 php 与 mongoDB 一起工作 我跟着蒙戈安装 http www php net manual en mongo installation
  • Python pip 安装错误 [SSL: CERTIFICATE_VERIFY_FAILED]

    我已经尝试解决这个问题有一段时间了 由于某种原因 我陷入了 ssl 问题 并且不知道发生了什么 问题 我已经安装了 python2 7 和 easy install2 7 但是当尝试使用 easy install2 7 安装 pip 时 出
  • 解决 php 常见冲突的最佳方法:忽略、修复还是其他?

    我正在尝试在 CentOS 6 上的 PHP 5 3 3 上安装 Soap 模块 来自 webtatic PHP 5 6 当我运行 yum 命令时yum install php56w soap要安装它 我收到以下消息 错误 php56w c
  • bdist_rpm 从 Ubuntu 到 CentOs

    我们在 Ubuntu Mac 上进行开发 并将 RPM 部署到 CentOS 这是设置 不能更改太多 问题是 当从 rpm 安装时 软件包会转到 usr local lib python2 7 dist packages 这是 Ubuntu

随机推荐

  • 数字图像处理扭曲效果——挤压效果

    挤压效果 挤压效果是将图像向内挤压 产生收缩变形 挤压效果的实现可以看成是数学极坐标的一种体现 将当前像素点 图像正中心点和过中心点的水平线这三要素画出一个极坐标 然后根据用户指定的挤压度 在当前点与中心点所连的直线上映射出一个像素点 最后
  • VulnHub-Tr0II

    一 信息收集 将靶机部署好之后改成NAT模式 扫描本网段发现目标ip 进一步探测ip 通过进一步的探测发现目标开启了21 22 80三个端口 先去80端口看一眼web服务 一张图没其它内容 扫一下目录看看 挨个访问也没有啥特殊的地方 考虑一
  • PropertyDescriptor获取非标准java bean属性的getter和setter时候的一个问题

    1 import java beans IntrospectionException 2 import java beans PropertyDescriptor 3 import java lang reflect InvocationT
  • 显著性水平对应的临界值_统计学问题 常有的显著性水平a 所对应的Z值是哪些...

    展开全部 z a 2 指的是标准正态分布的双侧临界值 z a 当然就是单侧临界值 a 阿尔法 指62616964757a686964616fe4b893e5b19e31333431356638的是显著水平 一般是0 05 0 01等 而95
  • Java 动态代理,invoke() 自动调用原理,invoke() 参数

    Java 动态代理 invoke 自动调用原理 invoke 参数 本文介绍了静态代理和动态代理的概念 并且用代码 注释 图示和源码的方式来分析动态代理原理和invoke 自动调用原理 学习动态代理 先从静态代理入手 静态代理 假如现在我们
  • 每日一练——Python字典格式读取文件

    现有一个user csv文件 内容如下 name username email 杨洋 yangy yangy sina com 贾子豪 jiazh jiazh 126 com 于飞 yuf yuf 163 com 田宇辰 tianych t
  • HttpGet和HttpPost请求

    HttpPost请求 public static void main String args throws IOException String url null 请求地址 Map
  • 分类预测

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 内容介绍 极限学习机 作为一种新兴的机器学习方法 已经成为了一个热门的研究方向 随机确定单隐含
  • [机器学习与scikit-learn-23]:算法-聚类-KMeans算法的工作原理

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 第1章 KMeans概述 1 1 什么是簇与质心 1 2 质心的计算过程 第2章 聚合指标 2 1 距离和度量方法 2 2 聚合的意义
  • window.open()打开新页面,并往新页面插入内容

    定义和用法 open 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口 语法 window open URL name specs replace 参数说明参考https www runoob com jsref met win ope
  • 使用Spring的JAVA Mail支持简化邮件发送

    闲来无事 翻看 Spring in Action 发现Spring集成了对JAVA Mail的支持 有点小激动的看了一遍 嗯 话说真的简单了很多 Spring的邮件发送的核心是MailSender接口 在Spring3 0中提供了一个实现类
  • 前端学习之初识HTML以及块级元素和行内元素的区别(1)

    目录 一 什么是HTML HTML是HyperType Markup Language 超文本标记语言 HTML的特点 Html标签注意规范 建议镜面嵌套 不建议交叉嵌套 二 块级元素和行内元素 块级元素 行内元素 一 什么是HTML HT
  • 贪心(1)田忌赛马

    目录 一 贪心算法 1 贪心选择性质 2 最优子结构性质 二 田忌赛马 三 OJ实战 CSU 1722 Race 力扣 870 优势洗牌 HDU 1338 Game Prediction HDU 1052 POJ 2287 UVA 1344
  • 神经网络之LN(Layer Normalization)

    上一篇博客提到了BN不适用于RNN等动态网络以及batchsize较小的时候 而LN可以 这篇博客就对LN做一个简单的介绍 深度网络中的数据维度一般是 N C H W 或者 N H W C 格式 N是batch size H W是featu
  • Redis主从复制及其实现原理

    Redis主从复制及其实现原理 首先 简单介绍一下什么是Redis主从复制 假如我们服务中用到了Redis 并且只有一台Redis服务器 如果某个时刻该Redis服务挂了 那么会导致整个服务的Redis不可用 在此期间 大量的请求将会直接打
  • Activiti7工作流+SpringBoot

    文章目录 一 Activiti相关概念 1 Activiti介绍 2 核心类 2 1 ProcessEngine 2 2 服务 Service 类 2 2 1 TaskService 2 2 2 RepositoryService 2 2
  • Objective-C学习笔记---构造函数和析构函数

    简单的讲 构造函数就是在创建一个对象的时候起到初始化的作用 对这个对象里的一些成员变量进行初始化 析构函数就是在对象被删除进行一些清理工作 也就是专门的扫尾工作 下面用代码来进行具体说明 一 构造函数 在OC中凡是已init开头的函数我们都
  • 【通信协议】单总线协议详解——以DHT11为例

    单总线概述 1 单总线的介绍 1 单总线也称为1 Wire bus 它是由美国DALLAS 达尔斯 公司推出的外围串行扩展总线 单总线系统中配置的各种器件 由DALLAS公司提供的专用芯片实现 2 每个芯片都有64位ROM 厂家对每一芯片都
  • 教程二:本地配置服务端开发环境

    物美智能 系列文章目录 一款强大的物联网管理平台介绍 物美智能 教程一 阿里云使用docker快速部署服务端 教程二 本地配置服务端开发环境 教程三 硬件端 Arduino和ESP8266开发板入门 教程四 使用物联网平台控制硬件端 教程五
  • CentOS 7部署 Ceph分布式存储架构

    一 概述 随着OpenStack日渐成为开源云计算的标准软件栈 Ceph也已经成为OpenStack的首选后端存储 Ceph是一种为优秀的性能 可靠性和可扩展性而设计的统一的 分布式文件系统 ceph官方文档 http docs ceph