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

centos5.6下搭建kvm虚拟机环境

RedHat的下一代旗舰产品RedHatEnterpriseLinux6只包含KVM,这一点RedHat官方已经在很久以前、在不同场合都确认过。KVM发展很快,稳定性有了很大提高,随着RHEL6的正式到来,KVM应用到生产环境的日子应该不远了。目前KVM应用比较少,一个是根据

RedHat 的下一代旗舰产品RedHat Enterprise Linux 6只包含 KVM,这一点 RedHat 官方已经在很久以前、在不同场合都确认过。KVM 发展很快,稳定性有了很大提高,随着 RHEL 6 的正式到来,KVM 应用到生产环境的日子应该不远了。目前 KVM 应用比较少,一个是根据一些测试和学术论文显示,KVM在网络性能、扩展和稳定性方面和Xen还有差距,另一个原因就是对硬件要求高(CPU 需要 Intel VT 或 AMD SVM 的支持)。不过现在硬件发展速度很快,以后应该不会有这个问题。


我们可以用KVM做什么

由于 KVM 支持全虚拟,所以可以在上面安装各类操作系统,再加上它跟FreeBSD的jail一样,属于系统自带的,我们可以用其搭建属于自己的开发展测试环境。

安装前的准备工作,我们先看看硬件配置情况,CPU和内存:


图 这个配置玩虚拟化足够了

强烈建议以下操作在真实服务器上进行,全虚拟化对CPU负载还是比较大的。如果学习的话可以拿台式机代替。

以下步骤将在CentOS 5.6上搭建起你的KVM虚拟机。

首先要保证你的CPU支持虚拟化。执行以下命令查看CPU的flag信息,里面包含svm的flag就说明支持虚拟化:

[root@localhost ~]# egrep '(vmx|svm)' --color=always /proc/cpuinfo
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse

安装KVM运行所需要的软件包:

yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager ibvirt libvirt-python python-virtinst

或者用下面这句也行:

yum groupinstall KVM

另外,如果后面想用virt-manager图形化安装和管理虚拟机的话,CentOS 5.6需要作一些配置和改动。由于我在安装前就选择了gnome图形化界面,所以我想用Xmanager 3.0图形化管理此机器,过程如下:


一、添加XDMCP协议支持,让服务器打开177端口

我们可以更改/etc/gdm/custom.conf文件,在

[xdmcp]项下添加

Enable=1


二、服务器自身关闭iptables及SElinux


三、保证服务器以图形化界面启动,即运行在5模式下

这个我们可以能过更改/etc/inittab文件来实现,参考Linux运行级概述。

做完这些后重启服务器即可,然后我们就可以通过Xmanager 3的X-browser来远程管理CentOS 5.6的桌面了。

相关阅读:Xmanager 3.0企业版实用技巧集锦

当然了,如果要用root登录,对于GDM添加:

vi /etc/gdm/custom.conf [security] AllowRemoteRoot=true

#vim /etc/securetty 结尾增加

pts/0 pts/1 pts/2 pts/3 pts/4

以下是更改CentOS 5.6的认证模块

vim /etc/pam.d/login 注释第一行 #auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so vim /etc/pam.d/remote 注释第一行 #auth       required     pam_securetty.so

重新启动服务器即可,可用lsof -i:177命令查看端口是否开放。

在服务器上增加一个br0网桥设备,方便与虚拟机直连,步骤如下:

一、首先修改网卡文件,vim /etc/sysconfig/network-scripts/ifcfg-eth0,作如下修改:

DEVICE=eth0
#BOOTPROTO=static
#BROADCAST=192.168.1.255
HWADDR=00:E0:62:12:7B:65
#IPADDR=192.168.1.101
#NETMASK=255.255.255.0
#NETWORK=192.168.1.0
OnBOOT=yes
BRIDGE=br0

二、增加网桥设备的文件,如vim /etc/sysconfig/network-scripts/ifcfg-br0,

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.1.101
NETMASK=255.255.255.0
NETWORK=192.168.1.0
OnBOOT=yes

修改完毕后重启网络

service network restart

或者

/etc/init.d/network restart

查看一下网络设置是否生效:

[root@localhost ~0m]# ifconfig
br0       Link encap:Ethernet  HWaddr 00:E0:62:12:7B:65
          inet addr:192.168.1.101  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:29 errors:0 dropped:0 overruns:0 frame:0
          TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2034 (1.9 KiB)  TX bytes:10052 (9.8 KiB)
