Jump to content

Can anyone explain how multiple racked servers work together?

Arkyo0
Go to solution Solved by leadeater,
18 minutes ago, Arkyo0 said:

Why do we need so many OS instances? Can't we just run multiple apps on a single OS per ESXI?

You don't need to, it's just a diagram showing the general structure. It wouldn't convey the correct information if it only had a single virtual machine per server shown because then you might think you can only have one per server.

 

You can run multiple applications per VM, a VM is no different to your desktop computer. It's just a virtual instance of the same thing. Generally you do not want to install multiple applications on a single OS because that is making the failure domain larger, more things break if it fails or you need to reboot it. Security wise you should not also run a web server exposed to the internet and also host secure files on that same server OS.

 

On smaller scales it's harder to see the benefits or the point but in a example of a service you need to deliver to your users that needs 4 web servers, 4 application processing servers and a database cluster that is where things make more logical sense. You want/need multiple web servers so the service does not go down if one were to fail and you also need more than one to handle the load of many users, the same is true of the application processing servers. The database cluster is application clustering aware but there is still two OS's involved. Ideally you would have 6 total servers here, 4 servers running 8 virtual machines (1 web server and 1 application processing server each) and 2 servers for the database cluster (could be virtual machines or physical OS install).

 

18 minutes ago, Arkyo0 said:

Also , I thought running VMs will have a performance loss

Not on a Type 1 bare metal hypervisor. It's very rare to see more than 1% performance loss due to virtual machine overhead. You can get resource contention from multiple virtual machines running on a single server but you aren't losing performance due to virtual machines. Very rarely is a server utilized fully by a single OS or application, you can have 15-30 virtual machines running on a single server and still only average 50% CPU utilization.

Say if I have 3 racked servers, each with a dual-socket mobo, I now have 6 CPUs in total.

How can I use all 6 CPUs within a single instance of an OS?

In normal end-users we have an OS with a single mobo.

 

But how can the OSes balance its load on motherboards that aren't "connected" to the mainboard?

Link to comment
Share on other sites

Link to post
Share on other sites

You install a hypervisor on each server, such as ESXi, and then use something like vSphere client which will allow you to group multiple servers together and "balance" load across the servers on a per VM basis. There is other technology like clustering that allows them to share the same workload but that's usually very specialized software on a per workload basis.

 

Edit:

Most instances of server racks use ESXi or another hypervisor and controller to balance VMs across groups of servers.

Current Network Layout:

Current Build Log/PC:

Prior Build Log/PC:

Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, Lurick said:

You install a hypervisor on each server, such as ESXi, and then use something like vSphere client which will allow you to group multiple servers together and "balance" load across the servers on a per VM basis. There is other technology like clustering that allows them to share the same workload but that's usually very specialized software on a per workload basis.

 

Edit:

Most instances of server racks use ESXi or another hypervisor and controller to balance VMs across groups of servers.

But the other rack servers are booted without any OS, how can it process tasks scheduled by the main server?

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, Arkyo0 said:

But the other rack servers are booted without any OS, how can it process tasks scheduled by the main server?

With specialized software but it needs some form of OS, no matter how bare, to do much of anything. That abstraction layer between components and the tasks being sent down is key. What instance are you talking about? Maybe some more info on what you're referring to exactly will help me explain better.

Current Network Layout:

Current Build Log/PC:

Prior Build Log/PC:

Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, Arkyo0 said:

booted without any OS

You gotta have something on them for the other poster's solution to work.

You could try a Beowulf cluster, but that's a lot of custom programming and configuration

NOTE: I no longer frequent this site. If you really need help, PM/DM me and my e.mail will alert me. 

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, Lurick said:

With specialized software but it needs some form of OS, no matter how bare, to do much of anything. That abstraction layer between components and the tasks being sent down is key. What instance are you talking about? Maybe some more info on what you're referring to exactly will help me explain better.

We have 3 racks, and we want to run multiple instances of a Java application.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, Arkyo0 said:

But the other rack servers are booted without any OS, how can it process tasks scheduled by the main server?

They are booted with an OS, a hypervisor is still an OS but it's a bit more specialized than something like Windows or Linux (full installation). Most hypervisors are Linux based, the biggest exception would be Windows Hyper-V.

 

The processes are not scheduled or controlled by a main server, not like applications and processes on your computer anyway.

 

Each server owns and controls (or shares but only if the resources itself allows sharing) the resources it has and the allocation of those resources, that could be to virtual machines or to an application that supports clustering (Microsoft SQL Server for example). You can have a management software control point that sits on the side , out of band, that looks at the resource utilization of each server and may decide to tell one of the servers to hand off one of the resource users to a different server. If a server were to fail this would be detected and resources that were running on that failed server would start up on a different server, the resources still failed just like if you were to pull the power out of your desktop computer.

 

For application clustering like Microsoft SQL Server the actual application state and data is made consistent across both servers so one may only be processing the load but the other is also acknowledging data changes so if the primary server were to fail it can take over the processing load and only in flight non committed data is lost but the users and applications can handle that as they were not falsely told the data was committed and would either resubmit the transaction again or would raise a timeout after getting no response back for the now missing transaction it was waiting for to complete.

 

28 minutes ago, Arkyo0 said:

We have 3 racks, and we want to run multiple instances of a Java application.

For this you would most likely be using Virtual Machines each running their own OS with the application installed.

 

Below each black box containing App + OS is a Virtual Machine, you can have multiple running on the same physical servers and also live move them across servers, typical hypervisor feature but there is communication between the servers as this happens and is not the same as during a hardware failure.

 

VMware-Basics_ENG_1b4c3ab65f.jpg

Link to comment
Share on other sites

Link to post
Share on other sites

9 minutes ago, leadeater said:

