Ceph对象存储 - windows上安装s3cmd

s3cmd 是为了管理 Linux 服务器上的 S3 存储桶而创建的。 但我们也在 Windows 服务器上使用这个工具。 本文将帮助您在 Windows 系统中设置 s3cmd Requirment s3cmd 系统要求: s3cmd 需要 Python 2.7 或更高版本才能运行,还需要安装GPG。 步骤1:安装 Python 从 python 官方网站下载并安装 python 2.7 或更高版本并安装。安装python后,将将其加到 PATH 环境变量。 步骤 2: 在 Windows 上安装 GPG Gpg4win (GNU Privacy Guard for Windows) 是一款用于数字加密 (file, email) 的免费软件,可以使用以下链接下载并安装它。 步骤3:配置 s3cmd 下载最新的 s3cmd 源代码 从s3cmd 官方页面 并解压; 提取源代码后,使用以下命令设置 s3 环境。 它会询问您的 对象存储的 AccessKey 和 SecretKey,即 GPG 命令的路径 bat 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 34 35 36 37 C:s3cmd> python s3cmd --configure Enter new values or accept defaults in brackets with Enter....

 ·  · 

Ceph对象存储 - 使用s3cmd管理对象存储

s3cmd 是一个 Amazon S3 工具,可以用于创建 s3 bucket、向对象存储中上传,检索和管理数据,在下文将如何在 Linux 上如何安装和使用 “s3cmd” 工具。 在 Linux 上安装 s3cmd s3cmd 在 Ubuntu/Debian, Fedora/CentOS/RHEL 这类发行版上的默认软件包存储库中都是可用的,只需在执行对应发行版的安装命令即可安装。 CentOS/RHEL/Fedora bash 1 2 3 4 # centos 8 $ sudo dnf install s3cmd # centos 7 $ sudo yum install s3cmd Ubuntu/Debian bash 1 sudo apt-get install s3cmd 安装最新版本 通常包管理仓库中的版本比较旧,或者使用的 Linux 没有包管理来获取最新版本的 s3cmd,那么可以使用源代码在系统上安装最新版本的 s3cmd,下载地址可以参考附录1 [1] 下面以 2.2 版本进行安装 bash 1 2 $ wget https://sourceforge.net/projects/s3tools/files/s3cmd/2.2.0/s3cmd-2.2.0.tar.gz $ tar xzf s3cmd-2.2.0.tar.gz 使用以下命令和源文件安装...

 ·  · 

Ceph对象存储 - 桶策略 Bucket Policy

CEPH RGW 支持 Bucket 的 S3 策略语言,但又不完全类似于 S3 的策略,因为 S3 中策略是基于 AWS 的,某些属性在 CEPH 中并不存在,下面就解开 RGW 关于桶策略的配置。 Bucket Policy (桶策略,下文中统称为 BP) 是对象存储中的管理权限和对象存储访问的机制。 Policy Language 的组成 BP 的格式采用了 JSON 语言,也就是 PL 是基于 JSON 的一种策略语言,他的格式主要为几个元素 json 1 2 3 4 5 6 7 8 9 { "Version": "2012-10-17", "Statement": [{ "Effect": ..., "Principal": ..., "Action": ..., "Resource": ... }] } 该结构由 ==一个== Version (表示当前版本) 和 ==一个或多个== Statement 数组组成,这些数组定义了希望应用的策略。每个语句数组中都有Effect, Principal, Action, Resource 和可选的 Condition 元素。...

 ·  · 

ceph常用命令

测试上传/下载对象 存取故据时,客户端必须首先连接至RAD05集群上某存储地,而后根据对像名称由相关的中CRUSH规则完成数据对象寻址。于是为了测试集群的数据存储功能,首先创建一个用于测试的存储池mypool,并设定其PG数量为16个。 sh 1 ceph osd pool create mypool 16 16 而后,即可将测试文件上传至存储池中。例如下面的rados put命令将/etc/hosts rados lspool 显示存储池 rmpool 删除存储池 mkpool 创建存储池 rados mkpool mypool 32 32 sh 1 2 rados mkpool {name} {pgnum} {pgpnum} rados mkpool test 32 32 sh 1 2 $ ceph osd pool create testpool 32 32 pool 'testpool' created 列出存储池 text 1 2 3 4 5 6 7 8 9 $ ceph osd pool ls mypool rbdpool testpool $ rados lspools mypool rbdpool testpool 而后即可将测试文件上传到存储池中,例如将rados put命令将/etc/issue文件上传至testpool存储池,对象名称仍然较保留文件名issue,而rados ls可以列出指定存储池中的数据对象...

 ·  · 

Ceph重新平衡 - Rebalance

Rebalance 当 Ceph 集群在扩容/缩容后,Ceph会更新 Cluster map, 在更新时会更新 Cluster map 也会更新 “对象的放置” CRUSH 会平均但随机的将对象放置在现有的 OSD 之上,在 Rebalancing 时,只有少量数据进行移动而不是全部数据进行移动,直到达到 OSD 与 对象 之间的平衡,这个过程就叫做 Ceph 的 Rebalance。 需要注意的是,当集群中的 OSD 数量越多,那么在做 Rebalance 时所移动的就越少。例如,在具有 50 个 OSD 的集群中,在添加 OSD 时可能会移动 1/50th 或 2% 的数据。 如下图所示,当前集群有两个 OSD,当在集群中添加一个 OSD,使其数量达到3时,这个时候会触发 Rebalance,所移动的数量为 OSD1 上的 PG3 与 OSD2 上的 PG 6和9 图:Ceph Rebalancing 示意图 Source:https://access.redhat.com/documentation/zh-cn/red_hat_ceph_storage/4/html/architecture_guide/ceph-rebalancing-and-recovery_arch Balancer 执行 Rebalance 的模块时 Balancer,其可以优化 OSD 上的放置组 (PG) ,以实现平衡分配。 可以通过命令查看 balancer 的状态 bash 1 ceph balancer status https://docs....

 ·  ·