1.13 Linux系统下的虚拟化部署

本文详细介绍了在Linux系统下使用KVM进行虚拟化部署的过程,包括虚拟机的配置、KVM工具的安装与管理、虚拟机备份、网络源安装系统的方法,以及网桥和NAT的区别。同时,还探讨了自动化虚拟机创建脚本的编写,以实现高效管理。
摘要由CSDN通过智能技术生成

Windows下的虚拟机部署(实验预备)

本处以VM16为操作环境.
标准化配置虚拟机选择RHEL8.2镜像进行虚拟机创建.
为了之后的虚拟化实验,对虚拟机环境进行以下调整.

  • 调整虚拟机配置为1CPU4核心,4G内存
  • 检测虚拟机对虚拟化的支持
  • 安装KVM虚拟化三件套
  • 增加挂载设备(VM虚拟机中设置ISO镜像用以搭建本地仓库)
    虚拟化支持
    设置挂载镜像
    出现新挂载点
    查询安装三件套

Linux下的虚拟化工具

Windows下常使用VM等工具创建虚拟机.
Linux下使用的工具叫KVM,是内核级的虚拟化工具.
因为技术实现的不同,KVM需要硬件对虚拟化进行支持.

##不同cpu需要的支持
Intel cpu	→	vmx
AMD cpu		→	svm

cat /proc/cpuinfo | grep vmx		##查看是否支持

KVM虚拟化工具的安装需要三个组套件,可以通过上节课的安装方法进行安装.

dnf group install "组名称"
Virtualization Client
Virtualization Tools
Virtualization Hypervisor

刚刚安装好的服务是没有自动开启虚拟化的.

systemctl enable --now libvirtd

KVM虚拟化相关信息

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

虚拟机的安装和设置本处略过,请搜索RHEL的系统安装相关.
值得注意的几个点

  • Boot分区大小推荐至少1024M,最小500M
  • Swap分区的大小最小500M
  • 为了方便重置和批量,通常不使用第一个创建好的母盘而是使用他的快照.
qemu-img -f qcow2 -b 母盘名.qcow2 快照名.qcow2

通过这种方式可以创建基于母盘的快照,大小很小但可以用来创建新的虚拟机,新的虚拟机内容基于母盘当前模式.
创建快照
查询所用硬盘

KVM虚拟机的管理

对KVM虚拟机的分为两种:图形化界面下的和命令行模式下的.

virt-manager			##打开图形化的虚拟机管理界面

virsh list				##命令行模式下的虚拟机列表,仅显示已开启的
virsh list --all		##列出所有虚拟机
virsh start 虚拟机名 	##启动目标虚拟机
virsh shutdown 虚拟机名 	##关闭目标虚拟机
virsh destroy 虚拟机名	##强制关闭虚拟机,快速但不安全

KVM虚拟机的备份

从一台机器像另一台机器迁移虚拟机也算是运维管理的需求之一,如同Windows下可以通过备份方式进行转移,Linux下也有相关的方法.通过同时转移*.qcow2和对应的*.xml可以在新的物理机上对原本的虚拟机进行恢复.

##虚拟机备份恢复相关
virsh create *.xml			##临时创建虚拟机文件的恢复
virsh define *.xml			##永久创建虚拟机文件的恢复
virsh undefine *.xml		##删除恢复好的虚拟机

临时创建和永久创建在使用上没有区别,区别在于当关闭虚拟机后,临时创建的虚拟机会直接消失,而永久创建的则不会.
临时创建
永久创建

删除虚拟机

网络源安装系统

在局域网环境中,如果存在一台有系统镜像的服务器,其他主机安装系统时就可以通过网络源方式从它那里调用,极大的简化了安装的流程.
那么网络源安装的前提有两个

  • 主机能够直接连接到网络源服务器
  • 网络源服务器中有可供安装的镜像

针对这两个问题,我们需要分别进行如下操作.
我们在真实主机中开启Apache服务器,并将挂载好的ISO文件重新挂载到/var/www/html/Test目录下,这样其他主机就可以通过访问Apache服务器来访问镜像了.也就是网络源搭建成功.
在真实主机中设置网桥和DHCP服务,并对虚拟机设置桥接.以便虚拟机的网络与真实主机能够互联.网桥的设置方式见**<8. Linux中的远程登陆服务>**中的设置.
通过设置桥接和DHCP服务让虚拟机和主机能够直接连接,就可以开始设置网络源安装了.

设置网络源安装

  • 临时关闭防火墙
  • 开启Apache
  • 将RHEL8.2目录挂载到/etc/www.html/目标目录
  • 测试使用浏览器是否可以打开该目录
  • 打开virt-manager
  • 选择网络源安装
  • 安装地址填写http://[Apache服务器IP]/目标目录
  • 按照实体机安装方式进行安装配置

基础设置

增加网桥设置
网桥设定
设置完成后记得重载网络设置.
网络设置杂糅
接下来就可以正式进入网络源的系统安装了.
选择网络源安装
网络源安装镜像
其余的设置与用ISO镜像安装系统完全相同,系统安装的设置方式也基本相同.

网桥和NAT的区别

简单来说,两种模式都能使虚拟机上网.
NAT把物理机为路由器进行上网,而网桥将虚拟网卡桥接到一个物理网卡上面,通过物理网卡进行上网.

自动化虚拟机创建脚本

虚拟机每次创建都要手动选择配置和连接方式,操作本身无法被记录,这显然是不合适的.
如何永久保留配置方式呢?
可以使用脚本来完成.
如下代码段就是一个范例的自动化创建虚拟机脚本.

#!/bin/bash
virt-install \
	--location http://192.168.50.214/Test \
	--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 \
	--extra-args "ks=http://192.168.50.214/ks/Test.cfg"

我们对他逐行进行解释
#!/bin/bash为Shell脚本解释器标注.

关于每一行结尾\的作用,首先需要明确的是参数写在同一行和分行书写对于运行来讲是没有去别的.但参数写在一行辨识度低,可读性差,也不好看.通常应该使用换行符来进行换行,当然直接换行会被直接认为是回车执行,因此需要借助\来进行换行.
但原本每一行的内容和\之间的空格不能少,不然会失去效果.
同理\之后不要加任何字符/空格,否则换行效果会失效.

--location http://192.168.50.214/Test 指定了安装源,这里为网络源安装
--os-variant rhel8.2 设置安装系统的版本
--vcpus 1 硬件分配1核1线程CPU
--memory 2048 硬件分配2048M内存
--disk /var/lib/libvirt/images/$1.qcow2,size=8,bus=virtio 硬件分配8G硬盘,存储位置为真实主机的/var/lib/libvirt/images/$1.qcow2文件,读取总线类型(virtio),关于$1的用法一会再说
--name $1 设置虚拟机名称,关于$1的用法一会再说
--network bridge=br0,model=virtio 设置联网方式为桥接,总线类型(virtio)
最后一行 最后一行为下一章的内容暂且略过

不难看出,自动化安装脚本实际上就是把我们创建虚拟机时点选的参数在文件中进行了记录.

关于$1
Shell脚本中,$1表示之后跟的第一个参数,将$1作为机器名就可以实现我们用同一脚本创建不同虚拟机的目的.
同理替换硬盘名,执行命令时就可以起到参数替换的效果,定向创建指定名称的虚拟机.
当然这个Shell脚本会占用终端,如果想后台运行 在最后一行加入& ,使之在后台运行.

sh Test.sh Test

就可以创建一个名为Test的参数如上所示的虚拟机.
参数讲解
脚本正确运行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值