一.kvm虚拟化环境搭建准备

1.硬件环境

kvm只能部署在物理机上面。

2.BIOS开启VT

Virtualization Tech [Enabled]

3.查看cpu 是否支持kvm 全虚拟化

# grep "flags" /proc/cpuinfo|uniq

flags : fpu vme de pse tsc msr pae mce cx8 apic sepmtrr pge mca cmov pat

pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tmsyscall nx pdpe1gb rdtscp lm

constant_tsc nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16xtpr sse4_1 sse4_2 popcnt lahf_lm

如果输出的结果包含VMX,它是Intel 处理器虚拟机技术标志,如果包含SVM,它是AMD 处

理器虚拟机技术的标志,看到VMX 或SVM,说明支持全虚拟化。另处linux 发行版本必须在64bit 环境中才能使用KVM。

二.虚拟化环境部署

1.安装kvm 和虚拟化管理软件包

yum -y install kvm virt-* libvirts bridge-utils qemu-img

kvm 软件包。kvm 软件包中含有 KVM 内核模块,它可在默认 Linux 内核中

提供 KVM 管理程序。

libvirts 安装虚拟机管理工具,使用virsh 等命令来管理和控制虚拟机

bridge-utils 安装网络支持,设置桥接

virt-* 创建、克隆虚拟机等命令,以及图形化管理工具virt-manager

qemu-img 安装qemu 组件,使用qemu 命令来创建磁盘等

2.加载kvm 模块

# modprobe kvm-intel

3.查看kvm 模块是否被加载

# lsmod |grep kvm

kvm_intel 85256 0

kvm225952 1 kvm_intel

4.reboot 并确认

确认kvm 模块是否被加载

# lsmod |grep kvm

kvm_intel 85256 0

kvm 225952 2 ksm,kvm_intel

#如出现以上内容,说明kvm 模块正确加载

kvm 相关模块的路径

# cd /lib/modules/2.6.18-348.1.1.el5/weak-updates/kmod-kvm/

# pwd

/lib/modules/2.6.18-348.1.1.el5/weak-updates/kmod-kvm

[root@wg-vm-s2 kmod-kvm]# ls

ksm.ko kvm-amd.ko kvm-intel.kokvm.ko

5.检查物理主机虚拟化完成情况

# virsh list

Id Name State

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

#如出现以上提示说明虚拟化被正确安装

6.关闭防火墙和selinux

由于防火墙和selinux会阻止libvirt为虚拟机创建网络设备。

关闭防火墙

# /etc/init.d/iptables stop

关闭selinux

[root@test22~]# cat /etc/selinux/config

#This file controls the state of SELinux on the system.

#SELINUX= can take one of these three values:

#     enforcing - SELinux security policy isenforced.

#     permissive - SELinux prints warningsinstead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled    #更改为disabled

#SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes areprotected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted

然后命令行执行:setenforce0

7.配置网络桥接

# cat /etc/sysconfig/network-scripts/ifcfg-eth0

# Broadcom Corporation NetXtreme BCM5720 GigabitEthernet PCIe

DEVICE=eth0

HWADDR=90:B1:1C:2A:A4:40

ONBOOT=yes

BOOTPROTO=none

TYPE=Ethernet

BRIDGE=br0

#注意不要写错。

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

# Broadcom Corporation NetXtreme BCM5720 GigabitEthernet PCIe

DEVICE=br0

#HWADDR=90:B1:1C:2A:A4:40

ONBOOT=yes

BOOTPROTO=static

TYPE=Bridge

IPADDR=192.168.3.200

NETMASK=255.255.255.0

GATEWAY=192.168.3.254

配置完eth0 和br0 重启网卡:serivce network restart

查看已有桥接:

# brctl show

bridge name bridge id STP enabled interfaces

br0 8000.90b11c2aa440 no eth0     (配置正确的桥接是有mac地址的)

br1 8000.90b11c2aa441 no eth1

错误桥接:

# brctl show

bridge name bridge id STP enabled interfaces

br0 8000.000000000000 no eth0

8.修改vnc 监听端口

# cd /etc/libvirt/

# ls

libvirtd.conf nwfilter qemu qemu.conf

# cp qemu.conf qemu.conf.panglu-$(date +%F)

# vi qemu.conf+12

11 #

12 # vnc_listen ="0.0.0.0" #把前面的#注释去掉,开启vnc 监听

13

14

15 # Enable use of TLS encryption on the VNC server.This requires

16 # a VNC client which supports the VeNCryptprotocol extension.

17 # Examples include vinagre, virt-viewer,virt-manager and vencrypt

9.开启相应的服务

# /etc/init.d/messagebusstart #linux ICP 服务

