《openstackapacswiftalexyang120813103312phpapp02.ppt》由会员分享,可在线阅读,更多相关《openstackapacswiftalexyang120813103312phpapp02.ppt(33页珍藏版)》请在三一办公上搜索。
1、,在这里写上你的标题,副标题文字副标题文字,作者名字/日期,Swift架构与实践,SinaAppEngine,杨雨/2012-08-11,000102030405,写上你的文字你的文字,Content,1 Principles and Architecture2 The Practice of Swift SinaAppEngine3 Problems and Imporvemetns,000102030405,写上你的文字你的文字,Storage Types,000102030405,写上你的文字你的文字,Storage Types,From:http:/,Targets,High Reli
2、ability=High Durability+High AvailabilityHigh Durability-Replicas and RecoveryHigh Availability-Replicas and PartitionLow Cost-Commodity HardwareScale Out-No Single Bottleneck,Share Nothing,Reliability,Consistent Hashing,Reliability,Consistent Hashing with Virtual Node,Reliability,Consistent Hashing
3、 with Virtual Node,Reliability,The advantages of consistent hashing:Metadata is small;(AWS S3 has 762 billion objects)Distribution unformity;Peer to perr comunication;Load blance.,Reliability,Virtual node(partition)-Object distribution uniformityWeight-Allocate partitions dynamicallyZone-Partition T
4、oleranceZones can be used to group devices based on physical locations,power separations,network separations,or any other attribute that would lessen multiple replicas being unavailable at the same time.,Swift:Ring-The index file for locating object in the cluster.,Reliability,Reliability,Durability
5、:99.999.9%?AWS S3 with 99.999999999%,Annualized failure rate of devices.(disk,network.)Bit rot rate and the time to detect bit rot.Mean time to recovery.More about durability:http:/,Swift:Auditor-To detect bit rot;Replicator-To keep the consistency of object;,Consistency Model,Consistency Model,Quro
6、um+Object Version+Async Replicatiton,Quroum Protocol:N,the number of nodes that store replicas of the data;W,the number of replicas that need to acknowledge the receipt of the update before the update completes;R,the number of replicas that are contacted when a data object is accessed through a read
7、 operation;If W+RN,then the write set and the read set always overlap and one can guarantee strong consistency.In Swift,NWR is configurable.General configuration:N=3,W=2,R=1 or 2,So the swift can providetwo models of consistency,strong and eventual.,Consistency Model,Weak Consistency(N=3,W=2,R=1),Co
8、nsistency Model,Strong Consistency(N=3,W=2,R=2),Consistency Model,Special Scene:dirty read,Architecture Prototype,Metadata,account|-container1|-obj1|-obj2|-container2|-objN,How to store the relationship of account,container and object?Relation DatabaseNoSQL,Cassandra,MongoDBRelation Datatbase with S
9、harding,Metadata,The Swift way:sqlite+consistent hashing+quroumA sqlite db file is an object.So the database is HA,durable and with eventual consistency.,The target of swift:no single failure,no bottletneck,scale out,2023/3/3,Architecture,Swift PracticeSinaAppEngine,Swift PracticeSinaAppEngine,Our W
10、orks,Swift as the SAE Storage-Auth module for SAE(Key-Pair)-Keystone for SAE(Token)-HTTP Cache-Control module-Quota(limit the number of containers and objects,limit the storage usage)-Domain remap app-To with bwlimit-Billing-Storage FirewallSwift as the SWS Simple Storage Service-Container unique mo
11、dule middleware for auth protocol converting,Our Steps for Switching SAE Storage,Bypass test one month online(旁路读写测试)Switch step by step one month(灰度切换)Ops Monitoring:I/O,CPU,Memery,Disk LogCenter:syslog-ng,statistics and analytics,2023/3/3,2023/3/3,2023/3/3,Problems&Imporvements,The async processor
12、 for keeping eventual consistency is inefficient.Replicator,auditor,container-updaterLogic:loop all objects or dbs on disk,query replicas server to determin whether to sync.Results:High I/O;High CPU usage;Stress on account/container/object-servers,impact the availability;Long time for eventual consi
13、stency,impact the durability;The list operation is not consistent.How to improvements?Runing replicator,auditor and container updater during idle time;An appropriate deployment;A new protocol for keeping relplicas consistency;(based on log and message queue)4.Adding new nodes,scale out.,Problems&Imp
14、orvements,The performance of sqlite.Quota for objects and containersRunning sqlite on the high performance I/O devicesThe bandwidth of rsync is not under control.Out-of-band managementAdd bandwidth limitations for rsyncDatabase centralized or distributed?,Problems&Imporvements,An appropriate deployment,Q&A,Weibo:AlexYang_Coder Email:GTalk:Blog:http:/,