虚拟化技术之KVM安装与使用

简介:

什么是KVM虚拟化技术?

KVM(Kernel-based Virtual Machine),主流虚拟化技术之一,集成与Linux2.6之后版本中,通过linux内核提供任务调度及管理。

注:此文档为2014年所写,但内容绝对实用!

安装体验下KVM吧!

操作系统:CentOS 6.5_x64 mini Desktop

一、KVM组件安装与配置网络(首先先更新系统软件:yum update)

1、检查CPU是否支持虚拟化

#KVM虚拟化基于硬件的完全虚拟化,因此需要硬件支持,目前CPU基本都支持,如果没有输出信息,看下BIOS里有没有开启虚拟化支持,如果找不到,百度对你的CPU型号,看是否支持虚拟化技术

# egrep '(vmx|svm)' --color=always /proc/cpuinfo


#简单说下完全虚拟化与半虚拟化的区别:半虚拟化不需要硬件虚拟化技术支持即虚拟化,如Xen,即可实现完全虚拟化也可实现半虚拟化。半虚拟化需要修改虚拟系统内核(模拟指令),以实现虚拟机完美运行在Xen上面,完全虚拟化不需要修改虚拟系统内核,可直接运行在虚拟化技术之上。如我们常用的VMwareWorkstation,即完全虚拟化,如果硬件不支持虚拟化技术,只能跑32位操作系统。

2、安装KVM及相关管理工具

# yum -y install qemu-kvm qemu-img virt-viewer virt-manager libvirt python-virtinst

软件说明:

qemu-kvm  #kvm只对cpu、内存虚拟化,qemu-kvm在此基础上模拟I/O设备

qemu-img  #磁盘镜像管理工具

virt-manager #图形界面虚拟机管理工具

virt-viewer #连接虚拟机控制台

libvirt   #提供一套管理虚拟化工具的接口,支持主流的虚拟化技术,如KVM、XEN、LXC等,用于命令行管理虚拟机

python-virtinst #python写的脚本,用于virt-install安装虚拟机

3、检查KVM模块是否加载成功

# lsmod | grep kvm

kvm_intel              54394  0

kvm                 317376  1 kvm_intel

提示以上信息说明已经加载成功!如没有可尝试modprobe kvm加载。

4、关闭NetworkManager服务,避免虚拟机与主机网络出现问题

# service NetworkManager stop

# chkconfig NetworkManager off

5、桥接网络

qemu支持的网络模式:

桥接    #基于网桥的虚拟网卡,与主机同网段IP地址

NAT    #共享主机的IP地址

主机模式 #主机之间专用网络

    5.1 添加桥接,网卡不配置IP信息

1
2
3
4
5
6
7
8
     # vi /etc/sysconfig/network-scripts/ifcfg-eth0 
     DEVICE=eth0
     HWADDR=54:39:DF:D0:AD:10
     TYPE=Ethernet
     UUID=7fd81a50-9ee4-41f2-aa53-b73acb45a913
     ONBOOT= yes
     NM_CONTROLLED= yes
     BRIDGE=br0       #添加桥接

    5.2 创建ifcfg-br0,里面配置真实物理IP信息

1
2
3
4
5
6
7
8
9
     # vi /etc/sysconfig/network-scripts/ifcfg-br0
     DEVICE=br0
     TYPE=Bridge
     ONBOOT= yes
     BOOTPROTO=static
     IPADDR=192.168.3.10
     NETMASK=255.255.255.0
     GATEWAY=192.168.3.1
     DNS1=8.8.8.8

    5.3 重启网络

    # service network restart

 #可以看到eth0加入br0网桥,如果没有brctl命令,请安装bridge-utils工具

 #当创建虚拟机时指定桥接,也会加入这个网桥

 # brctl show

 bridge namebridge id  STP enabled interfaces

 br0  8000.0cc47a7432b0    no    eth0

6、启动libvirtd服务,并设置开机启动

# service libvirtd start

# chkconfig libvirtd on


博客地址:http://lizhenliang.blog.51cto.com


二、安装远程桌面VNC,用于图形管理虚拟机

1、安装配置tigervnc

# yum -y install tigervnc tigervnc-server

# chkconfig vncserver on

2、修改配置文件

# vi /etc/sysconfig/vncservers

VNCSERVERS="1:root"

VNCSERVERARGS[1]="-geometry 1024x768"

注:系统运行级别为3时,也可以正常进入图形界面

3、设置VNC密码

# vncserver  #直接设置当前用户密码,可以使用vncpasswd修改密码

注:VNC密码与ROOT密码可以不同。

4、重启VNC

# service vncserver restart

5、防火墙设置

# /sbin/iptables -I INPUT -p tcp --dport 5901 -j ACCEPT

# /etc/rc.d/init.d/iptables save

6、使用VNC Viewer连接Linux桌面

wKiom1Z_peTgd_57AAA05qKKU3o417.png

wKiom1Z_pe3xReunAAAw3ViQZK8093.png

远程桌面连接后如下图:

wKioL1Z_piDT37x-AAIHSsjUxd4976.png

