Linux下的虚拟化部署

1 在Linux中实现虚拟化

1.1 kvm安装条件

  • nter cpu ----> vmx
  • amd cpu -------> svm

kvm是指内核级的虚拟化;vmx指全虚拟化功能,这是一个指令集,可以使用cat /proc/cpuinfo | grep vmx,过滤该指令 :
在这里插入图片描述
从上图可以看出vmx全虚拟化功能开启,且主机是inter cpu,表明可以安装kvm。

1.2 kvm虚拟化安装

需要提前安装好三个虚拟化工具,可以在软件仓库配置好的前提下直接安装这三个软件,执行dnf group install “Virtualization Client” “Virtualization Hypervisor” “VirtualizationT ools” -y安装命令:

软件名称含义
Virtualization Client虚拟化客户端
Virtualization Tools虚拟化工具
Virtualization Hypervisor虚拟化核心套件

1)输入 dnf group list --hidden 在installed groups里面查看这三个软件是否已经安装,若已经安装过,就不需要再执行安装命令:
在这里插入图片描述
2)装好的软件,默认情况下虚拟化服务是没有打开的,需要输入systemctl enable --now libvirtd命令开启服务;然后在超级用户下使用virt-manager就可以直接掉出虚拟机管理界面:
在这里插入图片描述

1.3 kvm虚拟化相关信息

  • 服务名称:libvirtd
  • 虚拟化核心:qemu/kvm
  • 虚拟化存储目录(虚拟机硬盘):/var/lib/libvirt/images/westos.qcow2
  • 虚拟化硬件信息:/etc/libvirt/qemu/westos.xml

1.4 手动安装虚拟机

前面的实验中所使用的虚拟机开启、显示、创建命令是写好的可以用的程序,在没有这个程序时,需要手动创建并安装虚拟机。
1)在virt-manager命令打开的窗口处,点击“创建一个新的虚拟机”,选择第一个本地源安装,注意镜像文件和系统保持一致,提前将镜像文件放在/var/lib/libvirt/images中:
在这里插入图片描述
2)点击boswer选择镜像文件,选择下面的操作系统版本,可输入rhel8.2:
在这里插入图片描述在这里插入图片描述
3)内存输入2048,cpu个数为2,注意若是安装图形模式的虚拟机,内存必须大于2G:
在这里插入图片描述
4)注意下面的硬盘大小要不低于8G:
在这里插入图片描述
5)输入虚拟机的名字,下面的网络默认是NAT模式:
在这里插入图片描述
6)创建完成后进入安装,此处选择第一个,黄色代表选中,然后回车:
在这里插入图片描述
7)完成会进入安装语言选择,默认英文即可,点击continue,进入如下界面:
在这里插入图片描述
8)点击language support,选择简体中文,完成后done,退出该选择语言界面:
在这里插入图片描述
9)点击time&date选择时区为东八区,done:
在这里插入图片描述
10)选择安装时硬盘划分,选择custom,然后done:
在这里插入图片描述自动进入分区页面,设置/boot、swap、/区域的大小;选择下拉菜单处的 standar partition ,点击下面的+号,在mount point处选择一个/boot、desired capacity处选择500、mount point处选择一个swap(虚拟机化分区,主要功能是当内存中使用情况超过80%时,会把内存中,暂时不用的程序放到该分区中,当内存释放之后,再将该分区中的东西拿出来,交还给cpu处理,该大小一般是物理内存的两倍)、desired capacity处选择500、mount point处选择一个/,desired capacity不写,直接点下面的add。然后done:

在这里插入图片描述
选择accept changes:
在这里插入图片描述
11)软件选择,默认是GUI,可不操作:
在这里插入图片描述
12)安装时,会出现设置超级用户密码和普通用户的用户名和用户密码:
在这里插入图片描述
设置完成并重启系统:

在这里插入图片描述
13)重启后会出现协议信息,选择接受即可:
在这里插入图片描述在这里插入图片描述
14)进入后会出现使用前的指导直接跳过即可安装成功

