KVM Cloud云平台

项目介绍

KVM Cloud 是一款基于Java实现的轻量级私有云平台,旨在帮助中小企业快速实现计算、存储、网络等资源的管理,让企业拥有自己的云平台,包括但不限于如下功能:
1、基于KVM的VM基础功能(创建、启动、停止、重装、webVNC等功能)
2、使用NFS作为磁盘存储池
3、支持磁盘动态添加取消
4、多主机管理
5、支持模版维护,用于快速创建VM
6、虚拟机IP自动管理
7、多网卡支持
8、支持 raw、qcow、qcow2、vdi、vmdk、vpc磁盘格式
9、磁盘快照支持
10、通过OVS支持VPC概念
11、支持cloud-init配置系统密码

关于升级

目前不支持V1、V2升级到最新版本
V3.0升级时请重新上传系统模版文件Cloud-System-v3.1.qcow2(md5:2696ca0d762279bc386b03c8cea82cd7),并在模版页面点击重新下载

操作系统

Linux(intel)

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/nfsLOCKD_TCPPORT=32803LOCKD_UDPPORT=32769MOUNTD_PORT=892RQUOTAD_PORT=875STATD_PORT=662STATD_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-br0DEVICE=br0TYPE=BridgeONBOOT=yesBOOTPROTO=staticIPADDR=192.168.2.130NATMASK=255.255.255.0PREFIX=24GATEWAY=192.168.2.1DNS1=8.8.4.4DNS2=8.8.8.8
​
# 务必使用 ip addr 命令查看你的实际网卡名,他很可能不是eth0
# 如需ovs配置,请参考[OVS 网卡设置参考.txt](scripts%2FOVS%20%E7%BD%91%E5%8D%A1%E8%AE%BE%E7%BD%AE%E5%8F%82%E8%80%83.txt)
# 下面这个编辑命令注意改成 ifcfg-实际网卡名
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 下面这个DEVICE注意改成 实际网卡名BOOTPROTO=noneNAME=eth0DEVICE=eth0ONBOOT=yesNM_CONTRLLED=noBRIDGE=br0
4、VNC 配置  
vi /etc/libvirt/qemu.confvnc_listen="0.0.0.0"
5、Libvirtd配置
vi /etc/libvirt/libvirtd.conflisten_tls = 0listen_tcp = 1unix_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/libvirtdLIBVIRTD_ARGS="--listen"
systemctl restart libvirtd 
项目编译
mvn clean package

完成配置

1、导入mysql表及相关数据

脚本位于scripts下

2、安装Redis

3、修改配置文件

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

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

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

6、创建基础网络

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

7、创建主机

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

9、下载基础模版(系统模版选择cloud/v3/Cloud-System-V3.1.qcow2)

链接: 百度网盘 请输入提取码 提取码: 1bpn

10、安装nginx,配置基础下载地址,并在页面完成模版配置

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

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

13、创建VM

相关问题

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

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

2、关于备份与恢复

对数据库和存储池进行完整备份;
数据无价,建议对虚拟机中的数据进行备份

3、关于网络隔离

    1)、目前只支持OVS桥接状态下的Vlan模式,如需使用,请自行安装OVS。2)、负载均衡器可通过挂载基础网络网卡的方式自行实现。
​

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

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

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

    1)、windows没有virto的驱动,请安装virtio-win.iso驱动2)、如果是系统盘则需要在磁盘选择页面临时挂载virtio-win.iso驱动后安装或选择ide总线方式

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

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

7、虚拟机虚拟化嵌套

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=1options kvm-intel enable_shadow_vmcs=1options kvm-intel enable_apicv=1options kvm-intel ept=1
3、reboot 重启机器
4、现在验证嵌套虚拟化功能是否启用cat /sys/module/kvm_intel/parameters/nested

8、cloud-init相关配置(如需禁用,请在管理配置文件中设置app.route.type:dhcp)

