当前位置:首页 » 存储配置 » 开源对象存储系统

开源对象存储系统

发布时间: 2022-12-08 19:34:48

① 如何在CentOS 7.0上配置Ceph存储

Ceph 是一个将数据存储在单一分布式计算机集群上的开源软件平台。当你计划构建一个云时,你首先需要决定如何实现你的存储。开源的 Ceph 是红帽原生技术之一,它基于称为 RADOS 的对象存储系统,用一组网关 API 表示块、文件、和对象模式中的数据。由于它自身开源的特性,这种便携存储平台能在公有云和私有云上安装和使用。Ceph 集群的拓扑结构是按照备份和信息分布设计的,这种内在设计能提供数据完整性。它的设计目标就是容错、通过正确配置能运行于商业硬件和一些更高级的系统。

Ceph 能在任何 Linux 发行版上安装,但为了能正确运行,它需要最近的内核以及其它最新的库。在这篇指南中,我们会使用最小化安装的 CentOS-7.0。

系统资源
**CEPH-STORAGE**
OS:CentOSLinux7(Core)
RAM:1 GB
CPU:1 CPU
DISK:20
Network:45.79.136.163
FQDN: ceph-storage.linoxide.com
**CEPH-NODE**
OS:CentOSLinux7(Core)
RAM:1 GB
CPU:1 CPU
DISK:20
Network:45.79.171.138
FQDN: ceph-node.linoxide.com

安装前的配置
在安装 Ceph 存储之前,我们要在每个节点上完成一些步骤。第一件事情就是确保每个节点的网络已经配置好并且能相互访问
配置 Hosts
要在每个节点上配置 hosts 条目,要像下面这样打开默认的 hosts 配置文件(LCTT 译注:或者做相应的 DNS 解析)。
#vi/etc/hosts
45.79.136.163 ceph-storage ceph-storage.linoxide.com
45.79.171.138 ceph-node ceph-node.linoxide.com
安装 VMware 工具
工作环境是 VMWare 虚拟环境时,推荐你安装它的 open VM 工具。你可以使用下面的命令安装。
#yum install -y open-vm-tools
配置防火墙
如果你正在使用启用了防火墙的限制性环境,确保在你的 Ceph 存储管理节点和客户端节点中开放了以下的端口。
你必须在你的 Admin Calamari 节点开放 80、2003、以及4505-4506 端口,并且允许通过 80 号端口访问到 Ceph 或 Calamari 管理节点,以便你网络中的客户端能访问 Calamari web 用户界面。
你可以使用下面的命令在 CentOS 7 中启动并启用防火墙。
#systemctl start firewalld
#systemctl enable firewalld
运行以下命令使 Admin Calamari 节点开放上面提到的端口。
# firewall-cmd --zone=public--add-port=80/tcp --permanent
# firewall-cmd --zone=public--add-port=2003/tcp --permanent
# firewall-cmd --zone=public--add-port=4505-4506/tcp --permanent
# firewall-cmd --reload
在 Ceph Monitor 节点,你要在防火墙中允许通过以下端口。
# firewall-cmd --zone=public--add-port=6789/tcp --permanent
然后允许以下默认端口列表,以便能和客户端以及监控节点交互,并发送数据到其它 OSD。
# firewall-cmd --zone=public--add-port=6800-7300/tcp --permanent
如果你工作在非生产环境,建议你停用防火墙以及 SELinux 设置,在我们的测试环境中我们会停用防火墙以及 SELinux。
#systemctl stop firewalld
#systemctl disable firewalld
系统升级
现在升级你的系统并重启使所需更改生效。
#yum update
#shutdown-r 0