eth0      Link encap:Ethernet  HWaddr 00:E0:62:12:7B:65
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:494 errors:0 dropped:0 overruns:0 frame:0
          TX packets:554 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:43921 (42.8 KiB)  TX bytes:67020 (65.4 KiB)
          Interrupt:50
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3208 (3.1 KiB)  TX bytes:3208 (3.1 KiB)
virbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:4094 (3.9 KiB)

接下来的话,我们就可以直接在服务器上用图形化命令Virt-manager来创建一个CentOS 5.6的虚拟机了。由于要用到物理机本身的光驱,所以这里需要挂载下:

mount /dev/cdrom /mnt

记得将CentOS 5.6的DVD光盘放进光驱里。

然后在终端下执行命令virt-manager创建虚拟机,由于操作与vmware server类似,都是基于图形化的操作。过程比较简单,我这里也不用文字详细说明了,相关说明可以参考RHEL 6上搭建KVM虚拟机一文。virt-manager效果图如下:

创建第一台虚拟机的图如下:

我们成功创建完第一个虚拟机后,我由于测试的需要,还需要创建三个虚拟机,我们可以在终端下依次输入命令,复制虚拟机:

virt-clone --cOnnect=qemu:///system -o centos1 -n centos2 -f /datata/kvm/centos2.img
virt-clone --cOnnect=qemu:///system -o centos1 -n centos3 -f /datata/kvm/centos3.img
virt-clone --cOnnect=qemu:///system -o centos1 -n centos4 -f /datata/kvm/centos4.img

-o表示旧的虚拟机名称,-n表示新的虚拟机名称,-f表示新的虚拟机路径。

我们全部运行后,可以看下virt-manager的效果图,如下:

系统稳定运行一段时间后,我们可以通过uptime命令观测系统负载,它们不是特别大。

[root@kvm centos10m]# uptime
00:43:08 up 2:04, 1 user, load average: 0.92, 0.77, 0.81

这样的话,我们就在这台服务器上成功运行了四台64bit CentOS 5.6的机器,KVM环境搭建成功。



推荐阅读
  • 构建个人多节点Linux环境(CodeSheep)
    本文介绍如何通过虚拟机搭建一个多节点的Linux环境,这对于学习、实验和项目部署都具有重要意义。文章详细讲解了网络IP设置、节点间通信等关键步骤。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中安装 Python 3.7 的步骤,包括编译工具的安装、Python 3.7 源码的下载与编译、软链接的创建以及常见错误的处理方法。 ... [详细]
  • CentOS7通过RealVNC实现多人使用服务器桌面
    背景:公司研发团队通过VNC登录到CentOS服务器的桌面实现软件开发工作为防止数据外泄,需要在RealVNC设置禁止传输文件、访问粘贴板等策略过程&# ... [详细]
  • Centos7 Tomcat9 安装笔记
    centos7,tom ... [详细]
  • 本文详细介绍了如何在 CentOS 7 及其衍生发行版(如 Red Hat, Oracle, Scientific Linux 7)上安装和完全卸载 GitLab。包括安装必要的依赖关系、配置防火墙、安装 GitLab 软件包以及常见问题的解决方法。 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • Linux 防火墙与端口管理必备命令
    在使用 Linux 系统进行服务部署和问题排查时,防火墙和端口管理是不可或缺的操作。本文将详细介绍如何查看防火墙状态、端口占用情况,以及如何开放和关闭端口,帮助初学者更好地掌握这些技能。 ... [详细]
  • 龙蜥社区开发者访谈:技术生涯的三次蜕变 | 第3期
    龙蜥社区的开发者们通过自己的实践和经验,推动着开源技术的发展。本期「龙蜥开发者说」聚焦于一位资深开发者的三次技术转型,分享他在龙蜥社区的成长故事。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
  • 在Python编程中,经常需要处理文件下载的任务。本文将介绍三种常用的下载方法:使用urllib、urllib2以及requests库进行HTTP请求下载,同时也会提及如何通过ftplib从FTP服务器下载文件。 ... [详细]
  • 本文详细介绍如何在华为鲲鹏平台上构建和使用适配ARM架构的Redis Docker镜像,解决常见错误并提供优化建议。 ... [详细]
author-avatar
谢世雯62956
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有