OpenLDAP System requirements for virtualization - virtualization

I'm looking for the minimum "hardware" requirements for a virtual machine to set up an OpenLDAP server.
I only found software documentation about this, but there is none about hardware, except that it requieres very little requirements.
Has someone did some research on this topic, or has any data or examples of actual OpenLDAP implementations?
I'm planning on using a Linux CentOS as OS.

Related

High Availability with hot-standby and auto-failover in postgresql

I was asked to implement a High Availability and auto-failover in postgresql and I have been searching the internet all over to find the right architecture for that.
I have tried to do it in two architectures:
RedHat cluster
UCARP
Both ways came out pretty bad when I've meet bugs on UCARP restarting as master-master after several reboots and Redhat cluster fails to manage properly PostgreSQL service.
I would like to ask if anyone has ever succeeded to implement such an architecture and would like to explain me how or refer me to a tutorial that actually works.
The components that I have are: PostgreSQL at latest version (9.4), RHEL 6.6 and higher, all on virtual machines.
Thanks in advance,
Aviel Buskila.

Why are many "bare kernel+app" solutions targeting xen?

There's a number of projects that produce complete images from your app, bootable on xen as a machine. For example Erlang on Xen, OpenMirage, HaLVM, and others.
Why is Xen the default hypervisor for them? Does it provide some interface that makes these projects easier (as opposed to KVM, VmWare, etc.), or is it just the project developers' choice?
Are Cloud Operating Systems the Next Big Thing? gives the following answer:
Xen’s footprint in the Cloud: with AWS, Rackspace Public Cloud and many others running Xen, supporting Xen first makes sense.
Xen Paravirtualization provides a very simple and idealized interface for I/O to the guest. In contrast, the KVM VIRTIO interface looks pretty much like the underlying hardware. As a consequence, it is easier to port a language runtime to Xen.

What is the difference between Full, Para and Hardware assisted virtualization?

I am going through the topic of virtualization and i am totally sucked up understanding the basic concept, Wikipedia does provide some relevant information, but it is not good enough for me to understand the basic idea. The concept will be of 2 to 3 line, but neither I am able to find them on net, nor on the book.
I will be pleased if someone gives me a basic understanding of these three types. I am well aware of virtualization and understand it well, but these 3 types...
Paravirtualization is virtualization in which the guest operating system (the one being virtualized) is aware that it is a guest and accordingly has drivers that, instead of issuing hardware commands, simply issue commands directly to the host operating system. This also includes memory and thread management as well, which usually require unavailable privileged instructions in the processor.
Full Virtualization is virtualization in which the guest operating system is unaware that it is in a virtualized environment, and therefore hardware is virtualized by the host operating system so that the guest can issue commands to what it thinks is actual hardware, but really are just simulated hardware devices created by the host.
Hardware Assisted Virtualization is a type of Full Virtualization where the microprocessor architecture has special instructions to aid the virtualization of hardware. These instructions might allow a virtual context to be setup so that the guest can execute privileged instructions directly on the processor without affecting the host. Such a feature set is often called a Hypervisor. If said instructions do not exist, Full Virtualization is still possible, however it must be done via software techniques such as Dynamic Recompilation where the host recompiles on the fly privileged instructions in the guest to be able to run in a non-privileged way on the host.
There is also a combination of Para Virtualization and Full Virtualization called Hybrid Virtualization where parts of the guest operating system use paravirtualization for certain hardware drivers, and the host uses full virtualization for other features. This often produces superior performance on the guest without the need for the guest to be completely paravirtualized. An example of this: The guest uses full virtualization for privileged instructions in the kernel but paravirtualization for IO requests using a special driver in the guest. This way the guest operating system does not need to be fully paravirtualized, since this is sometimes not available, but can still enjoy some paravirtualized features by implementing special drivers for the guest.
In the case of hardware assisted virtualisation, the virtualisation is designed in. Instruction set provides instructions for partitioning the host. See VT-x technology of Intel as an example. So that the hypervisor works directly with hardware without using any operating system to acces it and provide full virtualisation

UNIX web development server for virtual machine PC in Windows