They are booted with an OS, a hypervisor is still an OS but it's a bit more specialized than something like Windows or Linux (full installation). Most hypervisors are Linux based, the biggest exception would be Windows Hyper-V.

 

The processes are not scheduled or controlled by a main server, not like applications and processes on your computer anyway.

 

Each server owns and controls (or shares but only if the resources itself allows sharing) the resources it has and the allocation of those resources, that could be to virtual machines or to an application that supports clustering (Microsoft SQL Server for example). You can have a management software control point that sits on the side , out of band, that looks at the resource utilization of each server and may decide to tell one of the servers to hand off one of the resource users to a different server. If a server were to fail this would be detected and resources that were running on that failed server would start up on a different server, the resources still failed just like if you were to pull the power out of your desktop computer.

 

For application clustering like Microsoft SQL Server the actual application state and data is made consistent across both servers so one may only be processing the load but the other is also acknowledging data changes so if the primary server were to fail it can take over the processing load and only in flight non committed data is lost but the users and applications can handle that as they were not falsely told the data was committed and would either resubmit the transaction again or would raise a timeout after getting no response back for the now missing transaction it was waiting for to complete.

 

For this you would most likely be using Virtual Machines each running their own OS with the application installed.

 

Below each black box containing App + OS is a Virtual Machine, you can have multiple running on the same physical servers and also live move them across servers, typical hypervisor feature but there is communication between the servers as this happens and is not the same as during a hardware failure.

 

VMware-Basics_ENG_1b4c3ab65f.jpg

Why do we need so many OS instances? Can't we just run multiple apps on a single OS per ESXI?

Also , I thought running VMs will have a performance loss

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Arkyo0 said:

How can I use all 6 CPUs within a single instance of an OS?

Generally speaking this cannot be done, such a thing is so extremely specialized and so rare that it is outside of the bounds of even the more experienced IT expert. It's just something not needed because there are many different ways of achieving what you need and a single giant entity is still a single point of failure which we typically do not want.

 

Load distribution and balancing is the most common, that could be in the form of virtual machines or multiple servers running the same software with a virtual IP address or a balancing network appliance in front of them distributing load between them.

Link to comment
Share on other sites

Link to post
Share on other sites

18 minutes ago, Arkyo0 said:

Why do we need so many OS instances? Can't we just run multiple apps on a single OS per ESXI?

You don't need to, it's just a diagram showing the general structure. It wouldn't convey the correct information if it only had a single virtual machine per server shown because then you might think you can only have one per server.

 

You can run multiple applications per VM, a VM is no different to your desktop computer. It's just a virtual instance of the same thing. Generally you do not want to install multiple applications on a single OS because that is making the failure domain larger, more things break if it fails or you need to reboot it. Security wise you should not also run a web server exposed to the internet and also host secure files on that same server OS.

 

On smaller scales it's harder to see the benefits or the point but in a example of a service you need to deliver to your users that needs 4 web servers, 4 application processing servers and a database cluster that is where things make more logical sense. You want/need multiple web servers so the service does not go down if one were to fail and you also need more than one to handle the load of many users, the same is true of the application processing servers. The database cluster is application clustering aware but there is still two OS's involved. Ideally you would have 6 total servers here, 4 servers running 8 virtual machines (1 web server and 1 application processing server each) and 2 servers for the database cluster (could be virtual machines or physical OS install).

 

18 minutes ago, Arkyo0 said:

Also , I thought running VMs will have a performance loss

Not on a Type 1 bare metal hypervisor. It's very rare to see more than 1% performance loss due to virtual machine overhead. You can get resource contention from multiple virtual machines running on a single server but you aren't losing performance due to virtual machines. Very rarely is a server utilized fully by a single OS or application, you can have 15-30 virtual machines running on a single server and still only average 50% CPU utilization.

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, leadeater said:

You don't need to, it's just a diagram showing the general structure. It wouldn't convey the correct information if it only had a single virtual machine per server shown because then you might think you can only have one per server.

 

You can run multiple applications per VM, a VM is no different to your desktop computer. It's just a virtual instance of the same thing. Generally you do not want to install multiple applications on a single OS because that is making the failure domain larger, more things break if it fails or you need to reboot it. Security wise you should not also run a web server exposed to the internet and also host secure files on that same server OS.

 

On smaller scales it's harder to see the benefits or the point but in a example of a service you need to deliver to your users that needs 4 web servers, 4 application processing servers and a database cluster that is where things make more logical sense. You want/need multiple web servers so the service does not go down if one were to fail and you also need more than one to handle the load of many users, the same is true of the application processing servers. The database cluster is application clustering aware but there is still two OS's involved. Ideally you would have 6 total servers here, 4 servers running 8 virtual machines (1 web server and 1 application processing server each) and 2 servers for the database cluster (could be virtual machines or physical OS install).

 

Not on a Type 1 bare metal hypervisor. It's very rare to see more than 1% performance loss due to virtual machine overhead. You can get resource contention from multiple virtual machines running on a single server but you aren't losing performance due to virtual machines. Very rarely is a server utilized fully by a single OS or application, you can have 15-30 virtual machines running on a single server and still only average 50% CPU utilization.

This is a very detailed explanation , thank you!

I will choose XenServer and XenCenter for my solution, I wonder if they can "group and balance" like what Lurick has said?

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, Arkyo0 said:

I will choose XenServer and XenCenter for my solution, I wonder if they can "group and balance" like what Lurick has said?

Yep can do, most hypervisors can do all the things others can they just call them different names but all work the same.

Link to comment
Share on other sites

Link to post
Share on other sites

12 hours ago, LinusOnLine said:

I am thinking things have changed a bit since my MS Cluster server days :)

 

For MS clusters, honestly not really.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×