News for hackers. Stuff that matters.
Re:AWS vs. GCP reliability is wildly different by politelemon on Wednesday September 21, 2022 @05:02PM (#32931478)
A few weeks ago I needed to change the volume type on an EC2 instance to gp3. Following the instructions, the change happened while the instance was running. I didn't need to reboot or stop the instance, it just changed the type. While the instance was running.

I didn't understand how they were able to do this, I had thought volume types mapped to hardware clusters of some kind. And since I didn't understand, I wasn't able to distinguish it from magic.

Re:AWS vs. GCP reliability is wildly different by xyzzyz on Wednesday September 21, 2022 @05:27PM (#32931732)
Dunno about AWS, but GCP uses live migration, and will migrate your VM across physical machines as necessary. The disk volumes are all connected over the network, nothing really depends on the actual physical machine your VM is ran on.
Re:AWS vs. GCP reliability is wildly different by _msw_ on Wednesday September 21, 2022 @08:09PM (#32933293)
Disclosure: I work for Amazon, and in the past I worked directly on EC2.

From the FAQ: https://aws.amazon.com/ec2/faqs/

Q: How does EC2 perform maintenance?

AWS regularly performs routine hardware, power, and network maintenance with minimal disruption across all EC2 instance types. To achieve this we employ a combination of tools and methods across the entire AWS Global infrastructure, such as redundant and concurrently maintainable systems, as well as live system updates and migration.

Re:AWS vs. GCP reliability is wildly different by darkwater on Thursday September 22, 2022 @08:58AM (#32938203)
> AWS regularly performs routine hardware, power, and network maintenance with minimal disruption across all EC2 instance types. To achieve this we employ a combination of tools and methods across the entire AWS Global infrastructure, such as redundant and concurrently maintainable systems, as well as live system updates and migration.

And yet, I keep getting almost every weeks emails like this:

"EC2 has detected degradation of the underlying hardware hosting your Amazon EC2 instance (instance-ID: i-xxxxxxx) associated with your AWS account (AWS Account ID: NNNNN) in the eu-west-1 region. Due to this degradation your instance could already be unreachable. We will stop your instance after 2022-09-21 16:00:00 UTC"

And we don't have tens of thousands of VMs in that region, just around 1k.

Re:AWS vs. GCP reliability is wildly different by _msw_ on Thursday September 22, 2022 @12:51PM (#32941499)
Live migration can't be used to address every type of maintenance or underlying fault in a non-disruptive way.
Re:AWS vs. GCP reliability is wildly different by valleyjo on Wednesday September 21, 2022 @05:47PM (#32931961)
Azure, AWS and GCP all have live migration. VMWare has it too.
Re:AWS vs. GCP reliability is wildly different by outworlder on Wednesday September 21, 2022 @07:08PM (#32932813)
Not really. Or at least not in the same league.

AWS doesn't have live migration at all. You have to stop/start.

Azure technically does, but it doesn't always work(they say 90%). 30 seconds is a long time.

VMWare has live migration (and seems to be the closest to what GCP does) but it is still an inferior user experience.

This is the key thing you are missing – GCP not only has live migration, but it is completely transparent. We do not have to initiate migration. GCP does, transparently, 100% of the time. We have never even notice migrations even when we were actively watching those instances. We don't know or care what hypervisors are involved. They even preserve the network connections.

https://cloudplatform.googleblog.com/2015/03/Google-Compute-...

Re:AWS vs. GCP reliability is wildly different by jiggawatts on Wednesday September 21, 2022 @07:27PM (#32932976)
VMware's live migration is totally seamless, so I don't know what you mean by "inferior user experience". You typically see less than a second of packet loss, and a small performance hit for about a minute while the memory is "swapped" across to the new machine. Similarly, VMware has had live storage migration for years.

VMware is lightyears ahead of the big clouds, but unfortunately they "missed the boat" on the public cloud, despite having superior foundational technology.

For example:

- A typical vSphere cluster would use live migration to balance workloads dynamically. You don't notice this as an end user, but it allows them to bin-pack workloads up above 80% CPU utilisation in my experience with good results. (Especially if you allocate priorities, min/max limits, etc...)

- You can version-upgrade a vSphere cluster live. This includes rolling hypervisor kernel upgrades and live disk format changes. The upgrade wizard is a fantastic thing that asks only for the cluster controller name and login details! Click "OK" and watch the progress bar.

- Flexible keep-apart and keep-together rules that can updated at any time, and will take effect via live migration. This is sort-of like the Kubernetes "control loops", but the migrations are live and memory-preserving instead of stop-start like with containers.

- Online changes to virtual hardware, including adding not just NICs and disks, but also CPU and memory!

- Thin-provisioned disks, and memory deduplication for efficiencies approaching that of containerisation.

- Flexible snapshots, including the ability for "thin provisioned" virtual machines to share a base snapshot. This is often used for virtual desktops or terminal services, and again this approaches containerisation in terms of cloning speed and storage efficiency.

In other words, VMware had all of the pieces, and just... didn't... use it to make a public cloud. We could have had "cloud.vmware.com" or whatever 15 years ago, but they decided to slowly jack up the price on their enterprise customers instead.

For comparison, in Azure: You can't add a VM to an availability set (keep apart rule) or remove the VM from it without a stop-start cycle. You can't make most changes (SKU, etc...) to a VM in an availability set without turning off every machine in the same AS! This is just one example of many where the public cloud has a "checkbox" availability feature that actually decreases availability. For a long time, changing an IP address in AWS required the VM to be basically blown away and recreated. That brought back memories of the Windows NT 4 days in 1990s when an IP change required a reboot cycle.

Re:AWS vs. GCP reliability is wildly different by ithkuil on Thursday September 22, 2022 @03:05AM (#32935609)
You're right to say that VMware has the right fundamental building blocks and that they are mature enough (especially the compute aspect).

But I think you underestimate the maturity and effectiveness of the underlying google compute and storage substrate.

(FWIW, I worked at both places)

Now how the Google's substrate maps onto GCP, that's another story. There is a non trivial amount of fluff to be added on top of your building blocks to build a manageable multitenant planet scale cloud service. Just the network infrastructure is mind boggling.

I wouldn't be surprised if your experience with a "VMware cloud" would surprise you if you naively compare it with your experience with a standalone vsphere cluster.

Re:AWS vs. GCP reliability is wildly different by sofixa on Thursday September 22, 2022 @02:37AM (#32935467)
So, i used to be a part time vSphere admin, worked with many others, and had to automate the hell out of it to deal as little as possible with that dumpster fire.

No, VMware didn't miss the boat, vCloud Air was announced in 2009 and made generally available in 2013. Roughly same timelines as Azure and GCP, slightly trailing AWS, and those were the early days, where the public cloud was still exotic. And VMware had the massive advantage of brand recognition in that domain and existing footprint with enterprises which could be scaled out.

Problem was, vCloud Air, like vSphere, was shit. Yeah, it did some things well, and had some very nice features - vMotion, DRS (though it doesn't really use CPU ready contention for scheduling decisions which is stupid), vSAN, hot adding resources (but not RAM, because decades ago Linux had issues if you had less than 4GB RAM and you added more, so to this day you can't do that). When they worked, because when they didn't, good luck because error messages are useless, logs are weirdly structured and uselessly verbose, so a massive pain to deal with. Oh and many of those features were either behind a Flash UI(FFS), or an abomination of an API that is inconsistent ("this object might have been deleted or hasn't been created yet") and had weird limitations like when you have an async task you can't check it's status details. And many of those features were so complex, that a random consuming user basically had to rely on a dedicated team of vExperts, which often resulted in a nice silo slowing everyone down.

Their hardware compatibility list was a joke - the Intel X710 NIC stayed on it for more than a year with a widely known terribly broken driver.

But what made VMware fail the most, IMHO, was the wrong focus, technically - VM, instead of application. A developer/ops person couldn't care less about the object of a VM. Of course they tried some things like vApp and vCloud Director etc. which are just disgusting abominations designed with a PowerPoint in mind, not a user. And pricing. Opaque and expensive, with bad usability. No wonder everyone jumped on the pay as you go, usable alternatives.

Re:AWS vs. GCP reliability is wildly different by w0m on Thursday September 22, 2022 @02:11PM (#32942570)
> many of those features were either behind a Flash UI(FFS)

My introduction to the industry. The memories.

Re:AWS vs. GCP reliability is wildly different by free652 on Wednesday September 21, 2022 @06:03PM (#32932155)
Are you sure, because AWS consistently requires me to migrate to a different host. They go as far as shutting down instances, but don't do any kind of live migrations.
Re:AWS vs. GCP reliability is wildly different by dilyevsky on Wednesday September 21, 2022 @06:24PM (#32932368)
Ec2 does not have live migration. On azure it’s spotty so not every maintenance can offer it.
Re:AWS vs. GCP reliability is wildly different by ta20200710 on Wednesday September 21, 2022 @07:33PM (#32933032)
EC2 does support live migration, but it's not public and only for certain instance types/hypervisors.

See: https://news.ycombinator.com/item?id=17815806

Re:AWS vs. GCP reliability is wildly different by _msw_ on Wednesday September 21, 2022 @07:51PM (#32933179)
Here's a comment that I made in a past thread.

https://news.ycombinator.com/item?id=26650082

Re:AWS vs. GCP reliability is wildly different by dilyevsky on Wednesday September 21, 2022 @10:15PM (#32934109)
My experience running c5/6 instances makes me very confident ec2 doesn’t do live migration for these. Fwiw gcp live migration on latency sensitive workloads is very noticeable and often time straight up causes instance crash
Re:AWS vs. GCP reliability is wildly different by dwmw2 on Thursday September 22, 2022 @01:28AM (#32935087)
Intrigued by this observation. What is it about your experience that leads you to conclude that EC2 doesn't do live migration?

And could it be phrased differently as "EC2 doesn't do live migration badly"?

Re:AWS vs. GCP reliability is wildly different by dilyevsky on Thursday September 22, 2022 @02:02AM (#32935233)
Mainly the barrage of "instance hardware degradation" emails that i get whereas on gcp those are just migrated (sometimes with a reboot/crash). Also there is no brownout. I've never used t2/3s which apparently do support migration which would make sense.
Re:AWS vs. GCP reliability is wildly different by my123 on Thursday September 22, 2022 @02:23AM (#32935356)
After some kinds of hardware failure, it can become impossible to do live migration safely. When a crash can ensure due to a live migration from faulty HW, I'd argue that it's much better to not attempt it.
Re:AWS vs. GCP reliability is wildly different by voiper1 on Thursday September 22, 2022 @06:17AM (#32936917)
Linode also uses live migrations now for most (all?) maintenance.
Re:AWS vs. GCP reliability is wildly different by lbhdc on Wednesday September 21, 2022 @05:44PM (#32931921)
How does migrating a vm to another physical machine work?
Re:AWS vs. GCP reliability is wildly different by roomey on Wednesday September 21, 2022 @05:49PM (#32931981)
VMware has been doing this for years, it's called vmotion and there is a lot of documentation about it if you are interested (eg https://www.thegeekpub.com/8407/how-vmotion-works/ )

Essential, memory state is copied to the new host, the VM is stunned for a millisecond and the cpu states is copied and resumed on the new host (you may see a dropped ping). All the networking and storage is virtual anyway so that is "moved" (it's not really moved) in the background.

Re:AWS vs. GCP reliability is wildly different by jiggawatts on Wednesday September 21, 2022 @07:32PM (#32933023)
The clever trick here is that they'll pre-copy most of the memory without bothering to do it consistently, but mark pages that the source had written to as "dirty". The network cutover is stop-the-world, but VMware doesn't copy the dirty pages during the stop. Instead, it simply treats them as "swapped to pagefile", where the pagefile is actually the source machine memory. When computation resumes at the target, the source is used to page memory back in on-demand. This allows very fast cutovers.
Re:AWS vs. GCP reliability is wildly different by politelemon on Thursday September 22, 2022 @02:05AM (#32935245)
> VM is stunned for a millisecond

This conjures up hilarious mental imagery, thanks

Re:AWS vs. GCP reliability is wildly different by kevincox on Thursday September 22, 2022 @10:15AM (#32939065)
You just bop it on the head, and move it to the new machine quickly. By the time the VM comes to it won't even realize that it is in a new home.
Re:AWS vs. GCP reliability is wildly different by mh- on Wednesday September 21, 2022 @06:14PM (#32932270)
Up to 500ms per your source, depending on how much churn there is in the memory from the source system.

Very cool.

Re:AWS vs. GCP reliability is wildly different by lbhdc on Wednesday September 21, 2022 @06:26PM (#32932393)
That is really interesting I didn't realize it was so fast. Thanks for the post I will give it a read!
Re:AWS vs. GCP reliability is wildly different by the_duke on Wednesday September 21, 2022 @06:05PM (#32932171)
This blog post is pretty old (2015) but gives a good introduction.

https://cloudplatform.googleblog.com/2015/03/Google-Compute-...

Re:AWS vs. GCP reliability is wildly different by lbhdc on Wednesday September 21, 2022 @06:26PM (#32932395)
Thanks for sharing, I will give it a read!
Re:AWS vs. GCP reliability is wildly different by pclmulqdq on Wednesday September 21, 2022 @05:52PM (#32932026)
They pause your VM, copy everything about its state over to the new machine, and quickly start the other instance. It's pretty clever. I think there are tricks you can play with machines that have large memory footprints to copy most of it before the pause, and only copy what has changed since then during the pause.

The disks are all on the network, so no need to move anything there.

Re:AWS vs. GCP reliability is wildly different by prmoustache on Wednesday September 21, 2022 @06:12PM (#32932253)
In reality it sync the memory first to the other host and only pause the vm when the last state sync is small enough to be so quick the pause is barely measurable.
Re:AWS vs. GCP reliability is wildly different by water-your-self on Wednesday September 21, 2022 @06:21PM (#32932349)
Indian jones and the register states
Re:AWS vs. GCP reliability is wildly different by lbhdc on Wednesday September 21, 2022 @06:28PM (#32932413)
When its transferring the state to the target, how does it handle memory updates that are happening at that time? Is the programs execution paused at that point?
Re:AWS vs. GCP reliability is wildly different by GauntletWizard on Wednesday September 21, 2022 @07:12PM (#32932855)
No, but the memory accesses have hooks that say "This memory was written". Then, program execution is paused, and just the sections of memory that were written are copied again.

This has memory performance characteristics - I ran a benchmark of memory read/write speed while this was happening once. It more than halved memory speed for the 30s or so it took from migration started to migration complete. The pause, too, was much longer.

Re:AWS vs. GCP reliability is wildly different by lbhdc on Wednesday September 21, 2022 @07:37PM (#32933070)
Ahh I think that was the piece I was missing, thanks! I didn't realize there were hooks for tracking memory changes.
Re:AWS vs. GCP reliability is wildly different by outworlder on Wednesday September 21, 2022 @07:09PM (#32932824)
No, they keep track of dirty pages.
Re:AWS vs. GCP reliability is wildly different by valleyjo on Wednesday September 21, 2022 @05:51PM (#32932004)
Stream the contents of ram from source to dest, pause the source, reprogram the network and copy and memory that changed since the initial stream, resume the dest, destroy the source, profit.
Re:AWS vs. GCP reliability is wildly different by rejectfinite on Wednesday September 21, 2022 @05:48PM (#32931975)
vsphere vmotion has been a thing for years lmao
Re:AWS vs. GCP reliability is wildly different by cavisne on Wednesday September 21, 2022 @06:52PM (#32932664)
EBS is already replicated so they probably just migrate behind the scenes, same as if the original physical disk was corrupted. It looks like only certain conditions allow this kindof migration.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/modify-v...

Re:AWS vs. GCP reliability is wildly different by shrubble on Wednesday September 21, 2022 @05:35PM (#32931820)
Assuming this blurb is accurate: " General-purpose SSD volume (gp3) provides the consistent 125 MiB/s throughput and 3000 IOPS within the price of provisioned storage. Additional IOPS (up to 16,000) and throughput (1000 MiB/s) can be provisioned with an additional price. The General-purpose SSD volume (gp2) provides 3 IOPS per GiB storage provisioned with a minimum of 100 IOPS"

... then it seems like a device that limits bandwidth either on the storage cluster or between the node and storage cluster is present. 125MiB/s is right around the speed of a 1gbit link, I believe. That it was a networking setting changed in-switch doesn't seem to be surprising.

Re:AWS vs. GCP reliability is wildly different by nonameiguess on Wednesday September 21, 2022 @05:53PM (#32932031)
This would have been my guess. All EBS volumes are stored on a physical disk that supports the highest bandwidth and IOPS you can live migrate to, and the actual rates you get are determined by something in the interconnect. Live migration is thus a matter of swapping out the interconnect between the VM and the disk or even just relaxing a logical rate-limiter, without having to migrate your data to a different disk.
Re:AWS vs. GCP reliability is wildly different by prmoustache on Wednesday September 21, 2022 @06:17PM (#32932312)
The actual migration is not instantaneous despite the volume being immediately reported as gp3. You get a status change to "optimizing" if my memory is correct with a percentage. And the higher the volume the longer it takes so there is definitely a sync to faster storage.
Re:AWS vs. GCP reliability is wildly different by ArchOversight on Wednesday September 21, 2022 @05:16PM (#32931635)
Changing the volume type on AWS is somewhat magical. Seeing it happens on-line was amazing.
Re:AWS vs. GCP reliability is wildly different by Salgat on Wednesday September 21, 2022 @06:34PM (#32932477)
If I remember right they use the equivalent of a ledger of changes to manage volume state. So in this case, they copy over the contents (up to a certain point in time) to the new faster virtual volume, then append and direct all new changes to the new volume.

This is also how they are able to snapshot a volume at a certain point in time without having any downtime or data inconsistencies.

Re:AWS vs. GCP reliability is wildly different by osti on Wednesday September 21, 2022 @06:52PM (#32932655)
Look up AWS Nitro on YouTube if you are interested in learning more about it.