设为首页 收藏本站
查看: 1475|回复: 0

[经验分享] KVM虚拟机在CentOS6.4上的应用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-4-19 21:23:28 | 显示全部楼层 |阅读模式
KVM虚拟机虽然没有Vmware那么强大,但是在基于它在linux平台的开源性和免费性还是受到了不少人的欢迎。企业中大部分用的都是Linux系统,想要发挥服务器的最佳性能,当然离不了虚拟化,要获得高性价比就要用到KVM 。KVM的装机、快照(克隆)功能是如何实现的呢?下面介绍的是在CentOS6.4上部署PXE环境来实现自动安装Rhel6.4,利用qcow2增量镜像实现克隆虚拟机功能。
1、安装配置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

2、启动tftp服务
# vim /etc/xinetd.d/tftp
# mkdir /tftpboot
server_args             = -s /tftpboot
disable                 = no
# service xinetd restart

3、拷贝相关文件到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

4、拷贝光盘文件到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

5、生成ks文件
# system-config-kickstart

6、关闭NetworkManager服务
# service  NetworkManager  stop
# chkconfig  NetworkManager  off

7、网卡改名
# vim /etc/udev/rules.d/70-persistent-net.rules
查看mac地址,把指定mac地址的网卡改成你需要的名字
# modprobe  -rv  e1000       //停止网卡驱动
# modprobe  -v   e1000       //重新加载网卡驱动

8、配置br0和eth0
# 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

9、编写系统安装脚本
# 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"

10、编写建立虚拟机快照的脚本,实际就是针对当前虚拟机状态的克隆
# 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"/<name>$BASE_VM/s/$BASE_VM/$NEW_VM/" /tmp/$BASE_VM.xml
sed -i"/<uuid>/s/<uuid>.\{36\}/<uuid>$(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."

11、编写删除快照的脚本
# 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、启动名称为rhel6base的GUEST主机
# 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


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-17830-1-1.html 上篇帖子: KVM虚拟机克隆Linux系统后找不到eth0网卡的问题 下篇帖子: KVM虚拟机的应用 虚拟机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表