1.5 虚拟机管理命令

命令含义
virt-viewer westos显示westos虚拟机
virt-manager打开虚拟机控制器
virsh list没有运行的虚拟机,是不会显示的
virsh list --all列出所有虚拟机
virsh start westos开启虚拟机。该命令可以运行起虚拟机,但是无法显示出来,此时就需要再使用第一条命令,显示虚拟机
virsh shutdown westos正常关闭虚拟机
virsh destroy westos断电westos虚拟机 。上面的 shutdowm有时无法关闭虚拟机,此时就使用该命令,快速关闭虚拟机,它是没有关闭过程的,直接关闭,而shutdowm有关闭的过程

在这里插入图片描述

1.6 虚拟机在Linux系统中传输

构成一个虚拟机组成的部分有两个:硬盘、硬件信息。硬盘可以在虚拟机管理界面小灯泡里看到虚拟机的硬盘路径,也就是virtio disk 里面的路径。每一台虚拟机的硬件信息都在/etc/libvirt/qemu/目录下,可以cd进入后,ls查看,有原本创建出来的虚拟机的.xml文件,然后可以vim test.xml,里面有虚拟机相关的硬件描述。
所以复制虚拟机的时候,需要复制两个文件,一个是硬盘,一个是硬件信息。注意复制的是原版手动创建出来的虚拟机,而不是复制快照。
注意,此处需要两台主机进行操作
1)首先,使用超级用户的身份进入自己的/var/lib/libvirt/images目录(两个文件都在该目录下)
2)scp root@从哪个主机上考虚拟机就写哪个主机的ip:/var/lib/libvirt/images/test.qcow2(虚拟机名) .(考到当前) 。传输结束后,可以ls查看
3)scp root@从哪个主机上考虚拟机就写哪个主机的ip:/etc/libvirt/qemu/test.xml虚拟机硬件信息文件(虚拟机硬件信息文件) .(考到当前) 。传输结束后,可以ls查看
4)复制完成后,使用以下命令操作:

命令含义
virsh define test.xml通过硬件信息文件恢复虚拟机,相当于将该文件直接复制到本机的/etc/libvirt/qemu/目录下,在本机恢复过来,可以virt-manager查看,但是默认是没有被打开的
virsh create test.xml通过硬件信息文件打开虚拟机,虚拟机关闭后消失 ,也就是说这种方法是一次性的打开
virsh undefine test删除虚拟机硬件信息(注意这里加的是虚拟机的名字,而不是文件),但是它删除的只是硬件信息,也就是xml文件,其硬盘文件qcow2仍然存在,若想将硬盘文件也删除,可以手动 rm -fr test.qcow2

1.7 虚拟机快照

当虚拟机安装好后,为了防止突发情况,使虚拟机崩溃,可以使用虚拟机的快照功能,相当于克隆。虚拟机的硬盘可能会在操作过程中因操作不当,导致硬盘的损坏等问题。此时使用快照不仅节省时间,其本身文件较小,操作不当时,可以删除并重新快照。
1)使用超级用户进入 cd /var/lib/libvirt/images/ ,然后ls查看一下,里面有和虚拟机有关的.qcow2文件,如果该文件中的内容被修改,就会导致虚拟机崩溃。输入快照命令完后,被照出来的文件也存在于该目录下;输入 file lhy_node1.qcow2 可以看到该文件真实读读的是lhybase.qcow2:
在这里插入图片描述
2)进行安装,将快照好的文件导入,此处选择第四个选项:
在这里插入图片描述
3)选择文件和系统版本:
在这里插入图片描述在这里插入图片描述
4)选择内存和cpu,这里可以选择小一些:
在这里插入图片描述
5)入虚拟机名称,点击完成,即直接成功,不需要再配置其他东西登陆即可使用;若操作不当,使得快照后的虚拟机挂了,就进入该目录下,重新快照,就可以使用了;若想要两个虚拟机,就再进行快照,命名与前一个node1区分开即可,然后导入该虚拟机,也就是重复上面的步骤即可:
在这里插入图片描述
6)完成后查看:
在这里插入图片描述

