首页
学习
活动
专区
工具
TVP
发布

CentOS 6.5-虚拟化KVM从安装到使用

KVM虚拟化简介

KVM(名称来自英语:Kernel-basedVirtual Machine的缩写,即基于内核的虚拟机),是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor。关于KVM提以下六点:

1)KVM是开源软件。

2)是x86架构且硬件支持虚拟化技术(如intel VT或AMD-V)的Linux全虚拟化解决方案。

3)它包含一个为处理器提供底层虚拟化,可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。

4)KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。

5)KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)。

6)KVM是linux内核包含的东西,负责CPU和内存的虚拟;QEMU主要作为上层管理(命令行),负责I/O设备的虚拟,对各种虚拟设备的创建,调用进行管理。

相关链接:

KVM的官方地址:http://www.linux-kvm.org/page/Main_Page

KVM的Howto文档:http://www.linux-kvm.org/page/HOWTO

Kqemu源码地址:http://sourceforge.net/projects/kqemu/

Qemu下载地址:http://wiki.qemu.org/Main_Page

一、KVM安装

检查CPU是否支持虚拟化

# grep -E 'svm|vmx' /proc/cpuinfo

vmx为Intel的CPU指令集svm为AMD的CPU指令集

安装kvm必要的软件包

# yum install -y qemu-kvm libvirt virt-install bridge-utils

二、基本配置

激活并启动libvirt服务

# chkconfig libvirtd on

# service libvirtd start

配置桥接网络

默认情况下所有虚拟机只能够在host内部互相通信,如果需要通过局域网访问虚拟机,需要创建一个桥接网络。

1.修改以太网卡配置文件

# 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)即可。

2.修改桥接网卡配置文件

# vim /etc/sysconfig/network-scripts/ifcfg-br0

TYPE=Bridge

DEVICE=br0

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

IPADDR=10.0.0.60

GATEWAY=10.0.0.2

NETMASK=255.255.255.0

桥接网卡的需要配置IP地址,当然也可以用DHCP。需要注意的是桥接网卡br0中DEVICE的名字一定要与以太网卡eth0中BRIDGE对应。

3、开启转发功能并修改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

4、重启网卡使之生效。

#service network restart

三、验证模块

# 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 listId Name State ---------------------------------------------------- (由于没有创建虚拟机,所以没有条目显示)

四、创建虚拟机

创建ISO镜像:

# dd if=/dev/cdrom of=/opt/CentOS-7.1.iso

或者将安装镜像上传至宿主机,直接使用(推荐)。

创建虚拟机硬盘:

# qemu-img create -f qcow2 /kvmdir/test.qcow2100G

创建虚拟机:

# virt-install --name Centos --virt-type kvm --ram 1024--vcpus 2--cdrom=/tmp/CentOS-6.5.iso --disk path=/kvmdir/test.qcow2,format=qcow2--graphics vnc,listen=0.0.0.0 --noautoconsole

各参数说明:

--name Centos ###指定虚拟机名字为Centos

--virt-type kvm ###指定虚拟机类型

--ram 1024 ###指定虚拟机内存大小,单位M

--cdrom=/tmp/CentOS-6.5.iso ###指定虚拟机OS安装介质路径

--disk path=/kvmdir/test..qcow2###虚拟机安装位置

--network=default ###指定VM网卡类型

--graphics vnc,listen=0.0.0.0 ###指定VNC或字符console

--vcpus 2 ###指定VM可以使用cpu个数

--vcpus 5,maxcpus=10 ###可以使用5颗cpu,最大支持10颗cpu

打开VNC客户端,输入本机ip:5900(第一个默认就是5900,第二个是5901,以此类推),可连接到创建的kvm虚拟机上,然后就是安装Centos7的过程。

到此,kvm虚拟机安装完成。

五、kvm管理

KVM虚拟机的管理主要是通过virsh命令对虚拟机进行管理。

1.查看KVM虚拟机配置文件及运行状态

(1) KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/

autostart目录是配置kvm虚拟机开机自启动目录。

(2) virsh命令帮助

[root@KVM ~]# virsh –help

或直接virsh命令和,再执行子命令。如下所示。

[root@KVM ~]# virsh

virsh # help #帮助

……

virsh # quit #退出

(3)查看kvm虚拟机状态

[root@KVM ~]# virsh list –all

2. KVM虚拟机开机

[root@KVM ~]# virsh start centos1

3. KVM虚拟机关机或断电

(1)关机

默认情况下virsh工具不能对linux虚拟机进行关机操作,linux操作系统需要开启与启动acpid服务。在安装KVM linux虚拟机必须配置此服务。

[root@Centos1 ~]# yum -y install acpid

[root@Centos1 ~]# /etc/init.d/acpid start

##virsh关机

[root@KVM ~]# virsh shutdown Centos

(2)强制关闭电源

[root@KVM ~]# virsh destroyCentos

4.通过配置文件启动虚拟机

[root@KVM ~]# virsh create /etc/libvirt/qemu/Centos.xml

5.配置开机自启动虚拟机

[root@KVM ~]# virsh autostartCentos

autostart目录是kvm虚拟机开机自启动目录,可以看到该目录中有KVM配置文件链接。

6.导出KVM虚拟机配置文件

[root@KVM ~]# virsh dumpxmlCentos> /etc/libvirt/qemu/Centos.xml

KVM虚拟机配置文件可以通过这种方式进行备份。

7.添加与删除KVM虚拟机

(1)删除kvm虚拟机

[root@KVM ~]# virsh undefineCentos

Domain centos1 has been undefined

说明:该命令只是删除Centos的配置文件,并不删除虚拟磁盘文件。如下图所示。

(2)重新定义虚拟机配置文件

通过导出备份的配置文件恢复原KVM虚拟机的定义,并重新定义虚拟机。

[root@KVM ~]# mv /etc/libvirt/qemu/Centos.xml /etc/libvirt/qemu/Centos.xml

[root@KVM ~]# virsh define /etc/libvirt/qemu/Centos.xml #为客户端输出xml配置文件

8.编辑KVM虚拟机配置文件

[root@KVM ~]# virsh editCentos

virsh edit将调用vi命令编辑/etc/libvirt/qemu/Centos.xml配置文件。也可以直接通过vi命令进行编辑,修改,保存。

可以但不建议直接通过vi编辑。

9.其它(挂起、恢复)virsh命令

(1)挂起服务器

[root@KVM ~]# virsh suspendCentos

(2)恢复服务器

[root@KVM ~]# virsh resumeCentos

(2)在线添加磁盘或镜像

root@KVM ~]#virsh attach-disk 虚拟机名 source target

实际命令:

# virsh attach-disk one-641 /test.img vdb

virsh命令丰富。可以执行各种维护任务,本文只是从维护与管理的角度例举了常用的命令,为该命令的使用提供一个思路。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180823G0S69P00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券