设置 Ceph 用户
现在我们会新建一个单独的 sudo 用户用于在每个节点安装 ceph-deploy工具,并允许该用户无密码访问每个节点,因为它需要在 Ceph 节点上安装软件和配置文件而不会有输入密码提示。
运行下面的命令在 ceph-storage 主机上新建有独立 home 目录的新用户。
[root@ceph-storage ~]#useradd-d /home/ceph -m ceph
[root@ceph-storage ~]#passwd ceph
节点中新建的每个用户都要有 sudo 权限,你可以使用下面展示的命令赋予 sudo 权限。
[root@ceph-storage ~]#echo"ceph ALL = (root) NOPASSWD:ALL"|sudotee/etc/sudoers.d/ceph
ceph ALL =(root) NOPASSWD:ALL
[root@ceph-storage ~]#sudochmod0440/etc/sudoers.d/ceph

设置 SSH 密钥
现在我们会在 Ceph 管理节点生成 ssh 密钥并把密钥复制到每个 Ceph 集群节点。
在 ceph-node 运行下面的命令复制它的 ssh 密钥到 ceph-storage。
[root@ceph-node ~]#ssh-keygen
Generatingpublic/private rsa key pair.
Enterfilein which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (emptyforno passphrase):
Enter same passphrase again:
Your identification has been saved in/root/.ssh/id_rsa.
Yourpublic key has been saved in/root/.ssh/id_rsa.pub.
The key fingerprint is:
5b:*:*:*:*:*:*:*:*:*:c9 root@ceph-node
The key's randomart image is:
+--[ RSA 2048]----+
[root@ceph-node ~]#ssh--id ceph@ceph-storage

SSH key

配置 PID 数目
要配置 PID 数目的值,我们会使用下面的命令检查默认的内核值。默认情况下,是一个小的最大线程数 32768。
如下图所示通过编辑系统配置文件配置该值为一个更大的数。

更改 PID 值

配置管理节点服务器
配置并验证了所有网络后,我们现在使用 ceph 用户安装 ceph-deploy。通过打开文件检查 hosts 条目(LCTT 译注:你也可以用 DNS 解析来完成)。
#vim/etc/hosts
ceph-storage 45.79.136.163
ceph-node 45.79.171.138
运行下面的命令添加它的库。
# rpm -Uhv http://ceph.com/rpm-giant/el7/noarch/ceph-release-1-0.el7.noarch.rpm

添加 Ceph 仓仓库
或者创建一个新文件并更新 Ceph 库参数,别忘了替换你当前的 Release 和版本号。
[root@ceph-storage ~]#vi/etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
之后更新你的系统并安装 ceph-deploy 软件包。

安装 ceph-deploy 软件包
我们运行下面的命令以及 ceph-deploy 安装命令来更新系统以及最新的 ceph 库和其它软件包。
#yum update -y &&yum install ceph-deploy -y

配置集群
使用下面的命令在 ceph 管理节点上新建一个目录并进入新目录,用于收集所有输出文件和日志。
#mkdir~/ceph-cluster
#cd~/ceph-cluster
# ceph-deploy new storage

设置 ceph 集群
如果成功执行了上面的命令,你会看到它新建了配置文件。
现在配置 Ceph 默认的配置文件,用任意编辑器打开它并在会影响你公共网络的 global 参数下面添加以下两行。
#vim ceph.conf
osd pool defaultsize=1
public network =45.79.0.0/16

安装 Ceph
现在我们准备在和 Ceph 集群关联的每个节点上安装 Ceph。我们使用下面的命令在 ceph-storage 和 ceph-node 上安装 Ceph。
# ceph-deploy install ceph-node ceph-storage

安装 ceph
处理所有所需仓库和安装所需软件包会需要一些时间。
当两个节点上的 ceph 安装过程都完成后,我们下一步会通过在相同节点上运行以下命令创建监视器并收集密钥。
# ceph-deploy mon create-initial

Ceph 初始化监视器

