热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS系统下试用KVM虚拟机

最近整理公司的几台服务器,由于机器少应用多,就总是觉得服务器资源紧张,所以痛下决心使用虚拟机。考察了一番决定使用KVM,因为机器配置不是很高,使用KVM性能会比较好。基础系统选用CentOS5.4,下面列出具体的安装配置过程安装CentOS操作系统下载CentO

最近整理公司的几台服务器,由于机器少应用多,就总是觉得服务器资源紧张,所以痛下决心使用虚拟机。考察了一番决定使用KVM,因为机器配置不是很高,使用KVM性能会比较好。

基础系统选用CentOS5.4,下面列出具体的安装配置过程
安装CentOS操作系统

下载CentOS5.4,安装是使用Server模式,不安装任何桌面,毕竟图形桌面太占资源,在选择软件时启用下面的几项:

   开发工具

   开发库

   虚拟化--KVM

    虚拟化--KVM 起初我没有启用KVM,因为我想自己编译安装KVM,结果在装载内核kvm-amd模块时总是不成功!

安装完成后首先启用内核的kvm-amd模块,如果你的机器是intel的就改成kvm-intel,命令如下

[root@localhost ~]# modprobe kvm-amd

如果没有提示任何错误就成功了,可以使用lsmod | grep kvm查看是否装载成功,命令如下

[root@localhost ~]# lsmod | grep kvm kvm_amd 68648 1 kvm 223264 2 ksm,kvm_amd

看到如上类似的输出就表示启用kvm模块成功!
编译安装KVM

CentOS的yum源里提供的kvm版本太低,所以我决定自己编译安装。首先下载kvm源码包,然后解压,命令如下

[root@localhost ~]# tar zxvf qemu-kvm-0.12.3.tar.gz

接下来开始编译、安装,进入解压后的目录,命令如下:

[root@localhost /]# ./configure --prefix=/usr
[root@localhost /]# make
[root@localhost /]# make install

编译很快,基本上几秒就完成了,如果没有出现什么错误,那么恭喜你!KVM已经成功安装了!

    KVM版本 目前官方的最高版本是0.13.0,可是我使用发现无法通过vns连接虚拟机,所以只好放弃,使用0.12.3版本就一切正常。

搞定虚拟机网桥

虚拟机最重要的是保证网络能正常访问,否则就没有意义了。启用kvm网桥要安装两个软件bridge-utils和tunctl。 bridge-utils可以使用yum安装,命令如下:

yum install bridge-utils

tunctl在源里没有找到,需要下载rpm包手工安装,命令如下:

[root@localhost /]# wget -c 'ftp://194.199.20.114/linux/EPEL/5Server/x86_64/tunctl-1.5-2.el5.x86_64.rpm'
[root@localhost /]# rpm -ivh tunctl-1.5-2.el5.x86_64.rpm

接下来编辑网桥配置文件,新建一个名字为vmbridge.sh的shell文件,使用vim编辑,命令如下

[root@localhost /]# vim vmbridge.sh

然后在新建的文件中加入如下内容

#!/bin/bash modprobe tun   #加载tun模块
tunctl -t tap0 -u root  #先是新建一个名为tap0的虚拟网卡,所有者为当前用户
tunctl -t tap1 -u root
tunctl -t tap2 -u root
tunctl -t tap3 -u root
tunctl -t tap4 -u root
tunctl -t tap5 -u root
tunctl -t tap6 -u root
brctl addbr br0   #新建一个名为br0的网桥
ifconfig eth0 0.0.0.0 promisc #eth0进入promiscuous模式,不过执行此步之前最好记录原来eth0的IP,避免后面出现IP冲突
brctl addif br0 eth0    #将eth0加入br0.
ifconfig br0 up         #活br0
dhclient br0            #获取br0的IP
brctl addif br0 tap0    #将tap0加入br0
brctl addif br0 tap1
brctl addif br0 tap2
brctl addif br0 tap3
brctl addif br0 tap4
brctl addif br0 tap5
brctl addif br0 tap6
ifconfig tap0 up       #激活tap0
ifconfig tap1 up
ifconfig tap2 up
ifconfig tap3 up
ifconfig tap4 up
ifconfig tap5 up
ifconfig tap6 up
chmod a+rw /dev/net/tun

