一、安装宿主机
- 创建虚拟机
- 配置网络:vim /etc/sysconfig/network-scripts/ifcfg-ens33
内容如下: - ping通百度:
二、安装KVM
1、关闭防火墙
[root@localhost ~]# systemctl stopfirewalld
[root@localhost ~]# systemctl disable firewalld
- 关闭selinuxSetenforce 0
- 查看宿主机是否支持虚拟化
[root@localhost ~]# grep vmx /proc/cpuinfo
4、通过yum安装wget下载工具
[root@localhost ~]# yum install -y wget
5、将系统默认的yum源备份
mv/etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
6、通过wget下载aliyun的yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo7、通过aliyun的yum源安装epel源
yum install -y epel-release
8、清除yum
yum clean all
9、创建yum缓存
yum makecache
10、通过yum进行KVM及其KVM套件的下载和安装
yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-manager python-virtinst libvirt-client virt-viewer –y
11、测试kvm是否安装成功
[root@localhost ~]# stat /dev/kvm
File: ‘/dev/kvm’
Size: 0 Blocks: 0 IO Block: 4096 character special file
Device: 5h/5d Inode: 17314 Links: 1 Device type: a,e8
Access: (0666/crw-rw-rw-) Uid: ( 0/ root) Gid: ( 36/ kvm)
Context: system_u:object_r:kvm_device_t:s0
Access: 2020-05-03 00:43:13.392460746 -0400
Modify: 2020-05-03 00:43:13.392460746 -0400
Change: 2020-05-03 00:44:57.538645393 -0400
Birth: -
12、测试libvirt是否可以正常启动
[root@localhost ~]# systemctl restart libvirtd
[root@localhost ~]# systemctl enable libvirtd
三、桥接网卡的制作
进行桥接网卡的制作,因为系统并不会自动生成一个桥接网卡。所以必须由我们自己动手创建一个桥接虚拟的网卡。查看宿主机的网卡,将宿主机的网卡进行虚拟机桥接网卡的绑定。我的宿主机的网卡名字是ens33,将ifcfg-ens33复制现有网卡的配置文件,改名为ifcfg-br0.
1、[root@localhost ~]#
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-br0
- 修改ifcfg-br0网卡
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
3、修改ifcfg-ens33。
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
4、重启network服务
[root@localhost ~]# systemctl restart network
#如果在终端工具上重启网卡,连接会断开,要去桌面系统重新启动一次network。
5、重启成功后,查看网卡
[root@localhost ~]# brctl show
四、安装qemu
1、下载安装包
wget https://download.qemu.org/qemu4.1.0.tar.xz
2、安装依赖包
yum -y install gcc gcc-c++ automake libtool zlib-devel glib2-devel bzip2-devel libuuid-devel spice-protocol spice-server-devel usbredir-devel libaio-devel
3、编译安装
tar xvJf qemu4.1.0.tar.xz
cd qemu-4.1.0
(1)看编译qemu时是否支持SDL
进入qemu目录
./configure |grep SDL
若显示为no则需进行SDL安装
安装命令
若报冲突错误继续通过
继续通过./configure |grep SDL进行验证是否支持。
./configure
make && make install
默认安装在/usr/local/bin/
4、编译完成后 做软链接
ln -s /usr/local/bin/qemu-system-x86_64 /usr/bin/qemu-kvm
ln -s /usr/local/bin/qemu-system-x86_64 /usr/libexec/qemu-kvm
ln -s /usr/local/bin/qemu-img /usr/bin/qemu-img
5、查看当前qemu版本
qemu-img --version
qemu-kvm --version
五、vncserver的部署
1、准备环境
vnc是远程连接工具,所以需要图形化页面,如果你的宿主机系统的最小化安装的话,请下载图形化工具,
yum groups install "X Window System"或者yum groups install “GNOME Desktop”
2、下载并安装vnc-server
[root@localhost ~]# yum install tigervnc-server tigervnc vnc vnc-server
3、拷贝vncserver的配置文件到系统配置文件目录中
[root@localhost ~]#
cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
- 启动vncserver
[root@localhost ~]# vncserver
password:设置vnc登录的密码
Verify: 再次确认密码
Would you like to enter a view-only password (y/n)? n
6、修改vncserver的配置文件
[root@localhost ~]# vi /etc/systemd/system/vncserver@:1.service
找到[Service]
将<User>改为root用户
7、启动配置文件
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl enable vncserver@:1.service
8、设置登录密码,在设置完一遍时,提示设置第二遍,选择n。
[root@localhost ~]# vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n #注意表示"是否输入一个只能查看的密码,选择否",否则连接vnc会出现黑屏
A view-only password is not used
9、启动vncserver
[root@localhost ~]# systemctl start vncserver@:1.service
10、查看端口状态
netstat -lnt | grep 590*
安装完成。
六、开始创建虚拟机
创建虚拟机之前先查看一下是否将足够的磁盘空间交给KVM使用。
1、检查是否加载KVM模块
[root@localhost ~]# lsmod |grep kvm
kvm_intel 183621 0
kvm 586948 1 kvm_intel
irqbypass 13503 1 kvm
2、创建用于存放虚拟机的目录
[root@localhost ~]# mkdir /kvm
[root@localhost ~]# cd /kvm/
然后将需要安装的iso镜像上传到/kvm目录下,这里我用的Xshell 7和Xftp 7来完成镜像传输。
3、给虚拟机划分硬盘空间作为虚拟机的硬盘,这里我给了20G空间
[root@localhost kvm]#virt-install --name=kvm-centos7 --ram=1024 --vcpus=2 --disk path=/kvm/kvm-centos7.qcow2,size=10,format=qcow2 --accelerate --cdrom /kvm/CentOS-7-x86_64-DVD-1810.iso --vnc --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole
4、出现如下内容即为成功:
5、登录并为虚拟机安装系统
使用vnc viewer, 输入宿主机ip地址,进行安装。
完成安装后点击重启,等待重启完成后,vnc-viewer的连接界面会自动退出。’
6、使用virsh命令查看虚拟机运行状态:
查看到此时虚拟机处于安装后的关机状态
使用启动命令virsh start kvm-centos7
再次输入virsh list --all
7、Vnc viewer中输入宿主机ip 192.168.239.16再次连接进入虚拟机中, 输入用户名和密码登录。
8、登录成功之后查看虚拟机系统磁盘等信息,其中输入 ip addr可以发现当前系统没有配置网络环境,接下来需要进行网络配置。
9、为虚拟机配置网络:
ip addr查看网络名称
ls /etc/sysconfig/network-scripts/
vi /etc/sysconfig/network-scripts/ifcfg-eth0
网络配置文件中增加如下内容
重启网络
systemctl restart network
输入 ip addr 如下图所示说明配置成功
此时在虚拟机内ping宿主机192.168.111.15依旧能够畅通,网络基础配置完成
10、检测网络配置是否成功以及启动ssh服务
通过vnc连接比较麻烦接下来我们可以尝试在虚拟机上启动一下ssh服务端,这样既能检测上一步的网络配置是否可行也能将我们从vncviewer中解放出来。
vi /etc/ssh/sshd_config
查看该sshd配置文件中有无PermitRootLogin yes配置,无的话添加一行保存退出vi
输入命令 service sshd restart, 显示如下说明重启成功
在kvm宿主机机器或者网内其他联通机器上输入连接命令
ssh root@192.168.239.26
显示如下说明虚拟机上的sshd服务配置重启成功
七、启动客户机
1、在宿主机用命令virsh start kvm-centos7开启客户机。
看到kvm-centos7已经启动。
2、进入客户机进行相关操作:
方法一:可在终端(pc端cmd窗口,xhell7,宿主机终端窗口等)输入ssh [email protected]
方法二:用软件vnc-viewer进行连接,只需输入宿主机ip地址即可进入桌面化操作界面。
- 关闭客户机:
方法一:可在图形化界面点击关机键进行关机操作。
方法二:可在宿主机终端界面使用命令virsh shutdown kvm-centos7
如下所示,已经正常关机
总结:至此基于kvm创建虚拟机项目已完成,网络使用的为桥接模式,在宿主机上搭建一个名为br0的网桥来实现此功能,之后在客户机上进入相关网卡进行静态配置即可连接网络。
kvm创建虚拟机的制作过程中有以下重要的几点:
- 首先查看cpu是否支持虚拟化,有vt-x就可以在vmware中选择虚拟化选项,若选择后仍不能开机,则在BIOS中开启VT-d,硬件和BIOS对虚拟化的支持是KVM运行的先行条件。 以我的电脑(华硕)为例,开启VT步骤如下:开机时按F2进入BIOS设置,进去Advanced(高级菜单),进入CPU Configuration(处理器设置),将Intel虚拟化技术改为Enabled,按F10保存设置,然后按Esc退出BIOS设置即可。
若以上方法仍不管用,有可能是windows的虚拟机与Linux的虚拟机发生冲突,在控制面板/windows功能处关闭即可。 - 安装qemu,强烈建议采用源码编译安装,先通过wget命令从官网下载压缩包,然后解压,进入解压目录进行检查,看是否支持SDL,如果不支持采用yum方式下载安装SDL,最后进行编译安装。(安装的默认目录在/usr/local/bin下)。
- 编译和传输镜像文件时可采用Xshell 7和Xftp 7.
- 强烈建议用vncviewer进行虚拟机的安装,否则安装速度非常慢。
- 对安装好的客户机进行基础的网络配置,能ping通宿主机就可以。然后再进行ssh配置,这样会方便操作。