宿主机:本次实验采用VMware创建的CentOS系统作为宿主机使用
也可以实际物理机作为宿主机
Host system requirements
1核心
2G内存
6G硬盘
KVM安装Linux虚拟机如CentOS 7,那么宿主机可用硬盘至少6G,如果还需要尝试安装Windows虚拟机,那可用硬盘需要20G。总之,在允许的条件下内存和硬盘越大越好。
KVM hypervisor requirements
[root@localhost ~]# lscpu

通过lscpu查看是否支持虚拟化,出现VT-x(或AMD -V)表示支持。如果未出现,宿主机为实际计算机,则需要进入bios修改;宿主机为VMware创建的虚拟机,则需要在虚拟机设置中按下图勾选虚拟化选项

[root@localhost ~]# egrep 'svm|vmx' /proc/cpuinfo
出现"flags: "的内容,且说明中包含vmx/smx则表示支持,两核则有两个flags
[root@localhost ~]# lsmod | grep kvm

[root@localhost ~]# yum grouplist
在未安装虚拟化软件组之前,可以看到在可用环境分组里面有一个虚拟化主机(Virtulization Host),提供kvm虚拟机支持,包括libvirtd服务等,除此之外,还有"Virtualization Client" "Virtualization Platform"等

[root@localhost ~]# yum -y groupinstall "Virtualization Host"
中文下可用yum -y groupinstall “虚拟化*”
[root@localhost ~]#systemctl restart libvirtd
[root@localhost ~]#systemctl status libvirtd
[root@localhost ~]#lsmod | grep kvm
如果kvm模块没有加载,可以使用“modprobe kvm”手动加载

在设置之前,可以用 firewall-cmd --list-all 查看防火墙设置,一般活动域是public,其中有一项为masquerade为关闭状态,需要通过以下命令将其打开
[root@localhost ~]# firewall-cmd --zone=public --permanent --add-masquerade
[root@localhost ~]# firewall-cmd –reload
[root@localhost ~]#ip address show
将看到多出一张网卡virbr0,virbr0-nic是它的网络接口

至此,前期准备完成
补充知识:NAT,Bridge、virbr0、masquerade
以一台宿主机和若干虚拟机为背景假设,KVM有两种网络模型,分别是nat网络模式和bridge网络模式
nat网络模式:虚拟机就像一台独立的计算机,可以访问网内的任意计算机。虚拟机网卡和物理网卡的ip地址处于同一网段,有相同的子网掩码、网关、DNS参数等。原理是将虚拟网卡桥接到宿主机物理网卡上,物理网卡设置为混杂模式,可以监听多个ip地址。这种模式下,虚拟机和宿主机在网络关系上是平等的
bridge网络模式:虚拟机将宿主机作为路由器进行上网。虚拟机通过NAT(网络地址转换)功能,依赖于宿主机的网络进行上网,不需要配置掩码等
virbr0:virbr0是一种虚拟网卡。当启用libvirtd服务后宿主机上会生成一个virtual network swith(virbr0)。宿主机上的所有虚拟机都需要通过virbr0连接起来实现上网功能。virbr0默认使用nat模式,采用ip masquerade
masquerade:是snat的特例,实现自动化的snat。snat是指源地址目标转换,它将源地址替换成路由器的ip地址。在nat模式下,虚拟机经过masquerade转换为宿主机(路由器)的ip地址上网
virt-manager使用libvirtd的接口,从而管理kvm-qemu,进而管理虚拟机
virsh与virt-manager类似,但virt-manager是图形化界面安装,更容易上手,virsh是命令行安装,更常用
补充知识:虚拟化驱动IDE和virtio
virtio:虚拟化I/O,用于实现设备半虚拟化,能够提高设备访问性能。它运行在虚拟机中的部分称为前端驱动,负责对虚拟机提供统一的接口,运行在宿主机中的部分称为后端驱动,负责适配不同的物理硬件设备。支持热插拔(在系统运行过程中,运行增加内存等设备)。
IDE:全虚拟化驱动。不支持热插拔
virtio的“半虚拟化”省去了“全虚拟化”中异常捕获的环节,在IO性能上有所提升,使用的前提是客户机支持virtio驱动。
CentOS是默认集成了virtio,但window默认是IDE。后者性能差一些
经过前面的部署,宿主机已经具备了kvm虚拟化条件,下面将以kvm-qemu方式在宿主机上部署虚拟机
如果没有安装virt-manager工具,需要先安装一下
yum install -y virt-manager
然后打开virt-manager图形化工具界面
virt-manager
注意,如果需要使用virt-manager,那么宿主机应当具备图形化功能。以VMware安装的Centos 7作为宿主机为例,该宿主机在安装时应选择Gnome Desktop。纯字符界面(命令行)操作系统打开virt-manager时会报错或无反应。纯字符界面可以通过virsh安装虚拟机
前提条件:
宿主机上事先下载好CentOS 7的iso镜像
虚拟机所需内存2G
虚拟机所需磁盘6G

