----本文修改整理自网络,非本人原创。
环境准备
由于没有物理机可用,在自己的VMware Workation中搭建完成。首先查看VMware Workation是否支持虚拟化,如红框内没打钩,打钩即可。
操作系统:CentOS 7.1
IP地址:10.0.0.60
软件包:系统自带yum源
关闭防火墙
关闭SELinux
开始安装
检查CPU是否支持虚拟化
# grep -E 'svm|vmx' /proc/cpuinfo vmx 为Intel的CPU指令集 svm 为AMD的CPU指令集
安装软件包
# yum install -y qemu-kvm libvirt virt-install virt-manager bridge-utils
在这条命令中我们安装了qemu-kvm,libvirt,virt-install,virt-manager这四个包,下面了解一下这4个包的作用。
qemu-kvm
该软件包主要包含KVM内核模块和基于KVM重构后的QEMU模拟器。KVM模块作为整个虚拟化环境的核心工作在系统空间,负责CPU和内存的调度。QEMU作为模拟器工作在用户空间,负责虚拟机I/O模拟。
依赖包qemu-img
主要用来QEMU磁盘镜像的管理,如新建一块磁盘镜像给虚拟机。
libvirt
提供hypervisor和虚拟机管理的API。
依赖包libvirt-client
KVM客户端命令行管理过年根据virsh,负责虚拟机的启动、停止和管理等。
依赖包libvirt-daemon
libvirtd守护进程,作为客户端管理工具跟hypervisor和虚拟机之间的桥梁。
依赖包libvirt-daemon-driver-xxx
从名字来看属于libvirtd服务的驱动文件,作为libvirtd服务跟Hypervisor不同对象(如qemu模拟器,网络,存储等)间的接口。
依赖包bridge-utils
网桥管理工具包,负责桥接网络的创建、配置和管理等工作。
virt-install
创建和克隆虚拟机的命令行工具包。
virt-manager
图形界面的KVM管理工具。
基本配置
激活并启动libvirt服务
# systemctl enable libvirtd.service
# systemctl start libvirtd.service
配置桥接网络
默认情况下所有虚拟机只能够在host内部互相通信,如果需要通过局域网访问虚拟机,需要创建一个桥接网络。
1.停止NetworkManager服务
# systemctl stop NetworkManager
该服务开启的情况下直接去修改网卡的配置文件会造成信息的不匹配而导致网卡激活不了。
2.修改以太网卡配置文件
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0 # vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BRIDGE=br0 ONBOOT=yes TYPE=Ethernet
原有的以太网络不需要配置IP地址,指定桥接的网卡设备(如br0)即可。
3.修改桥接网卡配置文件
# vim /etc/sysconfig/network-scripts/ifcfg-br0 TYPE=Bridge DEVICE=br0 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=10.0.0.60 GATEWAY=10.0.0.2 NETMASK=255.255.255.0
桥接网卡的需要配置IP地址,当然也可以用DHCP。需要注意的是桥接网卡br0中DEVICE的名字一定要与以太网卡eth0中BRIDGE对应。
NM_CONTROLLED参数表示该网卡是否被NetworkManager服务管理,设置为no的话就是不接管,那么之前不用停止NetworkManager服务。
开启转发功能并修改ulimit参数
# echo 1 > /proc/sys/net/ipv4/ip_forward # /bin/echo "* soft nproc 65500" >>/etc/security/limits.conf # /bin/echo "* hard nproc 65500" >>/etc/security/limits.conf # /bin/echo "* soft nofile 65500" >>/etc/security/limits.conf # /bin/echo "* hard nofile 65500" >>/etc/security/limits.conf
重启网卡使之生效。
# systemctl restart network.service
验证模块
# lsmod |grep kvm
#
说明模块没有加载,需要加载kvm模块。kvm,只是Linux内核的一个模块,不需要安装,只需要加载。加载命令如下
# modprobe kvm
# modprobe kvm_intel
连接hypervisor,可以使用如下命令:
# virsh -c qemu:///system list ###此命令需要重启服务器后使用,否则会报错 error: failed to connect to the hypervisor error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory # reboot # virsh -c qemu:///system list Id Name State ---------------------------------------------------- (由于没有创建虚拟机,所以没有条目显示)
创建虚拟机
创建ISO镜像:
# dd if=/dev/cdrom of=/opt/CentOS-7.1.iso
创建虚拟机硬盘:
# qemu-img create -f qcow2 /kvmdir/test.img 4G
创建虚拟机:
# virt-install --name Centos --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7.1.iso --disk path=/kvmdir/test.img --network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
各参数说明:
--name Centos ###指定虚拟机名字 --virt-type kvm ###指定虚拟机类型 --ram 1024 ###指定虚拟机内存大小 --cdrom=/opt/CentOS-7.1.iso ###指定虚拟机OS安装介质路径 --disk path=/kvmdir/test.img ###虚拟机安装位置 --network=default ###指定VM网卡类型 --graphics vnc,listen=0.0.0.0 ###指定VNC或字符console
--vcpus 5 ###指定VM可以使用cpu个数
--vcpus 5,maxcpus=10 ###可以使用5颗cpu,最大支持10颗cpu
打开VNC客户端,输入本机ip:5900(第一个默认就是5900,第二个是5901,以此类推),可连接到所通过vmvare创建的kvm虚拟机上,然后就是安装Centos7的过程。
到此,kvm虚拟机安装完成。