设置 OSD 和 OSD 守护进程
现在我们会设置磁盘存储,首先运行下面的命令列出你所有可用的磁盘。
# ceph-deploy disk list ceph-storage
结果中会列出你存储节点中使用的磁盘,你会用它们来创建 OSD。让我们运行以下命令,请使用你的磁盘名称。
# ceph-deploy disk zap storage:sda
# ceph-deploy disk zap storage:sdb
为了最后完成 OSD 配置,运行下面的命令配置日志磁盘以及数据磁盘。
# ceph-deploy osd prepare storage:sdb:/dev/sda
# ceph-deploy osd activate storage:/dev/sdb1:/dev/sda1
你需要在所有节点上运行相同的命令,它会清除你磁盘上的所有东西。之后为了集群能运转起来,我们需要使用以下命令从 ceph 管理节点复制不同的密钥和配置文件到所有相关节点。
# ceph-deploy admin ceph-node ceph-storage

测试 Ceph
我们快完成了 Ceph 集群设置,让我们在 ceph 管理节点上运行下面的命令检查正在运行的 ceph 状态。
# ceph status
# ceph health
HEALTH_OK
如果你在 ceph status 中没有看到任何错误信息,就意味着你成功地在 CentOS 7 上安装了 ceph 存储集群。

② 分布式存储极简艺术Minio解析

 MinIO 对象存储系统是为海量数据存储、人工智能、大数据分析而设计,基于
Apache License v2.0 开源协议的对象存储系统,它完全兼容 Amazon S3 接口,单个对象的最大可达 5TB,适合存储海量图片、视频、日志文件、备份数据和容器/虚拟机镜像等。作为一个开源服务,MinIO 在设计上汲取了Glusterfs的相关经验不教训,系统复杂度上作了大量简化,目前大小只有40+M,部署只需要一个命令即可完成!另外,minio舍弃了传统分布式存储扩容所需要的迁移流程,采用联盟模式添加集群的方式,极大简化了扩容流程;除此之外,minio还具有纠删编码、比特位保护、单写多读(worm)、下面来依次简要解析一下Mioio的特点及具体实现:

  元数据和数据一起存放在磁盘上。元数据以明文形式存放在元数据文件里(xl.json)。假定对象名字为key_name, 它所在桶的名字是bucket_name, disk路径就是/disk,那么存储路径就是:/disk/bucket_name/key_name,windows下C盘存放桶名为test,对象名为minio.exe示例如图:

其中part.1是实际存储数据(单机模式为原生数据,分布式为纠删码分块),xl.json是如下所示的json字符串:

  在同一集群内,MinIO 自己会自劢生成若干纠删组,用于分布存放桶数据。一个纠删组中的一定数量的磁盘发生的故障(故障磁盘的数量小于等于校验盘的数量),通过纠删码校验算法可以恢复出正确的数据。MinIO 集成了 Reed-Solomon 纠删码库,MinIO 存储对象数据时,首先把它分成若干等长的片段(对于大对象,默认按 5MB 切片),然后每一个片段会纠删算法分成若干分片,包括数据分片不校验分片,每个分片放置在一个纠删组的某个节点上。对象的每一个数据分片、校验分片都被“防比特位衰减”算法所保护。

  MinIO 会根据对象名(类似于文件系统的全路径名),使用 crc32 哈希算法计算出一个整数。然后使用这个整数除以纠删组的个数,得到一个余数。这个余数,可以作为纠删组的序号,这样就确定了这个对象所在的纠删组。MinIO 采用 CRC32 哈希算法,不 glusterfs 的Davies Meyer哈希算法(性能、冲突概率不md4, md5相近)不一样的是,CRC32算法的哈希值分布较不均匀,但运算速度极快,高出 md4 数倍。相对于容量均衡,MinIO 更看重数据的写入速度。

纠删组如何配置?
官方文档说明如下:

 也就是说纠删组的总大小只能从这7中情况中根据你提供的盘的个数(或者说路径个数)来自动选取最大值的,我们 不能灵活地配置m+k纠删存储格式。但这样说又不是很准确 ,因为虽然不能配置任意的m+k,但是在系统已经选取好擦除编码集的的个数后(也就是m+k),可以使用storage class存储类来自定义m和k的数量,默认是1:1的。
