突然接到老总需求,需要在现有机房的服务器上边部署KVM,让内网测试机到达外网去测试。说实话有些头疼,因为我们的硬件资源实在是太缺了(小公司...),只有100G的剩余空间,让我在上边跑俩台虚拟机,还得应付时刻增涨的数据,这无疑让我很无语...hadoop可是在这台服务器的...所以,同学们懂了吧,那数据量,每天哗哗滴啊...废话少说,开始搭建~

一、服务器硬件环境

服务器型号

DELL R710

CPU型号

Intel(R) Xeon(R) CPU  X5650@2.67GHz*2

物理CPU线程数

24

内存大小

64G

磁盘型号

WDC WD10EZEX-00ZF5A0

系统

CentOS release 6.3_x64

剩余磁盘空间
100G

二、需求描述

    在现有资源上,不影响其他业务的情况下,搭建KVM,并在上边部署Centos6.x系统。这里我选择了Centos6.2,至于为啥. 因为他比host主机版本要低,兼容性更好点.

    另外注意一点:其他网上同学的文档都是安装网桥模式,类似交换机那样进行通信。由于需求所限,我的KVM虚机是通过nat方式上网。因此不需要繁杂的对网桥进行配置,使用随机的virbr0就可以。

三、安装部署

  1. 检测CPU是否支持虚拟化

[root@localhost ~]# egrep  -o 'vmx|svm' /proc/cpuinfo  
vmx
vmx
……
vmx

2. 安装kvm

[root@localhost ~]# yum -y install qemu-kvm libvirt python-vritinst bridge-utils avahi dmidecode libguestfs-tools virt-manager

3. 网桥查看

[root@localhost ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.5254004272bb       yes             virbr0-nic
# virsh 
#  net-autostart --disable default#关闭默认网桥virbr0

4. 创建虚机存储和镜像目录

[root@localhost ~]# mkdir /data/kvm/{iso,vm} -p

5. 创建虚拟机

[root@jxq-st-ms-02 ~]# virt-install -v -n hd-nn \
> --ram 1024 \
> ##内存
--vcpus=1 \
##cpu核数
--disk path=/data/kvm-img/hd-nn.img,size=10,bus=virtio \ 
##指定虚拟磁盘存放位置和定义容量大小
--accelerate \
--cdrom /data/iso/CentOS-6.2-x86_64-minimal.iso \ 
##引导镜像
--vnc --vncport=5901 \ 
##vnc远程连接端口,默认为5900开始
--vnclisten=0.0.0.0 \
##指定监听地址
--network bridge=virbr0 \
##指定网络连接模式
--force

6. 利用vnc进行远控安装即可,之后的操作,相信你比我熟悉!~

    至此呢,kvm就这么愉快的搭建完成了...更高阶的用法,找你度娘吧。

记录几条常用命令:

virsh shutdown domainname
virsh define xmlfile
virsh start domainname
virsh autostart domainname

解决:

error: Failed to mark domain mytest-vm as autostarted

error: Requested operation is not valid: cannot set autostart for transient domain



virsh dominfo vm100002

virsh dumpxml vm100002

挂起和回复

virsh suspend  vm100002

virsh resume    vm100002

创建一个100G的磁盘:(好处是文件随着使用而自增,而不是一次性占据100G容量)

qemu-img create -f raw data0.img 100G