1、cloud-init只支持dnsmasq下发方式
2、cloud-init数据源采用NoCloud,请修改cloud相关配置如下:datasource:NoCloud:seedfrom: http://169.254.169.254/datasource_list: [  NoCloud ]
​
3、系统模板在安装cloud-init后手动设置相关配置1)、设置允许密码登录:设置ssh_pwauth:   12)、可设置允许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,并进行相关配置4、目前只提供Centos7及Ubuntu18.04的系统模版,其他系统模版,请自行实现1)、Centos默认用户名为centos,密码为创建系统时输入的密码2)、Ubuntu默认用户名为ubuntu,密码为创建系统输入的密码3)、系统模版不支持root用户名密码登录,如需root登录,请自行修改
​

9、页面删除主机后,如需要重新加入主机,请删除该主机Agent目录下config.json,然后重启Agent

10、关于提示签名错误问题,请确保管理端跟agent端时间同步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/152193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

卷积神经网络(CNN)衣服图像分类的实现

文章目录 前期工作1. 设置GPU(如果使用的是CPU可以忽略这步)我的环境: 2. 导入数据3.归一化4.调整图片格式5. 可视化 二、构建CNN网络模型三、编译模型四、训练模型五、预测六、模型评估 前期工作 1. 设置GPU(如果使用的是CPU可以…

JVM——运行时数据区(程序计数器+栈)

目录 1.程序计数器2.栈Java虚拟机栈 - 栈帧的组成1.Java虚拟机栈-局部变量表3.Java虚拟机栈-操作数栈3.Java虚拟机栈-帧数据 3.Java虚拟机栈-栈内存溢出4.本地方法栈 ⚫ Java虚拟机在运行Java程序过程中管理的内存区域,称之为运行时数据区。 ⚫ 《Java虚拟机规范》中…

Unity减少发布打包文件的体积(二)——设置WebGL发布时每张图片的压缩方式

一个项目在发布成WebGL后,其体积至关重要,体积太大,用户加载会经历一个漫长的等待…轻则骂娘,重则用脚把电脑踢烂(扣质保金)… 那么如何减少发布后的体积呢,本文从图片的压缩开始入手。 前传回顾: Unity减…

Linux mmap 的作用是什么?

文章目录 1.简介2.相关函数3.mmap和常规文件操作的区别4.作用参考文献 1.简介 mmap&#xff08;memory map&#xff09;即内存映射&#xff0c;用于将一个文件或设备映射到进程的地址空间。 2.相关函数 创建映射函数&#xff1a; #include <sys/mman.h>void *mmap(v…

Upwork 新手使用指南——如何快速在Upwork上接单

Upwork 这个自由职业平台不知道大家听说过没&#xff0c;在 Upwork&#xff0c;如果你是自由职业者&#xff0c;你可以接单&#xff1b;如果你是客户&#xff0c;你可以找人干活。但对于新手来说&#xff0c;怎么使用 Upwork 并且用好 Upwork 是一大难题。因此今天给大家分享 U…

你好,我叫Python,欢迎你认识派森。(来自关于Python语言的全方位自我介绍。

文章目录 自我简介一、Python的发展历程二、Python的特色1.语言特色2.语法特色 三、Python2与Python3的比较1.print 函数2.Unicode3.除法运算4.异常5.八进制字面量表示6.不等运算符7.python 3.0严格使用tab键进行缩进 四、Python适用开发场景及成果1.应用领域2.Python开发出的应…

python科研绘图:P-P图与Q-Q图

目录 什么是P-P图与Q-Q图 分位数 百分位数 Q-Q图步骤与原理 Shapiro-Wilk检验 绘制Q-Q图 绘制P-P图 什么是P-P图与Q-Q图 P-P图和Q-Q图都是用于检验样本的概率分布是否服从某种理论分布。 P-P图的原理是检验实际累积概率分布与理论累积概率分布是否吻合。若吻合&#xf…

srs webrtc推拉流环境搭建(公网)

本地环境搭建 官方代码https://github.com/ossrs/srs 拉取代码&#xff1a; git clone https://github.com/ossrs/srs.gitcd ./configure make ./objs/srs -c conf/https.rtc.confsrs在公网上&#xff0c;由于srs是lite-ice端&#xff0c;导致他不会主动到srs获取自己的公网i…

MySQL的执行器是怎么工作的

作为优化器后的真正执行语句的层&#xff0c;执行器有三种方式和存储引擎&#xff08;一般是innoDB&#xff09;交互 主键索引查询 查询的条件用到了主键&#xff0c;这个是全表唯一的&#xff0c;优化器会选择const类型来查询&#xff0c;然后while循环去根据主键索引的B树结…

nn.KLDivLoss,nn.CrossEntropyLoss,nn.MSELoss,Focal_Loss

KL loss&#xff1a;https://blog.csdn.net/qq_50001789/article/details/128974654 https://pytorch.org/docs/stable/nn.html 1. nn.L1Loss 1.1 公式 L1Loss: 计算预测 x和 目标y之间的平均绝对值误差MAE, 即L1损失&#xff1a; l o s s 1 n ∑ i 1 , . . . n ∣ x i…

Java 设计模式——桥接模式

目录 1.概述2.结构3.实现3.1.实现化类3.2.具体实现化类3.3.抽象化类3.4.扩展抽象化类3.5.测试 4.优缺点5.使用场景 1.概述 &#xff08;1&#xff09;现在有一个需求&#xff0c;需要创建不同的图形&#xff0c;并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来…

数据结构与算法之美学习笔记:22 | 哈希算法(下):哈希算法在分布式系统中有哪些应用?

目录 前言应用五&#xff1a;负载均衡应用六&#xff1a;数据分片应用七&#xff1a;分布式存储解答开篇 & 内容小结 前言 本节课程思维导图 今天&#xff0c;我们再来看剩余三种应用&#xff1a;负载均衡、数据分片、分布式存储。你可能已经发现&#xff0c;这三个应用都…

详解Java设计模式之职责链模式

原文&#xff1a;详解Java设计模式之职责链模式_java_脚本之家 责任链模式是一种行为设计模式&#xff0c;使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合关系&#xff0c;文中通过代码示例给大家介绍的非常详细,需要的朋友可以参考下 − 目…

直播美颜SDK对比评测:技术原理与应用实践

直播行业蓬勃发展&#xff0c;其中&#xff0c;美颜滤镜技术在直播中扮演着至关重要的角色。本文将深入探讨不同直播美颜SDK的技术原理&#xff0c;并通过对比评测它们在实际应用中的表现&#xff0c;以揭示各SDK的优劣之处。 一、背景 随着直播技术的不断进步&#xff0c;直…

虚幻C++ day5

角色状态的常见机制 创建角色状态设置到UI上 在MainPlayer.h中新建血量&#xff0c;最大血量&#xff0c;耐力&#xff0c;最大耐力&#xff0c;金币变量&#xff0c;作为角色的状态 //主角状态UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category "Playe Stats&…

基于人工水母算法优化概率神经网络PNN的分类预测 - 附代码

基于人工水母算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于人工水母算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于人工水母优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

Network(三)动态路由与ACL配置

一 三层交换机 1 三层交换机概述 三层交换二层交换三层转发 2 虚拟接口概述 在三层交换机上配置的VLAN接口为虚拟接口&#xff0c;使用Vlanif&#xff08;VLAN虚拟接口&#xff09;实现VLAN间路由&#xff0c;VLAN接口的引入使得应用更加灵活 三层交换机VLAN间通信的转发…

vue3+vite+SQL.js 读取db3文件数据

前言&#xff1a;好久没写博客了&#xff0c;最近一直在忙&#xff0c;没时间梳理。最近遇到一个需求是读取本地SQLite文件&#xff0c;还是花费了点时间才实现&#xff0c;没怎么看到vite方面写这个的文章&#xff0c;现在分享出来完整流程。 1.pnpm下载SQL.js(什么都可以下)…

力扣每日一题-数位和相等数对的最大和-2023.11.18

力扣每日一题&#xff1a;数位和相等数对的最大和 开篇 这道每日一题还是挺需要思考的&#xff0c;我绕晕了好久&#xff0c;根据题解的提示才写出来。 题目链接:2342.数位和相等数对的最大和 题目描述 代码思路 1.创建一个数组存储每个数位的数的最大值&#xff0c;创建一…

软件项目测试指南

软件测试是保证软件产品质量的重要手段之一。它是测量、评估软件产品特点和能力的活动。现在&#xff0c;国内一些软件企业对于软件测试的重视程度还很不够&#xff0c;认为测试工作非常简单&#xff0c;只是简单地操作所测的软件产品而已。这种错误的思想严重影响了国内软件质…