Just a bump:)

On Mon, Sep 1, 2014 at 1:49 PM, Marcus White <roastedseawee...@gmail.com> wrote:
> Hello John
> Thanks a lot for all your answers:)
>
> Some more follow up questios
>
> You mentioned you see both deployments..
>
> 1. For the case where there are different IP addresses for different
> regions, I am assuming a different keystone deployment for each site
> with clients knowing the auth endpoints of each site, and getting the
> swift endpoints from the auth endpoints service catalog. They know or
> figure out which one is local themselves..
>
> 2. For the multi geo case with multiple IPs, wanted to query here
> again on the answer you mentioned, that the keystone database is
> synced across sites..For the multi site case you had mentioned you see
> in deployments with multiple IP addresses, how do you guys set up
> keystone so that the user information is the same across all sites?
> Probably related to Question 1.
>
> MW
>
> On Sun, Aug 31, 2014 at 11:41 PM, John Dickinson <m...@not.mn> wrote:
>>
>> On Aug 31, 2014, at 5:25 AM, Marcus White <roastedseawee...@gmail.com> wrote:
>>
>>> One last follow up question, hopefully!
>>>
>>> I agree, each proxy server can handle any requests..I wanted to see
>>> what the typical deployment is for the multi geo case.
>>>
>>> For multi region global clusters, for example, each region would have
>>> a separate IP address? Behind each regions IP address you can have
>>> multiple proxy servers in each site, and a customer can connect to any
>>> site?
>>
>> I've seen both. Really it depends on the goals of the global cluster and the 
>> existing infrastructure available. If the goal is a DR story, then often DNS 
>> is pointed at one region, and when the "R" of DR is needed, the DNS entry is 
>> updated to point to the other region. Other times, if the goal is to allow 
>> for lower-latency reads and writes, then then all regions are used for 
>> access all the time. The client either relies on some sort of 
>> geo-dns/anycast system to get to the closest endpoint, or the client chooses 
>> the preferred region from a list of available ones.
>>
>> Yes, I'd normally expect each region to have a separate public IP address 
>> with multiple proxies load balanced behind it.
>>
>>>
>>> In a single site case, keystone would give you one end point, which is
>>> the external load balancer Ip. For the multi site case, what happens
>>> with keystone? Does it provide multiple end points?
>>>
>>> Another question is, does the keystone server itself have a different
>>> external IP for each site?
>>
>> My understanding is that Keystone doesn't really work across wide geographic 
>> areas (I'd be happy to be wrong here--maybe a Keystone dev can jump in). I 
>> think the limitation is around the backing store Keystone uses to manage 
>> tokens and the service catalog.
>>
>> There are a few things to consider when using a central auth system with a 
>> globally distributed Swift cluster. First, note that if the auth token 
>> (identity info) isn't cached in the local region, Swift will need to ask the 
>> Keystone service for the information. Swift will cache it if possible, but 
>> know that the auth lookup will add latency (noticeable latency if the auth 
>> system is across an ocean). Second, make sure memcache and Swift's cache 
>> middleware are configured properly. For example, you don't want a global 
>> memcache pool to result in 50% of the internal "fetch from cache" requests 
>> to go across the WAN. You'd instead want a separate memcache pool for each 
>> region.
>>
>> As a side note, a centralized auth system actually makes the caching 
>> strategies easier, since there's less complexity to deal with when trying to 
>> get and cache and validate auth credentials and tokens.
>>
>>
>>>
>>> Just confused a bit on the deployment basics.
>>
>> Good luck! and feel free to ask more as needed.
>>
>>>
>>> MW.
>>>
>>>
>>> On Fri, Aug 29, 2014 at 7:51 PM, John Dickinson <m...@not.mn> wrote:
>>>>
>>>> On Aug 29, 2014, at 2:43 AM, Marcus White <roastedseawee...@gmail.com> 
>>>> wrote:
>>>>
>>>>> Thanks John:)
>>>>>
>>>>> Some more additional basic questions..
>>>>>
>>>>> 1. For the multi site case, does Swift present a single end point, or
>>>>> is it two separate regions with two separate IP addresses, and the
>>>>> client can talk to either to get the data? I think it is the latter?
>>>>
>>>> Every proxy server in the cluster will be able to handle requests. There 
>>>> isn't a single "control node" that brokers everything. Often times, all of 
>>>> the proxy servers are put behind a load balancer or geo-dns or something 
>>>> to present a single domain for the cluster.
>>>>
>>>>
>>>>>
>>>>> 2. Are keystone databases synced across sites? I didnt know of an
>>>>> option in keystone to do that, hence asking..If we need to
>>>>> authenticate against keystone on different sites to access the same
>>>>> object, it has to be that way?
>>>>
>>>> That is also my understanding, but I'm not an expert on Keystone options 
>>>> or deployment patterns.
>>>>
>>>>>
>>>>> TIA,
>>>>>
>>>>> MW
>>>>>
>>>>>
>>>>> On Wed, Aug 27, 2014 at 11:37 PM, John Dickinson <m...@not.mn> wrote:
>>>>>> Yup, this is a totally possible failure scenario, and Swift will merge 
>>>>>> the data (using last-write-wins for overwrites) automatically when the 
>>>>>> partition is restored. But you'll still have full durability on writes, 
>>>>>> even with a partitioned global cluster.
>>>>>>
>>>>>> --John
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Aug 27, 2014, at 10:49 AM, Marcus White <roastedseawee...@gmail.com> 
>>>>>> wrote:
>>>>>>
>>>>>>> Yup, thanks for the great explanation:)
>>>>>>>
>>>>>>> Another question, though related: If there are three regions, and two
>>>>>>> get "split", there is now a partition. Both the split ones can talk to
>>>>>>> the third, but not to each other.
>>>>>>>
>>>>>>> A PUT comes into one region, and it gets written to the local site.
>>>>>>> Container information presumably gets updated here, including byte
>>>>>>> count.
>>>>>>>
>>>>>>> Same thing happens on another site, where a PUT comes in and the
>>>>>>> container information is updated with the byte count.
>>>>>>> When the sites get back together, do the container servers make sure
>>>>>>> its all correct in the end?
>>>>>>>
>>>>>>> If this is not a possible scenario, is there any case where the
>>>>>>> container metadata can be different between two zones or regions
>>>>>>> because of a partition, and independent PUTs can happen, and the data
>>>>>>> has to be merged? Is that all done by the respective servers(container
>>>>>>> or account?)
>>>>>>>
>>>>>>> I will be looking at the sources soon.
>>>>>>>
>>>>>>> Thanks again
>>>>>>> MW.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Aug 27, 2014 at 8:13 PM, Luse, Paul E <paul.e.l...@intel.com> 
>>>>>>> wrote:
>>>>>>>> Marcus-
>>>>>>>>
>>>>>>>> Not sure how much nitty gritty detail you care to know as some of 
>>>>>>>> these answers will get into code specifics which you're better off 
>>>>>>>> exploring on your own so my explanation isn't potentially dated.  At a 
>>>>>>>> high level though, the proxy looks up the nodes that are responsible 
>>>>>>>> for the storing of an object and its container via the rings.  It 
>>>>>>>> passes that info to the storage nodes when it does the PUT request so 
>>>>>>>> when the storage node goes to update the container it's been told "and 
>>>>>>>> here are the nodes to send the container update to".  It will send the 
>>>>>>>> updates to all of them.  Similarly, once the container server has 
>>>>>>>> updated its database it goes and updates the appropriate account 
>>>>>>>> databases.
>>>>>>>>
>>>>>>>> Make sense?
>>>>>>>>
>>>>>>>> Thx
>>>>>>>> Paul
>>>>>>>>
>>>>>>>> -----Original Message-----
>>>>>>>> From: Marcus White [mailto:roastedseawee...@gmail.com]
>>>>>>>> Sent: Wednesday, August 27, 2014 7:04 AM
>>>>>>>> To: Luse, Paul E
>>>>>>>> Cc: openstack
>>>>>>>> Subject: Re: [Openstack] Swift questions
>>>>>>>>
>>>>>>>> Thanks Paul:)
>>>>>>>>
>>>>>>>> For the container part, you mentioned that node(meaning object
>>>>>>>> server?) contacts the container server. Since you can have multiple 
>>>>>>>> container servers, how does the object server know which container 
>>>>>>>> server to contact? How and where the container gets updated is a bit 
>>>>>>>> confusing. With container rings and account rings being separate and 
>>>>>>>> in the proxy part, I am not sure I understand how that path works.
>>>>>>>>
>>>>>>>> MW
>>>>>>>>
>>>>>>>> On Wed, Aug 27, 2014 at 6:15 PM, Luse, Paul E <paul.e.l...@intel.com> 
>>>>>>>> wrote:
>>>>>>>>> Hi Marcus,
>>>>>>>>>
>>>>>>>>> See answers below.  Feel free to ask follow-ups, others may have more 
>>>>>>>>> to add as well.
>>>>>>>>>
>>>>>>>>> Thx
>>>>>>>>> Paul
>>>>>>>>>
>>>>>>>>> -----Original Message-----
>>>>>>>>> From: Marcus White [mailto:roastedseawee...@gmail.com]
>>>>>>>>> Sent: Wednesday, August 27, 2014 5:04 AM
>>>>>>>>> To: openstack
>>>>>>>>> Subject: [Openstack] Swift questions
>>>>>>>>>
>>>>>>>>> Hello,
>>>>>>>>> Some questions on new and old features of Swift. Any help would be
>>>>>>>>> great:) Some are very basic, sorry!
>>>>>>>>>
>>>>>>>>> 1. Does Swift write two copies and then return back to the client in 
>>>>>>>>> the 3 replica case, with third in the background?
>>>>>>>>>
>>>>>>>>> PL>  Depends on the number of replicas, the formula for what we call 
>>>>>>>>> a quorum is n/2 + 1 which is the number of success responses we get 
>>>>>>>>> from the back end storage nodes before telling the client that all is 
>>>>>>>>> good.  So, yes, with 3 replicas you need 2 good responses before 
>>>>>>>>> returning OK.
>>>>>>>>>
>>>>>>>>> 2. This again is a stupid question, but eventually consistent for an 
>>>>>>>>> object is a bit confusing, unless it is updated. If it is created, it 
>>>>>>>>> is either there or not and you cannot update the data within the 
>>>>>>>>> object. Maybe a POST can change the metadata? Or the container 
>>>>>>>>> listing shows its there but the actual object never got there? Those 
>>>>>>>>> are the only cases I can think of.
>>>>>>>>>
>>>>>>>>> PL> No, it's a good question because its asked a lot.  The most 
>>>>>>>>> common scenario that we talk about for eventually consistent is the 
>>>>>>>>> consistency between the existence of an object and its presence in 
>>>>>>>>> the container listing so your thinking is pretty close.  When an 
>>>>>>>>> object PUT is complete on a storage node (fully committed to disk), 
>>>>>>>>> that node will then send a message to the appropriate container 
>>>>>>>>> server to update the listing.  It will attempt to do this 
>>>>>>>>> synchronously but if it can't, the update may be delayed w/o any 
>>>>>>>>> indication to the client.  This is by design and means that it's 
>>>>>>>>> possible to get a successful PUT, be able to GET the object w/o any 
>>>>>>>>> problem however it may not yet show up in the container listing.  
>>>>>>>>> There are other scenarios that demonstrate the eventually consistent 
>>>>>>>>> nature of Swift, this is just a common and easy to explain one.
>>>>>>>>>
>>>>>>>>> 3. Once an object has been written, when and how is the container
>>>>>>>>> listing, number of bytes, account listing (if new container created)
>>>>>>>>> etc updated? Is there something done in the path of the PUT to
>>>>>>>>> indicate this object belongs to a particular container and the number
>>>>>>>>> of bytes etc is done in the background? A little clarification would
>>>>>>>>> help:)
>>>>>>>>>
>>>>>>>>> PL>  Covered as part of last question.
>>>>>>>>>
>>>>>>>>> 4. For the global clusters, is the object ring across regions or is 
>>>>>>>>> it the same with containers and accounts also?
>>>>>>>>>
>>>>>>>>> PL>  Check out the SwiftStack blog if you haven't already at 
>>>>>>>>> https://swiftstack.com/blog/2013/07/02/swift-1-9-0-release/ and 
>>>>>>>>> there's also some other stuff (including a demo from the last summit) 
>>>>>>>>> that you can find googling around a bit too.  The 'Region Tier' 
>>>>>>>>> element described in the blog addresses the makeup of a ring so can 
>>>>>>>>> be applied to both container and account rings also - I personally 
>>>>>>>>> didn't work on this feature so will leave it to one of the other guys 
>>>>>>>>> to comment more in this area.
>>>>>>>>>
>>>>>>>>> 5. For containers in global clusters, if a client queries the
>>>>>>>>> container metadata from another site, is there a chance of it getting
>>>>>>>>> the old metadata? With respect to the object itself, the eventually
>>>>>>>>> consistent part is a bit confusing for me:)
>>>>>>>>>
>>>>>>>>> PL> There's always a chance of getting old "something" whether its 
>>>>>>>>> metadata or data, that's part of eventually consistent.  In the face 
>>>>>>>>> of an outage (the P in the CAP theorem) Swift will always favor 
>>>>>>>>> availability which may mean older data or older metadata (object or 
>>>>>>>>> container listing) depending on the specific scenario.  If deployed 
>>>>>>>>> correctly I don't believe use of global clusters increases the odds 
>>>>>>>>> of this happening though (again will count on someone else to say 
>>>>>>>>> more) and its worth emphasizing the getting "old stuff" is in the 
>>>>>>>>> face of some sort of failure (or big network congestion) so you 
>>>>>>>>> shouldn't think of eventually consistent as being a system where you 
>>>>>>>>> "get whatever you get".  You'll get the latest greatest available 
>>>>>>>>> information.
>>>>>>>>>
>>>>>>>>> MW
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Mailing list: 
>>>>>>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>>>>>>>>> Post to     : openstack@lists.openstack.org
>>>>>>>>> Unsubscribe :
>>>>>>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Mailing list: 
>>>>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>>>>>>> Post to     : openstack@lists.openstack.org
>>>>>>> Unsubscribe : 
>>>>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>>>>>>
>>>>
>>

_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to     : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack

Reply via email to