2 网络源安装虚拟机

前面的方法都是按照镜像的方式创建虚拟机,也可以利用网络源安装虚拟机

2.1 利用网络源安装虚拟机

1)当软件仓库建立好了之后,输入dnf install httpd -y:
在这里插入图片描述
2)执行systemctl disable --now firewalld、systemctl enable --now httpd命令:
在这里插入图片描述
3)创建共享目录,将镜像文件挂载到共享目录:
在这里插入图片描述在这里插入图片描述
4)输入chown qemu.qemu /var/lib/libvirt/images命令:
在这里插入图片描述
5)通过浏览器访问,172.25.254.36/westos/:
在这里插入图片描述
6)选择创建新的虚拟机,选择network install,注意第一个选项是使用本地镜像文件安装虚拟机,且景象文件放在指定的目录下,第二个选项是利用网络源安装虚拟机,第四个选项是虚拟机快照的安装:
在这里插入图片描述
7)指定访问网络源地址,选择系统版本:
在这里插入图片描述
8)设定内存大小、cpu个数、硬盘大小、虚拟机名称等,然后进入安装,同前面虚拟机创建及安装步骤相同。

2.2 网桥的搭建

注意,当到虚拟机命名步骤时,下面有一个网络选择,默认是NAT(地址转换)模式,是没有桥接模式的,当默认NAT模式后,系统中会默认开启一个virbr0接口,当虚拟机运行起来之后,会再出现一个vnet0接口,这是虚拟机使用的网卡。
NAT的通信模式为:真机的内核控制真机的网卡,虚拟机的内核控制虚拟机的网卡vnet0,这个vnet0虚拟网卡连接的是真实主机内核上开启的一个路由器,这个路由器叫vbr0,vbr0上包含有多个网卡接口,一边连的是vnet0,一边连的是真实主机的网卡。vnet0的通信是要将所有的内容转到vbr0(也就是virbr0),再通过vbr0转给真机网卡,然后再传出,这就是NAT的网络模式。这样进行数据通信需要进行数据转化,这会使数据通信变得非常慢。
同时不可以将vnet0直接接到物理网卡也就是真机的网卡上面,内核不允许,所以可以在内核上开启一个桥梁,将vnet0和真机网卡桥接起来,这个桥就是br0,默认情况下,这个br0是不存在的,所以需要我们自己配置网桥,它的优点就是可以使得虚拟机和物理网卡直接通信。
1)cd /etc/sysconfig/network-scripts ,进入网卡配置目录。ls,里面显示的是原始的真实网卡配置文件。输入cp ifcfg-lhy ifcfg-br0。编辑vim ifcfg-lhy 和vim ifcfg-br0:
在这里插入图片描述
注意网卡配置目录下,除了这两个文件,不要有其他配置文件,其他的删除。当连接过无线网后,该目录下会自动出现一些其他文件。
2)vim ifcfg-lhy中的内容,里面的ip、网关、域名根据情况设定,可写可不写。type、bootproto、name、device、onboot,bridge必有:
在这里插入图片描述
3)vim ifcfg-br0中的内容,里面的ip、网关、域名根据情况设定,可写可不写。 改变如下:type=Bridge、device=br0,name=br0,其他内容不变同ifcfg-lhy文件:
在这里插入图片描述
4)重启网络服务,输入命令:
nmcli connection reload
nmcli connection show
nmcli connection down lhy
nmcli connection up lhy
nmcli connection down br0
nmcli connection up br0
5)bridge link 看到网桥即表示网桥建立成功,此时就可以看到网桥配置模式。有了网桥设定,此时vbr0就不再使用,直接通过网桥br0将真实网卡与wnet0连接

