KVM虚拟机安装及模板机制作(后端盘)(二)
1、创建镜像盘
qemu-img create -f qcow2 /var/lib/libvirt/images/template-c7.9.qcow2 100G
2、通过命令安装虚拟机
创建桥接网络
cp /etc/sysconfig/network-scripts/ifcfg-em1{,.bak} #需要安装brctl yum install -y bridge-utils brctl addbr br0 cat >/etc/sysconfig/network-scripts/ifcfg-br0<<EOF DEVICE="br0" ONBOOT="yes" TYPE="Bridge" BOOTPROTO=static IPADDR=61.160.195.107 NETMASK=255.255.255.0 GATEWAY=61.160.195.1 DNS1=218.2.2.2 DEFROUTE=yes EOF cat >/etc/sysconfig/network-scripts/ifcfg-em1<<EOF DEVICE="em1" ONBOOT="yes" TYPE=Ethernet BOOTPROTO=static BRIDGE="br0" EOF systemctl restart network
命令安装虚拟机(虚拟机内存有损失205M,最大内存稍微大点,比如10000M,这样虚拟机开到8G内存就是8397M不会报错)
virt-install \ --name=template-c7.9 \ --virt-type kvm \ --memory 4096,maxmemory=9000 \ --vcpus 4,maxvcpus=8 \ --cdrom=/mnt/CentOS-7.9-x86_64-DVD-2009.iso \ --disk path=/var/lib/libvirt/images/template-c7.9.qcow2 \ --network network=default \ --graphics vnc,listen=0.0.0.0 --noautoconsole
安装server2008R2_datacenter虚拟机
qemu-img create -f qcow2 /var/lib/libvirt/images/template-08R2_Datacenter.qcow2 100G virt-install \ --name=template-08R2_Datacenter \ --virt-type kvm \ --memory 4096,maxmemory=9000 \ --vcpus 4,maxvcpus=8 \ --cdrom=/mnt/cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_vl_build_x64_dvd_617396.iso \ --disk path=/var/lib/libvirt/images/template-08R2_Datacenter.qcow2 \ --network network=default \ --graphics vnc,listen=0.0.0.0 --noautoconsole
如果是桥接模式则使用
--network bridge=br0 \ 代替 --network network=default \
如果出单意外需要重装安装(先删除虚拟机再删除配置文件)
name=template-c7.9 virsh destroy $name virsh undefine $name rm -rf /var/lib/libvirt/images/$name.qcow2
使用vnc软件连接安装系统
3、制作模板机(后端盘)
解决virsh console 进虚拟机卡住不能进入shell的问题
修改虚拟机的线程数(使用xming软件把图形映射到本地virt-manager)
虚拟机分区:/boot 1G (标准分区)
/ 其余全部(LVM分区),方便日后扩容
修改网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens3
TYPE="Ethernet"
BOOTPROTO="none"
DEVICE="ens3"
ONBOOT="yes"
同步时间
yum install -y ntpdate ntpdate 61.160.236.160 echo "0 */1 * * * /usr/sbin/ntpdate 61.160.236.160 &>/dev/null" >>/var/spool/cron/root
清空操作历史记录
history -c > ./bash_history
做好以上操作查看磁盘镜像文件不到3个G
此时就可以使用链接克隆方式创建虚拟机了
需要把脚本里的c7.9改成template-c7.9
[root@kvm ~]# vim clone-host.sh
#!/bin/bash [ $# -ne 1 ]&&echo "USAGE:$0 虚拟机名"&&exit cd /var/lib/libvirt/images/ if [ -e $1.qcow2 ];then echo "$1.qcow2 file exist!" exit else qemu-img create -f qcow2 -b template-c7.9.qcow2 $1.qcow2 &> /dev/null if [ $? -ne 0 ];then echo "创建磁盘镜像文件失败" exit else echo "创建磁盘镜像文件成功" fi fi cd /etc/libvirt/qemu/ if [ -e $1.xml ];then echo "$1.xml file exist!" exit else sed "s#template-c7.9#$1#g" template-c7.9.xml >$1.xml if [ $? -ne 0 ];then echo "创建配置文件失败" exit else echo "创建配置文件成功" sed -i '/uuid/d' $1.xml if [ $? -ne 0 ];then echo "删除uuid失败" exit else echo "删除uuid成功" fi sed -i '/<mac/d' $1.xml if [ $? -ne 0 ];then echo "删除mac失败" exit else echo "删除mac成功" fi fi fi virsh define $1.xml &> /dev/null if [ $? -ne 0 ];then echo "创建$1虚拟机失败" exit else echo "创建$1虚拟机成功" fi virsh start $1 &> /dev/null if [ $? -ne 0 ];then echo "$1虚拟机开机失败" exit else echo "$1虚拟机开机成功" fi echo "$1对应vnc端口$(virsh vncdisplay $1)"
创建一个nyc虚拟机
bash clone-host nyc
热迁移
就是把磁盘的镜像文件放在nfs共享目录内,方便热迁移的时候主机不中断。
热添加CPU/内存
热添加内存(升级到8G要多加205M)
virsh setmem 虚拟机名 8397M --live --config
热缩减内存
virsh setmem 虚拟机名 4301M --live --config
热添加CPU,不支持缩减
virsh setvcpus nyc 8 --live --config
问题总结:
宿主机内存不够会报此错