Skip to content

Commit

Permalink
feat: Tune VM Sizing
Browse files Browse the repository at this point in the history
ArthurVardevanyan committed Feb 23, 2024
1 parent 06d93c8 commit 837d729
Showing 25 changed files with 476 additions and 361 deletions.
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -169,18 +169,18 @@ end

| NAME | ROLES | Machine | vCPU | Mem | Storage |
| -------- | -------------- | ------- | ---- | ----- | ------------- |
| server-1 | cp,etcd,master | kvm-1 | 7 | 20.5G | N/A |
| server-2 | cp,etcd,master | kvm-2 | 7 | 20.5G | N/A |
| server-3 | cp,etcd,master | kvm-1 | 7 | 20.5G | N/A |
| server-1 | cp,etcd,master | kvm-1 | 8 | 24.0G | N/A |
| server-2 | cp,etcd,master | kvm-2 | 8 | 24.0G | N/A |
| server-3 | cp,etcd,master | kvm-1 | 8 | 24.0G | N/A |
| infra-1 | infra,worker | kvm-1 | 6 | 7.0G | 2x1TB LH NVME |
| infra-2 | infra,worker | kvm-2 | 6 | 7.0G | 2x1TB LH NVME |
| infra-3 | infra,worker | kvm-3 | 6 | 7.0G | 2x1TB LH NVME |
| worker-1 | worker | kvm-1 | 7 | 31.0G | N/A |
| worker-2 | worker | kvm-2 | 7 | 31.0G | N/A |
| worker-3 | worker | kvm-3 | 7 | 31.0G | N/A |
| worker-4 | worker | kvm-1 | 7 | 31.0G | N/A |
| worker-5 | worker | kvm-2 | 7 | 31.0G | N/A |
| worker-6 | worker | kvm-3 | 7 | 31.0G | N/A |
| worker-1 | worker | kvm-1 | 7 | 29.0G | N/A |
| worker-2 | worker | kvm-2 | 7 | 29.0G | N/A |
| worker-3 | worker | kvm-3 | 7 | 29.0G | N/A |
| worker-4 | worker | kvm-1 | 7 | 29.0G | N/A |
| worker-5 | worker | kvm-2 | 7 | 29.0G | N/A |
| worker-6 | worker | kvm-3 | 7 | 29.0G | N/A |

#### KVM Config Dump

12 changes: 7 additions & 5 deletions okd/vms/scripts/infra-1.sh
Original file line number Diff line number Diff line change
@@ -16,10 +16,10 @@ qemu-img create "${STORAGE_PATH}" "${STORAGE_SIZE}" -f raw
# shellcheck disable=SC2089
STORAGE="--disk=\"${STORAGE_PATH}\"",cache=none

STORAGE_PATH_1="/mnt/storage-1/${NODE}_storage.raw"
qemu-img create "${STORAGE_PATH_1}" "${STORAGE_SIZE}" -f raw
# shellcheck disable=SC2089
STORAGE_1="--disk=\"${STORAGE_PATH_1}\"",cache=none
# STORAGE_PATH_1="/mnt/storage-1/${NODE}_storage.raw"
# qemu-img create "${STORAGE_PATH_1}" "${STORAGE_SIZE}" -f raw
# # shellcheck disable=SC2089
# STORAGE_1="--disk=\"${STORAGE_PATH_1}\"",cache=none

qemu-img create "${IMAGE}" "${SIZE}" -f raw
# shellcheck disable=SC2089
@@ -32,7 +32,9 @@ virt-install \
--os-variant="fedora-coreos-stable" \
--import --graphics="none" \
--network bridge=br0,mac="${MAC}" \
--disk="${IMAGE},cache=none" "${STORAGE}" "${STORAGE_1}" \
--disk="${IMAGE},cache=none" "${STORAGE}" \
--noautoconsole \
--cpu="host-passthrough" \
--qemu-commandline="-fw_cfg name=opt/com.coreos/config,file=${IGNITION_CONFIG}"

