2025-03-02 12:16:30 +01:00

151 lines
6.3 KiB
TypeScript

import type { Metadata } from "next"
import { Box } from "lucide-react"
import CopyableCode from "@/components/CopyableCode"
export const metadata: Metadata = {
title: "ProxMenux Post-Install: Virtualization Settings",
description:
"Detailed guide to the Virtualization Settings category in the ProxMenux post-install script for Proxmox VE optimization.",
openGraph: {
title: "ProxMenux Post-Install: Virtualization Settings",
description:
"Detailed guide to the Virtualization Settings category in the ProxMenux post-install script for Proxmox VE optimization.",
type: "article",
url: "https://macrimi.github.io/ProxMenux/docs/post-install/virtualization",
images: [
{
url: "https://macrimi.github.io/ProxMenux/virtualization-settings-image.png",
width: 1200,
height: 630,
alt: "ProxMenux Post-Install Virtualization Settings",
},
],
},
twitter: {
card: "summary_large_image",
title: "ProxMenux Post-Install: Virtualization Settings",
description:
"Detailed guide to the Virtualization Settings category in the ProxMenux post-install script for Proxmox VE optimization.",
images: ["https://macrimi.github.io/ProxMenux/virtualization-settings-image.png"],
},
}
function StepNumber({ number }: { number: number }) {
return (
<div className="inline-flex items-center justify-center w-8 h-8 mr-3 text-white bg-blue-500 rounded-full">
<span className="text-sm font-bold">{number}</span>
</div>
)
}
export default function VirtualizationSettingsPage() {
return (
<div className="container mx-auto px-4 py-8">
<div className="flex items-center mb-6">
<Box className="h-8 w-8 mr-2 text-blue-500" />
<h1 className="text-3xl font-bold">Virtualization Settings</h1>
</div>
<p className="mb-4">
The <strong>Virtualization Settings</strong> category focuses on optimizing your Proxmox VE installation for
enhanced virtualization performance, compatibility, and functionality. These settings are crucial for creating a
robust and efficient virtualization environment.
</p>
<h2 className="text-2xl font-semibold mt-8 mb-4">Available Optimizations</h2>
<h3 className="text-xl font-semibold mt-16 mb-4 flex items-center">
<StepNumber number={1} />
Enable VFIO IOMMU Support
</h3>
<p className="mb-4">
This optimization enables IOMMU (Input-Output Memory Management Unit) and configures VFIO (Virtual Function I/O)
for PCI passthrough, allowing direct assignment of PCI devices to virtual machines.
</p>
<p className="mb-4">
<strong>Why it's beneficial:</strong> IOMMU and VFIO support enables near-native performance for PCI devices
(like GPUs or network cards) in virtual machines. This is crucial for high-performance virtualization scenarios,
such as GPU-accelerated workloads or network-intensive applications. It allows VMs to directly access hardware,
bypassing the hypervisor, which significantly improves performance and reduces latency.
</p>
<p className="text-lg mb-2">This adjustment automates the following commands:</p>
<CopyableCode
code={`
# For Intel CPUs
echo "intel_iommu=on" | sudo tee -a /etc/default/grub
# For AMD CPUs
echo "amd_iommu=on" | sudo tee -a /etc/default/grub
echo "vfio vfio_iommu_type1 vfio_pci vfio_virqfd" | sudo tee -a /etc/modules
sudo update-grub
sudo update-initramfs -u -k all
`}
/>
<h3 className="text-xl font-semibold mt-16 mb-4 flex items-center">
<StepNumber number={2} />
Install Relevant Guest Agent
</h3>
<p className="mb-4">
This optimization detects the virtualization environment and installs the appropriate guest agent for improved
integration between the host and guest systems.
</p>
<p className="mb-4">
<strong>Why it's beneficial:</strong> Guest agents improve communication and integration between the host and
guest systems. They enable features like graceful shutdown of virtual machines, file sharing between host and
guest, better performance monitoring, and enhanced resource allocation. This leads to more efficient management
of VMs and improved overall system performance.
</p>
<p className="text-lg mb-2">This adjustment automates the following commands:</p>
<CopyableCode
code={`
# For QEMU/KVM VMs
sudo apt-get install -y qemu-guest-agent
# For VMware VMs
sudo apt-get install -y open-vm-tools
# For VirtualBox VMs
sudo apt-get install -y virtualbox-guest-utils
`}
/>
<h3 className="text-xl font-semibold mt-20 mb-4 flex items-center">
<StepNumber number={3} />
Configure KSM (Kernel Samepage Merging)
</h3>
<p className="mb-4">
This optimization installs and configures the KSM control daemon, which helps optimize memory usage in
virtualized environments by sharing identical memory pages between multiple virtual machines.
</p>
<p className="mb-4">
<strong>Why it's beneficial:</strong> KSM can significantly reduce memory usage in environments with many
similar VMs, allowing for higher VM density on a single host. This is particularly beneficial for scenarios
where many VMs run similar operating systems or applications. By reducing overall memory usage, KSM can improve
system performance and allow for more efficient resource utilization.
</p>
<p className="text-lg mb-2">This adjustment automates the following commands:</p>
<CopyableCode
code={`
sudo apt-get install -y ksm-control-daemon
echo "KSM_ENABLED=1" | sudo tee -a /etc/default/ksm
echo "KSM_SLEEP_MSEC=100" | sudo tee -a /etc/default/ksm
sudo systemctl enable ksm
sudo systemctl start ksm
`}
/>
<section className="mt-12 p-4 bg-blue-100 rounded-md">
<h2 className="text-xl font-semibold mb-2">Automatic Application</h2>
<p>
All of these optimizations are automatically applied when selected in the Virtualization section. This
automation ensures that these beneficial settings are applied consistently and correctly, saving time and
reducing the potential for human error during manual configuration.
</p>
</section>
</div>
)
}