标签:kvm虚拟化技术应用实战 kvm vnc 云计算 虚拟化
本文根据上课笔记整理,大家都知道云计算的基础就是虚拟化,而开源的虚拟化基本以kvm技术为主导,因此kvm技术已成为运维工程师必备的技术,也是云时代必不可少的技术
在介绍kvm之前 我们先来了解一下vnc这个软件,后面安装kvm需要vnc来支持
1、vnc的安装及使用
# yum -y install tigervnc-server 首次启动 # vncserver :1 会提示输入两次密码 然后编辑/root/.vnc/xstartup,将最后一行twm替换为gnome-session或者startkde 懒人可以直接用以下语句直接替换(执行任意一条即可,建议选择第一条稳定,但是占用内存较多) sed -i ‘s/twm/gnome-session/g‘ /root/.vnc/xstartup sed -i ‘s/twm/startkde/g‘ /root/.vnc/xstartup 重启vncserver # vncserver 客户端连接 vncclient里输入 vncserver-IP:1
2、查看是否 支持虚拟化
确定服务器是否支持虚拟化,如果没有查到,在bios里面开启
vmx属于inter处理器,svm属于amd处理器 egrep ‘vmx|svm‘ /proc/cpuinfo
3、安装kvm软件包
yum groupinstall "DevelopmentTools" yum groupinstall "Virtualization" "Virtualization Client""Virtualization Platform" virtualization //提供虚拟机的环境,主要包含qumu-kvm virtualization-client//管理和安装虚拟机实例的客户端,主要有python-virtinst,virt-manager,virt-viewer virtualization-platform//提供访问和控制虚拟客户端的接口,主要有libvirt,libvirt-client
4、检查安装后是否加载相关模块
5、kvm虚拟机的安装
安装虚拟机有两种方式,一种是通过vnc连接到宿主机图形界面内,然后通过virt-manager命令打开虚拟机创建图形界面创建即可。这里我们简单截图说明,首先通过vncview连接服务端
点击new
之后一步一步根据提示安装完成即可,如果这里需要详细说明,我们下次再介绍
另一种是通过命令行方式进行安装,步骤如下: 1. 上传ISO文件,这里采用centos6.5 2. 开始安装centos6.5 # virt-install --name=vigor --ram 2048 --vcpus=1 --disk path=/var/lib/libvirt/images/iiveylinux4.img,size=30,bus=virtio --accelerate --cdrom /iso/CentOS-6.5-x86_64-bin-DVD1.iso --vnc --vncport=5911 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole 说明:在linux系统安装开始就要注意添加提高性能的一些参数,后面就不需要做一些调整了。 kvm虚拟化学习笔记(五)之windows虚拟机性能调整,这篇文章介绍windows配置virtio的驱动还有些麻烦,最好是在开始安装时注意加入这些参数。 参数说明: --name 指定虚拟机名称 --ram 分配内存大小。 --vcpus分配CPU核心数,最大与实体机CPU核心数相同 --disk 指定虚拟机镜像,size 指定分配大小单位为G。 --network 网络类型,此处用的是默认,一般用的应该是 bridge 桥接。 --accelerate 加速 --cdrom指定安装镜像iso --vnc启用VNC远程管理,一般安装系统都要启用。 --vncport指定VNC 监控端口,默认端口为5900,端口不能重复。 --vnclisten指定VNC 绑定IP,默认绑定127.0.0.1,这里改为 0.0.0.0
6、网络配置
kvm的网络设置我们在博客中详细说明,这里简单说明下 kvm虚拟机网络问为三种:a)虚拟网络‘default‘:NAT (默认方式,支持虚拟机上网但不支持互访) b)主机设备 vnet0(根据使劲情况而定):macvtap(支持互访) c)主机设备 vent0 (桥接‘br0‘) (bridge方式,可以使用虚拟机成为网络中具有独立IP的主机)bridge方式介绍:1、建立桥接器在/etc/sysconfig/network-scripts目录下,创建一个ifcfg-br0 桥接器,内容如下:[root@hadoop network-scripts]# more ifcfg-br0 DEVICE="br0"BOOTPROTO="static"ONBOOT="yes"IPADDR=172.16.212.232NETMASK=255.255.255.0TYPE="Bridge"2、更改物理设备,这里选择 eth0 ,内容如下:[root@hadoop network-scripts]# more ifcfg-eth0DEVICE="eth0"BOOTPROTO="none"ONBOOT="yes"TYPE="Ethernet"BRIDGE="br0"UUID="d931154d-d2c9-4977-ab78-4a9efa971f39"3、重启网络服务:service network restart
7、虚拟机的克隆
kvm虚拟机的克隆分为两种情况,本文也就通过以下两种情况进行克隆。(1) KVM主机本机虚拟机直接克隆。(2) 通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移)。1. 本机虚拟机直接克隆 (1) 查看虚拟机配置文件[root@node1 ~]# cat /etc/libvirt/qemu/oeltest01.xml虚拟机磁盘文件: /data/test01.img虚拟机名称:oeltest01(2) 开始克隆# virt-clone -o oeltest01 -n oeltest02 -f /data/test02.img说明:以oeltest01做为源,克隆oeltest01虚拟机,并创建名称为oeltest02虚拟机,使用磁盘文件/data/test02.img(3) 启动虚拟机并配置主机名,IP地址等。
# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 test02localhost.localdomainlocalhost
::1 localhost6.localdomain6 localhost6
# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=test02
GATEWAY=192.168.233.2
修改IP地址
# vi /etc/sysconfig/network-script/ifcfg-eth0
# Virtio Network Device
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=52:54:00:56:bd:2b
IPADDR=192.168.233.142
NETMASK=255.255.255.0
[root@test01 ~]# service network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
8、进入虚拟控制台
kvm虚拟机能否像xen虚拟机一样通过virsh console 一样采用字符界面进行linux虚拟机控制台呢,答案是肯定的,默认情况下该命令是不起作用的,需要修改KVM虚拟机(非宿主机)相关文件才能实现。
这里我们先看下效果,以后再详细说明
可以看到 我们能看到完整的启动的过程,这样的好处是我们不在需要依靠第三方软件vnc登陆
,效果等同于我们拿着console线直接插入到交换机的管理口一样,即可直接在物理主机上面对虚拟机进行控制
9、kvm虚拟化常用管理命令
1、查看KVM虚拟机配置文件及运行状态 (1) KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/ autostart目录是配置kvm虚拟机开机自启动目录。 (2) virsh命令帮助 # virsh -help 或直接virsh命令和,再执行子命令。如下所示。 [root@node1 ~]# virsh 欢迎使用virsh,虚拟化的交互式终端。 输入:‘help‘ 来获得命令的帮助信息 ‘quit‘ 退出 virsh # help (3) 查看kvm虚拟机状态 显示虚拟机列表: virsh # list --all 2. KVM虚拟机开机 启动虚拟机: virsh # start [name] 3. KVM虚拟机关机或断电 (1) 关机 默认情况下virsh工具不能对linux虚拟机进行关机操作,linux操作系统需要开启与启动acpid服务。在安装KVM linux虚拟机必须配置此服务。 # chkconfigacpid on # serviceacpid restart 关闭虚拟机: virsh # shutdown [name] (2) 强制关闭电源 # virsh destroy wintest01 (3)重启虚拟机 重启虚拟机: virsh # reboot [name] (4)查看kvm虚拟机配置文件 virsh # dumpxml [name] 4. 通过配置文件启动虚拟机 # virsh create /etc/libvirt/qemu/wintest01.xml 5. 配置开机自启动虚拟机 # virshautostart oeltest01 autostart目录是kvm虚拟机开机自启动目录,可以看到该目录中有KVM配置文件链接。 6. 导出KVM虚拟机配置文件 # virshdumpxml wintest01 > /etc/libvirt/qemu/wintest02.xml KVM虚拟机配置文件可以通过这种方式进行备份。 7. 添加与删除KVM虚拟机 (1) 删除kvm虚拟机 # virshundefine wintest01 说明:该命令只是删除wintest01的配置文件,并不删除虚拟磁盘文件。 (2) 重新定义虚拟机配置文件 通过导出备份的配置文件恢复原KVM虚拟机的定义,并重新定义虚拟机。 # mv /etc/libvirt/qemu/wintest02.xml /etc/libvirt/qemu/wintest01.xml # virsh define /etc/libvirt/qemu/wintest01.xml 8. 编辑KVM虚拟机配置文件 # virsh edit wintest01 virsh edit将调用vi命令编辑/etc/libvirt/qemu/wintest01.xml配置文件。也可以直接通过vi命令进行编辑,修改,保存。 可以但不建议直接通过vi编辑。 9. virsh console 控制台管理linux虚拟机 [root@node1 data]# virsh console oeltest02 10. 其它virsh命令 (1) 挂起服务器 # virsh suspend oeltest01 (2) 恢复服务器 # virsh resume oeltest01
本文出自 “martin” 博客,谢绝转载!
标签:kvm虚拟化技术应用实战 kvm vnc 云计算 虚拟化
原文地址:http://huaxin.blog.51cto.com/903026/1825844