DevOps virtualization
In this project, you will investigate how high availability (HA) works in a Proxmox cluster.
You already have a three-node Proxmox cluster with shared storage provided by TrueNAS from the previous project. In this project, you will configure a virtual machine for HA, predict how your cluster will respond to failures, test those predictions, measure recovery time, and analyze the limitations of your HA architecture.
The goal is not simply to configure HA. The goal is to understand what happens when things fail and why.
By completing this project, you should be able to:
Select one of your existing pokemon virtual machines to use as your HA test VM.
The VM should contain a service that allows you to easily determine whether it is running. For example, you might use a web server.
Configure the VM so that Proxmox will automatically recover it if the physical node hosting it fails.
Your VM must:
Provide a screenshot showing that your VM is configured for HA.
Also identify:
Before performing any failure test, make a prediction.
Assume that the Proxmox node currently running your HA VM suddenly loses power.
Answer the following questions:
Do not perform the test until you have recorded your predictions.
The purpose of this section is to compare what you think will happen with what actually happens.
Now perform a controlled failure test.
Shut down the Proxmox node currently running your HA VM.
Observe what happens to the cluster and the VM.
Record the following information:
| Event | Time |
|---|---|
| Node shutdown initiated | |
| Node becomes unavailable | |
| Proxmox detects the failure | |
| VM begins recovery | |
| VM becomes available |
Calculate the approximate amount of downtime experienced by the service.
Provide screenshots showing the cluster before and after the failure.
A planned shutdown is not the same as a hardware failure.
Restore your three-node cluster to normal operation and place your HA VM on a Proxmox node.
Now simulate an unexpected failure by abruptly powering off the node running the VM. (This might be easier by putting your vm on the virtualized proxmox node)
Do not gracefully shut down the Proxmox node.
Observe the behavior of the cluster.
Document what you observed.
Proxmox uses quorum to help prevent multiple parts of a cluster from making conflicting decisions.
Your cluster contains three nodes.
Research and answer the following questions:
Explain quorum in your own words.
Explain why a cluster should not simply allow every surviving node to make independent decisions when communication between nodes is lost.
If your three-node cluster loses one node, how many nodes remain?
Does the remaining cluster have quorum?
Explain.
If your three-node cluster loses two nodes, what happens to the remaining node’s ability to manage HA resources?
Explain why.
Consider this situation:
Node 1
|
X
|
Node 2 ----- Node 3
Node 1 is still powered on and its VMs are still running, but Node 1 can no longer communicate with Nodes 2 and 3.
Why could this situation be dangerous?
Explain how quorum helps protect against this type of problem.
Your infrastructure currently looks approximately like this:
Proxmox Cluster
/ | \
Node 1 Node 2 Node 3
\ | /
TrueNAS
Shared Storage
You have three Proxmox nodes.
Does that mean your infrastructure is completely highly available?
No configuration changes are required for this section.
Instead, analyze the architecture.
Answer the following questions:
Explain the difference between:
and
Consider your HA VM.
If the physical node fails and Proxmox restarts the VM on another node after two minutes, was the application:
Explain your answer.
Imagine that you are designing infrastructure for a company that requires its web application to remain available if any one physical Proxmox node fails.
Using what you learned in this project, design an improved infrastructure.
Create a diagram showing:
Then explain:
Your goal is not necessarily to create a perfect architecture. Your goal is to identify the weaknesses of your architecture and explain how you would improve it.
Submit a single document containing the following:
Provide evidence that your VM is configured for HA.
Provide your predictions from Part 2.
Document the results of your controlled failure test.
Include:
Document the results of your unexpected failure test.
Answer the questions from Part 5.
Identify the potential single points of failure in your Proxmox/TrueNAS environment.
Explain the difference between the two concepts.
Submit your architecture diagram and explanation.