Linux 下的虚拟化部署
1. 在 windows 中 Linux 的虚拟化
在VMware 中,对已经安装好的虚拟机做如下设置:
- 在虚拟机中添加硬盘
在关机的情况下对虚拟机的硬盘进行设置,点击编辑虚拟机设置;
选择添加一块硬盘;
选择 SATA 硬盘;
选择创建新虚拟机磁盘;
设置新建的虚拟机磁盘大小为60G;并将虚拟磁盘拆分成多个文件;
指定磁盘位置,选择和对应的虚拟机在同一目录;
- 完成以上操作之后,打开虚拟机,在虚拟机中配置软件安装环境
点击虚拟机右下角的光盘对其进行设置,设置如下,找到对应的镜像目录文件;
输入 df 命令,即可看到镜像挂载的位置;
搭建本地软件库;
输入命令 cd /etc/yum.repo.d/
输入命令 vim westos.repo
内容为:
[Appstream]
name=Appstream
baseurl=file:///run/…/Appstream(此处为为镜像所在的位置)
gpgcheck=0
[BaseOS]
name=BaseOS
baseurl=file:///run/…/BaseOS(此处为为镜像所在的位置)
gpgcheck=0
- 在虚拟机中安装虚拟化软件
输入命令 dnf group list hidden 查看隐藏的组建;
输入命令 dnf group install " Virtualization Client " " Virtualization Hypervisor " " Virtualization Toolsl " -y 安装虚拟化组建;
在安装完成之后,开启服务;
输入命令 systemctl enable - -now libvirtd.server
输入命令 systemctl enable --now libvirtd libvirt.guests
对设备进行分区;
输入命令 fdisk /dev/sdb
然后对其格式化;
输入命令 mkfs.xfs /dev/sdb1 -K
- 在虚拟机中格式化硬盘并挂载到虚拟机内存目录中
输入命令 mount /dev/sdb1 /var/lib/libvirt/images/
- 调整虚拟机硬件,开启所需计划功能,并调整cpu 和内存
将虚拟机核心数量调整为4,并开启全虚拟化功能;将内存调整为4 G。
完成以上操作之后, windows 中的虚拟机的虚拟化就已经设置成功。
2. Linux 中的虚拟化
2.1 kvm安装条件
- inter cpu ----> vmx
- amd cpu -------> svm
当前主机使用的是 inter ,所以系统中应该配置有 vmx ,输入命令 cat /proc/cpuinfo | grep vmx 过滤显示 vmx 的信息。
如图所示,过滤查看 vmx 是存在的,符合 kvm 的安装条件。
2.2 kvm虚拟化安装
配置软件仓库,在超级用户下输入命令 dnf group list --hidden 查看组件安装信息;
组件信息
名称 | 含义 |
---|---|
Virtualization Client | 虚拟化客户端 |
Virtualization Tools | 虚拟化工具 |
Virtualization Hypervisor | 虚拟化核心套件 |
当这三个组件信息存在时,表示系统已经安装了虚拟化的组件;如果没有就需要输入 dnf group install “Virtualization Client” “Virtualization Hypervisor” “Virtualization Tools” -y 来安装虚拟化工具;
在安装完成之后,要输入命令 systemctl enable --now libvirtd 开启服务;在超级用户下可以直接用命令 virt-manager 来打开虚拟机管理界面,也可以在 Application 中打开虚拟化管理界面;
2.3 kvm虚拟化相关信息
服务名称: libvirtd
虚拟化核心: qemu/kvm
虚拟化存储目录(虚拟机硬盘) : /var/lib/libvirt/images/westos.qcow2
虚拟化硬件信息: /etc/libvirt/qemu/westos.xml
2.4 手动安装虚拟机
用命令或者图形的方式打开虚拟机管理界面;点击创建虚拟机的图标,选择第一个本地安装资源;
选择对应的安装资源;下面手动选择和镜像对应的操作系统;
如果新安装的虚拟机要开图像,则内存必须大于2G;
给当前虚拟机设置内存 8G,在企业八的版本中低于 8G 很可能安装不成功;
给新建的虚拟机设置一个名称;
在完成以上操作之后就进入安装界面,用上下左右键来选择,此处选择第一个,直接安装 Linux 8.2 ;
进入到第一个界面,选择安装时的语言;
完成之后,进入到当前页面,在当前页面需要对语言支持进行选择,时间和时区进行选择,对软件进行选择以及对安装信息的划分进行设置;
选择简体中文;
选择亚洲的上海;
安装资源的划分,选择 custom ;
选择手动设置;给 / 留够足够的空间;
完成之后点击接受;即可开始安装;
在安装的过程中对给设计用户设置密码,给普通用户设置用户名称和密码;
在安装完成之后,选择 reboot 重启系统;
重启之后,第一次进入会有一些选项和协议需要同意;
完成以上操作之后,一个新的虚拟机便可安装完成。
2.5 虚拟机管理命令
命令 | 含义 |
---|---|
virt-viewer westos | 显示westos虚拟机 |
virt-manager | 打开虚拟机控制器 |
virsh list | 列出运行的虚拟机 |
virsh list --all | 列出所有虚拟机 |
virsh start westos | 开启虚拟机 |
virsh shutdown westos | 正常关闭虚拟机 |
virsh destroy westos | 断电westos虚拟机 |
如输入以下命令的一些显示信息;
2.6 虚拟机在Linux系统中传输
此处需要两台主机,一台默认没有虚拟机,另外一台安装过虚拟机;
此处需要将已经安装虚拟机的主机中的文件复制到当前主机中;在一个虚拟机安装完成之后会生成两个文件,一个是 /etc/libvirt/qemu/westos.xml 中的硬件信息,一个是 /var/lib/libvirt/images/westos.qcow2 中的硬盘信息。
可以用命令 scp /etc/libvirt/qemu/westos.xml root@192.168.122.1 : /var/lib/libvirt/images
scp /var/lib/libvirt/images/westos.qcow2 root@192.168.122.1 : /var/lib/libvirt/images
在完成以上复制之后,用以下命令即可安装虚拟机:
命令 | 含义 |
---|---|
virsh define westos.xml | 通过硬件信息文件恢复虚拟机 |
virsh create westos.xml | 通过硬件信息文件打开虚拟机,虚拟机关闭后消失 |
virsh undefine westos | 删除虚拟机硬件信息 (硬盘信息还存在,需要手动删除) |
2.7 虚拟机快照
在虚拟机安装的过程中,我们耗费了大量的时间和精力,如果直接在里面做实验,坏了再安装的过程又是很漫长;所以可以给虚拟机做一个快照。
输入命令 cd /var/lib/libvirt/images/ 进入到对应的目录中去 ,输入命令 ls 查看目录中的内容,选择需要快照的虚拟机,然后用命令完成快照,快照结束之后再选择安装。
快照命令: qemu-img create -f qcow2 -b /var/lib/libvirt/images/test.qcow2 /var/lib/libvirt/images/zxk.qcow2
表示将 /var/lib/libvirt/images/test.qcow2 快照成 /var/lib/libvirt/images/zxk.qcow2 。
如图所示,快照的内容只有 8.1M ,相对于虚拟机来说非常渺小,可以多做几个快照,一个坏了直接删除即可。
安装的过程如图所示,选择导入存在的镜像;
选择做好的快照为镜像资源,快照的内存可以给小一点,此处为1G;
完成之后如下图所示, node2 为 test 的快照。
3. 利用网络源安装虚拟机
在之前我们对于本地软件库和网罗软件库的搭建已经有了一定的了解,此处和前面的网络库搭建相似,将其镜像放在网络共享目录中去。
3.1 网络源中虚拟机的安装
在VM 中需要完成以下操作:
dnf install httpd -y
systemctl disable --now firewalld
systemctl enable --now httpd
mkdir /var/www/html/westos
umont /dev/sr0
mount /dev/sr0 /var/www/html/westos
chown qemu.qemu /var/lib/libvirt/images/
在linux 中需要完成以下操作:
dnf install httpd -y
systemctl disable --now firewalld
systemctl enable --now httpd
mkdir /var/www/html/westos
chown qemu.qemu /var/lib/libvirt/images/
如图所示,即可完成网络库的搭建;
完成设置之后即可在网络中访问软件库;
在完成软件库的搭建之后,便可利用网络源安装虚拟机;
在 VM 中需要设定 ip 之后,才可让其他主机访问;然后利用网络源安装虚拟机,和前面的安装基本相似,只不过选择网络源的方式。
在Linux 中,选择Application 中的 System Tools 中的 Virtual Machine Manager 打开虚拟机管理界面;
选择网络源的方式安装新的虚拟机;
此处指定访问的地址;此地址为提供服务的主机 ip 中的目录;
然后依次选择内存和内核等信息;设定虚拟机的名称为 zxk- westos;
完成之后新的虚拟机已经生成,即可进入到安装界面;后续安装和之前的安装一样,设定安装语言、系统时间、以及软件等信息,即可生成一个全新的虚拟机。
3.2 虚拟机网桥的配置
在系统没有做过设定时,新建虚拟机时,默认选择的网络为 NAT 模式的,没有桥接模式;所以就需要对其进行设置。
在真实主机中搭建网桥
输入命令 cd /etc/sysconfig/network-scripts/ 进入到网桥配置目录中;
输入命令 vim ifcfg-br0 编辑 br0 文件;
DEVICE=“br0”
BOOTPROTO=none
IPADDR=192.168.122.1
PREFIX=24
ONBOOT=yes
TYPE=Bridge
输入命令 vim ifcfg-enp3s0 编辑网卡配置文件;
DEVICE=“enp3s0”
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0
输入命令 nmcli connection reload 重启网络;
输入命令 nmcli connection show 显示网络;
输入命令 bridge link 查看网桥是否设定成功;
设定网桥也可以在安装虚拟机之前,在完装之前如果已经设定了网桥,在安装时只需选择对应的网桥即可。
3.3 虚拟机 ip 的设定
在真实主机中网桥设定完毕之后,此时选择了桥接模式,如果没有其他的设定,此时安装也会有问题,因为新设定的网桥并不会给虚拟机提供 ip 。
输入命令 cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf 将dhcp 服务文件复制一份;
输入命令 vim /etc/dhcp/dhcpd.conf 编辑文件内容;
在删除27和28行之后,修改第7、8、29 和 30 行的内容如下:
并将32行 之后的内容全部删除。
完成设定之后,输入命令 systemctl enable --now dhcpd 重启 dhcpd 服务;
设定完成之后,在选择网络源安装时选定 br0 时便不会再有其他问题。
3.4 虚拟机硬件信息设定脚本
在之前安装虚拟机的过程中,每次都需要手动选择,一两台主机管理起来比较容易,要是更多的虚拟机就显得很繁琐,更加的浪费时间。
在 /mnt/ 中写一个脚本 westos.sh,内容如下所示:
#!/bin/bash
virt-install
–location http://192.168.122.1/westos-zxk
–os-variant rhel8.2
–vcpus 1
–memory 2048
–disk /var/lib/libvirt/images/westos-zxk.qcow2,size=8,bus=virtio
–name westos-zxk
–network bridge=bro,model=virtio
再写好之后即可输入命令 sh westos.sh 调用脚本来安装名称为 westos-zxk 的虚拟;但是这种情况只能安装一次,并且不能指定虚拟机的名称。
如果将脚本内容修改为以下所示,便可指定不同名称的虚拟机。
#!/bin/bash
virt-install
–location http://192.168.122.1/westos-zxk
–os-variant rhel8.2
–vcpus 1
–memory 2048
–disk /var/lib/libvirt/images/$1.qcow2,size=8,bus=virtio
–name $1
–network bridge=bro,model=virtio
此时调用脚本时需要指定虚拟机的名称: sh westos.sh linuxwestos
在调用脚本安装时,会自动进入到安装界面;如果不想占用,在最后一行加入 & 将其打入后台安装。