安装方式分别为:a. 本地安装介质(ISO映像或光驱);b. 网络安装,可为HTTP、FTP或者NFS;
c. 网络引导(PXE);d. 导入现有磁盘映像:云主机是导入现有磁盘映像

点击“Browse…”选择事先下载好的iso镜像



这里的设置可以随意点,后面安装虚拟机前有一个自定义界面,在那里进行确认和修改


点击Finish进入自定义界面

内存(Memory):可设置最大内存,增加灵活性。按自己需求设置
引导选项(Boot Option):不改动。如果安装时不小心勾选了“启动引导菜单”致使进不去系统,可以尝试关闭虚拟机中止安装,并勾选“启动引导菜单”和“IDE COROM 1”选项,并在安装完成重启时去掉这两个选项
VirtIO磁盘1(VirtIO Disk 1):虚拟磁盘的路径,默认在/lib/var/libvirt/images/xxxx-qcow2,qcow2表示qemu管理的设备。在这里可以选择半虚拟化驱动或全虚拟化驱动(高级选项),CentOS默认半虚拟化驱动virtio,不用修改
IDE CDROM 1:光盘,这里的磁盘总线“IDE”不要改动
NIC:虚拟网络接口,连接到virbr0网卡。网络源:Virtual network ‘default’:NAT。设备型号,e1000和rtl8139都是全虚拟化驱动,这里选择默认的半虚拟化驱动virtio
Tablet:数位板。
Display Spice(显示协议Spice):Spice服务器为VNC服务器,端口默认从5900开始分配,即勾选“自动”。最好不设置密码。VNC服务器是远程控制服务器。键映射选择en-us
标红部分为需要特别注意,或者需要修改的部分
安装界面如下:

前提条件:
宿主机上事先下载好windows的iso镜像,本次实验使用Windows_Server_2008_R2_VL_x64_CN_2018.04.iso
虚拟机所需内存推荐8G,本次实验采用4G
虚拟机所需磁盘推荐40G,本次实验采用20G








Linux默认为半虚拟化安装,Windows则默认为全虚拟化安装,后者性能更低
Windows要实现半虚拟化安装,需要额外安装驱动程序
鉴于步骤繁多,于是单独用另一篇博客记录了如何安装半虚拟化驱动下的Windows虚拟机,详见:
https://blog.csdn.net/widsoor/article/details/126613628
这里补充一个更换磁盘镜像安装地点的方式,如果目的文件夹存储够,可以不用更换
所创建的磁盘镜像默认安装在 /var/lib/libvirt/images 目录下,如果该目录存储不够,而其他目录例如/home目录下存储较大,那么可以更改虚拟机的磁盘安装位置
先创建好要存储的目录,如mkdir /home/windowsimages,然后以安装windows虚拟机为例,当达到创建虚拟机的第四步,设置磁盘镜像时