存储类:
 MinIO支持配置两种存储类别,精简冗余类别和标准类别,默认是标准类别(1:1),可以在启动MinIO服务器之前使用设置的环境变量来定义这些类。使用环境变量定义每个存储类别的数据和奇偶校验磁盘后,您可以上传对象时通过请求元数据字段设置对象的存储类别x-amz-storage-class 。然后,MinIO服务器通过将对象保存在特定数量的数据和奇偶校验磁盘中来兑现存储类。具体配置和使用可以参考官方文档 https://github.com/minio/minio/tree/master/docs/erasure/storage-class

传统的扩展方式的劣势
  通过增加节点来扩展单集群,一般需要进行数据均衡,否则群集内各存储节点会因负载不均而出现新的瓶颈。除了数据均衡操作的时机这个问题以外,在均衡过程中一般需要仍存储使用率高的节点吐使用率低的节点迁移数据。当集群扩容后,大量已经写入的文件落点会出现改变,文件需要迁移到真实的落点。当存储系统容量比较大时,则会发生大量的文件/对象进行迁移,迁移过程可能由于占用大量资源而导致上层应用性能下降。而且当文件/对象迁移过程中,机器故障可能会导致一些意想不到的情冴,尤其是有大量业务的时候。当然针对此类问题,Gluterfs之类的文件系统有一些比较复杂的处理办法。
不支持扩展优势

③ 移动云对象存储EOS能干什么呀

对象存储 EOS(Elastic Object Storage)是移动云为客户提供的一种海量空间的存储产品,具备高性能、高可靠、安全、低成本等特性,通过标准的S3/Swift接口提供非结构化数据(图片、音视频、文本等格式文件)的存储服务,满足用户在任何地方通过互联网对数据进行管理和访问的需求。
简单来说,就是一个存储工具。但是对比常见的存储工具,移动云的对象存储 EOS具有以下几个功能特点:
1.桶管理
支持桶(存放对象的容器)的创建、删除,设置桶的访问权限、访问规则,以及桶相关的功能配置。
2.生命周期管理
可设置桶级别的生命周期策略,实现文件定期的存储类型转换,以及历史碎片文件删除等功能。
3.文件管理
可进行文件上传下载、设置文件的访问权限、生成共享访问链接,支持多版本控制功能,允许文件多版本保存。
4.静态网站托管
用户可将静态网页上传到桶内,配置后实现网站发布。简化建站操作,降低网站运营维护成本。
5.防盗链
可以将数据的访问权限限制在某些IP段,防止数据被过度下载,保护数据安全。
6.监控
可展示对象存储账户级别和桶级别两种维度的使用量信息,方便用户掌握资源使用情况。
7.子账号
支持创建多个子账号,实现数据访问隔离,满足访客用户临时访问对象存储场景。
8.图片处理
通过图片处理服务,用户可按需创建多种图片样式,将上传到移动云对象存储的图片进行多样化处理。
9.跨域访问
支持创建、修改和删除跨域访问规则,允许不同源域名访问移动云对象存储资源,解决浏览器同源策略限制问题。
可以适用于网站托管、多媒体数据存储和播放、数据备份等多个场景。
同时移动云官网提供三种产品类型以供选择,分别是标准存储(适合存储频繁访问的热点数据)、低频存储(适合存储不频繁访问,但在需要时也可快速访问的数据)和归档存储(适合需要长期保存的归档数据)。
正好看到移动云官网有对象存储免费试用一个月的活动,想试用的话可以试一下,活动好像长期有效,但仅限平台新用户哦。

④ 对象存储又是什么鬼

