5 ms·
I think you overstate how much performance hit you get by running things virtually in ex. KVM or Xen. With the first, it's almost negligible, as you don't have
by vegardx 14y ago
I think you overstate how much performance hit you get by running things virtually in ex. KVM or Xen. With the first, it's almost negligible, as you don't have to run a paravirtualized kernel in order to gain full access, so for Linux you are basically just limited by other factors, such as disk IO long before anything else start to kick in.
I don't buy your argument about latency one bit, do you have ANY data to back up your statement? You know - Google and many other big players run huge virtual machine clusters, you'd think they wouldn't if that almost unmeasurable difference in latency had an impact.
I would run KVM on top of a machine, even if there was only to be one VM on it, just because moving, backing up or scaling up or down can easily be done. You can also easily migrate the host to another physical machine if you are experiencing hardware issues, or just upgrading your rig. And yes, you can migrate a running server, I'm doing it all the time.
And yes, you can snapshot and take a backup of a running server, but what goes on inside of MySQL, or other applications for that matter, has nothing to do with the consistency of the disk image. When you snapshot a disk image, you naturally don't know whats in RAM.
- ciupicri 14y agoSince when does Google run huge virtual machine clusters?
- vegardx 14y agoI might have exaggerated a little, I have no idea how huge the virtual machine park is, but I would argue that they wouldn't invest in Ganeti with full-time employees if they weren't using it internally. During a talk, one of the developers said that they were running pretty large clusters.
- dschiptsov 14y agobut what goes on inside of MySQL, or other applications for that matter, has nothing to do with the consistency of the disk image. All you can do is instruct MySQL to pause, flush all its write buffers, and then take a snapshot of FS, then move it on. But this procedure has nothing to do with whether or not it runs under, say, VmWare or not. It has anything to do with does this particular disk volume supports FS snapshoting. The next question is - what use of that snapshot when your system crashes and you got lost all the changes made since the last snapshot? How a VMWare helps you here? Now consider what a bottleneck naively virtualized (represented as a file in a host system) disk volumes become, when I/O operations on, say, your DB's physical (transaction) log got interfered by I/O operations of your syslog daemon, or whatever other activity is going on. In a database world the solution is about decoupling, partitioning and avoiding any I/O sharing possible. So, virtualization is just another layer of complexity which makes everything less predictable and controllable.
- vegardx 14y agoHave you actually used any of the products you are talking about? You don't take the filesystem snapshots on the virtual machine, but of the disk image on the host, typically using LVM or something similar. What you want to do with this snapshot later on is up to you, normally people just export it to a remote location. For total system failures you still need a proper backup solution on the machine. This is true even if it's dedicated hardware or a virtual machine. You seem to always resort to talking about databases, and this might be true for huge centralized databases, but that is a pretty damn specific task. Also, I thought we were past the "put everything on one box"-model. The complexity you talk about is just not there. It acts and feels just like a normal machine, and you have yet to provide any data that would support your claim, even for edge cases. Something worth reading: http://en.wikipedia.org/wiki/X86_virtualization#Hardware_assist http://en.wikipedia.org/wiki/X86_virtualization#Hardware_ass...