在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
我这个模型:classBunny每当我提交一个表单来创建这个模型时,我都会收到以下错误:#的未定义方法“number_before_type_cast” 最佳答案 我通过将此方法添加到我的Bunny模型中解决了这个问题:defnumber_before_type_castnumberend我不喜欢它,但我想在有人发布更好的解决方案之前它会起作用。 关于ruby-on-rails-Rails验证虚拟属性,我们在StackOverflow上找到一个类似的问题: h
【适用平台】私有云 说明:完成私有云部分是需要两台虚拟机的,分别为controller、compute两个节点,但我们只需配置一台,然后克隆就方便多啦!需要用到的映射文件:关于vm的安装我就不介绍的,毕竟挺简单的,下面让我们看看基于私有云模块中,虚拟机的搭建吧。1、创建新的虚拟机,这里一般我会选择自定义,毕竟后面的配置都要根据私有云相关来进行搭建,会比较复杂。(如果是基础的可以选择典型,典型的满足一般虚拟机的配置) 2、选择稍后安装操作系统会比较方便后续的选择,这里你也可以自己选择自己的映像文件(但不建议) 3、我们是基于Linux下操作的,所以选择Linux客户机操作系统,版本选择自己
在chromedriver75.0.3770.8上访问driver.manage.logs.get(:browser)-它导致错误#(NoMethodError)的未定义方法“日志”在74.0.3729.6上工作正常来自:https://github.com/SeleniumHQ/selenium/issues/7270 最佳答案 在最近的selenium-webdriver(4.4.0)和最近的Chrome(105)中,manage.logs不见了,但这有效:page.driver.browser.logs.get(:browse
我在做:can:manage,:allifuser.role=='admin'can:approve,Anunciodo|anuncio|anuncio.try(:aprovado)==falseend我的第二种方法不起作用,因为:manage:all覆盖了它。有一种方法可以声明可以管理除批准之外的所有内容吗?在里面批准我只是做can:approve,Anunciodo|anuncio|user.role=='admin'&&anuncio.try(:aprovado)==falseend什么是更好的解决方案? 最佳答案 尝试换一种
VMware虚拟机与本地主机进行磁盘共享前提虚拟机版本为Windows10(专业版,不是可能有问题)本地主机为家庭版或学生版(此版本会有问题,但有替代方式)最好是专业版VMware操作1.关闭防火墙,全部关闭。2.打开电脑属性3.点击共享-》高级共享-》权限4.如果没有everyone,就添加权限选择完全控制,然后应用确定。5.打开cmd输入lusrmgr.msc(只有专业版可以打开)如果不是专业版,可以跳过这一步。点击用户-》administrator密码要复杂密码,否则不行。推荐admaiN@1234类型的密码。设置完密码,点击属性,将禁用解开。6.如果虚拟机的windows不是专业版,可
🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀虚拟机上进行java项目部署,自己的一点总结,一起学习,一起进步,一起成长!🛸🛸🛸🛸🛸🛸🛸🛸🛸🛸目录文章目录虚拟机上进行java项目部署1.JDK安装2.TOMCAT安装3.DOCKER1、YUM安装2、docker部署java4、最后 【yzh2022.9】1.JDK安装1、我们安装VM的时候,使用命令java-version查看 java-version这里显示JDK的信息是openjdkversion"1.8.0_262",我们会发现这个JDK是VM自带的当然你也可以通过命令rpm-qa|grepjava来查看相关的java信息 rpm-qa|grepjava【如果不
我正在使用RubyonRails和Koalagem构建一个facebook应用程序来构建我自己的登录流程。https://github.com/arsduo/koalahttps://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/我的问题很简单。假设以下情况:-尝试连接到我的应用程序的用户有多个他们管理的Facebook页面。我希望他们能够只选择他们希望我管理的特定页面,同时拒绝访问其余页面。原因是许多将使用我的应用程序的管理员管理大量页面。当我只需要一小部分页面的权限时,我无法想象他们会
文章目录一、用户二、用户分类1、普通用户2、超级用户3、系统用户三、用户相关文件1、/etc/passwd文件2、/etc/shadow文件四、用户管理命令1、useradd2、adduser3、passwd4、usermod5、userdel一、用户Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。在Linux系统中,任何文件都属于某一特定用户,而任何用户都隶属于至少一个用户组。用户名(username):每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系