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

KVM虚拟机在CentOS6.4上的应用

KVM虚拟化基于它在的开源性受到了不少人的欢迎。KVM的装机、克隆功能是如何实现的呢?下面介绍的是在CentOS6.4上部署PXE环境来实现自动安装Rhel6.4,利用qcow2增量镜像实

KVM虚拟化基于它在开源性受到了不少人的欢迎。KVM的装机、克隆功能是如何实现的呢?下面介绍的是在CentOS6.4上部署PXE环境来实现自动安装Rhel6.4,利用qcow2增量镜像实现克隆虚拟机功能。

  我们可以通过以下命令来查看CPU是否支持全虚拟化!找到flags部分,如果其中输出有VMX或SVM,即表明支持虚拟化技术。

# egrep '(vmx|svm)' /proc/cpuinfo

flags       : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tscarch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16xtpr pdcm lahf_lm tpr_shadow

flags       : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tscarch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16xtpr pdcm lahf_lm tpr_shadow

1、安装KVM虚拟机软件

# yum groupinstall "Virtualization" "Virtualization Client""Virtualization Platform" -y 

# yum install qemu-kvm virt-manager libvirt -y 

# lsmod |grep kvm                                  //kvm模块一定要加载

kvm_intel              53484  0

kvm                  316506  1 kvm_intel

# service libvirtd start                            //启动libvirt服务


2、安装配置PXE所需的软件并配置dhcp

# yum install -y dhcp tftp-server syslinuxsystem-config-kickstart vsftpd

# vim /etc/dhcp/dhcpd.conf

subnet 192.168.10.0 netmask 255.255.255.0 {

      option  routers  192.168.10.254;

      option  domain-name-servers  192.168.10.254;

      range  192.168.10.10  192.168.10.200;

      next-server  192.168.10.1;

      filename  "pxelinux.0";

        }

# service dhcpd start

# chkconfig dhcpd on


3、启动tftp服务

# vim /etc/xinetd.d/tftp

# mkdir /tftpboot

server_args             = -s /tftpboot

disable                 = no

# service xinetd restart


4、拷贝相关文件到tftp下载目录

# mkdir /tftpboot

# cd /media/isolinux/

# cp -r * /tftpboot/

# cp /usr/share/syslinux/pxelinux.0/tftpboot/

# mkdir pxelinux.cfg

# mv isolinux.cfg pxelinux.cfg/default

# vim default

label linux

menu label ^Install or upgrade an existing system

menu default

kernel vmlinuz

append initrd=initrd.img ks=ftp://192.168.10.1/ks.cfg


5、拷贝光盘文件到ftp下载目录启动ftp服务并配置基于rhel6.4的yum

# cd /media

# mkdir rhel6

# cp -r * /var/ftp/rhel6

# service vsftpd start

# chkconfig vsftpd on

# vim /etc/yum.repo.d/redhat.repo

[red]

name=red hat

baseual=file:///var/ftp/rhel6/

enabled=1

gpgcheck=0


6、生成ks文件

# system-config-kickstart


7、关闭NetworkManager服务

# service  NetworkManager  stop

# chkconfig  NetworkManager  off


8、网卡改名

# vim /etc/udev/rules.d/70-persistent-net.rules

查看mac地址,把指定mac地址的网卡改成你需要的名字

# modprobe  -rv  e1000       //停止网卡驱动

# modprobe  -v   e1000       //重新加载网卡驱动


9、创建桥接网卡br0并配置br0eth0

# cp ifcfg-eth0  ifcfg-br0

# cat ifcfg-br0

DEVICE=br0

TYPE=Bridge

OnBOOT=yes

NM_COnTROLLED=yes

BOOTPROTO=none

IPADDR=192.168.10.1

PREFIX=24


# cat ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

OnBOOT=yes

NM_COnTROLLED=yes

BOOTPROTO=none

BRIDGE=br0

service network restart


10、编写系统安装脚本

# vim install.sh

#!/bin/bash