# "${STORAGE_1}" \
11 changes: 6 additions & 5 deletions okd/vms/scripts/infra-2.sh
Original file line number Diff line number Diff line change
@@ -16,10 +16,10 @@ qemu-img create "${STORAGE_PATH}" "${STORAGE_SIZE}" -f raw
# shellcheck disable=SC2089
STORAGE="--disk=\"${STORAGE_PATH}\"",cache=none

STORAGE_PATH_1="/mnt/storage-1/${NODE}_storage.raw"
qemu-img create "${STORAGE_PATH_1}" "${STORAGE_SIZE}" -f raw
# shellcheck disable=SC2089
STORAGE_1="--disk=\"${STORAGE_PATH_1}\"",cache=none
# STORAGE_PATH_1="/mnt/storage-1/${NODE}_storage.raw"
# qemu-img create "${STORAGE_PATH_1}" "${STORAGE_SIZE}" -f raw
# # shellcheck disable=SC2089
# STORAGE_1="--disk=\"${STORAGE_PATH_1}\"",cache=none

qemu-img create "${IMAGE}" "${SIZE}" -f raw
# shellcheck disable=SC2089
@@ -32,7 +32,8 @@ virt-install \
--os-variant="fedora-coreos-stable" \
--import --graphics="none" \
--network bridge=br0,mac="${MAC}" \
--disk="${IMAGE},cache=none" "${STORAGE}" "${STORAGE_1}" \
--disk="${IMAGE},cache=none" "${STORAGE}" \
--noautoconsole \
--cpu="host-passthrough" \
--qemu-commandline="-fw_cfg name=opt/com.coreos/config,file=${IGNITION_CONFIG}"
#"${STORAGE_1}" \
11 changes: 6 additions & 5 deletions okd/vms/scripts/infra-3.sh
Original file line number Diff line number Diff line change
@@ -16,10 +16,10 @@ qemu-img create "${STORAGE_PATH}" "${STORAGE_SIZE}" -f raw
# shellcheck disable=SC2089
STORAGE="--disk=\"${STORAGE_PATH}\"",cache=none

STORAGE_PATH_1="/mnt/storage-1/${NODE}_storage.raw"
qemu-img create "${STORAGE_PATH_1}" "${STORAGE_SIZE}" -f raw
# shellcheck disable=SC2089
STORAGE_1="--disk=\"${STORAGE_PATH_1}\"",cache=none
# STORAGE_PATH_1="/mnt/storage-1/${NODE}_storage.raw"
# qemu-img create "${STORAGE_PATH_1}" "${STORAGE_SIZE}" -f raw
# # shellcheck disable=SC2089
# STORAGE_1="--disk=\"${STORAGE_PATH_1}\"",cache=none

