系列导航

一、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. Codeforces Round 883 (Div. 3)

    Codeforces Round 883 (Div. 3) A. Rudolph and Cut the Rope 题意:有一颗糖果在连在绳子上,求剪短多少根绳子,他能落地 思路:只要绳子长度比钉子高 ...

  2. [Python急救站]文件管理工具

    对于一个程序员,有时候文件太多,忘记放哪里了,那有没有一个可以帮你定位到文件的文件管理工具呢,抱着这样的想法,我做了以下这个代码,可以快速定位找到文件所在位置. import os import tk ...

  3. 聊聊kube-scheduler如何完成调度和调整调度权重

    本文分享自华为云社区<kube-scheduler如何完成调度和调整调度权重>,作者: 可以交个朋友. 一.概述 Kube-scheduler作为k8s集群的默认调度器,它监听(watch ...

  4. Python——第五章:模块(Module)、自定义模块、第3方开源模块、包(Package)

    什么是模块(Module)? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多代码按功能分组,分别放到不同的文件里,这 ...

  5. 构建健康游戏环境:DFA算法在敏感词过滤的应用

    现在的游戏有敏感词检测这一点,相信大家也不陌生了,不管是聊天,起名,签名还是简介,只要是能让玩家手动输入的地方,一定少不了敏感词识别,至于识别之后是拒绝修改还是星号替换,这个就各有各的做法了,但是绕不 ...

  6. k8s 标签-2

    目录 标签-2 node的角色 修改node节点的角色,将他的角色修改成他的主机名 标签的作用 Cordon,Drain以及污点 Cordon--告警警戒 Drain 驱逐演示 污点 污点的Cordo ...

  7. Ubuntu 安装Nvidia 显卡驱动

    在Nvidia官网下载对应驱动:https://www.nvidia.cn/geforce/drivers/ sudo vim /etc/modprobe.d/blacklist.conf black ...

  8. 网站优化之favicon.ico

    本文于2015年底完成,发布在个人博客网站上. 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来. 背景 某一天在办公室分析产品首页加载速度时,无意中从Chrome浏览器的 ...

  9. 【scikit-learn基础】--『监督学习』之 均值聚类

    聚类算法属于无监督学习,其中最常见的是均值聚类,scikit-learn中,有两种常用的均值聚类算法:一种是有名的K-means(也就是K-均值)聚类算法,这个算法几乎是学习聚类必会提到的算法:另一个 ...

  10. LeetCode 数、二叉树、二叉搜索树篇(94、144、145)

    94. 二叉树的中序遍历 给定一个二叉树,返回它的中序 遍历. 示例: 输入: [1,null,2,3] 1 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? / ...