MYCSS

2021-07-02

Нотатка для себе. Proxmox відновлюємо конфігурацію з майже "померлого" диску.

Ситуація така - помер системний диск Proxmox.

З даними віртуальних машин не проблема вони на інших ZFS дисках, а ось файл конфігурації невідомий.

Добре що були резервні копії віртуальних машин на NFS спільному ресурсі, і в них є копія конфігураційного файлу, але для деяких не дуже важливих віртуальних машин копій не було.

Тому пошуки ...

Диск не завантажувався, тому завантажуємося з USB Live Ubuntu, а проблемний диск підключаємо через SATA-USB адаптер потім.

dmesg

Виявлено три розділи:  sdb: sdb1 sdb2 sdb3

2021-07-01

Нотатка для себе. Proxmox config backup script DerDanilo

Proxmox  має вбудований механізм створення  резервних копій образів віртуальних машин, але копія налаштувань самого гіпервізору відсутня в community version.

Тому спільнота створює власні механізми, один з них проєкт від DerDanilo:  https://github.com/DerDanilo/proxmox-stuff


Де є скрипт резервного копіювання основних файлів до архівної теки,  і опис як відновити.

Ось його копія:

#!/bin/bash
# Version	      0.2.2 - BETA ! !
# Date		      02.20.2020
# Author 	      DerDanilo 
# Contributors    aboutte, xmirakulix, bootsie123

# set vars

# always exit on error
set -e

# permanent backups directory
# default value can be overridden by setting environment variable before running prox_config_backup.sh
# example: export BACK_DIR="/mnt/pve/media/backup
_bdir=${BACK_DIR:-/mnt/backups/proxmox}

# number of backups to keep before overriding the oldest one
MAX_BACKUPS=5

# temporary storage directory
_tdir=${TMP_DIR:-/var/tmp}

_tdir=$(mktemp -d $_tdir/proxmox-XXXXXXXX)

function clean_up {
    echo "Cleaning up"
    rm -rf $_tdir
}

# register the cleanup function to be called on the EXIT signal
trap clean_up EXIT

# Don't change if not required
_now=$(date +%Y-%m-%d.%H.%M.%S)
_HOSTNAME=$(hostname -f)
_filename1="$_tdir/proxmoxetc.$_now.tar"
_filename2="$_tdir/proxmoxpve.$_now.tar"
_filename3="$_tdir/proxmoxroot.$_now.tar"
_filename4="$_tdir/proxmoxcron.$_now.tar"
_filename5="$_tdir/proxmoxvbios.$_now.tar"
_filename6="$_tdir/proxmoxpackages.$_now.list"
_filename_final="$_tdir/proxmox_backup_"$_HOSTNAME"_"$_now".tar.gz"

##########

