手把手教学Linux安装KVM以及使用KVM创建虚拟机
KVM是什么
KVM(用于基于内核的虚拟机)是一个完整的虚拟化解决方案,适用于包含虚拟化扩展(Intel VT或AMD-V)的x86硬件上的Linux。它由可加载的内核模块kvm.ko组成,它提供核心虚拟化基础架构和处理器特定模块,kvm-intel.ko或kvm-amd.ko。
使用KVM,可以运行多个运行未修改的Linux或Windows映像的虚拟机。每个虚拟机都有专用的虚拟化硬件:网卡,磁盘,图形适配器等。
KVM是开源软件。KVM的内核组件包含在主线Linux中,截至2.6.20。KVM的用户空间组件包含在主线QEMU中,从1.3开始。
1.检查cpu是否支持虚拟化
如果有vmx信息输出,就说明支持VT;如果没有任何的输出,说明你的cpu不支持,将无法使用KVM虚拟机。
grep vmx /proc/cpuinfo
2.确保BIOS里开启了虚拟化功能
查看是否加载KVM模块。
lsmod | grep kvm
如果没有加载
modprobe kvm
modprobe kvm-intel
lsmod | grep kvm
3.配置网络
3.1桥接网络
如果没有brctl命令(用来管理网桥的工具),则需要安装bridge-utils。
yum -y install bridge-utils
systemctl restart network
3.2配置KVM的网桥模式
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-br0
/etc/sysconfig/network-scripts/ifcfg-br0
:
[root@kvm network-scripts]# cat ifcfg-br0
## 修改为Bridge(桥接模式)
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
## 修改为br0
NAME=br0
## 注释掉UUID
#UUID=9d8b6a36-4495-4f9c-96f6-5bf4cc32dc3c
## 修改为br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.200.125
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
DNS1=8.8.8.8
/etc/sysconfig/network-scripts/ifcfg-ens33
:
[root@kvm network-scripts]# cat ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=9d8b6a36-4495-4f9c-96f6-5bf4cc32dc3c
DEVICE=ens33
ONBOOT=yes
## 注释掉这下面几行
#IPADDR=192.168.200.125
#NETMASK=255.255.255.0
#GATEWAY=192.168.200.2
#DNS1=8.8.8.8
## 添加下面这行
BRIDGE=br0
重启网卡:
systemctl restart network
查看网卡:
brctl show
测试是否能够连接外网:
ping www.liuzhaopo.top
3.3安装libvirt及kvm
libvirt是管理虚拟机的API库,不仅支持KVM虚拟机,也可以管理Xen等方案下的虚拟机。
yum -y install libcanberra-gtk2 qemu-kvm.x86_64 qemu-kvm-tools.x86_64 libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarch libvirt-python.x86_64 libiscsi-1.7.0-5.el6.x86_64 dbus-devel virt-clone tunctl virt-manager libvirt libvirt-python python-virtinst
由于要用virt-manager图形化安装虚拟机,所以还需要安装X-window(这个在前面部署VNC环境里就已经安装了)。【如果创建虚拟机的时候,选择的是GNOME桌面安装,不是最小安装,这一步不需要做】
yum groupinstall "X Window System"
安装中文字符,解决界面乱码问题。【如果创建虚拟机的时候,选择的是GNOME桌面安装,不是最小安装,这一步不需要做】
yum install -y dejavu-lgc-sans-fonts
yum groupinstall -y "Fonts"
安装图形界面gnome。【如果创建虚拟机的时候,选择的是GNOME桌面安装,不是最小安装,这一步不需要做】
yum groupinstall "GNOME Desktop"
更改系统开机默认启动图形界面gnome。【如果创建虚拟机的时候,选择的是GNOME桌面安装,不是最小安装,这一步不需要做】
systemctl set-default multi-user.target //设置成命令模式
systemctl set-default graphical.target //设置成图形模式
启用libvirt。
systemctl enable libvirtd
systemctl start libvirtd
3.4管理kvm以及创建新的虚拟机
3.4.1使用Linux的图形界面(virt-manager)创建新的虚拟机
选择镜像。
提前将镜像文件上传至服务器的某一个文件夹中。
选择我们提前创建的镜像。
使用KVM创建虚拟机成功,接下来就是和我们安装Centos一样的操作了,选择第一个安装Centos7。
安装成功之后,一样的。
将使用KVM创建的Centos7配置一下网络和主机名。
在我们的原来的虚拟机中查看所有使用KVM创建的虚拟机。
使用XShell连接我们创建的虚拟机。
结束。。。
3.4.2使用VNC
在这里可以选择VNC的,然后使用Windows下载一个VNC Viewer
,emmm......剩下的我还没去研究......
3.5KVM相关操作命令
#帮助
virsh -help
#查看创建的所有虚拟机
virsh list --all
#查看正在运行的虚拟机
virsh list
#创建的虚拟机开机,后面是虚拟机的名字
virsh start kvm-centos7-1
#####################virsh参数如下#####################
autostart #自动加载指定的一个虚拟机
connect #重新连接到hypervisor
console #连接到客户会话
create #从一个SML文件创建一个虚拟机
start #开始一个非活跃的虚拟机
destroy #删除一个虚拟机
define #从一个XML文件定义一个虚拟机
domid #把一个虚拟机名或UUID转换为ID
domuuid #把一个郁闷或ID转换为UUID
dominfo #查看虚拟机信息
domstate #查看虚拟机状态
domblkstat #获取虚拟机设备快状态
domifstat #获取虚拟机网络接口状态
dumpxml #XML中的虚拟机信息
edit #编辑某个虚拟机的XML文件
list #列出虚拟机
migrate #将虚拟机迁移到另一台主机
quit #退出非交互式终端
reboot #重新启动一个虚拟机
resume #重新恢复一个虚拟机
save #把一个虚拟机的状态保存到一个文件
dump #把一个虚拟机的内核dump到一个文件中以方便分析
shutdown #关闭一个虚拟机
setmem #改变内存的分配
setmaxmem #改变最大内存限制值
suspend #挂起一个虚拟机
vcpuinfo #虚拟机的cpu信息
version #显示virsh版本
- 本文标签: KVM
- 本文链接: http://www.lzhpo.com/article/65
- 版权声明: 本文由lzhpo原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权