问题标签 [radosgw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
735 浏览

docker - 在 CentOS 上安装时找不到 Ceph

我无法在我的 centos 7 系统上安装 Ceph。错误信息如下:

0 投票
1 回答
3206 浏览

python - Ceph radosgw - 存储桶策略 - 默认使所有对象公开读取

我与一组通过 radosgw 将对象上传到 s3 样式存储桶的非开发人员一起工作。所有上传的对象都需要公开可用,但它们不能以编程方式执行此操作。有没有办法让对象的默认权限为公共读取,这样就不必每次都手动设置?必须有一种方法可以做到这一点boto,但我还没有找到任何例子。有一些使用 AWS 的 GUI 浮动,但这不是我的选择。:(

我正在创建一个这样的存储桶:

我将策略设置为公共读取,这似乎允许人们将存储桶作为目录浏览,但存储桶中的对象不继承此权限。

澄清一下,我知道我可以像这样在每个对象的基础上解决这个问题:

但是我的最终用户无法做到这一点,所以我需要一种方法来使其成为上传文件的默认权限。

0 投票
1 回答
460 浏览

storage - 如何以 URL 直接访问 Ceph 上的文件

我需要一个具有以下要求的存储系统: 1. 它应该支持数据/服务集群 2. 它应该是开源的,以便我以后可以在需要时扩展功能 3. 它应该支持文件系统,因为我想访问一些文件作为公共网址(直接访问)。这样我就可以将我的脚本存储在这些文件中并直接引用这些文件。4. 支持某种身份验证 5. 我希望它在本地(不是云)。

Ceph 似乎符合所有标准,但它是否支持文件的公共访问,就像 URL(第 3 点)一样?虽然它能够生成临时 URL,但我想要几个文件的永久 URL。

0 投票
2 回答
936 浏览

ceph - Ceph rgw LDAP 授权

我尝试设置 LDAP(Active Directory)身份验证 ceph rgw。我的 ceph 版本 12.2.2。我的配置文件 ceph.conf

在 rgw host 我做了三个命令

这些命令的结果是 base64 字符串:

在解码状态下,字符串看起来像这样。登录名和密码在这一行

为了连接到 rgw,我使用 python boto。我不明白变量 aws_secret_access_key 的用途需要值

脚本的执行给出了这个结果:

cephrgwhost 日志的内容(日志文件 /var/log/ceph/ceph-client.rgw.cephrgwhost.log)。我正在查看 cephrgwhost 和 adceph.ceph.int 之间的流量,不存在 ldap 流量

0 投票
1 回答
115 浏览

ceph - 头孢。什么 osd 选择从它实际返回数据(ceph 逻辑)

我使用 nginx->radosgw->ceph 集群,其中每条放置的数据同时放置在 3 个 osd 上(每个 osd 是一个单独的 osd 服务器)整个集群包含 9 个 osd 服务器。Ceph v10(如果这很重要)

比如说,我的数据是一个 5KiB 的小文件。集群处于正常状态。

问题:当我通过 nginx->radosgw 从集群中获取(请求)我的数据时,OSD 选择了什么来从 SSD 磁盘接收实际信息?

  1. 这是一个返回整个 5KiB 数据的“主”OSD 吗?

  2. 这是否是所有 3 个 OSD 都包含这块,它同时从每个 3 个 OSD 返回整个 5KiB 数据?

  3. 除了保存这块 5KiB 数据的 3 个 OSD 中的一个之外,这是否是任何一个,它选择返回实际数据,并且数据可以从 3 个 OSD 中的任何一个返回,但只有一个选定的 OSD 会返回整个 5KiB 数据?

  4. 这是 3 个 OSD 中的任何一个,它保存了这块 5KiB 数据,它返回,比如 osd1 返回 1KiB + osd2 返回 3KiB + osd8 返回 1KiB = 5KiB ?

逻辑是什么?

感谢您耐心阅读上述选项。提前感谢您的答案。

0 投票
1 回答
355 浏览

ceph - Ceph 如何使用 STS 服务?

我想使用 STS 服务生成临时凭据以供第三方客户端使用。

我根据文档配置了 STS lite 。

这是我的配置文件:

当我执行 getSessionToken 方法时,返回 405 错误:

这是我的测试代码:

谁能告诉我是我的配置不正确还是我测试的版本不提供 STS 服务?

这些是我测试的版本:

0 投票
1 回答
1040 浏览

amazon-s3 - Boto3 将对象结果放入 botocore.exceptions.ReadTimeoutError

我已经在每个节点上设置了两个带有 rados 网关的 ceph 集群。我想要实现的是将所有对象从集群“1”中具有端点的存储桶“A”转移到可以从集群“2”上的另一个端点访问的存储桶“B”。这对我的问题并不重要,但至少你了解上下文。

我使用 boto3 模块在 python 中创建了一个脚本。脚本真的很简单。我只是想把一个对象放在一个桶里。

相关部分如下:

(hello.txt 只包含一个单词)

假设这个脚本是从我的集群 1 中的一个节点(即 radosgw 端点节点)编写并运行的。当“endpoint_url”是我运行脚本的节点时它运行良好,但当我运行时它不起作用我试图到达我的另一个端点(radosgw,位于我的集群“2”中的另一个节点中)。

我收到了这个错误:

奇怪的是我可以创建一个没有任何错误的存储桶:

我什至可以列出我的两个端点的存储桶。

你知道为什么我可以做几乎所有事情,但不能在我的第二个端点中放置一个对象吗?

我希望它有任何意义。

0 投票
1 回答
375 浏览

node.js - rados_clone_range返回的-95错误码是什么意思?

我有 node.js 版本 12.4.0 的 Ceph rados 客户端。

我想将一个对象的一部分复制到另一个对象。并且有一个为此操作编写的方法。它的名字是 clone_range,它使用了 librados 的 rados_clone_range 函数。

向此函数 (rados_clone_range) 提供参数后返回错误代码 -95。

rados_clone_range返回的-95错误码是什么意思???

库文件

/* 有效地将一个对象的一部分复制到另一个对象 如果 OSD 上的底层文件系统支持它,这将是一个写时复制克隆。src 和 dest 对象必须在同一个 pg 中。为了确保这一点,io 上下文应该有一个定位键集(请参阅 rados_ioctx_locator_set_key())。

  • @param io 克隆数据的上下文
  • @param dst 目标对象的名称
  • @param dst_off 目标对象内的偏移量(以字节为单位)
  • @param src 源对象的名称
  • @param src_off 源对象内的偏移量(以字节为单位)
  • @param len 要复制多少数据
  • @returns 0 成功,负错误码失败 */

rados.cc

例子.js

0 投票
1 回答
3933 浏览

java - 无法使用使用 HTTPS 的 AWS S3 Java API 访问 S3 上的存储桶

尝试访问我们的本地 S3 存储时,我首先遇到了缺少证书的问题:

线程“主”com.amazonaws.SdkClientException 中的异常:无法执行 HTTP 请求:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

关闭证书检查:

System.setProperty(SDKGlobalConfiguration.DISABLE_CERT_CHECKING_SYSTEM_PROPERTY, "true");

我管理“连接”到服务器。但这不会产生任何结果(又名空列表),使用下面的代码。到目前为止很简单。

端点和存储桶名称都应该是正确的,因为我将它们从(工作的)S3 浏览器中剪切下来。

凭据似乎也是正确的,因为当我把它们弄乱时,我正在运行 404。再次 - 从 y S3 浏览器复制那些。

使用 S3 浏览器,我可以访问存储桶、添加文件等等。

运行List<Bucket> buckets = s3Client.listBuckets();时它只返回一个空列表 - 没有任何例外。

控制台输出为:

2019 年 7 月 3 日 8:48:07 NACHM。com.amazonaws.http.AmazonHttpClient createSocketFactoryRegistry 警告:已明确禁用端点的 SSL 证书检查。2019 年 7 月 3 日 8:48:08 NACHM。com.amazonaws.auth.profile.internal.BasicProfileConfigLoader loadProfiles 警告:您的配置文件名称包含“配置文件”前缀。这被认为是 Java SDK 中配置文件名称的一部分,因此当您从 Java 代码中引用此配置文件时,您需要在配置文件名称中包含此前缀。2019 年 7 月 3 日 8:48:08 NACHM。com.amazonaws.auth.profile.internal.BasicProfileConfigLoader loadProfiles 警告:您的配置文件名称包含“配置文件”前缀。这被认为是 Java SDK 中配置文件名称的一部分,因此,当您从 Java 代码中引用此配置文件时,您需要在配置文件名称中包含此前缀。2019 年 7 月 3 日 8:48:23 NACHM。com.amazonaws.http.AmazonHttpClient createSocketFactoryRegistry 警告:已明确禁用端点的 SSL 证书检查。

有什么建议吗?

运行List<Bucket> buckets = s3Client.listBuckets();时它只返回一个空列表 - 没有任何例外。

此存储桶的根目录中有(根据 S3 浏览器)2 个文件。

控制台输出为:

2019 年 7 月 3 日 8:48:07 NACHM。com.amazonaws.http.AmazonHttpClient createSocketFactoryRegistry 警告:已明确禁用端点的 SSL 证书检查。2019 年 7 月 3 日 8:48:08 NACHM。com.amazonaws.auth.profile.internal.BasicProfileConfigLoader loadProfiles 警告:您的配置文件名称包含“配置文件”前缀。这被认为是 Java SDK 中配置文件名称的一部分,因此当您从 Java 代码中引用此配置文件时,您需要在配置文件名称中包含此前缀。2019 年 7 月 3 日 8:48:08 NACHM。com.amazonaws.auth.profile.internal.BasicProfileConfigLoader loadProfiles 警告:您的配置文件名称包含“配置文件”前缀。这被认为是 Java SDK 中配置文件名称的一部分,因此,当您从 Java 代码中引用此配置文件时,您需要在配置文件名称中包含此前缀。2019 年 7 月 3 日 8:48:23 NACHM。com.amazonaws.http.AmazonHttpClient createSocketFactoryRegistry 警告:已明确禁用端点的 SSL 证书检查。

有什么建议吗?

0 投票
2 回答
223 浏览

amazon-s3 - 是否可以在没有查询参数的情况下生成 S3 下载 URL?

我使用的是 Ceph Rados 网关提供的 S3 实例,而不是 Amazon S3。

我可以生成这样的下载网址:

但某些客户端,如 iPXE 似乎无法处理从包含查询参数的 HTTP 源下载。我真的不在乎 url 的格式是什么,只要它可以被挑剔的客户下载。

这甚至可能吗?