Proxmox
Created Пятница 21 Октябрь 2015
http://onreader.mdl.ru/MasteringProxmox.2ed/content/index.html
http://pve.proxmox.com/wiki/Category:HOWTO <----WIKI-HOWTO
https://pve.proxmox.com/FreeBSD_Guest_Notes <----BSD
https://drive.google.com/file/usp=sharing <----PDF Learning Proxmox VE
https://drive.google.com/file/usp=sharing <----PDF Proxmox Cookbook
https://drive.google.com/file/usp=sharing <----PDF Proxmox High Availability (2014)
https://drive.google.com/file/usp=sharing <----PDF Mastering Proxmox (2014)
Proxmox Virtual Environment (Proxmox VE) — система виртуализации с открытым исходным кодом, основанная на Debian GNU/Linux. Разрабатывается австрийской фирмой Proxmox Server Solutions GmbH. https://www.proxmox.com/en/ https://ru.wikipedia.org/Proxmox VE
В качестве "гипервизоров" использует KVM и LXC (начиная с версии 4.0, в версиях до 3.4 включительно вместо него (LXC) использовался OpenVZ), которые способны реализовать любые поддерживаемые KVM и LXC операционные системы с минимальными потерями производительности а в случае Linux практически без потерь.
Proxmox - качественный, удобный и гибкий автономный "гипервизор" со встроенным router/firewall (NetFilter/iptables) и многими другими полезными фичами, хорошо документирован и весьма распространен, хотя определение "гипервизор - virtual machine monitor (VMM)" в корне не верно, Proxmox использует гипервизоры, и одно из его достоинств это возможность выбора типа виртуализации (KVM, LXC, OpenVZ) не говоря о том, что при виртуализации на уровне операционной системы (в случае с LXC) не существует отдельного слоя гипервизора как такового, а сама хостовая операционная система отвечает за разделение аппаратных ресурсов между несколькими виртуальными машинами и поддержку их независимости друг от друга.
Говоря о Proxmox правильней говорить о платформе виртуализации с широким функционалом по миграции, живой миграции, отказоустойчивости, централизованному управлению ресурсами, как и в целом возможности модификации всей платформы, следующее определение представляется наиболее верным: https://www.altlinux.org/Proxmox
Proxmox Virtual Environment (PVE) — средство управления виртуальными окружениями на базе гипервизора KVM и системы контейнерной изоляции LXC. Строго говоря, PVE это не система виртуализации, а инструментарий управления средой, в которой выполняются виртуальные окружения KVM и LXC, виртуальная среда корпоративного класса для серверов. Основными компонентами среды являются:
физические серверы, на которых выполняются процессы гипервизора KVM, и процессы, работающие в контейнерах LXC;
хранилища данных, в которых хранятся образы установочных дисков, образы дисков виртуальных машин KVM и файлы, доступные из контейнеров LXC;
виртуальные сетевые коммутаторы, к которым подключаются сетевые интерфейсы виртуальных окружений.
Управление виртуальными машинами и администрирование самого сервера производятся через веб-интерфейс (https: 8006 посредством VNC и SPICE-клиента (Pve-SPICE)) либо через стандартный интерфейс командной строки Linux, конечно присутствует и SSH.
Для создаваемых виртуальных машин доступно множество опций: выбор гипервизора (KVM или LXC - то есть типа виртуализации, в терминах PVE называются VM (виртуальные машины), CT (контейнеры, ConTainers)), тип хранилища - типы данных для хранения (файл образа или LVM, контейнеры, бэкапы, шаблоны), разрешения доступа к хранилищам для узлов (nodes), VM и CT, сетевые файловые системы, в том числе распределённые (NFS, CEPH, GlusterFS), тип эмулируемой дисковой подсистемы (IDE, SCSI или VirtIO), тип эмулируемой сетевой карты, количество доступных процессоров , набор утилит, например утилита dab (Debian Appliance Builder) с помощью которой можно удобно создать свой шаблон ОС для контейнера, (https://pve.proxmox.com/wiki/VM_Templates_and_Clones)
шаблон - эквивалент инсталляционному диску, необходим для создания контейнера будь то LXC или OpenVZ, фактически шаблон — это корневая файловая система, различные утилиты и конфигурационные файлы конкретного дистрибутива, в минимальной инсталляции хотя LXC сам по себе это и есть набор утилит, позволяющий посредством API использовать возможности ядра Linux по созданию изолированных контейнеров операционной системы и их управлению. Cоздание кластера, объединение nodes (узлов) в кластер согласно документации производится с помощью нескольких простых команд в результате получаем все преимущества кластера различных физических машин с развернутым сервисом. (pvecm add IP-ADDRESS-CLUSTER)
Сочетание разных типов виртуализации реализуемых через KVM и LXC, простота создания и администрирования кластеров, Debian как базовая платформа, вероятно и есть причина популярности Proxmox, и видимо сначала стоит познакомиться с альтернативными платными решениями VMware или Xen, что-бы по достоинству оценить Proxmox.
Contrasting Proxmox VE and VMware vSphere features:
Предоставляется и платная техническая поддержка о которой Proxmox напомнит сразу после уста-новки, избавляются от этого примерно так <https://remove-subscription>
/usr/share/pve-manager/ext4(ext6)/pvemanagerlib.js
Как тому нас учит java:
заменить оператор сравнения ---> !== на === (строка 557, возможно 510)
(http://javascript.ru/comparison-operators) и в /etc/apt/sources.list.d/pve-enterprise.list заменить (а можно и не менять) строку:
deb http://download.proxmox.com/debian jessie pve-enterprise
на
deb http://download.proxmox.com/debian jessie pve-no-subscription)
В выше показанном примере оператор заменен на == (не строгое), в /etc/apt/sources.list.d/.... ни что не изменено и не закомментировано, баннер отсутствует.
Хотя есть и другой способ: https://smyl.es/how-to-remove-proxmox-no-valid-subscription , какой из них самый "правильный" .....не выяснено, возможно оба "не правильно".
В качестве недостатков можно отметить:
Не совсем прозрачная система поставки, можно скачать и установить Proxmox VE бесплатно, но в случае если вы захотите обновить систему или доставить какие-то пакеты, необходимо будет купить подписку, и это портит все впечатление.
Относительно-частично не стабильная работа Java клиента (в 4.3 стабильней, а в 5.0 практически без проблем), что не очень актуально при использовании SSH.
PS: В версии 5.0 проведена большая работа по модернизации и улучшению, Debian "Stretch" и новое ядро 4.10, очевидно что должны повысить стабильность и производительность, "вложенная виртуализация" ядра позволяет запускать Windows 2016 Hyper-V в качестве гостевой ОС (как вероятно и ESXi ?), новый Ceph Luminous v12.0.0.0 https://habrahabr.ru <---- что нового Proxmox 5.0
PS
Установка тривиальна до неприличного как и положено инструментарию .......... https://interface31.ru/настройка proxmox-ve <-------...доходчиво
Установка Proxmox на операционную систему иногда имеет свои преимущества и подробно описана тут:
https://pve-proxmox-com./Install_Proxmox_VE_on_Debian_12_Bookworm? . Кратко так:
1.Устанавливаем Debian (минимальную конфигурацию)
2.Добавляем запись в /etc/hosts для своего IP-адреса.
$ vim /etc/hosts
127.0.0.1 localhost
192.168.15.77 prox4m1.proxmox.com prox4m1 #Где IP-адрес наш адрес, prox4m1 имя хоста
# The following lines are desirable for IPv6 capable hosts
::1 локальный хост ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
PS: можно заметить, что прописываем все это на место 127.0.1.1, ipv4-адрес - 127.0.1.1 в современных операционных системах используется для того же самого, что и все ipv4-адреса из диапазона 127.0.0.0-127.255.255.255 — для обращения к локальному компьютеру по протоколу ipv4., то же самое что и localhost, однако обращение по протоколу ipv4 должно происходить не по имени, а по ipv4-адресу, вообщем все это позволяет иметь два имени и логически их разделять, используется некоторыми приложениями, например Gnome.
Проверяем:
$ hostname --ip-address
$ 192.168.15.77 # вернет сюда IP-адрес, который мы прописали
3.Добавляем репозиторий Proxmox VE и ключ репозитория от имени root.
$ sudo echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
# verify
7da6fe34168adc6e479327ba517796d4702fa2f8b4f0a9833f5ea6e6b48f6507a6da403a274fe201595edc86a84463d50383d07f64bdde2e3658108db7d6dc87 /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
4.Далее $ sudo apt update $ sudoapt full-upgrade.
5.Устанавливаем ядро Proxmox VE. $ sudo apt install pve-kernel-6.2 и $ sudo systemctl reboot.
6. Устанавливаем пакеты Proxmox VE: $ sudo apt install proxmox-ve postfix open-iscsi chrony
7.Удаляем ядро Debian: $ sudo apt remove linux-image-amd64 'linux-image-6.1*',
обновляем Grub: $ sudo update-grub,
заодно удаляем: $ sudo apt remove os-prober (на всякий случай).
В итоге вебинтерфейс: https://your-ip-address:8006
Linux PAM standard authentication
Имя пользователя: root
Пароль: *******
LXC (Linux Containers) — система виртуализации на уровне операционной системы для запуска нескольких изолированных экземпляров (контейнеров) операционной системы Linux на одном узле. LXC не использует виртуальные машины, а создает виртуальное окружение с собственным пространством процессов и сетевым стеком. Все экземпляры LXC используют один экземпляр ядра операционной системы. LXC логическое продолжение двух предыдущих технологий Vserver и OpenVZ, однако развивается в рамках “ванильной”(vanilla то есть официальное ядро без каких-либо сторонних изменений) ветки ядра начиная с версии 2.6.29., что является большим плюсом, поскольку позволяет начинать работу с контейнерами без каких либо манипуляций с системой по смене или модификации ядра.
https://www.ibm.com/developerworks/ru/
https://linuxcontainers.org/ru/
http://eax.me/lxc/ <----> http://eax.me/docker/
LVM (logical volume manager) Менеджер логических томов — подсистема операционных систем Linux и OS/2, позволяющая использовать разные области одного жёсткого диска и/или области с разных жёстких дисков как один логический том. Реализована с помощью подсистемы device mapper.
KVM (Kernel-based Virtual Machine) — программное решение, обеспечивающее виртуализацию в среде Linux на платформе x86, которая поддерживает аппаратную виртуализацию на базе Intel VT (Virtualization Technology) либо AMD SVM (Secure Virtual Machine) c помощью QEMU. KVM пример полной виртуализации, где каждая виртуальная машина имеет своё собственное виртуальное аппаратное обеспечение: сетевые карты, диск, видеокарту и другие устройства. В "чистом" виде KVM для установки и управления использует интерфейс командной строки Linux, в качестве графических утилит управления могут использоваться: Virtual Machine Manager - создание, редактирование, запуск и остановка виртуальных машин, основанных на KVM виртуализации. KVM использует QEMU в качестве фронтенда и для эмуляции устройств(некоторых), то есть аппаратную виртуализацию на базе Intel VT либо AMD SVM, "результатом" является QEMU/KVM гипервизор. ( QEMU — свободная программа с открытым исходным кодом для эмуляции аппаратного обеспечения различных платформ.)
http://www.ibm.com/developerworks/ru/library/l-using-kvm/ http://www.ibm.com/developerworks/cl-hypervisorcompare https://wiki.debian.org/ru/KVM http://www.calculate- linux.ru/main/ru/qemu <--- QEMU https://drive.google.com/file/usp=sharing <------------------------------------PDF Learning Proxmox VE ст.14 OpenVZ — как и LXC реализация технологии виртуализации на уровне операционной системы, которая базируется на ядре Linux c использованием cgroups, namespaces , chroot и т.д. не вдаваясь в подробности можно говорить о виртуализации основанной на изоляции пространства имен. OpenVZ позволяет на одном физическом сервере запускать множество изолированных копий операционной системы, называемых «виртуальные частные серверы» (Virtual Private Servers, VPS) или «виртуальные среды» (Virtual Environments, VE). Поскольку OpenVZ базируется на ядре Linux, в отличие от виртуальных машин эммулирующих оборудование и использующих в разделяемом режиме базовую операционную систему (например VMware, Parallels Desktop) или паравиртуализационных технологий (частичная(пара) виртуализация), например Xen, VMware - частично, в роли «гостевых» систем могут выступать только дистрибутивы Linux. Однако, виртуализация на уровне операционной системы в OpenVZ даёт лучшую производительность, масштабируемость, плотность размещения, динамическое управление ресурсами, а также лёгкость в администрировании, чем у альтернативных решений. OpenVZ как и LXC пример контейнерной виртуализации, "контейнер" нельзя назвать виртуальной машиной если понимать под ней полную виртуализацию, контейнер есть специальный режим работы операционной системы. Согласно сайту OpenVZ, накладные расходы на виртуализацию очень малы, а падение производительности составляет всего 1-3 %, по сравнению с обычными Linux-системами, благодаря высокой плотности размещения однотипных операционных систем, контейнерная виртуализация весьма востребована для использования в соответствующих компаниях, организациях - провайдеры, хостеры, центры данных и тд.
cgroups (control group) — механизм ядра Linux, который ограничивает и изолирует вычислительные ресурсы(процессорные, сетевые, ресурсы памяти, ресурсы ввода-вывода) для групп процессов. Механизм позволяет образовывать иерархические группы процессов с заданными ресурсными свойствами и обеспечивает программное управление ими, примером наиболее распространенной реализации является SystemD.
VirtIO Настраивая сетевое подключение, следует обратить внимание также и на то, что в списке сетевых карт, которые может эмулировать гипервизор kvm, есть пункт «VirtIO(paravirtualized)». Это специальный интерфейс, задачей которого является снижение накладных расходов на эмуляцию физической сетевой карты и реализацию драйвера для работы с ней. Между производителями современных операционных систем и произоводителями современных гипервизоров существует договорённость о поддержке единого интерфейса VirtIO, который со стороны гостевой ОС выглядит как очень простая и производительная сетевая карта, а со стороны гипервизора — как прямой интерфейс к сетевому драйверу гостевой ОС. Таким образом, производительность существенно вырастает за счёт того, что не нужно больше эмулировать несуществующее железо. Если про гостевую ОС точно известно, что она поддерживает VirtIO, имеет смысл использовать именно эту «сетевую карту». На VirtIO стоит обратить внимание при настройке и для другого интерфейса между виртуальной ОС и гипервизором, критичного к скорости передачи данных — интерфейса для дисковых накопителей. Рекомендации таковы: — если уверенность в поддержке со стороны гостевой ОС есть, стоит включить ( http://openadmins.ru/virtio-ide-benchmark-windows2008 ).
PAM (Pluggable Authentication Modules) Для аутентификации пользователей веб-интерфейса можно использовать как собственные механизмы PVE, так и PAM. Использование PAM даёт возможность, например, интегрировать PVE в домен аутентификации. По умолчанию Proxmox использует логин – root, тип авторизации – PAM https://www.ibm.com/developerworks/pam/
libvirt — Библиотека для управления виртуализацией, реализующая интерфейс на языках C/C++, Python, Ruby, интерфейс и демон для управления виртуальными машинами различных (qemu/kvm, xen, virtualbox), позволяет настраивать и манипулировать виртуальными машинами. https://ru.wikipedia.org/wiki/Libvirt
ACL (Access Control List) — список контроля доступа, который определяет, кто или что может получать доступ к конкретному объекту, и какие именно операции разрешено или запрещено этому субъекту проводить над объектом. https://ru.wikipedia.org/wiki/ACL https://wiki.archlinux.org/Access Control Lists https://habrahabr.ru/post
http://www.opennet.ru/opennews/art.shtml?num=47165
После полутора лет разработки сформирован релиз инструментария для организации работы изолированных контейнеров LXC 2.1. В состав инструментария LXC входит библиотека liblxc, набор утилит (lxc-create, lxc-start, lxc-stop, lxc-ls и т.п.), шаблоны для построения контейнеров и набор биндингов для различных языков программирования. Изоляция осуществляется при помощи штатных механизмов ядра Linux. Для изоляции процессов, сетевого стека, ipc, uts и точек монтирования используется механизм пространств имён (namespaces). Для ограничения ресурсов применяются cgroups. Для понижения привилегий и ограничения доступа задействованы такие возможности ядра, как профили Apparmor и SELinux, политики Seccomp, Chroots (pivot_root) и capabilities.
https://www.altlinux.org/Proxmox <-------
http://serveradmin.ru/ustanovka-i-nastroyka-proxmox/
http://blogs.cisco.com/enterprise/what-the-heck-is-a-service-container