I'm planning to build Linux web development server in virtual machine environment on Windows Virtual PC. As I don't have much experience with installing and configuring Linux web servers, I wanted to ask for some advice:
What Linux distribution do you recommend for such server? I want the virtual server to look like real hosting environment.
Do any pre-configured virtual machines for web development exist out there?
Maybe some instruction and tips on configuring?
My requirements for the server are quite standard: latest versions of Apache, MySQL, PHP, probably Python and Postgre.
Thank you.
UPDATE: OK I think I'll go with Ubuntu Server for this.
You can probably go with Ubuntu. It is easy for a beginner and there is plently of documentation on how to install a LAMP stack and later you can move on to other distros.
If you are looking for pre-configured machines, then you can have a look at VMWare Appliances
For the distribution I would recommend Ubuntu - you can add all the server software you want from their repositories.
For a virtual machine I'd recommend Ubuntu Server Edition JeOS, as that won't have any un-needed software on it.
Debian Lenny - rock solid stability & the most package support
I'm sure you can find some
Use prefork-worker apache, MySQL 5/PHP 5, Postgres 8.4.
There are lots of prebuilt vmware images that you can use. You might also consider looking at something like Amazon EC2 for which there are lots of off the shelf images.
I would also suggest Ubuntu server as a base OS.
Incidentally there are other virtualisation options in case Virtual PC doesn't recognise those prebuilt image formats (I think those formats are more standardised and interoperable these days, but not sure)...e.g. there is vmware, and there is virtualbox.org
Does it need to be in Linux straight away? You can run (Apache et al) XAMPP locally and get it up and running in 5 minutes.

Virtual Machine Benchmarks

I am using VMware Server 1.0.7 on Windows XP SP3 at the moment to test software in virtual machines.
I have also tried Microsoft Virtual PC (do not remeber the version, could be 2004 or 2007) and VMware was way faster at the time.
I have heard of Parallels and VirtualBox but I did not have the time to try them out. Anybody has some benchmarks how fast is each of them (or some other)?
I searched for benchmarks on the web, but found nothing useful.
I am looking primarily for free software, but if it is really better than free ones I would pay for it.
Also, if you are using (or know of) a good virtualization software but have no benchmarks for it, please let me know.
From my experience of Parallels and VMware (on the PC and more extensively on the Mac) the difference between any 2 competing versions of the software is usually quite small and often 'reversed' in the next releases.
I never found Parallels to be much faster (or slower) than VMware - it often would be a case of the state of the VM I was running, the host machine itself and the app(s) I was running within the VM. If VMWare brought out a new release which did something faster, you could be sure that Parallels would improve their performance in that area in the next release, too.
In the end I settled on VMWare Fusion and the key reason for this was just that it played nicely with VMware Workstation on the PC. I have trouble taking Parallels VMs from the Mac to the PC and back again, and this worked fine on VMware. Finally, though this is less of a concern, I was unhappy that sometimes it felt as if Parallels would release a version without proper regression testing - you'd get the up-to-date version and find that networking was suddenly unexplicably broken until they released another patch a few days later. I doubt this is still the case but VMware always felt a little more 'in control' and professional to me.
I'd go for a solution that you can get running in a stable fashion on your PC, that is compatible with your other requirements (such as your co-workers' platforms and your overall budget). You can waste your lifetime trying to measure which one is faster at any given task!
One other thing - it's worth checking the documentation that comes with the software, and any forums etc, before making judgements about performance. For instance, in my experience throwing huge amounts of ram at your VM (at the expense of free ram in the host system) does NOT automatically make it faster; better to split the ram up evenly, and certainly keep an eye on any recommended figure. In VMware, that recommended figure is a good guide.
You'll get best performance if your hardware supports hardware virtualization, such as AMD's AMD-V or Intel's VT, and you enable this feature on the computer and in your virtualization software.
For Microsoft solutions, you need at least Virtual PC 2007 or Virtual Server 2005 R2 SP1, or Hyper-V on Windows Server 2008 (I don't expect you'll rebuild your system just to run Hyper-V, but I thought I'd mention it).
Subjectively I haven't noticed any difference between Virtual PC and VMware Workstation performance; I'm using VMware now as it supports USB virtualization, which Virtual PC doesn't.
You also generally need to install appropriate custom, virtualization-aware, drivers in the guest OS, as the standard drivers are expecting to talk to real hardware. In Virtual PC and Server these are called Additions, in VMware they are VMware Tools.
Anandtech has some great info on virtualization. Although they are not any benchmarks, it provides a great insight on why it is so difficult to do proper virtualization benchmarks. I cannot suggest you a specific product, because it depends very much on your requirements.