Starting system message bus:[ OK ]

# /etc/init.d/libvirtd restart#启动virbr0

libvirtd (pid 3665) is running...

添加到开机启动

# chkconfig messagebus on

echo “/etc/init.d/libvirtdstart”>>/etc/rc.local

到此,kvm 服务端安装完成。

三.安装虚拟机

1.创建虚拟机磁盘目录

#mkdir /data/vmdisk -p

2.创建iso文件目录

#mkdir /iso

把光盘放入到光驱,dd 命令把iso 文件拷贝到/iso目录下

# dd if=/dev/cdromof=/iso/centos5.iso

3.创建虚拟磁盘文件

qemu-img create -f qcow2 -opreallocation=metadata  dev_5931.img 300G

重要参数:-opreallocation=metadata 预分配磁盘,硬盘空间不会立即占用

注意:ext3不支持此参数,ext4支持。

4.安装虚拟机命令及参数

virt-install --name=dev_5934_44 --ram 8192--vcpus=2 -f dev_5934_44.img  --cdrom../iso/CentOS-6.4-x86_64-bin-DVD1to2/CentOS-6.4-x86_64-bin-DVD1.iso   --graphics vnc,listen=0.0.0.0,port=5934, --force  --autostart

注意端口号设定值,用vnc连接时需要用。

5.接下来客户端vnc去连接。

#192.168.3.200 是宿主机IP,5900 是安装命令指定的vnc 端口

##vnc viewer连接闪退解决方法

只需修改vnc option里面Advanced–>expert–>ColourLevel的值为“rgb222” or “full”即可。

四. 虚拟机硬件配置更改篇

1.解决kvm环境下可以使用shutdown命令让虚拟机关机,但不生效。

进入不能关机的虚拟机中:

[root@localhost ~]# yum -y  installacpid           ;安装acpid服务

[root@localhost ~]# service acpid restart           ;启动服务

[root@localhost ~]# chkconfig acpid on             ;加入开机启动

通过以上步骤后就可以让虚拟机响应shutdown 和reboot命令了

2.修改kvm中虚拟机的内存大小及cpu数量。

a.查看虚拟机

virsh # list --all

Id    名称                         状态

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

2     test_centos                    running

4     qishi                          running

13    qishi2                         running

14    cloud_monitor_5921             running

20    test22                         running

-     test33                         关闭

b.更改要修改的配置文件

[root@nfs ~]# virsh edittest22  ##注意vi直接编辑不生效

<domain type='kvm'>

<name>test22</name>

<uuid>eb342f67-e70c-194b-5291-e91010ed996f</uuid>

<memory unit='KiB'>5120000</memory>

<currentMemory unit='KiB'>5120000</currentMemory>  #512000à为内存大小,单位为K 修改此数字,例如要调整为8G 则设置为8192000

<vcpu placement='static'>4</vcpu> #4à为cpu数量,更改为5个则将4修改为5

<os>

<type arch='x86_64'machine='rhel6.5.0'>hvm</type>

<boot dev='hd'/>

</os>

修改完保存à关闭虚拟机à启动虚拟机(注意直接重启不生效)

[root@nfs ~]# virsh  shutdown test22

Domain vm01 is being shutdown

[root@nfs ~]# virsh  start test22

检查:

启动后登录虚拟机,查看内存及cpu,发现已经更改。

查看内存:# free -m

查看cpu数量 # cat/proc/cpuinfo

3.虚拟机网卡mac冲突的解决办法:

a.连接上虚拟机。

b.关掉冲突主机。

#ifdown eth0

c.修改eth0的mac

#sbin/ifconfig eth0 hw ether 00:AA:BB:CC:11:22 ##-->分一个尽量不易出现的mac

d.修改eth0配置文件中的mac

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Hwaddr: 00:AA:BB:CC:11:22

e.重启网卡

service network restart

f.我们用命令行更改的mac在当前生效,重启后失效,所以需要加入到开机启动。

echo “ifdown eth0”>>/etc/rc.local

echo “sbin/ifconfig eth0 hw ether 00:AA:BB:CC:11:22”

echo “ifup eth0”

好了,网卡mac冲突解决了!

4.给虚拟机增加硬盘。

1、给当前磁盘扩容

a.找到需要扩容的磁盘文件。

[root@qishi_test qemu]# cd /data/VHOST/

[root@qishi_test VHOST]# ll

总用量 318393772

-rw-r--r-- 1 qemu qemu322171961344 6月  2 12:33 cloud_monitor_5921.img

-rw-r--r-- 1 root root  32212254720 5月  30 16:54 jia_qishi2.img

-rw-r--r-- 1 qemu qemu  64432963584 6月   2 12:33 test2.img

