二、swift添加存储策略
系列导航
六、java操作swift对象存储(resultful方式实现)
上一章swift的安装中默认的存储策略是3副本,有的时候数据不是很重要,为了节约存储空间,可以同时设置另一种存储策略比如两副本,在创建容器的时候只要选择存储策略即可。那么如何实现呢请继续向下看。
一、存储策略添加新的策略(一台机器搞好同步到其他机器上)
1、vi /etc/swift/swift.conf
添加如下内容(注:原来的存储策略是policy:0,新增的是policy:1)
[storage-policy:0]
name = gold
default = yes
[storage-policy:1]
name = silver
2、给新的策略生成新的ring
cd /etc/swift
#注:这里设置副本数为2 这里的object-1 的-1跟storage-policy:1中的1是对应的一定要设置对
swift-ring-builder object-1.builder create 18 2 1
swift-ring-builder object-1.builder add z1-192.168.0.1:6000/sdb2 100
swift-ring-builder object-1.builder add z2-192.168.0.2:6000/sdb2 100
swift-ring-builder object-1.builder add z3-192.168.0.3:6000/sdb2 100
确认
swift-ring-builder object-1.builder
生成ring
swift-ring-builder object-1.builder rebalance
3、将/opt/soft/swift/etc 下的 container-reconciler.conf-sample 拷贝到 /etc/swift/下 重命名为container-reconciler.conf
cd /etc/swift
mv container-reconciler.conf-sample container-reconciler.conf
修改文件内容
sed -i "s/# user.*/user = $USER/g" /etc/swift/container-reconciler.conf
4、 vi /etc/swift/proxy-server.conf
如下添加 list-endpoints
[pipeline:main]
pipeline = healthcheck cache tempauth proxy-logging slo list-endpoints proxy-server
[filter:list-endpoints]
use = egg:swift#list_endpoints
5、启动服务查看存储策略有哪些
swift -A http://127.0.0.1:8080/auth/v1.0 -U admin:admin -K admin info
存储策略相关的内容如下:
policies: [{'default': True, 'name': 'gold'}, {'name': 'silver'}]
五、验证
------------------按照默认策略policy:0 创建容器 并向里放入文件-------------------
swift -A http://127.0.0.1:8080/auth/v1.0 -U admin:admin -K admin list
swift -A http://127.0.0.1:8080/auth/v1.0 -U admin:admin -K admin list containerpolicy0
curl http://127.0.0.1:8080/auth/v1.0 -v -H 'X-Storage-User: admin:admin' -H 'X-Storage-Pass: admin'
curl http://127.0.0.1:8080/v1/AUTH_admin/containerpolicy0 -X PUT -H "X-Auth_Token: AUTH_tk7c21eddae31d449db36a5e8596d0cb71"
curl http://127.0.0.1:8080/v1/AUTH_admin/containerpolicy0/1.txt -X PUT -T 1.txt -H "X-Auth_Token: AUTH_tk7c21eddae31d449db36a5e8596d0cb71"
查看对象存储的位置
curl -X GET -v http://127.0.0.1:8080/endpoints/AUTH_admin/containerpolicy0/1.txt
"http://192.168.0.2:6000/sdb1/66136/AUTH_admin/containerpolicy0/1.txt",
"http://192.168.0.3:6000/sdb1/66136/AUTH_admin/containerpolicy0/1.txt",
"http://192.168.0.1:6000/sdb1/66136/AUTH_admin/containerpolicy0/1.txt
客户端方式查看
swift-get-nodes -a /etc/swift/object.ring.gz AUTH_admin containerpolicy0 1.txt
ssh 192.168.0.2 "ls -lah ${DEVICE:-/srv/node*}/sdb1/objects/66136/e0e/40960127e639c0aa7960174fe4fb8e0e"
ssh 192.168.0.3 "ls -lah ${DEVICE:-/srv/node*}/sdb1/objects/66136/e0e/40960127e639c0aa7960174fe4fb8e0e"
ssh 192.168.0.1 "ls -lah ${DEVICE:-/srv/node*}/sdb1/objects/66136/e0e/40960127e639c0aa7960174fe4fb8e0e"
---------------------------按照策略policy:1 创建容器 并向里放入文件-----------------------------
curl http://127.0.0.1:8080/v1/AUTH_admin/containerpolicy1 -X PUT -H "X-Auth_Token: AUTH_tk7c21eddae31d449db36a5e8596d0cb71" -H "X-Storage-Policy: silver"
curl http://127.0.0.1:8080/v1/AUTH_admin/containerpolicy1/2.txt -X PUT -T 2.txt -H "X-Auth_Token: AUTH_tk7c21eddae31d449db36a5e8596d0cb71"
curl -X GET -v http://127.0.0.1:8080/endpoints/AUTH_admin/containerpolicy1/2.txt
"http://192.168.0.1:6000/sdb1/79293/AUTH_admin/containerpolicy1/2.txt",
"http://192.168.0.2:6000/sdb2/79293/AUTH_admin/containerpolicy1/2.txt"
swift-get-nodes -a /etc/swift/object-1.ring.gz AUTH_admin containerpolicy1 2.txt
ssh 192.168.0.1 "ls -lah ${DEVICE:-/srv/node*}/sdb1/objects-1/79293/214/4d6f4a719bb4c01687c4e7840ac36214"
ssh 192.168.0.2 "ls -lah ${DEVICE:-/srv/node*}/sdb2/objects-1/79293/214/4d6f4a719bb4c01687c4e7840ac36214"
六、查看所有的存储信息 如下两种方法都可以
curl -i -X HEAD -H 'X-Auth-Token: AUTH_tk7c21eddae31d449db36a5e8596d0cb71' http://127.0.0.1:8080/v1/AUTH_admin
swift -A http://127.0.0.1:8080/auth/v1.0 -U admin:admin -K admin stat
补充:查看容器存放的物理位置
curl -X GET -v http://127.0.0.1:8080/endpoints/AUTH_admin/jyzSfzContainer
客户端方式查看
swift-get-nodes -a /etc/swift/object.ring.gz AUTH_admin jyzSfzContainer

