返回 导航

其他

hangge.com

使用KVM构建虚拟化服务器教程1(CentOS宿主机为全新安装的情况)

作者:hangge | 2020-11-11 08:10

一、基本介绍

1,KVM 介绍

(1)KVM 全称是基于内核的虚拟机(Kernel-based Virtual Machine)。
(2)KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 线程。这使得 KMV 能够使用 Linux 内核的已有功能。
(3)KVM 由以色列的 Quramnet 组织开发,从 Linux 2.6.20 起就作为一模块被包含在 Linux 内核中,该内核模块使得 Linux 变成了一个 Hypervisor

2,虚拟化简史


二、KVM 安装配置(随系统安装时安装)

1,系统安装

(1)KVM 最简单的方式就是在安装系统的时候,选择虚拟化功能组件一起安装。这里我们以 CentOS 7 系统为例,首先将镜像下载下来:

(2)接着使用这个镜像安装系统。因为我们这次使用 WMware 做实验,在建立的虚拟机的 CPU 要勾选虚拟化功能,这样虚拟机才会支持 KVM 虚拟化。
提示: 如果是物理服务器,需要在 BIOS 中打开虚拟化功能(Virtualization Technology),一般的服务器默认是打开这个功能的。

(3)在安装设置页面点击“软件选择”按钮:

(4)选择“带GUI的服务器”,并勾选“虚拟化客户端”、“虚拟化Hypervisor”、“虚拟化工具”。点击完成后开始安装。

(5)安装结束后执行如下命令,如果有过滤出 vmx svm 关键字就代表设备支持虚拟化,vmx Intel CPUsvm AMD CPU
grep -E 'svm|vmx' /proc/cpuinfo

(6)接着执行如下命令检查 KVM 模块是否安装:
lsmod | grep kvm

(7)最后执行如下命令检查 libvirtd 是否安装并启动:
systemctl status libvirtd.service

2,安装 Cockpit

    Cockpit 是一个基于 Web 的服务器管理工具,可用于 CentOS RHEL 系统。我们可以使用 Cockpit 来安装、配置、管理虚拟机。在 CentOS 8RHEL 8 中,cockpit 是默认的服务器管理工具。它的软件包在默认的 CentOS 8 RHEL 8 仓库中就有。因为我使用的是 CentOS 7,所以还需要手动安装。

(1)我们使用 dnf 命令安装 Cockpit,但 CentOS 7 并不包含该命令。所以首先执行如下命令安装并 启用 epel-release
yum install epel-release

(2)接着执行如下命令安装 dnf
yum install dnf

(3)安装完毕后执行如下命令查看是否安装成功:
dnf --version

(4)接着执行如下命令安装 Cockpit
dnf install cockpit cockpit-machines

(5)安装完毕后执行如下命令启动 Cockpit 服务并设置为自动启动:
systemctl start cockpit.socket
systemctl enable cockpit.socket

(6)接着执行如下命令查看是否启动成功:
systemctl status cockpit.socket

(7)由于 Cockpit 默认使用的是 9090 端口,执行如下命令打开这个端口:
firewall-cmd --permanent --add-port=9090/tcp
firewall-cmd --reload

3,配置网卡

(1)使用物理机浏览器访问 http://192.168.60.138:9090,打开 Cockpit Web 界面(这里 ip CentOS 系统 IP)。进入“网络”页面,可以看到目前网卡是 ens33,其 IP  192.168.60.138


(2)接着点击“添加网桥”按钮,添加个名为 br0 的新网卡,并在端口部分勾选上前面提到的 ens33

(3)点击应用后可以看到之前的 IP 转移到了 br0 这个网卡上了:


三、创建虚拟机

(1)进过上面操作,接下来就开始正式创建虚拟机了。首先我们将需要安装的系统镜像文件上传到 CentOS 系统里,这里我将其放在如下目录:
/var/lib/libvirt/images/

(2)接着访问 Cockpit Web 界面,打开“虚拟机”页面,点击“Create VM”按钮:

(3)在弹出的页面中输入镜像文件的路径、虚拟机名称,并设置虚拟机占用的磁盘和内存后,点击“Create”按钮开始创建虚拟机:

(4)接下来就同正常的系统安装方式一样一路设置并安装即可。
注意:如果安装中途发现画面卡死,点击无反应不要着急。并不是系统死了,只要重新打开 Cockpit Web 界面再进入虚拟机页面即可:

(5)安装完毕后根据页面提示点击重启按钮,重启虚拟机。重启后虚拟机不会自动启动,我点击 Run 按钮将其启动:

(6)启动后如果还是进入安装界面,在 Disks 选项卡中可以看到镜像还是没退出,造成仍然从 iso 镜像启动:

(7)我们可以将该虚拟机关闭后,在 CentOS 宿主机上执行如下命令将镜像退出:
virsh change-media centos7 --path /var/lib/libvirt/images/CentOS-7_5-x86_64-Minimal-1804.iso --eject

(8)执行后通过 Cockpit 查看可以看到镜像已经卸载掉了。这时我们启动虚拟机可以正常进入系统了:

(9)进入虚拟机执行 ip addr 命令可以看到此时还没有能联网的 IP

(10)接着执行如下命令获取 IP 地址:
dhclient eth0

(11)再次执行 ip addr 命令可以看到已经有IP地址了(与 CentOS 宿主机是同一个网段)。至此,虚拟机的安装以及虚拟机的 IP 配置均已完成,这时就可以像往常一样使用这台虚拟机了。

附:虚拟机的管理控制

1,使用 Cockpit 

访问 Cockpit Web 界面我们可以在“虚拟机”界面中对所有的虚拟机进行管理:

2,使用命令行

(1)在宿主机执行如下命令可以列出当前有多少个虚拟机,以及其状态:
virsh list

(2)以上这个命令无法列出关机状态的虚拟机,需要列出关机状态的虚拟机需要加多一个 --all 参数:
virsh list --all

(3)下面是管理虚拟机的一些常用命令:
virsh console centos7  // 进入指定的虚拟机,进入的时候还需要按一下回车
virsh start centos7  // 启动虚拟机
virsh shutdown centos7  // 关闭虚拟机
virsh destroy centos7  // 强制停止虚拟机
virsh undefine centos7  // 彻底销毁虚拟机,会删除虚拟机配置文件,但不会删除虚拟磁盘
virsh autostart centos7  // 设置宿主机开机时该虚拟机也开机
virsh autostart --disable centos7  // 解除开机启动
virsh suspend centos7 // 挂起虚拟机
virsh resume centos7 // 恢复挂起的虚拟机
评论

全部评论(0)

回到顶部