function description {
    clear
    cat </dev/null)" != "" ] ; then
	echo backing up custom video bios...
	tar --warning='no-file-ignored' -cvPf "$_filename5" /usr/share/kvm/*.vbios
    fi
    # copy installed packages list
    echo "Copying installed packages list from APT"
    apt-mark showmanual | tee "$_filename6"
}

function compressandarchive {
    echo "Compressing files"
    # archive the copied system files
    tar -cvzPf "$_filename_final" $_tdir/*.{tar,list}

    # copy config archive to backup folder
    # this may be replaced by scp command to place in remote location
    cp $_filename_final $_bdir/
}

function stopservices {
    # stop host services
    for i in pve-cluster pvedaemon vz qemu-server; do systemctl stop $i ; done
    # give them a moment to finish
    sleep 10s
}

function startservices {
    # restart services
    for i in qemu-server vz pvedaemon pve-cluster; do systemctl start $i ; done
    # Make sure that all VMs + LXC containers are running
    qm startall
}

##########


description
are-we-root-abort-if-not
check-num-backups

# We don't need to stop services, but you can do that if you wish
#stopservices

copyfilesystem

# We don't need to start services if we did not stop them
#startservices

compressandarchive

2021-06-10

Нотатка для себе. SR-IOV та Intel 82576/82575 в віртуальному середовищі Proxmox для FreeBSD, Ubuntu.

В Proxmox було встановлено мережеву карту 1Gb Intel 82576 з метою використання функціоналу SR-IOV для ефективного використання для віртуальних мереж.

SR-IOV

SR-IOV

Proxmox була налаштована для PCI(e) Passthrough , IOMMU  до VM.

2021-06-08

Нотатка для себе. Відновити GPT таблицю, випадково стерту в Proxmox з ZFS.

Proxmox. ZFS. HDD 3 TB.

Так сталося що випадково проініціалізував не той диск за допомогою команди fdisk: g   create a new empty GPT partition table.

Так я зрозумів що накоїв і диск ZFS працював зі старою partitional table доки не перезавантажиться система, тому почав створювати свіжі резервні копії, на мережевий диск ceph. І відновив віртуальні машини на іншому сервері.

Після копіювання, перезавантажив систему - диск пустий.

Відновлення

Спроба запуску TestDisk для аналізу і відновлення, знайдено в режимі Intel ост таку таблицю, вона не правдива. Не підходить.

TestDisk scan ZFS
Тому так як є інший Proxmox сервер з ZFS диском на 3ТБ, я виконав перенесення структури з робочого диску на не робочий.

2021-05-29

Нотатка для себе. Proxmox Ceph

Ceph destroy

#rm -rf /etc/systemd/system/ceph*
#killall -9 ceph-mon ceph-mgr ceph-mds
#rm -rf /var/lib/ceph/mon/  /var/lib/ceph/mgr/  /var/lib/ceph/mds/
#pveceph purge
#apt purge ceph-mon ceph-osd ceph-mgr ceph-mds
#rm /etc/init.d/ceph

LVM

#pvdisplay
File descriptor 7 (pipe:[1486785]) leaked on pvdisplay invocation. Parent PID 382397: bash
  --- Physical volume ---
  PV Name               /dev/sdc
  VG Name               ceph-adc898bc-44ea-43a1-8279-964e06acc8d5
  PV Size               931.51 GiB / not usable 1.71 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              238467
  Free PE               0
  Allocated PE          238467
  PV UUID               3LBrIs-Eh8t-wljP-WDMv-DxiX-CKAd-vXCyHf
#vgremove ceph-adc898bc-44ea-43a1-8279-964e06acc8d5
File descriptor 7 (pipe:[1486785]) leaked on vgremove invocation. Parent PID 382397: bash
Do you really want to remove volume group "ceph-adc898bc-44ea-43a1-8279-964e06acc8d5" containing 1 logical volumes? [y/n]: y
Do you really want to remove and DISCARD active logical volume ceph-adc898bc-44ea-43a1-8279-964e06acc8d5/osd-block-ca1b00e7-bafc-4c7a-97aa-a83bcd784173? [y/n]: y
  Logical volume "osd-block-ca1b00e7-bafc-4c7a-97aa-a83bcd784173" successfully removed
  Volume group "ceph-adc898bc-44ea-43a1-8279-964e06acc8d5" successfully removed

#pvremove   /dev/sdc
File descriptor 7 (pipe:[1486785]) leaked on pvremove invocation. Parent PID 382397: bash
  Labels on physical volume "/dev/sdc" successfully wiped.

2021-05-25

Нотатка для себе. SR-IOV VLAN Linux Proxmox

Для використання в віртуальних машинах у Proxmox віртуальних мережевих інтерфейсів.

Пристрої SR-IOV можуть спільно використовувати один фізичний порт з кількома віртуальними машинами.

Віртуальні функції мають майже рідну продуктивність і забезпечують кращу продуктивність, ніж паравіртуалізовані драйвери та емуляційний доступ. Віртуальні функції забезпечують захист даних між віртуальними машинами на тому ж фізичному сервері, коли дані управляються та контролюються апаратним забезпеченням.

How SR-IOV works

16.2. PCI Device Assignment with SR-IOV Devices Red Hat Enterprise Linux 7

Advantages of SR-IOV

SR-IOV devices can share a single physical port with multiple virtual machines.
When an SR-IOV VF is assigned to a virtual machine, it can be configured to (transparently to the virtual machine) place all network traffic leaving the VF onto a particular VLAN. The virtual machine cannot detect that its traffic is being tagged for a VLAN, and will be unable to change or eliminate this tagging.
Virtual Functions have near-native performance and provide better performance than paravirtualized drivers and emulated access. Virtual Functions provide data protection between virtual machines on the same physical server as the data is managed and controlled by the hardware.
These features allow for increased virtual machine density on hosts within a data center.
SR-IOV is better able to utilize the bandwidth of devices with multiple guests.  

2021-05-24

Нотатка для себе. CARP monitoring script pfsense.

Маю два сервери pfsense (2.5.1-RELEASE ) у різних віртуальних машинах з налаштованими Proxy сервер - Squid, та Virtual IP type CARP.

Virtual IP type CARP.

Задача мати на напоготові резервний Proxy сервер у випадку коли ведуться роботи на одному з гіпервізорів. 

Для цього існує пункт налаштування "Squid General Settings/


pfSense Proxy Server - CARP Status VIP

2021-05-16

Нотатка для себе. Hosting, Multple ISP, pf routing

Нотатка є віртуальна машина з FreeBSD v13, та двома інтерфейсами для vtnet0 (ISP1) так vtnet1 (ISP2).

Роль сервера - хостинг. Але ISP2 має швидкість 10Gbit/s, тому треба певні сайти віддавати через ISP1, інші через ISP2 з метою оптимізації.

rc.conf

#ISP1

ifconfig_vtnet0="inet 10.110.6.6  netmask 255.255.255.0"
defaultrouter="10.110.6.1"

ifconfig_vtnet0_ipv6="inet6 2105:1c00:7:1::6 prefixlen 64"
ipv6_defaultrouter="2105:1c00:7:1::1" #ISP2 ifconfig_vtnet1="inet 10.220.6.97 netmask 255.255.255.0"
ifconfig_vtnet1_ipv6="inet6 2001:10:10:10::97 prefixlen 64"

За замовчуванням трафік іде через vtnet0 (ISP1).
Для організації відповіді для запиту з інтерфейсу vtnet1 не через шлюз vtnet0, а через шлюз vtnet1 створено  правило для firewall pf.

pf.conf

ext_if1 = vtnet0
ext_gw1 = 10.110.6.1

ext_if2 = "vtnet1"
ext_gw2 = "10.220.6.1"
ext_gw2v6 = "2001:10:10:10::1"

#ipv4 reply-to
pass in on $ext_if2 reply-to ($ext_if2 $ext_gw2) inet from any to $ext_if2

#ipv6 reply-to pass in reply-to ($ext_if2 $ext_gw2v6) inet6 from !$ext_if2:network to $ext_if2. pass out route-to ($ext_if2 $ext_gw2v6) inet6 from $ext_if2 to !$ext_if2:network
Коли забув ти рідну мову, біднієш духом ти щодня...
When you forgot your native language you would become a poor at spirit every day ...

Д.Білоус / D.Bilous
Рабів до раю не пускають. Будь вільним!

ipv6 ready