kvm虚拟化安装配置

简介:

一、KVM简介


 KVM即Kernel Virtual Machine,最初是由以色列公司Qumranet开发。2007年2月被导入Linux 2.6.20核心中,成为内核源代码的一部分。2008年9月4日,Redhat收购了Qumranet,至此Redhat拥有了自己的虚拟化解决方案,之后便舍弃Xen开始全面扶持KVM,从RHEL6开始KVM便被默认内置于内核中。

  KVM必须在具备Intel VT或AMD-V功能的x86平台上运行。KVM包含一个为处理器提供底层虚拟化,可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。使用一个经过修改的QEMU(qemu-kvm),作为虚拟机上层控制和界面。

  由于KVM仅是一个简单的虚拟化模块,所以它的内存管理没有自我实现,需借助于Linux内核实现内存管理。KVM能够使用Linux所支持的任何存储,在驱动程序的实现上,直接借助于Linux内核来驱动任何硬件。在性能上KVM继承了Linux很好的性能和伸缩性,在虚拟化性能方面,已经达到非虚拟化原生环境95%左右的性能。KVM拓展性也非常好,客户机和宿主机都可以支持非常多的CPU数量和非常大的内存,可以过载使用CPU和内存,还可借助KSM技术实现对内存的过量使用,且保证性能依旧非常不错。

  KVM的架构非常简单,就是内核的一个模块,用户空间通过qemu模拟硬件提供给虚拟机使用,一个虚拟机就是一个普通的Linux进程,通过对这个进程的管理,就可以完成对虚拟机的管理。


二、准备工作


KVM 需要有 CPU 的支持(Intel VT 或 AMD SVM),在安装 KVM 之前检查一下 CPU 是否提供了虚拟技术的支持

1、设置BIOS

Intel(R) Virtualization Tech [Enabled]

如有必要,还需在BIOS中开启VT-d


2、vmware安装centos6.6(64位)

a. 内存给2g
b. 磁盘给50g, 或者再单独分一个磁盘,用来存储虚拟机文件
c. 最关键的一步,在创建虚拟机时,cpu是需要配置一下虚拟化的,如下图

wKiom1YuTzbAwWoWAAGX-tprB1E508.jpg


3、查看系统内核版本

[root@centos ~]# uname -a

Linux centos 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

如果在2.6.20以下的linux版本,需升级内核。


4、查看是否支持虚拟化

[root@centos ~]# cat /proc/cpuinfo |egrep --color 'vmx|svm'

查找 CPU flags 是否包括 vmx 或者 svm 关键字。/proc/cpuinfo 仅从 Linux 2.6.15(Intel) 和 Linux 2.6.16(AMD) 开始显示虚拟化方面的信息,其中intel cpu支持会有vmx,AMD cpu支持会有svm。


5、关闭防火墙

[root@centos ~]# vim /etc/selinux/config

SELINUX=disabled

[root@centos ~]# iptables -F

[root@centos ~]# /etc/init.d/iptables save

[root@centos ~]# reboot


6、获取网络

[root@centos ~]# dhclient



三、安装KVM模块以及配置网络


1、安装KVM模块

[root@centos ~]# yum install -y kvm virt-*  libvirt  bridge-utils qemu-img

说明:

1)kvm:软件包中含有KVM内核模块,它在默认linux内核中提供kvm管理程序。
2)virt-*:创建、克隆虚拟机命令,以及图形化管理工具virt-manager。

3)libvirts:安装虚拟机管理工具,使用virsh等命令来管理和控制虚拟机。
4)bridge-utils:设置网络网卡桥接。
5)qemu-img:安装qemu组件,使用qemu命令来创建磁盘等。


2、查看是否加载KVM模块

[root@centos ~]# lsmod |grep kvm

kvm_intel              54285  0

kvm                   333172  1 kvm_intel

如果没有加载,需要执行 
[root@centos ~]# modprobe kvm-intel

还没有就重启一下试试。


3、配置虚拟网桥

[root@centos ~]# cd /etc/sysconfig/network-scripts/

[root@centos network-scripts]# cp ifcfg-eth0 ifcfg-br0

1)编辑ifcfg-eth0

[root@centos network-scripts]# vim ifcfg-eth0

DEVICE=eth0

HWADDR=00:0C:29:BA:C8:0D

TYPE=Ethernet

UUID=693af5fe-7401-4100-925c-a72e8f1a557a

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

BRIDGE=br0

2)编辑ifcfg-br0

[root@centos network-scripts]# vim ifcfg-br0

DEVICE=br0

