1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/cj520120-kvm-cloud

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Проект KVM Cloud

KVM Cloud — это лёгкая частная облачная платформа, основанная на Java, которая помогает малому и среднему бизнесу управлять ресурсами вычислений, хранения данных и сети. Платформа включает в себя следующие функции:

  1. Создание, запуск, остановка, перезагрузка виртуальных машин (ВМ), а также веб-VNC и другие функции на основе KVM.
  2. Поддержка пулов хранения данных NFS и glusterfs.
  3. Динамическое добавление и удаление дисков.
  4. Управление несколькими хостами.
  5. Поддержка шаблонов для быстрого создания ВМ.
  6. Автоматическое управление IP-адресами виртуальных машин.
  7. Поддержка нескольких сетевых карт.
  8. Поддержка форматов дисков raw, qcow, qcow2, vdi, vmdk, vpc.
  9. Поддержка снимков дисков.
  10. Разделение сети VLAN с помощью OVS.
  11. Настройка системы с помощью cloud-init.
  12. Внутренний DNS-сервер.
  13. NAT-пересылка.
  14. Управление ключами.
  15. Настройка имён хостов.

Об обновлении

В настоящее время невозможно обновить версии 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-конфигурация

  1. Установите пакет программного обеспечения NFS.
yum -y install nfs-utils rpcbind
  1. Включите автозапуск и запуск службы.
systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server
  1. Создайте папку для хранения файлов.
mkdir -p /data/nfs
  1. Отредактируйте конфигурацию.
vi /etc/exports
/data/nfs *(rw,sync,no_root_squash)
  1. Перезагрузите файл exportfs.
exportfs -a
  1. Перезапустите службы.
systemctl restart rpcbind
systemctl restart nfs-server
  1. Проверьте, успешно ли смонтировано хранилище.
mount -t nfs 127.0.0.1:/data/nfs /mnt
df -h # Если есть, значит, всё прошло успешно
umount /mnt

KVM

  1. Убедитесь, что хост поддерживает виртуализацию.
lsmod | grep kvm # Проверить результат и убедиться, что виртуализация поддерживается
Если виртуальная машина запущена на VMware, включите технологию виртуализации
  1. Установите KVM на хосте.
yum install qemu-kvm libvirt bridge-utils
yum install java-1.8.0-openjdk* -y
  1. Настройте мост KVM и добавьте новый мост. На этом этапе обратите внимание: используйте команду ip addr, чтобы проверить имя вашей сетевой карты. В CentOS 7 имя сетевой карты может быть не eth0, и неправильное имя сетевой карты приведёт к тому, что виртуальные машины не будут доступны после настройки. После подтверждения имени сетевой карты настройте мост:
  1. Создайте файл конфигурации моста /etc/sysconfig/network-scripts/ifcfg-br0.
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
  1. Измените конфигурацию по умолчанию для сетевой карты. Обратите внимание, что этот шаг следует изменить на ifcfg-фактическое имя сетевой карты, например eth0, соответствующий файл: /etc/sysconfig/network-scripts/ifcfg-eth0.
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
NM_CONTRLLED=no
BRIDGE=br0
  1. Если требуется настройка OVS, обратитесь к файлу OVS Network Configuration Reference.txt.

  2. Настройте VNC. Отредактируйте /etc/libvirt/qemu.conf.

vnc_listen="0.0.0.0"
user = "root"
group = "root"
  1. Настройте Libvirtd.

  2. Отредактируйте файл /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

Завершение настройки

  1. Импортируйте таблицы MySQL и связанные данные.

Скрипт находится в папке scripts.

  1. Установите Redis.

  2. Отредактируйте конфигурационные файлы.

  3. Запустите интерфейс управления и агент отдельно, перейдите на страницу: 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 )

Вы можете оставить комментарий после Вход в систему

Введение

KVM Cloud — это лёгкая частная облачная платформа, реализованная на Java, которая помогает малому и среднему бизнесу быстро настроить управление вычислительными ресурсами, хранилищем и сетью, предоставляя компаниям собственную облачную платформу. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/cj520120-kvm-cloud.git
git@api.gitlife.ru:oschina-mirror/cj520120-kvm-cloud.git
oschina-mirror
cj520120-kvm-cloud
cj520120-kvm-cloud
master