Linux下的虚拟化部署
1.在Linux中实现虚拟化
1.1 kvm安装条件
nter cpu ----> vmx
amd cpu -------> svm
kvm是指内核级的虚拟化;vmx指全虚拟化功能,这是一个指令集,可以使用下图命令:从上图可以看出vmx全虚拟化功能开启,可以安装kvm
1.2 kvm虚拟化安装
需要提前安装好三个虚拟化工具,可以在软件仓库配置好的前提下直接安装这三个软件,执行dnf group install “Virtualization Client” “Virtualization Hypervisor” “VirtualizationT ools” -y安装命令:
Virtualization Client ——虚拟化客户端
Virtualization Tools ——虚拟化工具
Virtualization Hypervisor ——虚拟化核心套件
安装完成后,在Applications中可以看到:
安装步骤:
1.3 kvm虚拟化相关信息
服务名称:libvirtd
虚拟化核心:qemu/kvm
虚拟化存储目录(虚拟机硬盘):/var/lib/libvirt/images/westos.qcow2
虚拟化硬件信息:/etc/libvirt/qemu/westos.xml
1.4 硬盘管理
manger qcow2 disk
qemu-img info xxxx.qcow2 查询虚拟硬盘信息
qemu-img create -f qcow2 xxxx.qcow2 -o lazy_refcounts=off 建立虚拟硬盘并指定动态应用空间(动态应用磁盘空间)
qemu-img resize xxx.qcow2 20G 改变虚拟硬盘容量最大伐直
true:设计几G占几G
false:动态硬盘用多少占多少
2.Linux系统安装
2 .1 虚拟机快照
当虚拟机安装好后,为了防止突发情况,使虚拟机崩溃,可以使用虚拟机的快照功能,相当于克隆。虚拟机的硬盘可能会在操作过程中因操作不当,导致硬盘的损坏等问题。此时使用快照不仅节省时间,其本身文件较小,操作不当时,可以删除并重新快照。
1)使用超级用户进入 cd /var/lib/libvirt/images/ ,然后ls查看一下,里面有和虚拟机有关的.qcow2文件,如果该文件中的内容被修改,就会导致虚拟机崩溃。输入快照命令完后,被照出来的文件也存在于该目录下
将快照好的文件导入,此处选择第四个选项
2.1 虚拟机管理命令
virt-viewer westos 显示westos虚拟机
virt-manager 打开虚拟机控制器
virsh list 没有运行的虚拟机,是不会显示的
virsh list --all 列出所有虚拟机
virsh start westos 开启虚拟机。该命令可以运行起虚拟机,但是无法显示出来,此时就需要再使用第一条命令,显示虚拟机
virsh shutdown westos 正常关闭虚拟机
virsh destroy westos 断电westos虚拟机 。上面的 shutdowm有时无法关闭虚拟机,此时就使用该命令,快速关闭虚拟机,它是没有关闭过程的,直接关闭,而shutdowm有关闭的过程
3.网桥的构建
(1) cd /etc/sysconfig/network-scripts ,进入网卡配置目录。ls,里面显示的是原始的真实网卡配置文件。编辑vim ifcfg-ens3 和vim ifcfg-br0:vim ifcfg-lhy中的内容,里面的ip、网关、域名根据情况设定,可写可不写。type、bootproto、name、device、onboot,bridge必有:
4)重启网络服务,输入命令:
nmcli connection reload
nmcli connection up ens3
nmcli connection up br0
bridge link 看到网桥即表示网桥建立成功:
4.虚拟机在Linux系统中传输
怎样复制别的主机里边的虚拟机
需要把想要的主机的虚拟机的所有的配置文件全部放到自己的主机
硬盘:scp root@172.25.254.19:/var/lib/libvirt/images/westos.qcow2 /var/lib/libvirt/images(传输较慢)
硬件信息: /etc/libvirt/qemu/
scp root@172.25.254.19: /etc/libvirt/qemu/westos.xml /var/lib/libvirt/images
之后输入virsh create westos.xml(如下图)
这样的方式临时的
永久:virsh define westos.xml
5.虚拟机建立脚本
,编辑vim westos.sh脚本文件。虚拟机在安装时,用到的命令是 virt-install,可以 man virt-install查看参数
脚本文件内容:
#!/bin/bash -->脚本指令解释器
virt-install --location http://172.25.254.77/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
写完脚本内容后 sh westos_vm.sh westosvma运行该脚本即可,但是这种方法只能创建一个虚拟机。所以当该虚拟机创建好后,再想建立另一个虚拟机时,是不行的;或者把该虚拟机关掉,再运行脚本会报错,因为之前建立的虚拟机已经存在。
为了解决只能创建一个虚拟机的情况可以使用‘$1’($1:表示输入的第一个字符串被识别,不固定),此时需要重新编辑脚本里面的内容
上图的脚本文件内容写在一行不好区分,但是不能直接使用回车换行,这样系统会不识别该命令,所以可以使用反斜杠做换行符。 注意:每一个换行副和前面的字符串之间必须有一个空格,这个空格代表了命令和参数之间的空格换行符后面什么都不能加,包括空格等,当反斜杠后面没加其他符号时,鼠标到换行符处是黄色的,否则显示白色
脚本写完后会占用终端,如果不想要占用终端,可以在脚本文件中,最后一行处加上一个 &,将它打入后台
–network bridge=br0,model=virtio &