您的位置:首页 > 运维架构 > Linux

kvm虚拟化安装配置

2015-10-29 09:09 447 查看
一、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是需要配置一下虚拟化的,如下图




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.0Gateway: 192.168.0.1Name Server: 8.8.8.8
stp4:安装成功---->ok
stp5:出现警告(选择第四个 Re-initialize all)---->okstp6:选择时区( 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux 虚拟化 KVM virsh