




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京协力泽仁OpenStack Swift存储策略OpenStackSwift对象存储及其存储策略简介 Swift2.0于2014年7月8日发布,其中最重要的新特性是存储策略(StoragePolicy),该特性改变了以往存储系统中存储策略由设计与实施方决定的做法,让用户能够以Container为粒度,为不同需求的数据指定不同的副本数量、不同参数的纠删码、不同性能的存储介质、不同地理位置、不同的后端存储设备。存储策略充分体现了Swift软件定义存储(SoftwareDefinedStorage)的特点。为了实现存储策略,Swift在原先三个环(Ring)的架构基础上进行了改进。Swift为账户、容器和对象分别定义了的环,通过环将虚拟节点(分区)映射到一组物理存储设备上。在Swift2.0中,每个存储策略对应一个ObjectRing。Swift存储策略的配置与使用 配置存储策略 设置存储策略分为两步:编辑配置文件swift.conf文件,创建相应的ObjectRing。在配置文件中每个存储策略以storage-policy:N开头,其中N是策略的编号。对于该文件的解析遵循以下规则:1. 如果该文件中没有声明任何策略,Swift会自己创建一个;2. 策略编号应当位非负整数;3. 如果没有声明默认策略,Swift会把编号为0的策略设为默认策略;4. 策略编号必须唯一;5. 策略应当具有名字,策略命名区分大小且必须唯一;6. 策略名称只能包含字母、数字和连字符,Policy-0只能用于编号为0的策略;7. 定义策略之后,应当有一个且仅有一个策略被指定为默认策略;8. 废弃(Deprecated)策略不能同时为默认策略。下面是一个swift.conf文件的示例:js view plaincopyprint?1. swift-hash2. #randomuniquestringsthatcanneverchange(DONOTLOSE)3. swift_hash_path_prefix=changeme4. swift_hash_path_suffix=changeme5. 6. storage-policy:07. name=apple8. default=yes9. 10. storage-policy:111. name=orange12. deprecated=yesswift-hash# random unique strings that can never change (DO NOT LOSE)swift_hash_path_prefix = changemeswift_hash_path_suffix = changemestorage-policy:0name = appledefault = yesstorage-policy:1name = orangedeprecated = yes完成swift.conf 文件的编辑,下一步是为每个存储策略创建相应的Object Ring,方法和创建老版本 Object Ring类似,只是要在object 后面加上-N,这里的 N 是存储策略的编号。例如,为上述编号为 0和1的存储策略创建Object Ring: js view plaincopyprint?1. swift-ring-builderobject-0.buildercreate10312. swift-ring-builderobject-1.buildercreate1021swift-ring-builder object-0.builder create 10 3 1swift-ring-builder object-1.builder create 10 2 1使用存储策略存储策略的使用非常简单,只需要在创建 container 是指定存储策略即可,下面以 SAIO 部署为例加以说明: js view plaincopyprint?1. curl-v-XPUT-HX-Auth-Token:-H2. X-Storage-Policy:orange3. :8080/v1/AUTH_test/myCont14. curl-XPUT-v-Tfile1.txt-HX-Auth-Token:5. :8080/v1/AUTH_test/myCont1/curl -v -X PUT -H X-Auth-Token: -H X-Storage-Policy: orange :8080/v1/AUTH_test/myCont1curl -X PUT -v -T file1.txt -H X-Auth-Token: :8080/v1/AUTH_test/myCont1/然后执行: js view plaincopyprint?1. curl-XGETv2. :8080/endpoints/AUTH_test/myCont1/file1.txtcurl -X GET v :8080/endpoints/AUTH_test/myCont1/file1.txt例如,会看到如下结果: js view plaincopyprint?1. :6010/sdb1/32/AUTH_test/myCont1/file1.txt,2. :6040/sdb4/32/AUTH_test/myCont1/file1.txt:6010/sdb1/32/AUTH_test/myCont1/file1.txt,:6040/sdb4/32/AUTH_test/myCont1/file1.txt说明 Storage Policy 已经成功发挥作用。存储策略的应用模式 上述提到副本数量的改变,只是存储策略的应用模式的一种,在实际应用中,可以有以下几种模式:1. 缩减或增加冗余 对于一些数据,它们不需要保证很高的数据持久性和可靠性,比较典型的是图像的缩略图,它们可以由原图降采样得到,在这种情况下,可以对原图采用三副本方案,对缩略图采用双副本方案,降低存储系统的开销。图 1.为不同的 Container 指定不同的副本数量 2. 性能分层例如,对于一些数据用 HDD 保存,另一些用 SSD 保存。也可以应用于其他存储介质,甚至是不同的存储设备。图 2.为不同的 Container 指定不同的存储介质3. 地理位置约束在某些场景下,因为公司或者国家的政策的约束,某些数据必须存储在指定的地理位置,例如混合云场景。有些场景下,用户希望指定数据存放在距离访问客户端比较近的地方。图 3.为不同的 Container 指定不同的存储位置4. 应用纠删码(Erasure Codes)对于性能要求不高的场合,应用纠删码。纠删码,又称为删除码,将对象分割为m个分片(fragments),并通过编码生成k个校验分片,最后将这n=m+k个分片放到 Swift 对象存储系统的不同位置(通常是 swift 的不同 zone 中)。对于将 m 个分片编码为 n 个分片的纠删码,记为EC(m,n)。纠删码的示意图如下:图 4.纠删码示意图纠删码在提高存储空间利用率的同时,保持或增加数据的持久性(durability)和可靠性。但是由于编码、解码和恢复数据往往需要较大的计算量,可能导致性能的降低,所以比较适用于对持久性和可靠性要求比较高,但
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 口腔医疗机构护士职责说明
- 地热资源勘察质量及安全保障措施
- 2025年新免签国家协议书
- 2025年胸腔外科肺癌手术后并发症防治测试卷答案及解析
- 2025年康复治疗学竞赛物理治疗技能操作真题答案及解析
- 2025年欠钱延期还钱协议书
- 2025年新深圳格式合同协议书
- 2025年男科前列腺炎诊疗方案评估答案及解析
- 项目负责人安全整改职责
- 2025年骨科创伤骨折处理技巧考核答案及解析
- 搅拌站建设可行性研究报告
- 插秧劳动指导课件
- 幕墙施工培训课件
- 2025年北京东城二中学英语八下期末联考试题含答案
- 2025届安徽省蒙城县英语七下期末考试试题含答案
- 设备巡回检查管理制度
- 产房安全核查管理制度
- 阿尔茨海默症的护理
- (2025)公共基础知识考试试题附及答案
- 中国五矿笔试题库及答案
- 2025年茶叶加工工职业技能竞赛参考试题库500题(含答案)
评论
0/150
提交评论