#HWADDR=00:0C:29:BA:C8:0D

TYPE=Bridge

#UUID=693af5fe-7401-4100-925c-a72e8f1a557a

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.0.102

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

DNS1=192.168.0.1

DNS2=8.8.8.8

3)重启网络服务

[root@centos network-scripts]# service network restart


4)查看网络接口列表

[root@centos ~]# /etc/init.d/libvirtd start                        //启动libvirtd服务

[root@centos ~]# /etc/init.d/messagebus restart             //重启messagebus 服务

[root@centos ~]# brctl show

bridge name     bridge id                        STP enabled     interfaces

br0                    8000.000c29bac80d       no                     eth0

virbr0                8000.525400aa7d99       yes                    virbr0-nic

用ifconfig命令即可看到多了两个网卡:

br0                ip:192.168.0.102 

virbr0            ip:192.168.122.1

 

 

四、创建虚拟机


虚拟机的创建我们有两种方式,一种是在线安装创建,这是通过网络上镜像资源进行安装创建,这必须要求服务器能够连接到外网;另一种是通过NFS服务安装创建,这是通过服务器本地的镜像资源进行安装创建,这种方法适用于不能上外网的服务器。


方法一:在线安装创建虚拟机

[root@centos ~]# mkdir /data/          //创建存储虚拟机虚拟磁盘的目录,该目录所在分区必须足够大

 [root@centos ~]# virt-install \
--name  tpp1 \
--ram 512 \
--disk path=/data/tpp1.img,size=30 \
--vcpus 1 \
--os-type linux \
--os-variant rhel6 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location 'http://mirrors.sohu.com/centos/6.7/os/i386/' \
--extra-args 'console=ttyS0,115200n8 serial'


说明:

1)--name:指定虚拟机的名字。
2)--ram:指定内存分配多少。

3)--disk path:指定虚拟磁盘放到哪里,size=30 指定磁盘大小为30G,这样磁盘文件格式为raw。

注意:raw格式不能做快照,需要转换为qcow2格式,如果要使用qcow2格式的虚拟磁盘,需要事先创建qcow2格式的虚拟磁盘。 

参考  http://www.361way.com/kvm-qcow2-preallocation-metadata/3354.html

4)--vcpus:指定分配cpu几个。

5)--os-type:指定系统类型为linux。
6)--os-variant:指定系统版本。
7)--network:指定网络类型。
8)--graphics:指定安装通过哪种类型,可以是vnc,也可以没有图形,在这里我们没有使用图形直接使用文本方式。
9)--console:指定控制台类型。

10)--location:指定安装介质地址,可以是网络地址,也可以是本地的一个绝对路径,如果是绝对路径,那么后面还需要指定一个安装介质,比如NFS,假如虚拟机设置ip后,不能连外网,那么就会提示让我们选择安装途径。

11)--extra-args 设定内核参数


当按下回车后,稍等几秒钟就可以看到安装提示了

stp1:选择语言(English)---->ok

stp2:选择手动配置TCP/IP(IPv4 选择 Manual configuration,IPv6不用设置默认即可)---->ok

stp3:配置网络

IPv4 address:   192.168.0.10 / 255.255.255.0

Gateway:         192.168.0.1

Name Server:  8.8.8.8

stp4:安装成功---->ok

stp5:出现警告(选择第四个 Re-initialize all)---->ok

stp6:选择时区( Asia/Shanghai)---->ok

stp7:设置root密码

stp8:选择分区类型(默认就可)---->ok

stp9:将存储配置写入磁盘---->Write changes to disk

stp10:完成 ---->Reboot

完成后,输入root和密码就可以进入刚刚创建的虚拟机了;要想退回到宿主机,按ctrl+] 即可。

在母机上执行以下命令:

[root@centos ~]# virsh list                       //可以列出当前的子机列表。
[root@centos ~]# virsh console tpp1       //可以进入指定的子机



方法二:NFS服务安装创建

在不能上外网的情况下,我们可以使用本地光盘进行安装配置。

1)挂载光盘

[root@centos ~]# mount  /dev/cdrom  /mnt/

[root@centos ~]# df -h                                             //查看磁盘是否挂载

Filesystem       Size       Used     Avail     Use%     Mounted on

/dev/sda3        42G       1.7G       38G         5%      /

tmpfs            939M            0     939M         0%      /dev/shm

/dev/sda1       97M       27M       66M       29%      /boot

/dev/sr0          4.2G       4.2G           0      100%      /mnt

[root@centos ~]# ls /mnt/                                        //可查看到mnt目录下生成了这些文件