对象存储,也叫做基于对象的存储,是用来描述解决和处理离散单元的方法的通用术语,这些离散单元被称作为对象。
就像文件一样,对象包含数据,但是和文件不同的是,对象在一个层结构中不会再有层级结构。每个对象都在一个被称作存储池的扁平地址空间的同一级别里,一个对象不会属于另一个对象的下一级。
文件和对象都有与它们所包含的数据相关的元数据,但是对象是以扩展元数据为特征的。每个对象都被分配一个唯一的标识符,允许一个服务器或者最终用户来检索对象,而不必知道数据的物理地址。这种方法对于在云计算环境中自动化和简化数据存储有帮助。
对象存储经常被比作在一家高级餐厅代客停车。当一个顾客需要代客停车时,他就把钥匙交给别人,换来一张收据。这个顾客不用知道他的车被停在哪,也不用知道在他用餐时服务员会把他的车移动多少次。在这个比喻中,一个存储对象的唯一标识符就代表顾客的收据。[1]
由于对象存储将遍布于很多节点且最新的数据并非总是可用,这将成为对象存储最终一致性的问题。
所有的数据存储都涉及到简称为CAP的三个元素:一致性、可用性和分区。
如果只是执行了写操作从而改变了一个对象,但有人正在从另外的节点访问这个对象。节点可能会在不同的物理位置,因为对象存储支持很大的地理扩展。新用户可能正在读取对象,但那是旧版本。这就是对象存储的最终一致性问题,此时并没有及时的同步。
这将成为问题,特别是利用对象存储做协同的时候,厂商为保证对象存储的一致性做了很好的工作,像是Joyent以及他的Manta 存储服务,一旦对象更改将不支持读取旧的内容。你必须等待,但你所读取的内容会是一致的。[2]

对象存储数据迁移和访问
企业对存储的诉求有一定的延续性,但其访问的介质不外乎是主机、PC、移动端以及应用,针对不同的访问介质来看,面向对象存储的解决方案也有所不同。然而如果应用软件不支持HTTP下REST API的方式,需要以传统文件服务器协议的方式访问,则需要在面向存储对象前面加一个网关进行协议的转换。
没有了文件存储系统中的NFS或CIFS来给应用提供数据,面向对象的存储系统需要替换掉位于磁盘上的原始数据块和应用可以理解的文件之间的这个抽象层。现在的面向对象的系统使用类似REST标准的API或者私有的API来告诉应用如何存储和读取对象标识。
总体而言,对于面向对象的存储的操作的本质并不会改变。开源对象存储系统O基本上就是POST,GET ,PUT和 DELETE操作,如果需要上传大量的数据,则需要编写一个脚本就可以实现。

⑤ 对象存储系统底层基于什么系统来存取数据