qemu-img create "${IMAGE}" "${SIZE}" -f raw
# shellcheck disable=SC2089
@@ -32,7 +32,8 @@ virt-install \
--os-variant="fedora-coreos-stable" \
--import --graphics="none" \
--network bridge=br0,mac="${MAC}" \
--disk="${IMAGE},cache=none" "${STORAGE}" "${STORAGE_1}" \
--disk="${IMAGE},cache=none" "${STORAGE}" \
--noautoconsole \
--cpu="host-passthrough" \
--qemu-commandline="-fw_cfg name=opt/com.coreos/config,file=${IGNITION_CONFIG}"
# "${STORAGE_1}" \
4 changes: 2 additions & 2 deletions okd/vms/scripts/server-1.sh
Original file line number Diff line number Diff line change
@@ -3,8 +3,8 @@
export LIBGUESTFS_BACKEND=direct
export HOME=/home/arthur
export NODE=server-1
export VCPUS=7
export RAM_MB=20992
export VCPUS=8
export RAM_MB=24576
export IMAGE="/mnt/${NODE}/${NODE}.raw"
export IGNITION_CONFIG="/var/lib/libvirt/images/master.ign"
export SIZE="128G"
4 changes: 2 additions & 2 deletions okd/vms/scripts/server-2.sh
Original file line number Diff line number Diff line change
@@ -3,8 +3,8 @@
export LIBGUESTFS_BACKEND=direct
export HOME=/home/arthur
export NODE=server-2
export VCPUS=7
export RAM_MB=20992
export VCPUS=8
export RAM_MB=24576
export IMAGE="/mnt/${NODE}/${NODE}.raw"
export IGNITION_CONFIG="/var/lib/libvirt/images/master.ign"
export SIZE="128G"
4 changes: 2 additions & 2 deletions okd/vms/scripts/server-3.sh
Original file line number Diff line number Diff line change
@@ -3,8 +3,8 @@
export LIBGUESTFS_BACKEND=direct
export HOME=/home/arthur
export NODE=server-3
export VCPUS=7
export RAM_MB=20992
export VCPUS=8
export RAM_MB=24576
export IMAGE="/mnt/${NODE}/${NODE}.raw"
export IGNITION_CONFIG="/var/lib/libvirt/images/master.ign"
export SIZE="128G"
2 changes: 1 addition & 1 deletion okd/vms/scripts/worker-1.sh
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ export LIBGUESTFS_BACKEND=direct
export HOME=/home/arthur
export NODE=worker-1
export VCPUS=7
export RAM_MB=31744
export RAM_MB=29696
export IMAGE="/home/okd/${NODE}.raw"
export IGNITION_CONFIG="/var/lib/libvirt/images/worker.ign"
export SIZE="128G"
2 changes: 1 addition & 1 deletion okd/vms/scripts/worker-2.sh
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ export LIBGUESTFS_BACKEND=direct
export HOME=/home/arthur
export NODE=worker-2
export VCPUS=7
export RAM_MB=31744
export RAM_MB=29696
export IMAGE="/home/okd/${NODE}.raw"
export IGNITION_CONFIG="/var/lib/libvirt/images/worker.ign"
export SIZE="128G"
2 changes: 1 addition & 1 deletion okd/vms/scripts/worker-3.sh
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ export LIBGUESTFS_BACKEND=direct
export HOME=/home/arthur
export NODE=worker-3
export VCPUS=7
export RAM_MB=31744
export RAM_MB=29696
export IMAGE="/home/okd/${NODE}.raw"
export IGNITION_CONFIG="/var/lib/libvirt/images/worker.ign"
export SIZE="128G"
2 changes: 1 addition & 1 deletion okd/vms/scripts/worker-4.sh
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ export LIBGUESTFS_BACKEND=direct
export HOME=/home/arthur
export NODE=worker-4
export VCPUS=7
export RAM_MB=31744
export RAM_MB=29696
export IMAGE="/home/okd/${NODE}.raw"
export IGNITION_CONFIG="/var/lib/libvirt/images/worker.ign"
export SIZE="128G"
2 changes: 1 addition & 1 deletion okd/vms/scripts/worker-5.sh
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ export LIBGUESTFS_BACKEND=direct
export HOME=/home/arthur
export NODE=worker-5
export VCPUS=7
export RAM_MB=31744
export RAM_MB=29696
export IMAGE="/home/okd/${NODE}.raw"
export IGNITION_CONFIG="/var/lib/libvirt/images/worker.ign"
export SIZE="128G"
2 changes: 1 addition & 1 deletion okd/vms/scripts/worker-6.sh
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ export LIBGUESTFS_BACKEND=direct
export HOME=/home/arthur
export NODE=worker-6
export VCPUS=7
export RAM_MB=31744
export RAM_MB=29696
export IMAGE="/home/okd/${NODE}.raw"
export IGNITION_CONFIG="/var/lib/libvirt/images/worker.ign"
export SIZE="128G"
65 changes: 55 additions & 10 deletions okd/vms/xml/infra-1.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<domain type='kvm' id='8' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<name>infra-1</name>
<uuid>b590d381-7c39-4665-be05-b0a5f536cc2f</uuid>
<metadata>
@@ -9,6 +9,9 @@
<memory unit='KiB'>7340032</memory>
<currentMemory unit='KiB'>7340032</currentMemory>
<vcpu placement='static'>6</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-rhel9.2.0'>hvm</type>
<boot dev='hd' />
@@ -36,129 +39,171 @@
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none' />
<source file='/home/okd/infra-1.raw' />
<source file='/home/okd/infra-1.raw' index='3' />
<backingStore />
<target dev='vda' bus='virtio' />
<alias name='virtio-disk0' />
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0' />
</disk>
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' discard='unmap' />
<source dev='/dev/nvme0n1' />
<source dev='/dev/nvme0n1' index='2' />
<backingStore />
<target dev='vdb' bus='virtio' />
<alias name='virtio-disk1' />
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0' />
</disk>
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' discard='unmap' />
<source dev='/dev/nvme1n1' />
<source dev='/dev/nvme1n1' index='1' />
<backingStore />
<target dev='vdc' bus='virtio' />
<alias name='virtio-disk2' />
<address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0' />
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<alias name='usb' />
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0' />
</controller>
<controller type='pci' index='0' model='pcie-root' />
<controller type='pci' index='0' model='pcie-root'>
<alias name='pcie.0' />
</controller>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port' />
<target chassis='1' port='0x8' />
<alias name='pci.1' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on' />
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port' />
<target chassis='2' port='0x9' />
<alias name='pci.2' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1' />
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port' />
<target chassis='3' port='0xa' />
<alias name='pci.3' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2' />
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port' />
<target chassis='4' port='0xb' />
<alias name='pci.4' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3' />
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port' />
<target chassis='5' port='0xc' />
<alias name='pci.5' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x4' />
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port' />
<target chassis='6' port='0xd' />
<alias name='pci.6' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x5' />
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port' />
<target chassis='7' port='0xe' />
<alias name='pci.7' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x6' />
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port' />
<target chassis='8' port='0xf' />
<alias name='pci.8' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x7' />
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port' />
<target chassis='9' port='0x10' />
<alias name='pci.9' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on' />
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port' />
<target chassis='10' port='0x11' />
<alias name='pci.10' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1' />
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port' />
<target chassis='11' port='0x12' />
<alias name='pci.11' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2' />
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port' />
<target chassis='12' port='0x13' />
<alias name='pci.12' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3' />
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port' />
<target chassis='13' port='0x14' />
<alias name='pci.13' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4' />
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port' />
<target chassis='14' port='0x15' />
<alias name='pci.14' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5' />
</controller>
<controller type='sata' index='0'>
<alias name='ide' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2' />
</controller>
<controller type='virtio-serial' index='0'>
<alias name='virtio-serial0' />
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0' />
</controller>
<interface type='bridge'>
<mac address='10:00:00:00:01:21' />
<source bridge='br0' />
<target dev='vnet7' />
<model type='virtio' />
<alias name='net0' />
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0' />
</interface>
<serial type='pty'>
<source path='/dev/pts/3' />
<target type='isa-serial' port='0'>
<model name='isa-serial' />
</target>
<alias name='serial0' />
</serial>
<console type='pty'>
<console type='pty' tty='/dev/pts/3'>
<source path='/dev/pts/3' />
<target type='serial' port='0' />
<alias name='serial0' />
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0' />
<source mode='bind'
path='/var/lib/libvirt/qemu/channel/target/domain-8-infra-1/org.qemu.guest_agent.0' />
<target type='virtio' name='org.qemu.guest_agent.0' state='connected' />
<alias name='channel0' />
<address type='virtio-serial' controller='0' bus='0' port='1' />
</channel>
<input type='mouse' bus='ps2' />
<input type='keyboard' bus='ps2' />
<input type='mouse' bus='ps2'>
<alias name='input0' />
</input>
<input type='keyboard' bus='ps2'>
<alias name='input1' />
</input>
<audio id='1' type='none' />
<watchdog model='itco' action='reset' />
<watchdog model='itco' action='reset'>
<alias name='watchdog0' />
</watchdog>
<memballoon model='virtio'>
<alias name='balloon0' />
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0' />
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<alias name='rng0' />
<address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0' />
</rng>
</devices>
Loading

0 comments on commit 837d729

Please sign in to comment.