KVM虚拟机安装及模板机制作(后端盘)(二)

作者: oldboy 分类: Openstack 发布时间: 2022-08-02 14:23

搭建机房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的问题

KVM虚拟机设置虚拟机的CPU型号与物理机相同

修改虚拟机的线程数(使用xming软件把图形映射到本地virt-manager)

虚拟机分区:/boot 1G (标准分区)
/ 其余全部(LVM分区),方便日后扩容

CentOS7优化系统

修改网卡配置文件

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

此时就可以使用链接克隆方式创建虚拟机了

自动创建KVM虚拟机脚本(链接克隆)

需要把脚本里的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

问题总结:

宿主机内存不够会报此错

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

标签云