2.3 虚拟机获取ip

配置好网桥后通过网络的方式安装虚拟机,就会出现一个问题,即虚拟机不能通过vbr0的方式来获取ip,此时可以用ifconfig命令来查看各个接口。若再按照网络的方式安装一次虚拟机,在网络选择下面的默认就变成了网桥的方式,此时无法获其ip,虚拟机在安装的过程就会出现一个无法获得ip,从而无法获取网络资源的问题。
解决获取不到ip的方法 就是本机进行dhcp配置。
1)输入dnf install dhcp-server -y命令:
在这里插入图片描述
2)输入cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf命令,复制dhcp服务配置文件:
在这里插入图片描述

3)编辑vim /etc/dhcp/dhcpd.conf文件,删除27、28行,修改7、8、30、31行,将32行的内容注释,之后的全部删除:
在这里插入图片描述
4)输入systemctl --now enable dhcpd命令,重启服务,此时再重新按照网桥的方式安装虚拟机即可。

2.4 虚拟机硬件信息设定脚本

每建立一个虚拟机,都要进行版本,内存大小等设置。这些设置系统无法记录,想要不再重复这个选择的过程,需要使用脚本。
1)cd /mnt,编辑vim westos.sh脚本文件。虚拟机在安装时,用到的命令是 virt-install,可以 man virt-install查看参数
2)进入刚才创建的脚本文件,输入以下内容:

  • #!/bin/bash -->脚本指令解释器
    virt-install --location http://172.25.254.36/westos --os-variant rhel8.2 --vcpus 1 --memory 2048 --disk /var/lib/libvirt/images/test.qcow2,size=8,bus=virtio --name test --network bridge=br0,model=virtio

这里可以在 man virt-install窗口里,搜索关键字 /EXAMPLE,然后按下n往下匹配,里面包含大量的实例,注意实例里面的反斜杠\表示换行,可以先不写;location表示指定安装源,也就是点击创建虚拟机后出现四个选项;os-variant 表示指定系统版本,注意这里写的版本要与前面地址源里面的镜像文件版本一致;vcpus表示cpu核心数,memory表示内存大小;disk 表示硬盘,后面是硬盘信息的路径,逗号后面size是硬盘大小,后面的bus是硬盘工作总线;name表示虚拟机的名字;network表示网卡为桥接模式,逗号后面的model表示网卡工作模式为虚拟输入输出。
3)写完脚本内容后 sh westos.sh运行该脚本即可,但是这种方法只能创建一个虚拟机。所以当该虚拟机创建好后,再想建立另一个虚拟机时,是不行的;或者把该虚拟机关掉,再运行脚本会报错,因为之前建立的虚拟机已经存在。
4)为了解决只能创建一个虚拟机的情况可以使用‘$1’($1:表示输入的第一个字符串被识别,不固定),此时需要重新编辑脚本里面的内容:

  • #!/bin/bash
    virt-install --location http://172.25.254.36/westos --os-variant rhel8.2 --vcpus 1 --memory 2048 --disk /var/lib/libvirt/images/$1.qcow2,size=8,bus=virtio --name $1 --network bridge=br0,model=virtio

即把硬盘后面的.qcow2文件改为$1,把name后修改为$1。
5)运行脚本 sh westos.sh test,直接将虚拟机的名字写在后面即可
在这里插入图片描述

6)上面的脚本文件内容写在一行不好区分,但是不能直接使用回车换行,这样系统会不识别该命令,所以可以使用反斜杠做换行符。 注意:每一个换行副和前面的字符串之间必须有一个空格,这个空格代表了命令和参数之间的空格换行符后面什么都不能加,包括空格等,当反斜杠后面没加其他符号时,鼠标到换行符处是黄色的,否则显示白色:
在这里插入图片描述

7)脚本写完后会占用终端,如果不想要占用终端,可以在脚本文件中,最后一行处加上一个 &,将它打入后台
–network bridge=br0,model=virtio &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值