1、创建kvm
1) 收到kvm需求后,根据宿主机使用状况选择合适的机器
克隆初始化镜像
virt-clone -o vhost03 -n instance_name -f /u01/kvm/images/instance_name.img
2) 使用脚本直接进行克隆初始化机器(/root/kvm_initialize/kvm_initialize.sh)
Usage: sh kvm_initialize.sh 'instance_name' 'ip' 'memory(KB)' 'cpu' ip找网络分配即可
3)虚拟机默认磁盘大小为50G,如果有特殊需求可通过(qemu-img resize /u01/kvm/images/instance_name.img +10G)然后调整guest的lvm
2、启动
1)虚拟机创建完成后,通过virsh dominfo instance_name 查看guest的配置信息
3)将guest的UUID录入om虚拟机管理系统
4)通过virsh start instance_name 启动guest
5)使用virsh list --all 可查看状态
3)其他
开机:virsh start vm
关机:virsh shutdown vm 如果不生效,需要在 vm 中执行:yum install -y acpid
强关:virsh destroy vm
删除:virsh undefine vm
挂起:virsh suspend vm
恢复:virsh resume vm
虚拟机列表:virsh list
包含关机的虚机:virsh list --all
设置自动启动:virsh autostart vm
关闭自动启动:virsh autostart --disable vm
kvm_initialize.sh
#!/bin/bash
_instance_name=$1
_ip=$2
_memory=$3
_cpu=$4
Kvm_config(){
#initialize
unalias cp > /dev/null 2>&1
cat origin/ifcfg-eth0 > ifcfg-eth0
cat origin/network > network
cat origin/hosts > hosts
_mac=`virsh domiflist ${_instance_name} | grep br0 | awk '{print $5}'`
_img_dir=/u01/kvm/images
_config_dir=/etc/libvirt/qemu
_config_file=${_instance_name}.xml
cp ${_config_dir}/${_instance_name}.xml .
#kvm config
sed -i "s/4194304/$_memory/g" ${_config_file}
sed -i "13s/2/$_cpu/g" ${_config_file}
#ip and hostname config
sed -i "s/52:54:00:7b:90:e9/${_mac}/g" ifcfg-eth0
sed -i "s/10.10.10.100/${_ip}/g" ifcfg-eth0
sed -i "s/10-10-10-27/${_instance_name}/g" network
sed -i "s/10-10-10-27/${_instance_name}/g" hosts
#main
virt-copy-in -a ${_img_dir}/${_instance_name}.img ifcfg-eth0 /etc/sysconfig/network-scripts/
virt-copy-in -a ${_img_dir}/${_instance_name}.img network /etc/sysconfig/
virt-copy-in -a ${_img_dir}/${_instance_name}.img hosts /etc/
virsh undefine ${_instance_name}
cp ${_config_file} ${_config_dir}
virsh define ${_config_dir}/${_instance_name}.xml
}
Show(){
echo "Usage: sh kvm_initialize.sh 'instance_name' 'ip' 'memory(KB)' 'cpu' "
}
if [[ -n $1 ]] && [[ -n $2 ]] && [[ -n $3 ]] && [[ -n $4 ]];then
Kvm_config
else
Show
fi