一,准备环境

 

物理机

虚拟机

操作系统

CentOS 6.8 x64

CentOS 6.8 x64

CPU/内存

10核超线程x2/64G

2核/4G

外网IP

--

内网IP

eth1_192.168.0.85

eth0_192.168.0.91-100

硬盘

1T

100G

 

二,安装服务

1、检查当前物理机是否支持虚拟化技术:

# egrep 'vmx|svm' /proc/cpuinfo

如果输出的结果包含VMX,它是Intel处理器虚拟机技术标志:如果包含SVM,它是AMD处理器虚拟机技术的标志,如果你什么都没有得到,那应你的系统并没有支持虚拟化的处理,不能使用KVM,另处linux发行版本必须在64bit环境中才能使用KVM。

2、准备相应程序包:

# yum install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v tunctl tigervnc-server

3、关闭selinux:

# vi /etc/selinux/config

SELINUX=disabled

此处更改后需重新服务器。

4、查看libvirtd虚拟化进程是否启动:

# /etc/init.d/libvirtd restart

5、检查kvm模块是否加载:

# lsmod | grep kvm

kvm_intel              55464  8

kvm                   345038  1 kvm_intel

6、检查kvm应用是否正常:

# virsh list --all

Id    名称                         状态

----------------------------------------------------

此处应为空,因为还未安装任何虚拟机。

7、修改qemu配置内vnc监听端口:

# vi /etc/libvirt/qemu.conf

vnc_listen = "0.0.0.0"

8、重启libvirtd

# service libvirtd restart

9、启动vncserver:

# service vncserver restart

至此,KVM平台搭建前准备工作完成。

三、网络部分

1、关闭NetworkManager

# service NetworkManager stop

# chkconfig NetworkManager off

2、配置桥接网络

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

DEVICE=br0

TYPE=Bridge

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.0.85

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

DNS1=202.106.0.20

DEFROUTE=no

# vi /etc/sysconfig/network-scripts/ifcfg-eth1 (em1)

DEVICE=eth1

TYPE=Ethernet

UUID=f47dd8ad-781b-44d7-861e-420a0621114a

ONBOOT=yes

NM_CONTROLLED=yes

HWADDR=08:94:EF:04:56:09

BRIDGE=br0

3、重启网络

# service network restart

4、检查网桥配置  (本机物理机ip地址)

# ifconfig

br0       Link encap:Ethernet  HWaddr 08:94:EF:04:56:09

inet addr:192.168.0.85  Bcast:192.168.0.255  Mask:255.255.255.0

inet6 addr: fe80::a94:efff:fe04:5609/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:207182 errors:0 dropped:0 overruns:0 frame:0

TX packets:158584 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:63477520 (60.5 MiB)  TX bytes:95134411 (90.7 MiB)

eth1      Link encap:Ethernet  HWaddr 08:94:EF:04:56:09

inet6 addr: fe80::a94:efff:fe04:5609/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:208376 errors:0 dropped:0 overruns:0 frame:0

TX packets:182265 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:67234410 (64.1 MiB)  TX bytes:97388133 (92.8 MiB)

Interrupt:17

# brctl show

bridge name     bridge id               STP enabled     interfaces

br0             8000.0894ef045609       no              eth1

virbr0          8000.000000000000       yes

三、安装第一台kvm虚拟机

1、建立img路径文件夹

# mkdir /app/kvm-machines/kvm01 -p

2、执行初始化虚拟机操作(在vnc里边执行)

磁盘有两种格式,分别是qcow2和raw

区别是 用qcow2格式创建的虚拟机不会立即使用磁盘;

但是用raw格式创建的虚拟机会立即使用磁盘;物理机磁盘容量的增长会很快,但是qcow2格式的磁盘会慢慢增长,但不会超过总共给他分配的容量。

# qemu-img create -f qcow2 /app/kvm-machines/kvm01/kvm01.qcow2 100G

@1 第一种安装方式

# virt-install --name=kvm01 --ram=4096 --vcpus=2 --disk path=/app/kvm-machines/kvm01/kvm01.qcow2,format=qcow2,size=100 --accelerate --cdrom=/app/CentOS-6.8-x86_64-bin-DVD1.iso --graphics vnc,password="******",port=5920 --network bridge=br0 --force --autostart            (在vnc里面执行)

