0x01 前言

我在这里记录下我在家里服务器配置KVM的过程,好多信息我都是记录在笔记本里,现在转移到网站上以便查验。这篇文章可能会有多次修改,但每次修改我都会做出明确的标注。如果文章有哪些地方是错误的或者有改进的空间,请大家给我留言或通过电子邮件与我取得联系。当然,要是有问题我也欢迎你向我提出问题,让我们共同提升技术水平。

0x02 主机基本信息

其实我的服务器是在6个月前配置完成的,期间至今过几次升级而已,所以这次的配置过程实在一台虚拟机上进行,而虚拟机的CPU我通过使用 “–cpu host-passthrough” 这个参数让我服务器的CPU直接暴露给虚拟机使用。但在实际生产环境中,一般不会这样设置。

  • 系统版本:CentOS 7 Minimal
  • CPU:L5630 4核心 8线程
  • 内存:4GB
  • 硬盘:100GB

注意:这次配置过程使用的是一台虚拟机!

0x03 系统准备

0x03.1首先要检查硬件、系统是否支持KVM虚拟化:

0x03.2关闭了以下预设的程序:

  1. firewalld
  2. selinux

0x03.3安装以下程序包:

具体的系统准备请移步至:新安装或新VPS所要做的前期准备(centos7) 查看。

0x03.4启动 libvirtd 与设置 libvirtd 开机启动

通过htop检查libvirtd的情况:

1465378953

0x04 网络配置

在这里我通过设置网桥的方式使得虚拟机直接与外部网络设备通讯,其中有一步会使网络断开,请确认你能通过VNC或外接显示器与服务器交互。

完成上面的设置,通过 ip addr 命令可以看到自己的网卡信息:

而通过 virsh net-list –all 可以查看 libvirtd 预配置的网桥,通过 net-edit [network] 可以修改网桥:

其实使用 libvirtd 预配置的网桥也可以使虚拟机访问外网,可是我希望能通过外部的DHCP服务器给虚拟机分配IP和进行流量控制,所以我并没有使用 libvirtd 预配置的网桥而是自行配制。

0x04.1 添加网卡br0

其实并不一定要命名为br0,你可以根据需要自定义命名。

完成上面的命令后,你可以查看新添加网桥 br0 的具体信息:

0x04.2 删除系统的物理网卡配置信息

请注意!这一步将使服务器的网络断开,你将无法通过SSH或其他基于网络的方式与服务器进行交互。请使用VNC或者其他方式与服务器进行后续交互。因为我现在这台服务器其实是一台虚拟机,所以我可以通过宿主机的 console 连接上这台虚拟机。

请通过 ip addr 命令确认网卡名字,我的是 eth0,可以从之前的步骤查看我的网卡信息。通过 nmcli c delete eth0 命令删除现有网卡:

0x04.3 通过网桥 br0 添加网卡 eth0

添加网卡 eth0 并将其设置为 slave 模式并重启 NetworkManager:

完成后请检查网络是否恢复正常。

0x05 结语

这样就完成啦,如果并不是应用于生产环境,这已经可以通过 virt-install 配置你的第一台基于KVM的虚拟机。

以下这里是我安装 centos7 和 windows7 的命令:

请注意!在安装之前你需要将系统镜像存放于 /usr/local/kvm/iso 目录下,并且建立 /usr/local/kvm/images 目录。这两个目录并不存在,需要通过以下命令创建:

而以上位置可以根据你的实际情况自行选择位置,但安装命令也要进行对应的修改。

好啦,有任何问题请给我留言吧。过几天我再写安装centos7和windows7的文章。

2 条评论 / comments

  1. 你好,KVM、XEN、vmware这类虚拟化技术都是基于硬件层面的,而docker则是基于软件层面的。两个层面的虚拟化技术各有优势,我也不是很全面了解两者的区别。我推荐你参考知乎上的一个问题:在云环境中的应用部署方式上,Docker会不会取代KVM、Xen之类的虚拟机技术?
    地址:https://www.zhihu.com/question/29742062

Comments are closed.