-rwxr-xr-x 1 root root  53695545344 6月   2 10:05 test33.img

-rw-r--r-- 1 qemu qemu  21474836480 5月  30 18:53 test_jia.img

b.我们现在给test22增加10G空间,他的磁盘文件对应的test2.img。

qemu-img resize test2 +10G

c.关闭虚拟机test22à启动虚拟机test22(注意:重启不生效)

检查:

登陆虚拟机,fdisk -l 发现磁盘增加了10G的空间,我们可以对其进行分区挂载等操作了。

2、给虚拟机添加一块磁盘。

a.创建文件硬盘的镜像

qemu-img create -f raw /disk/sdb6/c1d6.img 10G #指定路径、名称、及大小。

Formatting '/disk/sdb6/c1d6.img', fmt=raw size=10737418240

b.打开虚拟机列表

virsh # list --all

Id    名称                         状态

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

2     test_centos                    running

4     qishi                          running

13    qishi2                         running

14    cloud_monitor_5921             running

20    test22                         running

-     test33                         关闭

c.在此test22硬盘扩容

virsh # edit test22

#找到硬盘配置(原来的系统硬盘)

<disk type='file' device='disk'>

<driver name='qemu'type='raw' cache='none'/>

<sourcefile='/data/VHOST/test2.img'/>

<target dev='hda' bus='ide'/>

<address type='drive'controller='0' bus='0'target='0' unit='0'/>

</disk>

#新加磁盘配置

<disk type='block'device='cdrom'>

<driver name='qemu'type='raw'/>

<target dev='hdc' bus='ide'/>

<readonly/>

<address type='drive'controller='0' bus='1'target='0' unit='0'/>

</disk>

注意:dev 名称设定不能一样。 bus不能一样。一般源为“0”则加一个数字+1,即1,2,3….

#保存退出

d.关闭虚拟机à启动虚拟机(注意:重启不能生效)

[root@nfs ~]# virsh  shutdown test22

Domain vm01 is being shutdown

[root@nfs ~]# virsh  start test22

检查:

虚拟机启动后,登陆进去使用命令#fdisk -l 查看新加的磁盘。

五 centos 6.0 克隆虚拟机步骤

宿主机:192.168.3.100

模版机web-1:192.168.3.102

克隆机web-5:192.168.3.110

1) 关闭/暂停模版虚拟机进行克隆,(注意新克隆的虚拟磁盘文件的名字不能与模版机相同)

virt-clone -o web-1 -n web-5 -f /data/vmdisk/web-5.qcow2

2)然后手动更改xml 配置文件的vnc 端口。

vi /etc/libvirt/qemu/web-5.xml

3)重启libvirtd 服务使更改的端口生效。

/etc/init.d/libvirtd restart

4)启动新克隆的虚拟机

virsh start web-5

5)然后客户端vnc 去连。

6)更改web-5 的eth0 的ip

7)重启network服务

六拷贝xml 文件方式安装新虚拟机

安装新虚机web-10

1)制作虚拟机镜像

cd /data/vmdisk/

cp web-1.qcow2web-10.qcow2

2)创建xml 文件

Cd/etc/libvirt/qemu

cp web-1.xmlweb-10.xml

修改相应的参数

uuid mac vnc 硬盘文件位置 虚拟机名字

uuid:随意更改,保证唯一

mac:随意更改,保证唯一

vnc:指定端口号,别和其他虚拟机冲突

虚拟磁盘文件位置:/data/vmdisk/web-10.qcow2

#<sourcefile='/data/vmdisk/web-10.qcow2'/>

虚拟机名字:web-10

vi web-10.xml

:%S/web-1/web-10/g

3)创建虚拟机

virsh defineweb-10.xml

4)启动虚拟机

virsh start web-10

七 设置虚拟机自启动

#virsh autostart 虚拟机名(例如web-1)

在/etc/libvirt/qemu/network/autostart目录下会出现 web-1.xml

此时,如果重启宿主机,web-1 虚拟机是不会自动启动的,需要重启libvirtd 服务

所以记得把libvirtd 服务设置成开机自启动,这样宿主机重启,虚拟机就会自启动。

