16 Star 141 Fork 49

chenjun / kvm-cloud

Create your Gitee Account
Explore and code with more than 8 million developers,Free private repositories !:)
Sign up
Clone or Download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

项目介绍

KVM Cloud是一款基于KVM实现的适用于小微企业的虚拟机管理系统,支持如下功能:
1、基于KVM的VM基础功能(创建、启动、停止、重装、webVNC等功能)
2、使用NFS作为磁盘存储池
3、支持简单用户权限
4、支持磁盘动态添加取消
5、多主机管理
6、支持模版维护,用于快速创建VM
7、简单群组功能
8、虚拟机IP自动管理
9、多网卡支持

操作系统

Linux

SELinux配置

setenforce 0
vi /etc/selinux/config
SELINUX=permissive

SELinux配置

vim /etc/sysctl.conf 
net.ipv4.ip_forward=1               # 设置转发并保存
sysctl –p

防火墙配置

systemctl stop firewalld
systemctl disable firewalld
systemctl stop iptables
systemctl disable iptables

NFS配置

1、安装NFS软件包

yum -y install nfs-utils rpcbind

2、设置开机自启以及启动服务

systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server

3、新建存储文件夹

mkdir -p /data/nfs

4、编辑配置

vi /etc/exports
/data/nfs *(rw,async,no_root_squash)

5、重新加载exportfs文件

  exportfs -a

6、编辑nfs配置

vi /etc/sysconfig/nfs
    LOCKD_TCPPORT=32803
    LOCKD_UDPPORT=32769
    MOUNTD_PORT=892
    RQUOTAD_PORT=875
    STATD_PORT=662
    STATD_OUTGOING_PORT=2020

7、重新服务

systemctl restart rpcbind
systemctl restart nfs-server

8、测试挂载是否正常

mount -t nfs 127.0.0.1:/data/nfs /mnt
df -h        ###查看有了代表成功
umount /mnt

KVM

1、验证主机是否支持虚拟化

 lsmod | grep kvm #查看结果确认是否支持虚拟化
 如果是vmware开启的虚拟机,请启用虚拟化技术

2、主机安装KVM

yum install qemu-kvm libvirt bridge-utils
yum install java-1.8.0-openjdk* -y

3、配置KVM 主机网桥,增加一个网桥

这一步一定注意:使用ip addr查看你的网卡名,在CentOS 7中网卡名可能不是eth0,错误的网卡名会导致后期辛苦配置的虚拟机无法正常被访问到! 确认网卡名无误后配置网桥:

vi /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

# 务必使用 ip addr 命令查看你的实际网卡名,他很可能不是eth0
# 下面这个编辑命令注意改成 ifcfg-实际网卡名
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 下面这个DEVICE注意改成 实际网卡名
    DEVICE="eth0"
    NM_CONTROLLED="no"
    ONBOOT="yes"
    TYPE="Ethernet"
    BOOTPROTO=none
    BRIDGE="br0"

4、VNC 配置  

vi /etc/libvirt/qemu.conf
    vnc_listen="0.0.0.0"

5、Libvirtd配置

vi /etc/libvirt/libvirtd.conf
    listen_tls = 0
    listen_tcp = 1
    tcp_port = "16059"
    auth_tcp = "none"
    mdns_adv = 0
vi /etc/sysconfig/libvirtd
    LIBVIRTD_ARGS="--listen"
systemctl restart libvirtd 

项目编译

mvn clean package

完成配置

1、导入mysql表及相关数据

脚本位于scripts下

2、修改配置文件

3、分别启动管理端及Agent端,浏览页面:http://localhost:8080/

管理端: java -jar cloud-management-1.0-SNAPSHOT.jar --spring.config.location=server.properties
Agent: java -jar cloud-agent-1.0-SNAPSHOT.jar --spring.config.location=client.properties
 --spring.config.location 是可选项,用于指定配置文件,如果不需要修改,可以去掉,配置文件为各自模块下的src/main/resources/application.properties文件