以上的9个步骤就设置了一个虚拟网卡tap0,上面的例子中我一共创建了7个虚拟网卡,如果想设置更多的网卡参考上次的内容自行添加即可。

接下来给vmbridge.sh赋予可执行权限,命令如下:

[root@localhost /]# chmod a+x vmbridge.sh

然后把它加入系统启动里,这样每次启动系统就自动创建了7个虚拟网卡。命令如下:

[root@localhost /]# echo '/kvm/vmbridge.sh' >> /etc/rc.local

OK! 虚拟网卡已经配置完毕,你可以手动执行下vmbridge.sh,或者马上重启下系统,然后使用ifconfig命令查看一下是否出现了新建的虚拟网卡。
安装VNC服务器

这步简单,两条命令搞定,命令如下:

[root@localhost /]# yum install vnc-server
[root@localhost /]# service vncserver start

现在可以查看一下VNC是否已经运行,执行下面的命令查看

[root@localhost /]# service vncserver status Xvnc 已停

虽然显示Xvnc 已停,但其实是运行的,可以正差访问
创建KVM虚拟机

所有的前期配置都OK了,下面可以创建KVM虚拟机了。 首先创建一个大小为40G的镜像文件用来安装WinXP虚拟机。命令如下

[root@localhost /]# qemu-img create -f qcow2 /kvm/vmimg/kvm-xp.img 40G

现在开始安装WinXP虚拟机,使用如下命令:

[root@localhost /]# qemu-system-x86_64 -m 1024 -drive file=/kvm/vmimg/kvm-xp.img,cache=writeback -localtime -net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no -boot d -cdrom /home/lm/iso/winxp.iso -smp 2 -soundhw es1370 -vnc 192.168.1.1:1 &

解释一下参数都是什么意思

root@localhost /]# qemu-system-x86_64 -m 1024 -drive file=/kvm/vmimg/kvm-xp.img,cache=writeback -localtime -net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no -boot d -cdrom /home/lm/iso/winxp.iso -smp 2 -soundhw es1370 -vnc 192.168.1.1:1

   -m 1024 表示安装虚拟机时使用1024MB内存

   file=/kvm/vmimg/kvm-xp.img 指向刚刚创建的虚拟机镜像文件

   ifname=tap0 指定一个虚拟网卡

   -cdrom /home/lm/iso/winxp.iso 指定WinXP的iso安装文件

   -smp 2 指定使用CPU的核数

   -soundhw es1370 启用声卡

   -vnc 192.168.1.1:1 指定VNC访问IP和端口

然后用VNC客户端连接192.168.1.1:1,就看到安装界面了。安装就不说,和以往安装XP一样的。 接下来可以访问安装好的虚拟机了。使用如下命令:

[root@localhost /]# qemu-system-x86_64 -m 1024 -drive file=/kvm/vmimg/kvm-xp.img -localtime -net nic,vlan=0,macaddr=00:00:00:00:20:02 -net tap,vlan=0,ifname=tap0,script=no -boot c -smp 2 -clock rtc -soundhw es1370 -vnc 192.168.1.1:1 &

命令格式基本和安装差不多,需要说明的是macaddr硬件地址要自己指定一个不冲突的,虚拟机可以用DHCP自动获取一个IP地址。最后用VNC客户端连接 192.168.1.1:1 就可看到XP启动界面了。如果你安装的是Linux虚拟机,可以直接用SSH访问,比较方便。

至此整个安装配置过程完毕,最后祝各位都能成功安装KVM虚拟机!


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
author-avatar
会说话的鱼911
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有