系列导航

一、swift对象存储环境搭建

二、swift添加存储策略

三、swift大对象--动态大对象

四、swift大对象--静态态大对象

五、java操作swift对象存储(官网样例)

六、java操作swift对象存储(resultful方式实现)

七、java操作swift对象存储(动态大对象)

八、java操作swift对象存储(静态大对象)

  上一章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添加存储策略的更多相关文章

  1. openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 二

    openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 一 openstack-r版(rocky)搭建基于centos7.4 的openstac ...

  2. swift对象存储安装

    对象存储服务概览 OpenStack对象存储是一个多租户的对象存储系统,它支持大规模扩展,可以以低成本来管理大型的非结构化数据,通过RESTful HTTP 应用程序接口. 它包含下列组件: 代理服务 ...

  3. openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 三

    openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 一 openstack-r版(rocky)搭建基于centos7.4 的openstac ...

  4. Hdfs存储策略

    一.磁盘选择策略 1.1.介绍 在HDFS中,所有的数据都是存在各个DataNode上的.而这些DataNode上的数据都是存放于节点机器上的各个目录中的,而一般每个目录我们会对应到1个独立的盘,以便 ...

  5. Spring Boot 揭秘与实战(二) 数据存储篇 - ElasticSearch

    文章目录 1. 版本须知 2. 环境依赖 3. 数据源 3.1. 方案一 使用 Spring Boot 默认配置 3.2. 方案二 手动创建 4. 业务操作5. 总结 4.1. 实体对象 4.2. D ...

  6. Spring Boot 揭秘与实战(二) 数据存储篇 - MongoDB

    文章目录 1. 环境依赖 2. 数据源 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 3. 使用mongoTemplate操作4. 总结 3.1. 实体对象 3 ...

  7. Spring Boot 揭秘与实战(二) 数据存储篇 - Redis

    文章目录 1. 环境依赖 2. 数据源 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 3. 使用 redisTemplate 操作4. 总结 3.1. 工具类 ...

  8. Spring Boot 揭秘与实战(二) 数据存储篇 - JPA整合

    文章目录 1. 环境依赖 2. 数据源 3. 脚本初始化 4. JPA 整合方案一 通过继承 JpaRepository 接口 4.1. 实体对象 4.2. DAO相关 4.3. Service相关 ...

  9. Spring Boot 揭秘与实战(二) 数据存储篇 - MyBatis整合

    文章目录 1. 环境依赖 2. 数据源3. 脚本初始化 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 4. MyBatis整合5. 总结 4.1. 方案一 通过 ...

  10. Spring Boot 揭秘与实战(二) 数据存储篇 - 数据访问与多数据源配置

    文章目录 1. 环境依赖 2. 数据源 3. 单元测试 4. 源代码 在某些场景下,我们可能会在一个应用中需要依赖和访问多个数据源,例如针对于 MySQL 的分库场景.因此,我们需要配置多个数据源. ...

随机推荐

  1. keil 5 安装教程

    一.下载 keil 官网 二.安装教程 1.开始安装 双击安装包,开始安装,直接下一步 2.勾选同意,下一步 3.选择软件安装路径,下一步 4.填写信息 可以随意填写,下一步. 5.等待安装 6.安装 ...

  2. nginx的location与proxy_pass指令超详细讲解及其有无斜杠( / )结尾的区别

    本文所使用的环境信息如下: windows11 (主机系统) virtual-box-7.0环境下的ubuntu-18.04 nginx-1.22.1 (linux) 斜杠结尾之争 实践中,nginx ...

  3. PWA 离线方案研究报告

    本文并不是介绍如何将一个网页配置成离线应用并支持安装下载的.研究PWA的目的仅仅是为了保证用户的资源可以直接从本地加载,来忽略全国或者全球网络质量对页面加载速度造成影响.当然,如果页面上所需的资源,除 ...

  4. erp——绩效考核系统——数据需求说明书

    绩效考核--数据需求说明书 1.引言 1.1编写目的 数据要求说明书详细的提供了系统中各个数据的流向,是设计数据库的关键所在,为以后的编码以及测试提供一份可靠的依据. 1.2 对象 本<数据要求 ...

  5. CompletableFuture入门

    CompletableFuture入门 1.Future vs CompletableFuture 1.1 准备工作 先定义一个工具类 import java.nio.file.Files; impo ...

  6. 如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 1

    本系列将分成三个部分,您将学习如何使用 Helm 在 Kubernetes 上集成 Prometheus 和 Grafana,以及如何在 Grafana 上创建一个简单的控制面板.Prometheus ...

  7. Lean大神编译的OpenWRT问题汇总

    1.初始密码为password,登录路由器后第一件事要修改默认密码 2.Lean大神编译的OpenWRT无法SSH.SFTP, 3.为了方便操作,一定要编译的时候安装TTYD,但是TTYD默认无法打开 ...

  8. Luogu P4592 [TJOI2018]异或 做题记录

    随机跳的. 树上维护序列,显然树剖.维护异或,显然 01trie. 01trie 维护区间异或,显然可持久化一下. 看到时限很大,显然可以双 log. 于是跑一边树剖,再根据 id 暴力建一个 可持久 ...

  9. Asp .Net Core系列:Exceptionless简介和部署(Windows、Linux、Docker)

    目录 一.简介 二.版本 三.运行说明 1.Exceptionless 2.Elasticsearch 3.Exceptionless.UI 四.打包Exceptionless.UI 五.window ...

  10. NebulaGraph实战:2-NebulaGraph手工和Python操作

      图数据库是专门存储庞大的图形网络并从中检索信息的数据库.它可以将图中的数据高效存储为点(Vertex)和边(Edge),还可以将属性(Property)附加到点和边上.本文以示例数据集basket ...