4、平台登陆账号默认用户名/密码:admin/111111

5、创建集群

6、下载系统Route-VM与Console-VM

链接: https://pan.baidu.com/s/1c7Fvenhp9WfrdaqrBkbd8A 提取码: pw3g

7、安装nginx,配置Route-VM和Console-VM下载地址,并在页面完成模版配置

8、创建网络

采用桥接网络配置,IP地址段与主机主机段需保持一致,可通过起始IP与结束IP和主机网络进行分离,防止IP冲突

9、创建主机

10、创建存储池(只支持nfs)

11、等待系统模版下载完成,并初始化系统VM成功

12、Console VM 负责Vnc连接、Route VM负责DHCP下发

13、windows附加磁盘时请安装virtio-win-0.1.185.iso驱动

14、系统VM用户名密码均为root/123456,请自行修改相关密码

15、上传ISO系统镜像

配置镜像时需要指定系统类型

16、创建VM

相关问题

1、关于找不到配置文件问题导致数据库连接问题

server.properties 和 client.properties 内容分别为management和agent项目下的application.properties的文件,运行时自行修改名称

2、关于备份与恢复

对数据库和存储池进行完整备份,恢复时如果需要修改存储池IP,请调整tbl_storage_info标中storage_host的主机地址即可;
数据无价,建议对虚拟机中的数据进行备份

3、关于网络隔离

目前不支持自动创建隔离网络,可以通过创建两个桥接网络的方式进行隔离,大致步骤如下:
    1)、通过eth0创建桥接网络br0
    2)、通过br0创建vlan网络(例如br0.2)
    3)、通过创建的vlan再次创建桥接网络(例如br2)
    4)、在管理界面初始化网络br2
    5)、等待该网络的console和route虚拟机初始化完成
    6)、创建一台br0的网络的跳板虚拟机
    7)、为该跳板机附加br2对应的网络
    8)、外部访问vlan所对应的虚拟机,可通过该跳板机进行访问

4、个别windows系统无法找到引导的问题

    1)、首先确认创建的ISO系统类型是否正确
    2)、如果确认系统类型没有问题,可以通过老毛桃做一个PE的ISO镜像,在创建系统的时候可以通过PE镜像创建,然后进入PE系统,在页面上卸载光盘,重新挂载你要安装的操作系统,然后通过PE安装就可以正常安装了

5、windows系统附加磁盘不识别问题

    windows没有virto的驱动,请安装virtio-win-0.1.185.iso驱动

6、服务器掉电重启后处理

   1、服务器掉电重启后,请在页面手动关闭所有自己创建的虚拟机,然后重新启动,系统虚拟机有自动检测重启功能,无需处理
   2、掉电可能引起虚拟磁盘损坏,如无法启动,可通过qemu-img check检查并进行相应修复

捐赠名单


捐赠人 捐赠方式 捐赠金额(元) 捐赠时间 捐赠备注
pcgc-cn 微信 199.99 2021-11-12
Phil Gitee 50 2021-12-16 整体架构及代码简洁易懂,适合用来入门学习,忘持续改进,更上一层楼。
fwt 支付宝 100 2021-12-30

Repository Comments ( 28 )

Sign in to post a comment

About

KVM Cloud是一款基于KVM实现的虚拟机管理系统,支持如下功能: 1、基于KVM的VM基础功能(创建、启动、停止、VNC等功能) 2、使用NFS作为磁盘存储池 3、支持简单用户权限 4、支持磁盘动态添加取消 5、多主机管理 6、支持模版维护,用于快速创建VM 7、简单群组功能 expand collapse
Java and 5 more languages
Apache-2.0
Cancel

Releases

No release

kvm-cloud

Contributors

All

Activities

Load More
can not load any more
Java
1
https://gitee.com/cj520120/kvm-cloud.git
git@gitee.com:cj520120/kvm-cloud.git
cj520120
kvm-cloud
kvm-cloud
master

Search

101014 b92fc32e 1850385 101014 af024cb7 1850385