CentOS_BuildTag   isolinux                                     RPM-GPG-KEY-CentOS-Debug-6

EFI                          Packages                                   RPM-GPG-KEY-CentOS-Security-6

EULA                      RELEASE-NOTES-en-US.html    RPM-GPG-KEY-CentOS-Testing-6

GPL                        repodata                                   TRANS.TBL

images                   RPM-GPG-KEY-CentOS-6


2)配置NFS服务

[root@centos ~]# vim /etc/exports

/mnt 192.168.0.0/24                 //把mnt目录共享给0这个网段,

[root@centos ~]# yum install -y nfs-utils rpcbind

[root@centos ~]# /etc/init.d/rpcbind start

[root@centos ~]# /etc/init.d/nfs start

[root@centos ~]# showmount -e 192.168.0.102               //查看是否分享成功

Export list for 192.168.0.102:

/mnt 192.168.0.0/24


3)安装配置虚拟机

因为磁盘文件格式默认为raw,而raw格式不能做快照,需要转换为qcow2格式,如果要使用qcow2格式的虚拟磁盘,需要事先创建qcow2格式的虚拟磁盘。

[root@centos ~]# mkdir /data/                 //之前创建了这里就略过

[root@centos ~]# qemu-img create -f qcow2 -o preallocation=metadata  /data/tpp2.qcow2 10G                                                             //执行成功后可以在data目录下看到tpp2.qcow2文件

[root@centos ~]# virt-install \

--name  tpp2 \
--ram 512 \
--disk path=/data/tpp2.qcow2,size=10,bus=virtio \
--vcpus 1 \
--os-type linux \
--os-variant rhel6 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location '/mnt/' \
--extra-args 'console=ttyS0,115200n8 serial'


然后后续的步骤和之前在线安装相类似。

stp1:选择语言(English)---->ok

stp2:选择安装方法(NFS directory)---->ok

stp3:选择手动配置TCP/IP(IPv4 Manual configuration)---->ok

stp4:配置网络

IPv4 address: 192.168.0.11 / 255.255.255.0

Gateway: 192.168.0.1

Name Server: 180.168.255.118               //我所在电信DNS

stp5:配置NFS 

NFS server name: 192.168.0.102                                  //宿主机ip

CentOS directory: /mnt/images/install.img                 

NFS mount options (optional): ro                                //只读

stp6:安装成功---->ok

stp7:出现警告(选择第四个 Re-initialize all)---->ok

stp8:选择时区( Asia/Shanghai)---->ok

stp9:设置root密码

stp10:选择分区类型(默认就可)---->ok

stp11:将存储配置写入磁盘---->Write changes to disk

stp12:完成 ---->Reboot

完成后输入root和密码就进入刚刚创建的虚拟机了。




KVM虚拟机的基本管理参考:http://msiyuetian.blog.51cto.com/8637744/1711927








      本文转自 M四月天 51CTO博客,原文链接:http://blog.51cto.com/msiyuetian/1707539,如需转载请自行联系原作者


相关文章
|
10月前
|
存储 监控 网络安全
【KVM虚拟化】· 虚拟机的冷迁移和热迁移
【KVM虚拟化】· 虚拟机的冷迁移和热迁移
832 0
|
10月前
|
KVM 虚拟化 Windows
【KVM虚拟化】· KVM中的网络
【KVM虚拟化】· KVM中的网络
193 0
|
10月前
|
存储 KVM 文件存储
【KVM虚拟化】· 存储池、存储卷
【KVM虚拟化】· 存储池、存储卷
364 0
|
10月前
|
存储 监控 安全
【KVM虚拟化】· virsh文件管理
【KVM虚拟化】· virsh文件管理
302 0
|
10月前
|
XML Shell API
【KVM虚拟化】· virsh管理命令
【KVM虚拟化】· virsh管理命令
233 0
|
10月前
|
XML 存储 安全
【KVM虚拟化】· 命令行KVM安装linux
【KVM虚拟化】· 命令行KVM安装linux
125 0
|
10月前
|
存储 安全 Linux
【KVM虚拟化】· 图形化KVM安装linux
【KVM虚拟化】· 图形化KVM安装linux
191 0
|
10月前
|
存储 XML Linux
部署KVM虚拟化平台
部署KVM虚拟化平台
308 0
|
10月前
|
存储 Shell KVM
KVM虚拟化进阶学习
命令安装KVM
163 0
|
10月前
|
存储 Linux 调度
Linux部署KVM虚拟化平台
Linux部署KVM虚拟化平台
261 0