cd  /var/lib/libvirt/images/

qemu-img create  -f  qcow2 rhel6base.img 80G

/usr/sbin/virt-install \

  --vnc \

  --noautoconsole \

  --name=rhel6base \

  --ram=1024 \

  --arch=x86_64 \

  --vcpus=1 \

  --os-type=linux \

  --os-variant=rhel6 \

   --hvm \

  --accelerate \

  --disk=/var/lib/libvirt/images/rhel6base.img \

  -m 52:54:00:00:01:00 \

  -w bridge=br0 \

  --location=ftp://192.168.10.1/rhel6 \

  --extra-args="ks=ftp://192.168.10.1/ks.cfg"


11、编写克隆虚拟机的脚本

# vim clone.sh

#!/bin/bash


IMG_DIR=/var/lib/libvirt/images

BASE_VM=rhel6base

E_NOINPUT=65

E_NOTNUM=66

E_OUT_OF_RANGE=67

E_VM_EXISTS=68

read -p "please input a vm number:" NEW_VMNU

if [ -z $NEW_VMNU ]; then

echo "You must input a number."

exit $E_NOINPUT

fi

if [ $NEW_VMNU != $(echo"$NEW_VMNU*1" | bc) ]; then

echo "You must input a number."

exit $E_NOTNUM

fi

if [ $NEW_VMNU -lt 1 -o $NEW_VMNU -gt 254]; then

echo "You must input a number between 1 and 254"

exit $E_OUT_OF_RANGE

fi

NEW_VM=${BASE_VM}node${NEW_VMNU}

if [ -e $IMG_DIR/$NEW_VM.img ]; then

echo "$NEW_VM already exists"

exit $E_VM_EXISTS

fi

echo -en "creating diskimage......\t\t"

qemu-img create -b $IMG_DIR/$BASE_VM.img -fqcow2 $IMG_DIR/$NEW_VM.img &> /dev/null

echo -e "\e[32m[OK]\e[0m"

echo

virsh dumpxml $BASE_VM >/tmp/$BASE_VM.xml

MAC_ADDR=$(echo"obase=16;$NEW_VMNU" | bc)

sed -i"/$BASE_VM/s/$BASE_VM/$NEW_VM/" /tmp/$BASE_VM.xml

sed -i"//s/.\{36\}/$(uuidgen)/"/tmp/$BASE_VM.xml

sed -i "/$BASE_VM\.img/s/$BASE_VM\.img/$NEW_VM\.img/"/tmp/$BASE_VM.xml

sed -i "/macaddress/s/00'/$MAC_ADDR'/" /tmp/$BASE_VM.xml

virsh define /tmp/$BASE_VM.xml &>/dev/null

echo "$NEW_VM created."


12、编写删除克隆机的脚本

# vim undefine.sh

#!/bin/bash

IMG_DIR=/var/lib/libvirt/images

BASE_VM=rhel6basenode

read -p "please input a vm number:" NEW_VMNU

virsh undefine ${BASE_VM}${NEW_VMNU}

rm -rf ${IMG_DIR}/${BASE_VM}${NEW_VMNU}.img



附:

virsh命令

1、查看虚拟机列表

# virsh  list

# virsh  list  --all

2、查看virsh版本

# virsh  version

3、启动名称为rhel6baseGUEST主机

# virsh  start  rhel6base

4、强制关闭GUEST主机

# virsh  destroy  rhel6base

5、导出GUEST主机的XML配置文件

# virsh  dumpxml  rhel6base >  ~/rhel6base.xml

6、取消GUEST主机的定义

#  virsh  undefine ~/rhel6base

7、使用已经存在的xml文件和磁盘文件定义GUEST主机

# virsh  define  ~/rhel6base.xml

8、设置GUEST主机在HOST主机启动时,也会自动启动

# virsh  autostart  rhel6base


本文出自 “沙漏” 博客,请务必保留此出处http://1570880775.blog.51cto.com/3105756/1398473


推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
author-avatar
lw65112779
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有