三、把系统镜像通过软件上传到服务器

1:这里使用WinSCP上传,把系统映像文件传到你自己想传的目录即可。

spacer.gifwKioL1Z_pjTiu3kjAACqpK9lMoU007.png

wKiom1Z_pjDz4K8XAAJlDjVC9rs577.png

四、创建虚拟机

1、通过VNC远程登入桌面环境wKiom1Z_pkWzF3nyAAJHmcCMUO8487.png

wKiom1Z_pmjgxeCEAABzPkMDSZU204.pngwKiom1Z_poPhWaHGAABs6aC5FXQ497.png


2、添加存储池wKioL1Z_psiSTTrSAAFDPRNGlMY626.png

3、删除默认的,添加新的存储

spacer.gifwKioL1Z_puPwmHEfAADAnLnircY754.pngwKiom1Z_p3bi-ok1AAE6K0jftGc713.png

新存储卷,格式为qcow2,支持快照

五、创建虚拟机

wKioL1Z_p6eDXfVKAAEFtGB9D1U324.png

wKioL1Z_p7vwpQiRAAELVh_pWpo611.png

wKioL1Z_p8rC5-hkAADLEpYFTzw311.png

选择刚创建的虚拟机存储卷:

wKioL1Z_p9rzWKwNAAD1EOH9vr8413.png

wKiom1Z_qNaBhuweAADky2rXNdI705.png


wKiom1Z_qObA6dooAAJ3nR4FeHo964.jpg


目录
相关文章
|
8月前
|
缓存 JSON JavaScript
TypeScript 快速上手指南
TypeScript是JavaScript的超集,支持静态类型,提升代码质量与可维护性。本文涵盖环境搭建、核心语法、实战示例及工程化配置,零基础也能快速上手,适合Vue3、React等大型项目开发。
|
机器学习/深度学习 人工智能 监控
智慧交通AI算法解决方案
智慧交通AI算法方案针对交通拥堵、违法取证难等问题,通过AI技术实现交通管理的智能化。平台层整合多种AI能力,提供实时监控、违法识别等功能;展现层与应用层则通过一张图、路口态势研判等工具,提升交通管理效率。方案优势包括先进的算法、系统集成性和数据融合性,应用场景涵盖车辆检测、道路环境检测和道路行人检测等。
1630 1
|
机器学习/深度学习 算法 数据挖掘
8个常见的机器学习算法的计算复杂度总结
8个常见的机器学习算法的计算复杂度总结
506 4
8个常见的机器学习算法的计算复杂度总结
|
存储 监控 网络协议
一次读懂网络分层:应用层到物理层全解析
网络模型分为五层结构,从应用层到物理层逐层解析。应用层提供HTTP、SMTP、DNS等常见协议;传输层通过TCP和UDP确保数据可靠或高效传输;网络层利用IP和路由器实现跨网数据包路由;数据链路层通过MAC地址管理局域网设备;物理层负责比特流的物理传输。各层协同工作,使网络通信得以实现。
|
缓存 Java Linux
linux离线安装libreoffice
linux离线安装libreoffice
4163 0
|
存储 Ubuntu API
Ubuntu安装KVM虚拟机
Ubuntu安装KVM虚拟机
1075 0
Ubuntu安装KVM虚拟机
|
数据采集 数据处理 Python
Python爬虫程序中的504错误:原因、常见场景和解决方法
Python爬虫程序中的504错误:原因、常见场景和解决方法
钱大妈基于 Flink 的实时风控实践
钱大妈与阿里云 Flink 实时计算团队共建实时风控规则引擎,精确识别羊毛党以防营销预算流失。
钱大妈基于 Flink 的实时风控实践
|
传感器 机器人 C++
机器人操作系统ROS 编程开发--详细总结
最近工作涉及到自动驾驶的,需要学习ROS,学习中总结了一些知识点,分享给大家。 机器人操作系统ROS,是一种分布式处理框架(又名Nodes),ROS常用C++和python编程语言开发;(这里项目开发采用C++ 11版本)。ROS的点对点设计以及服务和节点管理器等机制,可以分散由计算机视觉和语音识别等功能带来的实时计算压力,能够适应多机器人遇到的挑战。ROS免费并且开源。
4079 0
优化求解器之Pyomo建模工具简介
在使用优化求解器解决实际问题的过程中,通过程序接口输入优化模型往往会耗费大量时间和精力,且容易出错。为了简化这一步骤,建模语言应运而生。建模语言最初的概念是在1976年提出的,后经过不断的发展,形成了如今蓬勃的技术、产品和应用市场。建模语言往往并不对实际问题进行求解,而专注在模型建立本身,其目的是将复杂的优化问题简化为抽象的代数表达形式;让用户在开发上只需要专注于代数模型的建立,模型完成后再将数据分别引入。如此不但加快开发流程,更有效减少模型输入错误的可能性。接下来我们将发布一系列文章,对常见的AMPL, Pyomo, PuLP等建模语言进行简要的介绍。
优化求解器之Pyomo建模工具简介