KVM部署及硬件参数更改的更多相关文章

  1. KVM部署、使用、调优

     背景介绍 传统数据中心面临的问题: 资源使用率低 资源分配不均 自动化能力差 初始化成本高   云计算: 云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问, 进入可配置的计 ...

  2. KVM基于X86硬件辅助的虚拟化技术实现机制【转】

    内存虚拟化 Shadow Paging 作者 Shawn 在其中文博客中很详尽地介绍了 KVM 在只支持一级分页的 x86 平台上用 “Shadow Paging”进行 MMU 虚拟化的实现,由于目前 ...

  3. [转载]XStar's Libvirt+KVM部署记录 目录

    XStar's Libvirt+KVM部署记录 目录 Create: 2013-12-11 Update: 2014-01-03 准备工作 KVM网站 http://sourceforge.net/p ...

  4. 【系统硬件】英伟达安培卡 vs 老推理卡硬件参数对比

      欢迎关注我的公众号 [极智视界],回复001获取Google编程规范   O_o   >_<   o_O   O_o   ~_~   o_O   本文分享一下英伟达安培卡 vs 老推理 ...

  5. python执行shell获取硬件参数写入mysql

    最近要获取服务器各种参数,包括cpu.内存.磁盘.型号等信息.试用了Hyperic HQ.Nagios和Snmp,它们功能都挺强大的,但是于需求不是太符,亦或者太heavy. 于是乎想到用python ...

  6. 【上载虚拟机】XX是一个Workstations 12.X虚拟机,不受XX支持。请选择其他主机或将虚拟机的硬件版本更改为以下选项之一。

    背景 由于搭建集群时,要使用Ubuntu系统,还有一点就是咱们使用的Ubuntu系统是定制的,但是它是一个虚拟机,需要通过VMware Workstations这款软件,把咱们定制好的Ubuntu系统 ...

  7. am335x LCD参数更改

    /******************************************************************** * am335x LCD参数更改 * * 本文记录am335 ...

  8. KVM部署LVS集群故障案例一则

    一.故障现象 KVM部署LVS(Linux Virtual Server)集群后,能够单独以HTTP方式访问RS(Real Server)的实际IP,但无法通过VIP(Virtual IP)访问. 二 ...

  9. Oracle 12c中CDB与PDB实例参数更改影响实验

    基础知识单薄的同学,请逐字逐句阅读以下概念,来自于博客园AskScuti. 预备知识:什么是参数文件.存放位置.参数文件的分类和参数文件的命名方式.参数文件如何创建.参数文件加载顺序.参数分类.参数修 ...

随机推荐

  1. Forward团队-爬虫豆瓣top250项目-设计文档

    组长地址:http://www.cnblogs.com/mazhuangmz/p/7603594.html 成员:马壮,李志宇,刘子轩,年光宇,邢云淇,张良 设计方案: 1.能分析HTML语言: 2. ...

  2. 关于Linux学习中的问题和体会

    本科期间未开展过与之相关的课程,所以初次接触Linux难免有些问题!参照老师给的学习资料中内容,逐步解决了一些问题,但还有一些问题没解决,下面列举出自己遇到的一些问题. 1.在环境变量与文件查找专题中 ...

  3. (记忆化搜索)Jury Compromise (poj 1015)

    http://acm.fzu.edu.cn/problem.php?pid=1005 Description The fastfood chain McBurger owns several rest ...

  4. Codeforces Round #540 (Div. 3)--1118B - Tanya and Candies(easy TL!)

    Tanya has nn candies numbered from 11 to nn. The ii-th candy has the weight aiai. She plans to eat e ...

  5. 20155326刘美岑2016-2017-2《Java程序设计》第三周学习总结

    20155326刘美岑2016-2017-2<Java程序设计>第三周学习总结 教材学习内容总结 基本类型和类类型 基本类型:第三章中讲述的那几种,short.long.int.byte. ...

  6. Pyenv 安装部署

    Pyenv Pyenv是个多版本Python管理器,可以同时管理多个Python版本共存, 区别于virtualenv. 安装 git clone git://github.com/yyuu/pyen ...

  7. Android-Kotlin-抽象类与多态的表现

    选择包名,然后右键: 选择Class类型,会有class:  选择File类型,不会自动有class: 目录结构: 定义描述抽象类 Person人类: package cn.kotlin.kotlin ...

  8. 在线安装WordPress更新 失败的解决办法

    1.  登录ftp登录不上 , 总是登录失败 在服务器上新建了一个vsftpd服务器,并设置了相应的虚拟用户,修改chroot到网站目录 相关连接:https://blog.csdn.net/zhan ...

  9. 定时任务 Wpf.Quartz.Demo.3

    先把全部源码上传,只是一个Demo,希望大家指点一下不足之处,见本文底部. 1.设置界面 2.详情页面 好了,现在慢慢叙述里面的一些方法. 3.实现拷贝的方法: (1) public static v ...

  10. 【BZOJ3238】 [Ahoi2013]差异(SAM)

    传送门 BZOJ 洛谷 Solution SA版本的 考虑可以建一个SAM? 那么接下来我们就考虑每一对点对之间的贡献了. 把这个式子化简一下就是无序点对之间的那啥(自己意会一下) 然后我们定义边权为 ...