*******************************************************************************************************************************************************************************************************

@2 第二种安装方式

物理机上两块网卡,需要虚拟机也有两块网卡,并且//最小化//安装虚拟机:   需要:    yum remove  virt-viewer

virt-install --name vm01 --boot network,hd,cdrom,menu=on --ram 1024 --vcpus=1 --os-variant=rhel6 --accelerate --cdrom=/opt/iso/CentOS-6.4-x86_64-bin-DVD1.iso --disk path=/opt/kvmimg/vm01.img,size=5,bus=virtio --bridge=br0,model=virtio  --bridge=br1,model=virtio(如果是两块网卡的话需要这样写)  --autostart --vnc --vncport=5900 --vnclisten=0.0.0.0

******************************************** windows server 2008*********************************

@3 第三种安装方式

virt-install --name douniushizhibo --ram 4096 --vcpus=4 --os-type=windows --accelerate --cdrom=/data/Microsoft_server64_eval_zh-cn-GRMSXEVAL_CN_DVD.iso   --disk path=/data/kvm-machines/vm09/douniushizhibo.qcow2,format=qcow2,bus=ide --bridge=br0  --bridge=br1  --autostart --vnc --vncport=5928 --vnclisten=0.0.0.0

参数说明:

name:虚拟机名称

ram:内存分配(M)

vcpus:虚拟cpu核数

disk:磁盘选项

path:img文件路径

size:磁盘大小(G)

accelerate:是否启用KVM加速器

cdrom:镜像所在路径

graphics:GUI选项

vnc:使用VNC作为GUI图形配置端

password:vnc连接密钥

port:vnc连接端口

network:网络选项

bridge:桥接网卡

force:关闭交互

autostart:指定物理机启动后自动启动该虚拟机

3、检查虚拟磁盘文件生成情况

# qemu-img info kvm01.qcow2

image: kvm01.qcow2

file format: raw

virtual size: 100G (85899345920 bytes)

disk size: 6.9G

4、使用vnc客户端连接虚拟机安装界面:

连接串:IP:5920/******

5、系统安装过程:(查看以下链接)

http://www.osyunwei.com/archives/9505.html

6、检查虚拟机运行情况:

# virsh list --all

Id    名称                         状态

----------------------------------------------------

28    kvm01                          running

四、虚拟机复制

1、关闭源虚拟机

# virsh shutdown kvm01

2、复制源虚拟机至目标虚拟机

# virt-clone -o kvm01 -n kvm02 -f /app/kvm-machines/kvm02/kvm02.qcow2

3、使用vnc客户端连接至物理机界面,进入目标虚拟机配置,删除“显示 VNC”项目:  (如果没有的话直接右键删除硬件,点overview,右键新加硬件graphics)

4、建立新的VNC项目:

5、启动目标虚拟机

# virsh start kvm02

6、查看kvm02状态

# virsh list --all

Id    名称                         状态

----------------------------------------------------

28    kvm01                          关闭

30    kvm02                          running

7、进入kvm02更改主机名、IP等信息

8、 启动源虚拟机kvm01

# virsh start kvm01

9、查看所有虚拟机状态:

# virsh list --all

Id    名称                         状态

----------------------------------------------------

28    kvm01                          running

30    kvm02                          running

至此,虚拟机复制工作完成。

10、在此可以添加/etc/hosts文件

11、ssh  kvm01  如果不成功的话要在  vim /etc/ssh/sshd_config   中将修改  UseDNS no     GSSAPIAuthentication no

# /etc/init.d/sshd  restart

12、如果是克隆的网卡,那么需要改变三个地方的信息:

@1,rm -rf /etc/udev/rules.d/70-persistent-net.rules

@2,vim /etc/sysconfig/network 修改主机名

@3,vim /etc/sysconfig/network-scripts/ifcfg-eth0  修改ip和网关关键是

reboot

13、在有外网的物理机上可做SNAT转换

-A POSTROUTING -s 192.168.0.85/32 -j SNAT --to-source x:x:x:x(外网IP)

通过所配置ip进行ping操作,并ssh所有虚拟机,如均成功,说明整体KVM平台搭建配置完整。

五、回退

删除KVM域并清除img文件:

# virsh undefine kvm01

# rm -fr /app/kvm-machines/kvm01/kvm01.qcow2

致此。kvm搭建成功。

附加1:

挂载磁盘以及修改配置文件的方法:

关机虚拟机-------------》

#   cd   /var/lib/libvirt/images

# mv ./  /data/kvm-machines/kvm01

# vim /etc/libvirt/qemu/kvm01.xml

如果是新增加的卷要修改其文件路径

<source file='/data/kvm-machines/kvm01/kvm01.qcow2'/>

然后重新加载配置文件

#  virsh define kvm01.xml

开机虚拟机-----------------》

利用vnc查看磁盘文件路径是/data/kvm-machines/kvm01/kvm01.qcow2

说明修改成功!

附加2:

命令行增加kvm虚拟机磁盘与内存:

1. qemu-img create -f raw xiaofei_new.img 200G

2.在 xiaofei.xml 文件中增加: 或者使用以下命令:
<disk type='file' device='disk'>
32 <driver name='qemu' type='raw' cache='none'/>
33 <source file='/web/repo/vmimages/wx1-kvm80/xiaofei.img'/>
34 <target dev='vdb' bus='virtio'/> ------------------------------>>>>>关键是设备 vdb不要和之前的vda重复,需要修改下
36 </disk>

# virsh attach-disk [--domin] $DOMIN [--source] $SOURCEFILE [--target] $TARGET --subdriver qcow2 --config --live
或者
virsh attach-disk xiaofei /web/repo/vmimages/wx1-kvm80/xiaofei_new.img vdb --subdriver raw --config

增加内存配置: 16777216

4.修改完配置文件之后需要重置下配置文件
virsh define /etc/libvirt/qemu/xiaofei.xml
5.virsh start xiaofei
6.fdisk -l
fdis /dev/vdb
---> n
---> p
--->1
--------回车

mkfs.ext4 /dev/vdb
7.挂载目录
预计挂载/data 目录 可以先把data下的数据备份到别地方 挂载后再把数据重新拷贝回来;
mount /dev/vdb1 /home
8.放在fstab里面
/dev/vdb1 /home/ ext4 defaults 0 0

附加三:

Kvm 宿主机修改关机的虚拟机网卡信息:

1.需要安装 virt-edit  工具:  yum install -y virt-edit

virt-edit -d anamm(虚拟机名称)  /etc/sysconfig/network-scripts/ifcfg-eth0

2.virsh edit 修改配置文件后自动生效  不用define

除非是vim  配置文件才需要 define

附件四:

kvm宿主机连接不上网络解决方法:

# brctl show

br1 对应的外网网卡上是空的,意思是没有关联上,要上网是不可能的。

解决方法:

/usr/sbin/brctl addif br1 eth1

[root@wx5 ~]# brctl show

有了相应的外网网卡接口,此时: ping 114.114.114.114  可以通。

kvm 虚拟机所在的宿主机   bro------eth0   对应的 mac 地址是一样的

br1------eth1   对应的 mac 地址是一样的

kvm 搭建的更多相关文章

  1. Centos7利用kvm搭建Windows虚拟机

    这几天玩了一下kvm虚拟化,真的很有意思,我把这几天踩的坑,还有收获,都记录下来,作为以后的复习和检查. 首先说一下我的基本逻辑,我有一台win7的笔记本,我的底层虚拟化是使用VMWare构建的Cen ...

  2. Liunx之KVM搭建图形化的WEB

    作者:邓聪聪 我们常在Windowns下使用VMware,当然在Liunx中也有这样的软件供我们使用.生产环境的KVM宿主机越来越多,需要对宿主机的状态进行调控.这里用webvirtmgr进行管理.图 ...

  3. kvm搭建完成了,那么问题来了,到底是什么原理

    kvm中到底是怎么模拟的CPU和内存? 收到了大量的 这里有一个裸的调用kvm接口的实例,超赞: http://www.cnblogs.com/Bozh/p/5753379.html 使用kvm的AP ...

  4. kvm搭建

    今日做公司项目时恰好是这个,然后就做一个博客,希望可以帮助到你们 1.把虚拟机zmedu63内存调成6G以上,因为我们要在VMware虚拟中安装KVM,然后在KVM中再安装虚拟机,需要内存大一些.zm ...

  5. ubuntu配置kvm服务

    虚拟化第一弹,lei了lei了~ 首先,简单介绍一下KVM服务. KVM 全称是 Kernel-Based Virtual Machine,它是一种常用的虚拟化工具.是基于linux内核所开发的虚拟平 ...

  6. qemu-img管理虚拟机

    qemu-img管理虚拟机 1. 查看正在运行的虚拟机 [root@idca-vm02 ~]# virsh list Id    名称                         状态 ----- ...

  7. 初试集群虚拟化搭建(二)—— Xen, kvm, OpenStack, VMware ESXi, Citrix XenServer等种种选择

    小伙伴们找到了一些主流方案的资料,最终选择了XenServer6.5作为平台搭建. Xen 特点: 功能强大,支持Linux的各种发行版本 通常是在现有Linux操作系统上安装,是一种半虚拟化的安装方 ...

  8. CloudStack搭建KVM环境

    软件环境:agent:CentOS 6.3,minimal安装,CPU启用VT management server:CentOS 6.3,minimal安装 存储:CentOS 6.3 搭建在mana ...

  9. <Mastering KVM Virtualization>:第三章 搭建独立的KVM虚拟化

    在第二章,你了解了KVM的内部结构:在本章中,您将了解如何将Linux服务器设置为虚拟化主机.我们正在讨论将KVM用于虚拟化并将libvirt作为虚拟化管理引擎. KVM开启了虚拟化并利用你的服务器或 ...

随机推荐

  1. 【CSS 技能提升】 :before和:after的使用

    前几天的晚上较全面的去看了下css的一些文档和资料,大部分的样式运用都没什么大问题了,只是有些许较陌生,但是也知道他们的存在和实现的是什么样式.今天主要想在这篇学习笔记中写的也不多,主要是针对:bef ...

  2. pandas中遍历dataframe的每一个元素

    假如有一个需求场景需要遍历一个csv或excel中的每一个元素,判断这个元素是否含有某个关键字 那么可以用python的pandas库来实现. 方法一: pandas的dataframe有一个很好用的 ...

  3. 【洛谷P1024一元三次方程求解】

    题目描述 有形如: ax3 + bx2 + cx1 + dx0 = 0 这样的一个一元三次方程.给出该方程中各项的系数( a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在 -100 ...

  4. vue学习(2)

    node.js介绍与npm操作 1.node就是JavaScript的一个运行环境(平台),他不是一门语言,也不是JavaScript框架,可以用来开发服务器端应用程序,web系统,其特点是体积小.快 ...

  5. c/c++ 大于等于 大于 时间效率比较

    变成汇编,都是: 大于等于和大于都是电路上的处理,时间上应该差不多.

  6. 第十三节、SURF特征提取算法

    上一节我们已经介绍了SIFT算法,SIFT算法对旋转.尺度缩放.亮度变化等保持不变性,对视角变换.仿射变化.噪声也保持一定程度的稳定性,是一种非常优秀的局部特征描述算法.但是其实时性相对不高. SUR ...

  7. Java面向对象类与对象整理

    第一章           面向对象: 1.1         什么是面向过程: 遇到某件事的时候,思考 “我该怎么做”然后一步一步实现的过程 1.2         什么是面向对象: 遇到某件事的时 ...

  8. Redis分布式锁----乐观锁的实现,以秒杀系统为例

    本文使用redis来实现乐观锁,并以秒杀系统为实例来讲解整个过程. 乐观锁      大多数是基于数据版本(version)的记录机制实现的.即为数据增加一个版本标识,在基于数据库表的版本解决方案中, ...

  9. flask 安装及基础学习(url_for反转,静态文件引入)

    pip3 install flask pycharm 创建项目 默认的代码解释说明(及开启debug模式) #encoding:utf-8 from flask import Flask #从flas ...

  10. MySQL最优配置模板( 5.6&5.7)(运维那点事)

    MySQL 5.6&5.7配置文件(姜总提供) [mysql] default-character-set=utf8mb4 user = root password = 123456 port ...