记得在一篇介绍对象存储的文章开头这样写道“那些没有为数据库或文件系统写过代码的上了年纪的程序员应该不太可能会读这篇文章。毕竟,一般商业应用程序访问其他数据类型的模式已经存在超过 40年了。” 言下之意,对象存储代表了新时代下的新型数据结构类型,但是对象存储的出现也与存储发展的历史密不可分。在Web2.0、云和数字内容爆发的时代,类似数字视频和移动网络之类事物的增长,产生了极大量的非结构化数据。存储厂商也推出了新的基于对象的存储系统,从而来提供更加简单的管理和具有更佳扩展性的元数据格式。相比传统存储,对象存储的关键优势在于其简单性。由于对象存储不依赖于LUNs和卷,因此新的存储容量可以通过简单配置加入到运行系统中,实现横向扩展( scale-out)。 对象存储与Hadoop 云存储 目前,对象存储的规模部署则由云服务所引领,如亚马逊 S3、Facebook。现在,无论成熟厂商还是新兴厂商的对象存储解决方案都已达到相当的成熟度,因而IT部门开始考虑如何在自己企业中实现对象存储。除了面向对象的存储,还有基于Hadoop的云存储。中国惠普云计算事业部高级产品经理吕洪在近期的视频访谈中提到:“对于那些要求访问控制的应用,对象存储系统是个不错的选择,而用云进行大数据分析的则要考虑Hadoop。” 对象存储系统可以在一个持久稳固且高度可用的系统中存储任意的对象,且独立于虚拟机实例之外。应用和用户可以在对象存储中使用简单的API访问数据;这些通常都基于REST架构,但是也有面向编程语言的界面。 同时,需要在云端进行大数据分析的用户则可以考虑Hadoop云存储,比如AWS提供了弹性Map Rece (EMR)。云存储选择适用于广泛的需求,但是要针对你的需求找到正确的存储类型,也意味着要找到延迟、易用性、数据完整性和成本之间的合适的平衡点。 对象存储数据迁移和访问 企业对存储的诉求有一定的延续性,但其访问的介质不外乎是主机、PC、移动端以及应用,针对不同的访问介质来看,面向对象存储的解决方案也有所不同。比如微信,我们可以在微信中上传和访问照片、视频等内容,这是一种面向对象数据的访问和存储方式;然而如果应用软件不支持HTTP下REST API的方式,需要以传统文件服务器协议的方式访问,则需要在面向存储对象前面加一个网关进行协议的转换。 没有了文件存储系统中的NFS或CIFS来给应用提供数据,面向对象的存储系统需要替换掉位于磁盘上的原始数据块和应用可以理解的文件之间的这个抽象层。现在的面向对象的系统使用类似REST标准的API或者私有的API来告诉应用如何存储和读取对象标识。 总体而言,对于面向对象的存储的操作的本质并不会改变。吕洪介绍:“比如我们熟悉的开源对象存储系统OpenStack Swift。基本上就是POST,GET ,PUT和 DELETE操作,如果你需要上传大量的数据,则需要编写一个脚本就可以实现。” 惠普的对象存储创新 OpenStack Swift是一种开源的对象存储系统,以一种既满足了存储数据服务等级要求且经济的方式实现。从高可用性以及安全稳定的角度上看,目前开源Swift并不如传统厂商做的好,但是却可以通过标准的服务器,集合Swift搭建出一个能用且经济的方案。 但是传统厂商有自己的优势,从对象存储的设计结构来看分为三层,底层硬件基础架构用来承载数据,在此之上则是面向对象的管理软件,也就是系统层,最顶层为接口层,也就是用户通过何种方式来存取数据。吕洪表示:“在这三个层次上面惠普的解决方案都有涉及。” 众所周知,惠普一直以来都在基于OpenStack进行持续研发,推出更加符合企业级用户要求的解决方案。此外,惠普实验室中也在基于ProLiant x86服务器,力求为swift寻找到一种更经济的承载方式。惠普基于OpenStack Swift构建的Helion Content Depot则是第一款集成化的完整对象存储解决方案,针对横向扩展的对象存储,提供当今企业存储系统所需的高度可扩展性、易管理性、恢复能力和安全性。 吕洪提到:“预期不久的将来,惠普则会正式推出专门针对大数据的面相对象存储的服务器阿波罗4510。”据了解,阿波罗4510的一个机柜中可以提供5.4PB的容量,这是在目前整个行业中,单机柜容量最大的存储解决方案。 除此之外,惠普还提供了面相对象存储的数据加密工作,一部分确保用户的数据在传输过程中是加密的,另一方面也首创硬件的加密,确保对象存储数据的安全性。

热点内容
开放上网如何设密码 发布:2025-09-24 11:31:08 浏览:555
编译原理语义分析实验报告 发布:2025-09-24 11:24:18 浏览:747
手机电脑文件夹同步 发布:2025-09-24 11:17:13 浏览:391
华为怎么关闭安卓系统 发布:2025-09-24 10:56:48 浏览:1003
其他配置是什么意思 发布:2025-09-24 10:52:52 浏览:45
倩女幽魂巧燕脚本 发布:2025-09-24 10:26:28 浏览:68
linux下c的编译 发布:2025-09-24 10:14:39 浏览:946
禁用firefox缓存 发布:2025-09-24 10:10:24 浏览:93
java行读取txt文件 发布:2025-09-24 09:55:01 浏览:700
我的世界电脑版基岩版服务器推荐 发布:2025-09-24 09:51:50 浏览:889