一、安装KVM
查看系统版本
cat /etc/redhat-release
关闭防火墙及selinux
systemctl disable firewalld.service
查看防火墙状态
systemctl status firewalld
查看开机是否启动防火墙服务
systemctl is-enabled firewalld
1. 验证CPU是否支持KVM;
如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU支持的。
egrep '(vmx|svm)' /proc/cpuinfo
2,关闭SELinux
将 /etc/selinux/config 中的 SELinux=enforcing 修改为 SELinux=disabled
3. 最小安装的CentOS安装一些最基本的包
(可选项,因为我是刚安装好的CentOS,所以为了下面方便点,先把一些必要的工具安装下)
yum install epel-release net-tools vim unzip zip wget ftp -y
4. 安装KVM及其依赖项
yum install qemu-kvm libvirt virt-install bridge-utils -y
5. 验证安装结果,下图说明已经成功安装了
lsmod | grep kvm
6. 开启kvm服务,并且设置其开机自动启动
systemctl start libvirtd
开机启动
systemctl enable libvirtd
7. 查看状态操作结果
如下图所示,说明运行情况良好
systemctl status libvirtd
查看是否开机启动
systemctl is-enabled libvirtd
cp -r /etc/sysconfig/network-scripts/ /data/network/
8. 配置网桥模式
先将 /etc/sysconfig/network-scripts/ 目录下的网卡配置文件备份一份
a. 创建 netifcfg-br0 文件,(创建的br0文件的IP地址要和物理网卡的IP地址一致,命令 ipconfig查看物理网卡将不会显示IP)内容如下:
vi /etc/sysconfig/network-scripts/ifcfg-br0
[root@bogon ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
BOOTPROTO=none
DEFROUTE=yes
ONBOOT=yes
TYPE=Bridge
IPV4_FAILURE_FATAL=yes
IPADDR=192.168.1.130
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=221.6.4.66
DELAY=0
USERCE=no
修改物理网卡eno1
vi /etc/sysconfig/network-scripts/ifcfg-eno1
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="YES"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"a
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eno1"
UUID="bb40d726-8d67-4187-90c3-eb61e1b42d61"
DEVICE="eno1"
ONBOOT="yes"
IPADDR="192.168.1.130"
NETAMSK=255.255.255.0
GATEWAY="192.168.1.254"
DNS1="221.6.4.66"
IPV6_PRIVACY="no"
BRIDGE=br0
c. 重启网络服务
systemctl restart network
使用 ifconfig 验证操作结果,多了一块网卡br0,现在访问 think8848-srv02 使用 192.168.1.120就可以了。
*注释:如果有防火墙的话在防火墙添加虚拟机IP地址策略 允许源地址访问目标地址。
二、安装linux虚拟机
1. 准备操作系统安装镜像文件
在本文中将使用和宿主环境一样的CentOS7.2,把该文件放到 /home/iso 目录下
挂载U盘
[root@nkgtsv01 ~]# mount -o loop /mnt/udisk/CentOS-7-x86_64-DVD-1708.iso /data/iso/
mount: /dev/loop0 写保护,将以只读方式挂载
2. 创建虚拟机文件存放的目录
mkdir -p /data/kvm-bak
3.使用 virt-install 创建虚拟机
[root@bogon data]# virt-install --name njvm01 --boot network,cdrom,menu=on --ram 6411 --vcpus=1 --os-variant=rhel6 --accelerate --cdrom=/mnt/udisk/CentOS-7-x86_64-DVD-1708.iso --disk path=/data/kvm-bak/vm01.img,size=200,bus=virtio --bridge=br0,model=virtio --autostart --vnc --vncport=5910 --vnclisten=0.0.0.0
WARNING 无法连接到图形控制台:没有安装 virt-viewer。请安装 'virt-viewer' 软件包。
WARNING 没有控制台用于启动客户机,默认为 --wait -1
开始安装......
正在分配 'vm01.img' | 200 GB 00:00:00
ERROR internal error: process exited while connecting to monitor: 2018-01-31T06:20:00.727909Z qemu-kvm: -drive file=/mnt/udisk/CentOS-7-x86_64-DVD-1708.iso,format=raw,if=none,id=drive-ide0-0-0,readonly=on: could not open disk image /mnt/udisk/CentOS-7-x86_64-DVD-1708.iso: Could not open '/mnt/udisk/CentOS-7-x86_64-DVD-1708.iso': Permission denied
正在删除磁盘 'vm01.img' | 0 B 00:00:00
域安装失败,您可以运行下列命令重启您的域:
'virsh start virsh --connect qemu:///system start njvm05'
否则请重新开始安装。
不要理会里面提示的错误,接着往下走
4. 打开防火墙上的5910端口
防火墙若关闭请忽略
firewall-cmd --zone=public --add-port=5910/tcp --permanent
firewall-cmd --reload
[root@nkgtsv01 ~]# firewall-cmd --zone=public --add-port=5910/tcp --permanent
FirewallD is not running
[root@nkgtsv01 ~]# firewall-cmd --state
not running
[root@nkgtsv01 ~]# systemctl start firewalld.service
[root@nkgtsv01 ~]# firewall-cmd --state
running
[root@nkgtsv01 ~]# firewall-cmd --zone=public --add-port=5910/tcp --permanent
Success
[root@nkgtsv01 ~]# systemctl start firewalld.service
[root@nkgtsv01 ~]# firewall-cmd --reload
Success
5.Virsh list --all 查看虚拟机状态
6.开启虚拟机 然后打开VNC
使用VNC输入宿主机IP地址 加上端口号 输入虚拟机名字 打开
7.打开远程工具远程调整下IP
8.Service network restart
重启网络
使用 virt-clone 克隆njvm01为新的虚拟机(虚拟机需要先关闭)
virt-clone -o njvm02 -n njvm03 -f /data/kvm-img/njvm03.img
克隆完查看 所有的虚拟机以及状态
virsh list --all
删除虚拟机njvm01
强制关机断电虚拟机
virsh destroy njvm01
删除虚拟机
virsh undefine njvm01
[root@nkgtsv01 data]# virsh shutdown njvm01
域 njvm01 被关闭
[root@nkgtsv01 data]# virsh start njvm02
域 njvm02 已开始
[root@nkgtsv01 data]#
[root@nkgtsv01 data]# virsh list --all
Id 名称 状态
----------------------------------------------------
12 njvm02 running
- njvm01 关闭
- njvm03 关闭
- njvm04 关闭
克隆完以后因为IP地址还是njvm01的IP地址所以我们要修改IP地址
开启我们克隆的虚拟机
远程登陆上去
[root@nkgtsv-vm01 ~]# cd /etc/sysconfig/network-scripts/
[root@nkgtsv-vm01 network-scripts]# ls
ifcfg-eth0 ifdown-ppp ifup-eth ifup-sit
ifcfg-lo ifdown-routes ifup-ippp ifup-Team
ifdown ifdown-sit ifup-ipv6 ifup-TeamPort
ifdown-bnep ifdown-Team ifup-isdn ifup-tunnel
ifdown-eth ifdown-TeamPort ifup-plip ifup-wireless
ifdown-ippp ifdown-tunnel ifup-plusb init.ipv6-global
ifdown-ipv6 ifup ifup-post network-functions
ifdown-isdn ifup-aliases ifup-ppp network-functions-ipv6
ifdown-post ifup-bnep ifup-routes
[root@nkgtsv-vm01 network-scripts]# vi ifcfg-eth0
IPADDR=192.168.1.121改为我们想要的IP地址
保存退出
Service network restart
重启网络
重新链接
三、Kvm-virtio-windows
在kvm中,安装windows需要使用virtio驱动,这个驱动是安装windows中必须要的,否则就会找不到硬盘,我们先下载驱动。
***重点***
wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
***重点***
yum install -y virtion-win
执行命令
virt-install --name=客户机名称 --ram 内存(1024)1G --vcpus= cpu1 --os-type= 客户机系统类型 windows --os-variant= win2k8 --disk path= 客户机文件存放路径 /data/kvm-images/win2k8.img,size=客户机硬盘大小200 --accelerate --cdrom (镜像文件路径) --vnc --vncport=vnc远程端口 5910 --network bridge=网卡桥接 br0,model=virtio --noautoconsole
virt-install --name=win2k12 --ram=8192 --vcpus=2 --os-type=windows --os-variant=win2k12 --disk path=/home/kvm/data/win2k12.img,size=200 --accelerate --cdrom /home/kvm/iso/cn_windows_server_2012_r2_x64_dvd_2707961.iso --vnc --vncport=5901 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole
为备注,需删掉
或 执行命令
virt-install --name=win2k12 --ram 1024 --vcpus=1 --os-type=windows --os-variant=win2k12 --disk path=/home/data/kvm/win2k12.img,size=100 --accelerate --cdrom /home/data/iso/cn_windows_server_2012_r2_vl_x64_dvd_3316795.iso --vnc --vncport=5990 --network bridge=br0,model=virtio --noautoconsole
virt-install --virt-type kvm --name=win2k8 --ram=4096 --vcpus=4 --os-type=windows --accelerate --cdrom=/home/kvm_data/iso/cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_vl_build_x64_dvd_617396.is.iso --disk path=/usr/share/virtio-win/virtio-win.iso,device=cdrom --disk path=/home/kvm_data/img/win2k8.qcow2,bus=virtio --network bridge=br0 --graphics vnc,listen=0.0.0.0,password=123456,port=5920 --noautoconsole
用vnc链接
若在安装的时候找不到硬盘
###############################################################################
挂载win镜像
virsh change-media win2k12vm01 hdb /usr/share/virtio-win/virtio-win.iso
选择这个路径的文件 然后下一步
然后取消挂载的镜像 吧系统镜像 从新挂载到系统 进行分区 安装系统
###############################################################################
安装完会重启windows虚拟机
我们查看状态 然后启动虚拟机
用vnc从新连接
等他自动读条
等待安装完成
启动之后设置密码 我们就进入了新的windows 操作系统
用vnc链接
***重点***
挂载软驱 (硬盘驱动 网卡驱动等)注释:网卡驱动要在系统中装好之后挂载 不然装系统的时候会提示找不到光盘镜像
在宿主机中执行命令
virsh change-media win2k12 hdb /usr/share/virtio-win/virtio-win.iso
VMTools工具安装完成后,使用如下命令卸载掉挂载的VMTools工具:
a.如果是Linux虚拟机,执行如下命令卸载VMTools工具:
virsh change-media 【虚拟机ID】 --eject 【vmtools-linux.iso文件全路径】
b.如果是Windows虚拟机,执行如下命令卸载VMTools工具:
virsh change-media 【虚拟机ID】 --eject 【vmtools-windows.iso文件全路径】
挂载驱镜像文件到win2k12主机上
用vnc链接