Проект KVM Cloud
KVM Cloud — это лёгкая частная облачная платформа, основанная на Java, которая помогает малому и среднему бизнесу управлять ресурсами вычислений, хранения данных и сети. Платформа включает в себя следующие функции:
Об обновлении
В настоящее время невозможно обновить версии V1 и V2 до последней версии. При обновлении до версии 3.0 необходимо повторно загрузить файл шаблона системы Cloud-System-v3.1.qcow2 (MD5: 2696ca0d762279bc386b03c8cea82cd7). Перед обновлением убедитесь, что все файлы дисков не имеют зависимостей от родительских дисков, иначе необходимо клонировать диски и отменить зависимости или удалить шаблон, чтобы избежать потери данных.
Операционная система Linux (Intel, AMD).
Конфигурация SELinux
setenforce 0
vi /etc/selinux/config
SELINUX=permissive
Настройка sysctl
vim /etc/sysctl.conf
net.ipv4.ip_forward=1 # Установить переадресацию и сохранить
sysctl -p
Конфигурация брандмауэра
systemctl stop firewalld
systemctl disable firewalld
systemctl stop iptables
systemctl disable iptables
systemctl stop NetworkManager
systemctl disable NetworkManager
NFS-конфигурация
yum -y install nfs-utils rpcbind
systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server
mkdir -p /data/nfs
vi /etc/exports
/data/nfs *(rw,sync,no_root_squash)
exportfs -a
systemctl restart rpcbind
systemctl restart nfs-server
mount -t nfs 127.0.0.1:/data/nfs /mnt
df -h # Если есть, значит, всё прошло успешно
umount /mnt
KVM
lsmod | grep kvm # Проверить результат и убедиться, что виртуализация поддерживается
Если виртуальная машина запущена на VMware, включите технологию виртуализации
yum install qemu-kvm libvirt bridge-utils
yum install java-1.8.0-openjdk* -y
ip addr
, чтобы проверить имя вашей сетевой карты. В CentOS 7 имя сетевой карты может быть не eth0, и неправильное имя сетевой карты приведёт к тому, что виртуальные машины не будут доступны после настройки.
После подтверждения имени сетевой карты настройте мост:DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.2.130
NATMASK=255.255.255.0
PREFIX=24
GATEWAY=192.168.2.1
DNS1=8.8.4.4
DNS2=8.8.8.8
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
NM_CONTRLLED=no
BRIDGE=br0
Если требуется настройка OVS, обратитесь к файлу OVS Network Configuration Reference.txt.
Настройте VNC. Отредактируйте /etc/libvirt/qemu.conf.
vnc_listen="0.0.0.0"
user = "root"
group = "root"
Настройте Libvirtd.
Отредактируйте файл /etc/sysconfig/libvirtd, чтобы настроить его.
listen_tls = 0
listen_tcp = 1
unix_sock_group = "root"
unix_sock_rw_perms = "0777"
auth_unix_ro = "none"
auth_unix_rw = "none"
tcp_port = "16509"
listen_addr = "0.0.0.0"
auth_tcp = "none"
vi /etc/sysconfig/libvirtd
LIBVIRTD_ARGS="--listen"
systemctl restart libvirtd
Компиляция проекта
mvn clean package -Dfile.encoding=UTF-8 -DskipTests=true
Завершение настройки
Скрипт находится в папке scripts.
Установите Redis.
Отредактируйте конфигурационные файлы.
Запустите интерфейс управления и агент отдельно, перейдите на страницу: http://localhost:8080/.
Управление: java -jar cloud-management-1.0-SNAPSHOT.jar --spring.config.location=server.yaml
Агент: java -jar cloud-agent-1.0-SNAPSHOT.jar --spring.config.location=client.properties
--spring.config.location — это необязательный параметр, используемый для указания файла конфигурации. Если он не нужен, его можно опустить. Файл конфигурации — это файл application.properties в каждом модуле src/main/resources/.
``` Данные бесценны, рекомендуется создавать резервные копии данных на виртуальных машинах.
3. О сетевой изоляции:
1) В настоящее время поддерживается только режим VLAN при мосте OVS. Если вам нужно использовать его, установите OVS самостоятельно.
2) Балансировщик нагрузки можно реализовать самостоятельно, подключив базовую сетевую карту к виртуальной машине.
4. Проблемы с поиском загрузочного устройства для некоторых систем Windows:
1) Сначала убедитесь, что тип созданной ISO-системы правильный.
2) Если вы уверены, что с типом системы всё в порядке, вы можете создать образ PE с помощью старого доброго PE и создать систему с ним. Затем войдите в систему PE, удалите диск с оптического привода на странице и снова подключите операционную систему, которую вы хотите установить. После этого вы сможете установить её через PE.
5. Проблема с распознаванием диска в системе Windows:
1) Windows не имеет драйвера virtio, пожалуйста, установите драйвер virtio-win.iso.
2) Для системного диска необходимо временно подключить virtio-win.iso после выбора страницы и установить или выбрать способ IDE.
6. Обработка после сбоя питания и перезагрузки сервера:
1) После сбоя питания и перезапуска сервера вручную закройте все созданные вами виртуальные машины на странице, а затем перезапустите их. Виртуальные машины системы имеют функцию автоматического обнаружения перезапуска, и нет необходимости обрабатывать их отдельно.
2) Сбой питания может привести к повреждению виртуального диска. Если вы не можете запустить его, вы можете проверить и исправить его с помощью команды qemu-img check.
7. Виртуализация вложенных виртуальных машин KVM:
1) Проверьте, включена ли вложенная виртуализация на хост-компьютере KVM:
* На процессорах Intel выполните следующую команду: cat /sys/module/kvm_intel/parameters/nested.
* На процессорах AMD выполните следующую команду: cat /sys/module/kvm_amd/parameters/nested.
* Если вывод команды — N/0, вложенная виртуализация отключена. Если мы получим Y/1, это означает, что вложенная виртуализация включена на вашем хост-компьютере.
2) Чтобы включить вложенную виртуализацию, создайте файл с именем /etc/modprobe.d/kvm-nested.conf со следующим содержимым:
* options kvm-intel nested=1
* options kvm-intel enable_shadow_vmcs=1
* options kvm-intel enable_apicv=1
* options kvm-intel ept=1
3) Перезагрузите компьютер.
4) Теперь проверьте, включена ли функция вложенной виртуализации.
* cat /sys/module/kvm_intel/parameters/nested
8. Конфигурация, связанная с cloud-init:
1) Используйте NoCloud в качестве источника данных для cloud-init. Измените конфигурацию, связанную с облаком, следующим образом:
* datasource:
NoCloud:
seedfrom: http://169.254.169.254/
* datasource_list: [ NoCloud ]
2) Установите соответствующие конфигурации вручную после установки cloud-init на шаблон системы:
* 1. Разрешите вход по паролю: установите ssh_pwauth: 1.
* 2. Вы можете разрешить вход root: disable_root: 1.
* 3. Ubuntu изменяет /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg, чтобы гарантировать, что имя и назначение сетевого адаптера по умолчанию совпадают.
* 4. В настоящее время протестированы только Centos и Ubuntu. Windows должна быть реализована самостоятельно.
* 5. Пароль соответствует только пользователю по умолчанию. Пожалуйста, обратитесь к system_info.default_user для конкретной конфигурации.
* 6. Для других конфигураций обратитесь к установке, связанной с cloud-init, для установки.
* 7. Установите qemu-command-agent на шаблон системы и настройте его соответствующим образом.
* Для шаблонов системы в настоящее время поддерживаются только Centos и Ubuntu 22.04. Другие шаблоны системы должны быть реализованы самостоятельно.
* Centos, имя пользователя по умолчанию — centos, пароль — пароль, который вы ввели при создании системы.
* Ubuntu, имя пользователя по умолчанию — ubuntu, пароль — пароль, который вы ввели при создании системы.
* Шаблоны системы не поддерживают вход в систему с именем пользователя root. Если требуется вход в систему с правами root, измените его самостоятельно.
3) Выполните следующие команды, чтобы решить проблему невозможности входа в Ubuntu 22.04 с использованием ключа:
* echo 'PubkeyAcceptedAlgorithms=+ssh-rsa' >> /etc/ssh/sshd_config.
* systemctl restart sshd.
9. После удаления хоста из списка страниц, если вам нужно повторно добавить хост, удалите файл config.json в каталоге Agent хоста и перезапустите Agent.
10. Чтобы решить проблему с подписью, убедитесь, что время на стороне управления и стороне агента синхронизировано.
11. Изменение настроек по умолчанию для machine:
Поскольку различные операционные системы поддерживают разные функции, вы можете добавить следующие настройки в файл конфигурации агента (на примере Ubuntu 22.04):
app.machine.name = q35
app.machine.arch = x86_64
app.cd.bus = sata (в соответствии с машиной измените настройку оптического привода).
Конкретная поддержка конфигурации зависит от операционной системы. Вы можете выполнить следующие команды для запроса:
Centos: /usr/libexec/qemu-kvm -machine help.
Ubuntu: qemu-system-i386 -machine help.
12. Конфигурация UEFI:
В зависимости от поддержки различных операционных систем вы можете увеличить конфигурацию пути UEFI в файле конфигурации агента (например, Ubuntu 22.04):
app.uefi.type = pflash
app.uefi.path= /usr/share/OVMF/OVMF_CODE.fd.
13. О проблеме с неработающей сетью:
Старайтесь использовать чистую установку системы. Если сеть не работает, проверьте брандмауэр, iptables и выключите службу NetworkManager.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )