====== Proxmox ====== Система віртуалізації з відкритим вихідним кодом заснована на Debian GNU/Linux. Розробляється австрійською фірмою Proxmox Server Solutions GmbH, яка спонсорується Internet Foundation Austria. Як гіпервізори використовує [[kernel-based_virtual_machine:kernel-based_virtual_machine|KVM]] та OpenVZ. Відповідно, здатна виконувати будь-які підтримувані [[kernel-based_virtual_machine:kernel-based_virtual_machine|KVM]] ОС (Linux, *BSD, Windows та інші) з мінімальними втратами продуктивності та Linux без втрат. Управління віртуальними машинами та адміністрування самого сервера проводяться через веб-інтерфейс або через стандартний інтерфейс командного рядка Linux. Для створюваних віртуальних машин є безліч опцій: використовуваний гіпервізор, тип сховища (файл образу або [[lvm:lvm|LVM]]), тип емульованої дискової підсистеми (IDE, SCSI або VirtIO), тип емульованої мережевої карти, кількість доступних процесорів та інші . [[http://www.proxmox.com/proxmox-ve | Proxmox VE Home]] {{youtube>Q6JAtmRhNf4?medium}} [[https://www.youtube.com/watch?v=Q6JAtmRhNf4&list=PLEFo-qGWcO2bIGEy7HbLX2nWfhVj3prmL&ab_channel=realmanual | Proxmox: Доступна віртуалізація російською ]] ====== Додамо користувача ====== sudo adduser username New password: Retype new password: ... Is the information correct? [Y/n] Y usermod -aG sudo username ====== Безкоштовний репозиторій ====== На жаль, розробники нав'язливо рекомендують оформити платну передплату на їхнє комерційне оновлення. Та й ціна покусується. Тому відвучаємо від жадібності. Для початку необхідно відключити підписку на платний репозиторій, доступу до якого зазвичай немає. Для цього редагуємо файл /etc/apt/sources.list.d/pve-enterprise.list і наводимо його до такого вигляду: #deb https://enterprise.proxmox.com/debian/pve buster pve-enterprise deb http://download.proxmox.com/debian/pve buster pve-no-subscription [[https://pve.proxmox.com/wiki/Package_Repositories#sysadmin_no_subscription_repo|Джерело]] ====== Оновлення та встановлення ====== apt -y update && apt -y full-upgrade apt-get install libperl-dev gcc make gnupg net-tools sudo wget curl mc ifupdown2 openvswitch-switch ====== Network ====== nano /etc/network/interfaces /etc/init.d/networking restart systemctl restart networking #reboot ====== PCI passthrough ====== Для прокидання переферії всередину віртуалок на Інтелівських хостах проробимо наступне root@pve0:~# nano /etc/default/grub #GRUB_CMDLINE_LINUX_DEFAULT="quiet" GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt" root@pve0:~# update-grub root@pve0:~# reboot після чого прокинути фізичну сіркову карту в вм стане можливим [[https://pve.proxmox.com/wiki/Pci_passthrough|Source]] ====== Let`s Encrypt ====== root@pve1:~# pvenode config set --acme domains=pve0.example.com root@pve1:~# pvenode acme account register default a.system@example.com Directory endpoints: 0) Let's Encrypt V2 (https://acme-v02.api.letsencrypt.org/directory) 1) Let's Encrypt V2 Staging (https://acme-staging-v02.api.letsencrypt.org/directory) 2) Custom Enter selection: 0 Attempting to fetch Terms of Service from 'https://acme-v02.api.letsencrypt.org/directory'. Terms of Service: https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf Do you agree to the above terms? [y|N]: y Примітка, що register account with 'https://acme-v02.api.letsencrypt.org/directory'.. Generating ACME account key. Registering ACME account. Registration successful, account URL: 'https://acme-v02.api.letsencrypt.org/acme/acct/122167440' Task OK root@pve1:~# pvenode acme cert order ... Status is 'valid', domain 'pve0.example.com' OK! ... Order is ready, finalizing order valid! ... Restarting pveproxy Task OK [[https://pve.proxmox.com/wiki/Certificate_Management#_switching_from_the_tt_span_class_monospaced_staging_span_tt_to_the_regular_acme_directory|Source]] ====== HDD ====== ===== Removing the 'Local LVM' ===== root@pve0:~# lvremove /dev/pve/data Do you really want to remove and DISCARD активного логічного volume pve/data? [y/n]: y Logical volume "data" успішно вилучений root@pve0:~# lvresize -l +100%FREE /dev/pve/root Size of logical volume pve/root changed from 18.25 GiB (4672 extents) to <65.99 GiB (16894 extents). Logical volume pve/root successfully resized. root@pve0:~# resize2fs /dev/mapper/pve-root resize2fs 1.44.5 (15-Dec-2018) Filesystem at /dev/mapper/pve-root is mounted on /; on-line resizing required old_desc_blocks = 3, new_desc_blocks = 9 Filesystem на /dev/mapper/pve-root is now 17299456 (4k) блоки long. [[https://blog.jarmosz.uk/posts/removing-local-lvm-on-proxmox-5/| Source]] ===== Add local Storage ===== [[https://multeam.ru/blog/132| Source]] ===== ADD SAN Storage ===== Для підключення дискових масивів по мережі SAN необхідно спочатку дозволитиданому хосту підключатися до сервера СГД. У нашому випадку ми будемо підключатися до HP MSA p2000 g3 FC. Всі інструкції [[ua:hpe:p2000g3|тут]]. Наступним кроком необхідно навчити наш сервер працювати з масивами через multipath. Приступимо. У прикладі до віртуального сервера на базі ОС Debian GNU/Linux 10 з мережі FC SAN підключений дисковий том (RAID-масив) з системи зберігання даних HP StorageWorks Modular Smart Array p2000 g3 FC. Підключення тома виконано двома шляхами, тобто через дві окремі фабрики FC SAN. Для того, щоб задіяти механізм multipath (Device Mapper Multipath/DM-multipath), який дозволить звертатися до цих двох дискових пристроїв, доступних по різних шляхах, як до одного пристрою Debian Linux нам потрібно встановити пакет multipath-tools. apt-get install multipath-tools scsitools Після інсталяції пакета не створюється опорний конфігураційний файл /etc/multipath.conf, а механізм multipath використовує конфігурацію за замовчуванням. Подивитися те, яку базову конфігурацію використовує служба multipath-tools можна командою: # echo 'show config' | multipathd -k Подивимося, що знайшла служба multipath-tools у нашій системі # multipath -ll Якщо ми раптом бачимо, що крім дисків, що дійсно мають кілька шляхів підключення, в конфігурацію multipath потрапляють якісь локальні пристрої, наприклад, на серверах HP це можуть бути логічні диски з RAID-контролера HP Smart Array cciss/c0d1, то потрібно створити файл додаткової конфігурації mkdir -p /etc/multipath/conf.d/ nano /etc/multipath/conf.d/multipath.conf і додати в нього власне правило. blacklist { devnode "^cciss\/c[0-9]d[0-9]*" } також додамо конфігурацію нашого пристрою СГД devices { device { vendor "HP" product "P2000 G3 FC|P2000G3 FC/iSCSI|P2000 G3 SAS|P2000 G3 iSCSI" path_grouping_policy "group_by_prio" path_selector "round-robin 0" path_checker "tur" features "0" hardware_handler "0" prio "alua" failback "immediate" rr_weight "uniform" no_path_retry 9 rr_min_io 100 } } Правила, описані нами в даному випадку у власному конфігураційному файлі /etc/multipath/conf.d/multipath.conf сумуватимуться з правилами базової конфігурації служби multipath-tools 489 rescan-scsi-bus.sh 490 lsblk 493 multipath -a /dev/sdd wwid '3600c0f.....26001000000' added 494 nano /etc/multipath/conf.d/multipath.conf blacklist_exceptions { ... wwid "3600c0f.....26001000000" } ... multipaths { ... multipath { wwid 3600c0f.....26001000000 alias MSA0_A3 } } 495 systemctl restart multipath-tools.service 496 systemctl restart multipathd 497 multipath-ll 498 ls /dev/mapper/ Після внесення змін до конфігурації multipath виконаємо перезапуск служби # systemctl restart multipath-tools.service # systemctl restart multipathd Перевіримо # multipath -ll Якщо нічого не змінилося, залишається перезавантажити хост. Надалі після перезавантаження, томи додаються одразу. результат: MSA1S1200 (3600c0ffxxxxxxxxxxxxxxxxxx6001000000) dm-34 HP,P2000 G3 FC size=1.1T features='1 queue_if_no_path' hwhandler='1 alua' wp=rw |-+- policy='round-robin 0' prio=50 status=active | `- 2:0:0:3 sdb 8:16 active ready running `-+- policy='round-robin 0' prio=10 status=enabled `- 5:0:0:4 sdc 8:32 active ready running Те що потрібно! Том визначився multipath під псевдонімом MSA1S1200. Перевіримо вміст, якщо не новий # ls /dev/mapper/MSA1S1200 Якщо це новий масив, то на ньому потрібно створити файлову систему. pvcreate /dev/mapper/MSA1S1200 vgcreate MSA1S1200 /dev/mapper/MSA1S1200 Далі переходимо в Веб панель → Датацентр → Сховище → Додати → LVM У діалоговому вікні: ід: MSA1S1200 Група томів: MSA1S1200 Решта за замовчуванням [[https://www.thegeekdiary.com/corruption-or-accidental-deletion-in-lvm-how-to-rebuild-lvm-from-archive-metadata-backups-in-rhel-centos/]] ====== OTHER ====== ===== Нагадування про підписку ===== При кожному вході в систему нам виводитиметься чудове повідомлення, що непогано було б купити техпідтримку. Щоб уникнути цієї радості, необхідно зробити таке: [[https://github.com/Jamesits/pve-fake-subscription/tree/v0.0.8]] wget https://github.com/Jamesits/pve-fake-subscription/releases/download/v0.0.9/pve-fake-subscription_0.0.9+git-1_all.deb dpkg -i pve-fake-subscription_*.deb pve-fake-subscription ==== Старий варіант ==== Викликаємо на редагування файл ///usr/share/pve-manager/ext4/pvemanagerlib.js// І наводимо його до такого вигляду: root@proxmox:/# diff -Naur /usr/share/pve-manager/ext4/pvemanagerlib.js.original /usr/share/pve-manager/ext4/pvemanagerlib.js --- /usr/share/pve-manager/ext4/pvemanagerlib.js.original 2013-08-20 08:07:54.000000000 +0100 +++ /usr/share/pve-manager/ext4/pvemanagerlib.js 2013-08-21 18:16:22.417007719 +0100 @@ -447,22 +447,7 @@ success: function(response, opts) { var data = response.result.data; - if (data.status !== 'Active') { - Ext.Msg.show({ - title: 'No valid subscription', - icon: Ext.Msg.WARNING, - msg: PVE.Utils.noSubKeyHtml, - buttons: Ext.Msg.OK, - callback: function(btn) { - if (btn !== 'ok') { - return; - } - orig_cmd(); - } - }); - } else { - orig_cmd(); - } + orig_cmd(); } }); }, Від версії до версії рядки зміщуються, але як слід зробити за наведеним прикладом цілком зрозуміло. ====== remove cluster ====== systemctl stop pve-cluster corosync pmxcfs -l rm -r /etc/corosync/* rm /etc/pve/corosync.conf killall pmxcfs systemctl start pve-cluster [[https://forum.proxmox.com/threads/proxmox-ve-6-removing-cluster-configuration.56259/| Source]] [[https://habr.com/ua/post/180699/| !!!habr Source!!!]] ====== Alter Themes ====== [[https://lunar.computer/posts/themes-proxmox/]] ==== Dark Theme ==== [[https://computingforgeeks.com/customize-proxmox-ve-web-ui-with-dark-theme/]] [[https://github.com/Weilbyte/PVEDiscordDark]] ====== Backup Script ====== [[https://github.com/Mr-Method/proxmox-stuff]] cd /etc/cron.daily/ wget https://raw.githubusercontent.com/DerDanilo/proxmox-stuff/master/prox_config_backup.sh chmod +x ./prox_config_backup.sh mv -v prox_config_backup.sh prox_config_backup modify script: comment line with "description" at the end of file; change DEFAULT_BACK_DIR destenation; nano prox_config_backup ====== Hyper-V to PVE ====== - створюємо ВМ з максимально схожими параметрами з диском в форматі qcow2 - заливаємо на хост PVE образ диску ВМ з Hyper-V в форматі vhdx - з консолі PVE перевіряємо образ на помилки **qemu-img check -r all Hyper-V_vm122_Disk0.vhdx** - з консолі PVE конвертуємо диск **qemu-img convert -O qcow2 Hyper-V_vm122_Disk0.vhdx ./vm-122-disk-0.qcow2** - підміняємо диск ВМ з першого пункту щойно згенерованим, замінивши назву файлу як в оригіналі - запускаємо ВМ ====== Посилання ====== [[http://onreader.mdl.ru/MasteringProxmox.2ed/content/index.html|Proxmox. Полное руководство. 2е изд.]] [[https://forum.proxmox.com/threads/proxmox-ve-6-removing-cluster-configuration.56259/]] [[http://pyatilistnik.org/spisok-komand-hpssacli-dlya-rabotyi-s-raid-smart-array-p410i-na-esxi-5-5/]] [[http://downloads.linux.hpe.com/SDR/project/mcp/]] [[https://wiki.webko.net.ua/index.php?title=HP_ProLiant_G8#SNMP_OID_List_for_iLO4]] [[http://sysadm.pp.ua/linux/monitoring-systems/hpraid-monitoring.html]] [[https://pve.proxmox.com/wiki/Disk_Health_Email_Alerts]] fail2ban [[https://pve.proxmox.com/wiki/Fail2ban]] for freebsd [[https://www.freebsd.org/cgi/man.cgi?query=virtio&sektion=4]] open vSwitch [[http://vladimir-stupin.blogspot.com/2016/06/open-vswitch-debian.html]] fix ssh batch [[https://www.symmcom.com/docs/how-tos/hypervisors/how-to-fix-host-key-verification-error-for-proxmox-node]] [[https://soar.name/ru/pro/linux-memory-hotplug/]] for f in `grep -Fl offline /sys/devices/system/memory/*/state`; do echo online > $f; done; other https://i12bretro.github.io/tutorials/