03-kvm的安装
本次实验是在mac电脑上安装了vmware fusion虚拟化软件,然后在虚拟化软件上安装了centos6.10系统,最后在centos6.10上安装了kvm软件。
至于vmware fusion 网络怎么设置可以看 vmware fusion 的笔记,这里不再多说
在VMware fusion虚拟机打开三个参数。相当于在虚拟机里再开启虚拟化,注意这里最好给2核4G的配置,另外硬盘50G
注意:KVM一切安装和运行都是在root用户下完成的,并且只有root才能支持某些软件。
一、准备工作:
1、查看系统版本、内核版本
查看系统版本
cat /etc/redhat-release
CentOS release 6.4 (Final)
查看内核版本
uname -a
Linux KVM 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
注: 2.6.20以下的内核需要升级。
2、关闭selinux,iptables,重启后生效
关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #修改配置文件则永久生效,但是必须要重启系统。
生效命令
setenforce 0
关闭iptables(这一步可以后续按照业务来添加防火墙,前期先排除防火墙导致的不必要问题)
iptables -F
iptables -X
/etc/init.d/iptables save
/etc/init.d/iptables stop
3、查看系统是否支持KVM虚拟化
egrep '(vmx|svm)' --color=always /proc/cpuinfo
//要有vmx|svm才支持虚拟化
4、设置转发,使其KVM可以通过网桥上网
开启路由转发功能
sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf
sysctl -p #生效
5、重启
reboot
二、安装KVM必备软件
安装KVM所有需要的包
yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v virt-install
yum -y install libguestfs-tools
/etc/init.d/libvirtd restart #重启
ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
安装完成后查看状态如下:
[root@localhost iso]# virsh -c qemu:///system list
Id 名称 状态
[root@localhost iso]# lsmod |grep kvm
kvm_intel 54285 0
kvm 333172 1 kvm_intel
[root@localhost iso]# virsh --version
0.10.2
[root@localhost iso]# virt-install --version
0.600.0
三、配置网桥
1、关闭NetworkManager服务(桌面版本会有这个服务,服务器版不会安装)
/etc/init.d/NetworkManager stop #停止
chkconfig NetworkManager off #禁止下次自启动
2、创建br0网桥(注意粗体部分)
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-br0
vim ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:41:DA:81
TYPE=Ethernet
UUID=21501ff5-e313-494c-a402-50f2a84f1f5c
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.213.6
NETMASK=255.255.255.0
GATEWAY=192.168.213.2
BRIDGE=br0
vim ifcfg-br0
DEVICE=br0
ONBOOT=yes
HWADDR=00:0C:29:41:DA:81
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.213.6
NETMASK=255.255.255.0
GATEWAY=192.168.213.2
DNS1=8.8.8.8
DNS2=114.114.114.114
TYPE=Bridge
注意:上面配置的网卡信息为静态地址,如果使用DHCP需要对应修改为BOOTPROTO=dhcp
3、重启network服务。
/etc/init.d/network restart
检查网卡状态:
ifconfig
查看网桥状态
brctl show
bridge name bridge id STP enabled interfaces
br0 8000.7446a0f51698 no eth0
virbr0 8000.52540095e5ac yes virbr0-nic
四、配置和安装KVM虚拟机
创建文件夹
mkdir -p /data/kvm/image
mkdir -p /data/iso
mkdir -p /data/nfyg/images/
使用FTP上传CentOS6.9的ISO文件到/data/iso,我使用的rz进行上传
rz CentOS-6.9-x86_64-bin-DVD1.iso
创建虚拟机镜像文件
qemu-img create -f qcow2 /data/nfyg/images/centos6.qcow2 20G
创建KVM虚拟机
virt-install --name centos6 --ram 2048 --vcpus=1 --disk path=/data/kvm/image/centos6.qcow2,size=20,format=raw --network bridge=br0 --cdrom=/data/iso/CentOS-6.10-x86_64-bin-DVD1.iso --accelerate --vnclisten=0.0.0.0 --vncport=5900 --vnc
选项解释:
size=20 表示这个虚拟机磁盘的大小
format=raw 磁盘文件格式
--name centos6 ##虚拟机名称,自定义
--ram 1024 ##分配内存大小(默认大小MB)
--vcpus=1 ##分配CPU核心数,最大与时提及CPU核心数相同
--disk path=/data/kvm/image/centos6.img ##指定虚拟机镜像
--network bridge=br0 ##指定网络
--cdrom=/data/iso/CentOS-6.9-x86_64-bin-DVD1.iso ##指定安装镜像iso
--accelerate ##加速
--vnclisten=0.0.0.0 ##指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0
--vncport=5900 ##指定VNC监听端口(默认为5900),可以自行设置
--vnc ##启用VNC管理
查看是否运行:
virsh list
Id Name State
2 centos6 running
五、使用VNC连接进行安装
使用vnc-viewer连接192.168.213.6:5900就可以远程安装这台虚拟机,如果多台虚拟机的话,可以修改5900这个端口,比如5901、5902之类,然后在修改name、disk path虚拟镜像文件
注意:连接vnc时出现 attempting to reconnect to vnc server
或者使用vnc显示(需要桌面的支持):virsh vncdisplay centos6
如果kvm虚拟机不能连接外网,就修改这里
六、常用操作命令
Virsh语法参考(centos为KVM名字)
列出所有的虚拟机
virsh list --all
启动centos虚拟机
virsh start centos
关闭centos虚拟机
virsh shutdown centos
强制关闭centos虚拟机
virsh destroy centos
设置centos自动启动
virsh autostart centos
删除centos虚拟机
virsh undefine centos
暂停centos虚拟机
virsh suspend centos
恢复centos虚拟机
vrish resume centos
重启centos虚拟机
virsh reboot centos
编辑centos虚拟机
virsh edit centos
vnc显示
virsh vncdisplay centos
windows挂载磁盘命令
virsh attach-disk vm_ad_win2k12r2 /data/kvm_data_yiihua/iso/virtio-win.iso hdc --type cdrom --mode readonly
virsh attach-disk vm_vpn_win2k12r2 /data/kvm_data_yiihua/iso/virtio-win.iso hdc --type cdrom --mode readonly