This commit is contained in:
MacRimi 2025-03-01 18:07:08 +01:00
parent 77746e7232
commit ef45257c05
2 changed files with 214 additions and 42 deletions

View File

@ -5,7 +5,28 @@ export const metadata: Metadata = {
title: "ProxMenux Post-Install: Basic Settings",
description:
"Detailed guide to the Basic Settings category in the ProxMenux post-install script for Proxmox VE optimization.",
// ... (rest of the metadata remains the same)
openGraph: {
title: "ProxMenux Post-Install: Basic Settings",
description:
"Detailed guide to the Basic Settings category in the ProxMenux post-install script for Proxmox VE optimization.",
type: "article",
url: "https://macrimi.github.io/ProxMenux/docs/post-install/basic-settings",
images: [
{
url: "https://macrimi.github.io/ProxMenux/basic-settings-image.png",
width: 1200,
height: 630,
alt: "ProxMenux Post-Install Basic Settings",
},
],
},
twitter: {
card: "summary_large_image",
title: "ProxMenux Post-Install: Basic Settings",
description:
"Detailed guide to the Basic Settings category in the ProxMenux post-install script for Proxmox VE optimization.",
images: ["https://macrimi.github.io/ProxMenux/basic-settings-image.png"],
},
}
export default function BasicSettingsPage() {
@ -26,7 +47,7 @@ echo 'Acquire::Languages "none";' | sudo tee /etc/apt/apt.conf.d/99-disable-tran
IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
TIMEZONE=$(curl -s "https://ipapi.co/$IP/timezone")
sudo timedatectl set-timezone "$TIMEZONE"
`
`
const updateUpgradeCode = `
# Disable enterprise repos
@ -66,13 +87,12 @@ sudo apt-get install -y zfsutils-linux proxmox-backup-restore-image chrony
This optimization installs a set of common system utilities that are useful for system administration and
troubleshooting.
</p>
<h4 className="text-lg font-semibold mb-2">What it does:</h4>
<ul className="list-disc pl-5 mb-4">
<li>Installs packages like curl, htop, iftop, nano, vim, and more</li>
<li>Checks which packages are already installed to avoid unnecessary installations</li>
<li>Provides a progress bar during the installation process</li>
</ul>
<h4 className="text-lg font-semibold mb-2">Manual commands:</h4>
<p className="mb-4">
<strong>Why it's beneficial:</strong> Having these utilities pre-installed saves time when managing your
Proxmox VE system. They provide essential tools for monitoring system performance, managing files, and
troubleshooting issues, enhancing your ability to maintain and optimize your virtualization environment.
</p>
<h4 className="text-lg font-semibold mb-2">To apply this optimization manually, you would run:</h4>
<pre className="bg-gray-100 p-4 rounded-md overflow-x-auto">
<code>{installUtilitiesCode}</code>
</pre>
@ -84,11 +104,12 @@ sudo apt-get install -y zfsutils-linux proxmox-backup-restore-image chrony
This optimization configures APT to skip downloading additional language packages, which can save disk space
and speed up package operations.
</p>
<h4 className="text-lg font-semibold mb-2">What it does:</h4>
<ul className="list-disc pl-5 mb-4">
<li>Creates or modifies the APT configuration file to skip language downloads</li>
</ul>
<h4 className="text-lg font-semibold mb-2">Manual commands:</h4>
<p className="mb-4">
<strong>Why it's beneficial:</strong> By skipping unnecessary language packages, you can reduce disk usage and
improve the speed of package management operations. This is particularly useful in server environments where
multiple language support is often not required.
</p>
<h4 className="text-lg font-semibold mb-2">To apply this optimization manually, you would run:</h4>
<pre className="bg-gray-100 p-4 rounded-md overflow-x-auto">
<code>{skipLanguagesCode}</code>
</pre>
@ -99,12 +120,12 @@ sudo apt-get install -y zfsutils-linux proxmox-backup-restore-image chrony
<p className="mb-4">
This optimization configures the system to automatically synchronize its time, ensuring accurate timekeeping.
</p>
<h4 className="text-lg font-semibold mb-2">What it does:</h4>
<ul className="list-disc pl-5 mb-4">
<li>Attempts to set the timezone automatically based on the system's IP address</li>
<li>Enables automatic time synchronization using systemd's timesyncd</li>
</ul>
<h4 className="text-lg font-semibold mb-2">Manual commands:</h4>
<p className="mb-4">
<strong>Why it's beneficial:</strong> Accurate timekeeping is crucial for many system operations, log
consistency, and proper functioning of time-sensitive applications. Automatic synchronization ensures your
Proxmox VE system maintains the correct time without manual intervention.
</p>
<h4 className="text-lg font-semibold mb-2">To apply this optimization manually, you would run:</h4>
<pre className="bg-gray-100 p-4 rounded-md overflow-x-auto">
<code>{timeSyncCode}</code>
</pre>
@ -116,30 +137,25 @@ sudo apt-get install -y zfsutils-linux proxmox-backup-restore-image chrony
This optimization updates the system's package lists, upgrades installed packages, and configures Proxmox
repositories.
</p>
<h4 className="text-lg font-semibold mb-2">What it does:</h4>
<ul className="list-disc pl-5 mb-4">
<li>Disables enterprise Proxmox repositories</li>
<li>Enables free public Proxmox repository</li>
<li>Configures main Debian repositories</li>
<li>Updates package lists and performs a system upgrade</li>
<li>Updates PVE application manager</li>
<li>Installs additional Proxmox packages</li>
</ul>
<h4 className="text-lg font-semibold mb-2">Manual commands:</h4>
<p className="mb-4">
<strong>Why it's beneficial:</strong> Keeping your system up-to-date is essential for security, stability, and
performance. This optimization ensures you have the latest patches and features, while also configuring the
correct repositories for Proxmox VE, enabling access to necessary updates and tools.
</p>
<h4 className="text-lg font-semibold mb-2">To apply this optimization manually, you would run:</h4>
<pre className="bg-gray-100 p-4 rounded-md overflow-x-auto">
<code>{updateUpgradeCode}</code>
</pre>
</section>
<h2 className="text-2xl font-semibold mt-8 mb-4">Usage</h2>
<p className="mb-4">
When running the customizable_post_install.sh script, you'll be prompted to choose which Basic Settings
optimizations to apply. You can select all or pick specific ones based on your needs.
</p>
<section className="mt-12 p-4 bg-blue-100 rounded-md">
<h2 className="text-xl font-semibold mb-2">Automatic Application</h2>
<p>
For detailed information on each optimization and its impact, refer to the script comments or consult the
ProxMenux documentation.
All of these optimizations are automatically applied when selected in the Basic Settings section of the
customizable_post_install.sh script. This automation ensures that these beneficial settings are applied
consistently and correctly.
</p>
</section>
</div>
)
}

View File

@ -4,18 +4,174 @@ import { Box } from "lucide-react"
export const metadata: Metadata = {
title: "ProxMenux Post-Install: Virtualization Settings",
description:
"In-depth guide to Virtualization Settings in the ProxMenux post-install script for optimizing Proxmox VE virtualization capabilities.",
// ... (rest of the metadata remains the same)
"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"],
},
}
export default function VirtualizationSettingsPage() {
const enableVfioIommuCode = `
# Enable IOMMU for Intel or AMD CPU
# For Intel:
sed -i '/GRUB_CMDLINE_LINUX_DEFAULT=/ s/"$/ intel_iommu=on iommu=pt"/' /etc/default/grub
# For AMD:
# sed -i '/GRUB_CMDLINE_LINUX_DEFAULT=/ s/"$/ amd_iommu=on iommu=pt"/' /etc/default/grub
# Configure VFIO modules
echo "vfio" >> /etc/modules
echo "vfio_iommu_type1" >> /etc/modules
echo "vfio_pci" >> /etc/modules
echo "vfio_virqfd" >> /etc/modules
# Blacklist conflicting drivers
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf
# Update GRUB and initramfs
update-grub
update-initramfs -u -k all
`
const installGuestAgentCode = `
# Detect virtualization environment
VIRT_ENV=$(systemd-detect-virt)
# Install appropriate guest agent
case $VIRT_ENV in
kvm)
apt-get install -y qemu-guest-agent
;;
vmware)
apt-get install -y open-vm-tools
;;
oracle)
apt-get install -y virtualbox-guest-utils
;;
*)
echo "No specific guest agent needed or virtualization not detected."
;;
esac
`
const configureKsmtunedCode = `
# Install KSM control daemon
apt-get install -y ksm-control-daemon
# Configure KSM based on system RAM
RAM_GB=$(free -g | awk '/^Mem:/{print $2}')
if [ $RAM_GB -le 16 ]; then
sed -i 's/KSM_THRES_COEF=.*/KSM_THRES_COEF=50/' /etc/ksmtuned.conf
sed -i 's/KSM_SLEEP_MSEC=.*/KSM_SLEEP_MSEC=80/' /etc/ksmtuned.conf
elif [ $RAM_GB -le 32 ]; then
sed -i 's/KSM_THRES_COEF=.*/KSM_THRES_COEF=40/' /etc/ksmtuned.conf
sed -i 's/KSM_SLEEP_MSEC=.*/KSM_SLEEP_MSEC=60/' /etc/ksmtuned.conf
elif [ $RAM_GB -le 64 ]; then
sed -i 's/KSM_THRES_COEF=.*/KSM_THRES_COEF=30/' /etc/ksmtuned.conf
sed -i 's/KSM_SLEEP_MSEC=.*/KSM_SLEEP_MSEC=40/' /etc/ksmtuned.conf
elif [ $RAM_GB -le 128 ]; then
sed -i 's/KSM_THRES_COEF=.*/KSM_THRES_COEF=20/' /etc/ksmtuned.conf
sed -i 's/KSM_SLEEP_MSEC=.*/KSM_SLEEP_MSEC=20/' /etc/ksmtuned.conf
else
sed -i 's/KSM_THRES_COEF=.*/KSM_THRES_COEF=10/' /etc/ksmtuned.conf
sed -i 's/KSM_SLEEP_MSEC=.*/KSM_SLEEP_MSEC=10/' /etc/ksmtuned.conf
fi
# Enable ksmtuned service
systemctl enable ksmtuned
`
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>
{/* ... (rest of the component remains the same) */}
<p className="mb-4">
The Virtualization Settings category in the customizable_post_install.sh script focuses on optimizing your
Proxmox VE installation for better virtualization performance and compatibility.
</p>
<h2 className="text-2xl font-semibold mt-8 mb-4">Available Optimizations</h2>
<section className="mb-8">
<h3 className="text-xl font-semibold mb-2">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, which is crucial for high-performance virtualization
scenarios.
</p>
<h4 className="text-lg font-semibold mb-2">To apply this optimization manually, you would run:</h4>
<pre className="bg-gray-100 p-4 rounded-md overflow-x-auto">
<code>{enableVfioIommuCode}</code>
</pre>
</section>
<section className="mb-8">
<h3 className="text-xl font-semibold mb-2">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 between the host and guest systems,
enabling features like graceful shutdown, file sharing, and better performance monitoring. This ensures
smoother operation and management of virtual machines.
</p>
<h4 className="text-lg font-semibold mb-2">To apply this optimization manually, you would run:</h4>
<pre className="bg-gray-100 p-4 rounded-md overflow-x-auto">
<code>{installGuestAgentCode}</code>
</pre>
</section>
<section className="mb-8">
<h3 className="text-xl font-semibold mb-2">3. Configure KSM Control Daemon</h3>
<p className="mb-4">
This optimization installs and configures the KSM (Kernel Samepage Merging) control daemon, which helps
optimize memory usage in virtualized environments.
</p>
<p className="mb-4">
<strong>Why it's beneficial:</strong> KSM allows the kernel to share identical memory pages between multiple
virtual machines, reducing overall memory usage. This can lead to better resource utilization, especially in
environments with many similar virtual machines.
</p>
<h4 className="text-lg font-semibold mb-2">To apply this optimization manually, you would run:</h4>
<pre className="bg-gray-100 p-4 rounded-md overflow-x-auto">
<code>{configureKsmtunedCode}</code>
</pre>
</section>
<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 of the
customizable_post_install.sh script. This automation ensures that these beneficial settings are applied
consistently and correctly.
</p>
</section>
</div>
)
}