虚拟化是什么?
- 虚拟化是一种技术,顾名思义,就是将不可拆分的实体资源变成可以自由划分的逻辑资源,从而实现资源的整合、隔离、再分配,云计算就是利用了虚拟化技术的这个特点。
云计算是什么?
- 云计算是一种服务模式(IAAS),其思想就是把个种资源整合起来,然后租给有需要的用户,其中的资源包括处理器(cpu)、内存、存储、网络和其他基本的计算资源。通常我们通过虚拟化手段把这些资源分割打包提供给用户使用。
构建虚拟化平台:
1. 安装虚拟化平台软件包
验证是否支持虚拟化:
~]# grep -Po "vmx|svm" /proc/cpuinfo
~]# lsmod |grep kvm
2. 创建网桥
网桥文件官网手册: https://libvirt.org/docs.html
虚拟机磁盘:
3. 创建带后端盘的文件
镜像文件需要事先准备:
4. 虚拟机配置文件
5. 创建vmhost虚拟机
login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.
6. 常用管理命令
补充:
练习:
编写一个脚本用来管理虚拟机,可以完成虚拟机的批量创建、批量删除,自定义虚拟机名称等功能,现有的模板虚拟机信息如下:
- 配置文件模板:/var/lib/libvirt/images/node_base.xml
- 后端盘模板: /var/lib/libvirt/images/node_base.qcow2
参考答案:
#!/bin/bash
CONF_DIR="/etc/libvirt/qemu"
IMG_DIR="/var/lib/libvirt/images"
CONF_FILE="${IMG_DIR}/node_base.xml"
IMG_FILE="${IMG_DIR}/cirros.qcow2"
export LANG=C
. /etc/init.d/functions
function create_vm(){
if [ -e ${IMG_DIR}/${1}.xml ];then
echo_warning
echo "vm ${1}.img is exists"
return 1
else
qemu-img create -F qcow2 -b ${IMG_FILE} -f qcow2 ${IMG_DIR}/${1}.img 20G &> /dev/null
sed -re "s,#{5},${1}," ${CONF_FILE} > ${CONF_DIR}/${1}.xml
sudo virsh define ${CONF_DIR}/${1}.xml &> /dev/null
echo_success
echo "vm ${1} create successful"
fi
}
function remove_vm(){
read _ img <<<$(sudo virsh domblklist $1 2> /dev/null | awk 'NR==3{print}')
if [ -e "${img}" ];then
sudo virsh destroy $1 &> /dev/null
sudo virsh undefine $1 &> /dev/null
rm -f ${img}
echo_success
echo "vm ${1} delete successful"
fi
}
case "$1" in
create|remove)
CMD=${1}
while ((${#} > 1));do
shift
${CMD}_vm ${1}
done
;;
*)
echo "${0##*/} {create|remove} vm1 vm2 vm3 ... ..."
;;
esac
exit $?