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

View File

@ -4,18 +4,174 @@ import { Box } from "lucide-react"
export const metadata: Metadata = { export const metadata: Metadata = {
title: "ProxMenux Post-Install: Virtualization Settings", title: "ProxMenux Post-Install: Virtualization Settings",
description: description:
"In-depth guide to Virtualization Settings in the ProxMenux post-install script for optimizing Proxmox VE virtualization capabilities.", "Detailed guide to the Virtualization Settings category in the ProxMenux post-install script for Proxmox VE optimization.",
// ... (rest of the metadata remains the same) 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() { 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 ( return (
<div className="container mx-auto px-4 py-8"> <div className="container mx-auto px-4 py-8">
<div className="flex items-center mb-6"> <div className="flex items-center mb-6">
<Box className="h-8 w-8 mr-2 text-blue-500" /> <Box className="h-8 w-8 mr-2 text-blue-500" />
<h1 className="text-3xl font-bold">Virtualization Settings</h1> <h1 className="text-3xl font-bold">Virtualization Settings</h1>
</div> </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> </div>
) )
} }