二、swift添加存储策略的更多相关文章
- openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 二
openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 一 openstack-r版(rocky)搭建基于centos7.4 的openstac ...
- swift对象存储安装
对象存储服务概览 OpenStack对象存储是一个多租户的对象存储系统,它支持大规模扩展,可以以低成本来管理大型的非结构化数据,通过RESTful HTTP 应用程序接口. 它包含下列组件: 代理服务 ...
- openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 三
openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 一 openstack-r版(rocky)搭建基于centos7.4 的openstac ...
- Hdfs存储策略
一.磁盘选择策略 1.1.介绍 在HDFS中,所有的数据都是存在各个DataNode上的.而这些DataNode上的数据都是存放于节点机器上的各个目录中的,而一般每个目录我们会对应到1个独立的盘,以便 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - ElasticSearch
文章目录 1. 版本须知 2. 环境依赖 3. 数据源 3.1. 方案一 使用 Spring Boot 默认配置 3.2. 方案二 手动创建 4. 业务操作5. 总结 4.1. 实体对象 4.2. D ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - MongoDB
文章目录 1. 环境依赖 2. 数据源 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 3. 使用mongoTemplate操作4. 总结 3.1. 实体对象 3 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - Redis
文章目录 1. 环境依赖 2. 数据源 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 3. 使用 redisTemplate 操作4. 总结 3.1. 工具类 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - JPA整合
文章目录 1. 环境依赖 2. 数据源 3. 脚本初始化 4. JPA 整合方案一 通过继承 JpaRepository 接口 4.1. 实体对象 4.2. DAO相关 4.3. Service相关 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - MyBatis整合
文章目录 1. 环境依赖 2. 数据源3. 脚本初始化 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 4. MyBatis整合5. 总结 4.1. 方案一 通过 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - 数据访问与多数据源配置
文章目录 1. 环境依赖 2. 数据源 3. 单元测试 4. 源代码 在某些场景下,我们可能会在一个应用中需要依赖和访问多个数据源,例如针对于 MySQL 的分库场景.因此,我们需要配置多个数据源. ...
随机推荐
- Excel 中使用数据透视图进行数据可视化
使用数据透视表(PivotTable)是在Excel中进行数据可视化的强大工具.下面将提供详细的步骤来使用数据透视表进行数据可视化. **步骤一:准备数据** 首先,确保你有一个包含所需数据的Exce ...
- 在 Sealos 中使用区块链技术实现统一支付系统
拿着区块链技术不一定是去发币,很多业务系统也适合用这些技术,比如做个统一支付系统,积分系统等,可以做为一家公司的金融基础设施,或支付中台.拿链的技术去做有很多好处: 高可用,自带多区域高一致性的能力, ...
- Python 中 key 参数的含义及用法
哈喽大家好,我是咸鱼 我们在使用 sorted() 或 map() 函数的时候,都会看到里面有一个 key 参数 其实这个 key 参数也存在于其他内置函数中(例如 min().max() 等),那么 ...
- 【C#】【System.Linq】一些便捷的数据处理方法(Range、Select)
因为用习惯了Python中一些便捷的方法,随即查询C#中有没有类似的. 一.Range()方法 在Python中,range(Start,End,Step)可以直接生成一个可迭代对象,便用于需要循环多 ...
- 【eBPF-02】入门:基于 BCC 框架的程序进阶
本文是 eBPF 系列的第二篇文章,我们来学习 eBPF BCC 框架的进阶用法,对上一篇文章中的代码进行升级,动态输出进程运行时的参数情况. 主要内容包括: 通过 kprobe 挂载内核事件的 eB ...
- 2023.3 Idea配置Tomcat环境
tomcat配置 下载tomcat 先到官网(按住Ctrl再左键点击直接打开官网)下载64位的tomcat,网速慢就用魔法下 创建项目.模块 打开idea(我用的是最新的idea的专业版,ui有点变化 ...
- python在容器内克隆拉取git私有仓库
前言 目前有个python应用需要在容器镜像内拉取git私有仓库的代码,一开始的想法是用GitPython,折腾一番ssh私钥和known_hosts问题后,发现还是在镜像中封装个git最省事,然后用 ...
- GOF23--23种设计模式(三)
一.桥接模式 Java中的桥接模式(Bridge Pattern)是一种结构性设计模式,它将抽象部分和实现部分分离,使它们可以独立变化,同时通过桥接对象将它们连接起来. 这种模式将抽象与其实现解耦,使 ...
- 增长黑客招聘条件 JD
HubSpot招聘T型营销人员加入我们的营销团队.担任此职务后,您将成为第二个致力于HubSpot正在构建的新产品的营销人员.由于其高度机密,我们无法告诉您该产品是什么. 我们正在寻找符合以下条件的人 ...
- GaussDB(DWS)查询过滤器原理与应用
摘要:GaussDB(DWS)查询过滤器(黑名单)提供查询过滤功能,支持自动隔离反复被终止的查询,防止烂SQL再次执行. 本文分享自华为云社区<GaussDB(DWS)查询过滤器原理与应用> ...