server

Introduction This article contains notes on migrating from Ubuntu 22.04 to 24.04 and from LXD to Incus. Updating from Ubuntu 22.04 to 24.04 First, execute the update: # sudo apt update && sudo apt upgrade -y Upgrade to 24.04: # sudo do-release-upgrade If do-release-upgrade cannot be found, install it with the following command: # sudo apt install ubuntu-release-upgrader-core Migration to Incus Install Incus: # sudo apt install incus incus-tools Verify that incus and lxd can be executed:
Introduction In my home, we don’t have a server equipped with BMC or IPMI like typical households. However, there are times when I want to perform power operations or configure the BIOS/UEFI remotely. (A long time ago, I used ATEN’s CN6000, but it was incredibly expensive.) I had heard of PiKVM using Raspberry Pi, but setting up Raspberry Pi and other hardware incurs quite a cost, leading me to pass on it.
Overview In the previous article, I wrote a program using XDP to DROP all packets. Quick Start Guide to XDP This time, I’ll write a program that counts the number of packets that were DROPPED using eBPF Maps. Again, this discussion is for those looking to quickly get hands-on with XDP + eBPF Maps. Therefore, detailed explanations of eBPF and types of Maps not being used will be omitted. Environment Setup This guide assumes an Ubuntu 22.
What Did I Do? I had previously introduced OpenDKIM in my notes when Notes on Adding OpenDKIM to Postfix + DMAR, but I wanted to support ARC signatures as well, so I switched to arcmilter. arcmilter is a milter designed for performing ARC signatures, but it can also handle DKIM signatures. arcmilter is written in Go. I should clarify, I wrote it myself… right? You can find arcmilter in the following repository:
Overview This is a quick guide to get started with XDP. Detailed explanations of eBPF and other concepts are omitted. XDP is a framework for processing packets at the earliest stage of the Linux kernel’s networking stack, allowing programs to be directly inserted into the NIC (Network Interface Card) using eBPF. Since XDP operates on packets at the earliest stage of the Linux kernel’s networking stack, it can process them faster than filters like iptables.
Due to various circumstances, I wanted to reproduce a situation where I/O stops, so here are my notes on how I reproduced I/O suspension using dmsetup. Reproducing IO Suspension with dmsetup Check status dmsetup info Suspend IO dmsetup suspend /dev/vol01/test Resume IO dmsetup resume /dev/vol01/test Links dmsetup Command Red Hat Enterprise Linux 7 | Red Hat Customer Portal
Overview I wanted to perform a load test with short packets, so I tried using Pktgen-DPDK. It is necessary to enable IOMMU beforehand. IOMMU Activation Memo Environment Environment Version Ubuntu 22.04 DPDK 23.11.1 Pktgen-DPDK main branch NIC Intel X520 DA2 Installing Required Packages Install dependencies sudo apt-get update sudo apt-get install -y git build-essential libnuma-dev python3-pyelftools linux-headers-$(uname -r) meson ninja-build Building and Installing DPDK Download the DPDK library DPDK Download I chose to use the latest LTS version, 23.
BIOS Refer to the BIOS manual. Linux Kernel Add the required options at boot time # vi /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="amd_iommu=on" For AMD, specify amd_iommu=on, and for Intel, specify intel_iommu=on. Apply GRUB configuration # update-grub Reboot # reboot Verify parameters # cat /proc/cmdline Check dmesg # dmesg | grep iommu
Notes on using non-Intel SFP+ with Intel X520 DA2 on Linux. Add driver options # cat << _EOF_ > /etc/modprobe.d/ixgbe.conf options ixgbe allow_unsupported_sfp=1,1 _EOF_ Unload and reload the driver # modprobe -r ixgbe # modprobe ixgbe Regenerate initramfs # update-initramfs -u Without this, allow_unsupported_sfp=1,1 will not be enabled on reboot.
This is a method to cache 502 (Bad Gateway) and 504 (Gateway Timeout) errors using the Sakura Cloud Web Accelerator. High access to non-cacheable content or even cacheable content can cause the origin server to return 502 (Bad Gateway) or 504 (Gateway Timeout) errors due to high server load. Normally, error responses from nginx do not include Cache-Control headers, so they are not cached, which means the load on the origin server continues.