KVM创建新的虚拟机

1. 使用virt-install创建新的虚拟机

virt-install --name CentOS7.6_template --ram 2048 --vcpu=2 --virt-type kvm --cdrom=/root/Downloads/cent.iso \
--disk /var/lib/libvirt/images/CentOS7.6_template.qcow2,size=40,bus=virtio --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole 

# 命令解释:
--name                # 虚拟机名称,需全局惟一
--ram                 # 虚拟机内在大小,单位为MB
--vcpu                # VCPU个数及相关配置
--virt-type                # 使用的hypervisor,如kvm、qemu、xen等;所有可用值可以使用virsh capabilities命令获取;
--cdrom                # 光盘安装介质
--disk /var/lib/libvirt/images/CentOS7.6_template.qcow2,size=40,bus=virtio  # 指定存储设备及其属性
--network bridge=br0        # 将虚拟机连入宿主机的网络中
--graphics vnc,listen=0.0.0.0    # 使vnc可以连接,默认是5900, 通过ss -antpl | grep 59查询
--noautoconsole           # 禁止自动连接至虚拟机的控制台

2. 为统一网卡的名称为eth0所以要进行如下配置

1. 开机选择“Install Centos 7”
2. 按Tab,打开kernel启动选项后,增加 net.ifnames=0 biosdevname=0

3. 系统层面初始化配置

3.1 安装完成之后启动虚拟机,先通过vnc连接

virsh start CentOS7.6-template

3.2 连接上之后启动服务[email protected],以便宿主机能使用console命令连接

systemctl start [email protected]
systemctl enable [email protected]

3.3 关闭firewalld服务和禁用SELinux服务

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

3.4 配置网卡和DNS信息

# 配置网卡信息
cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"         # 使用静态IP地址,默认为dhcp
IPADDR="192.168.0.204"   # 设置的静态IP地址
NETMASK="255.255.255.0"    # 子网掩码
GATEWAY="192.168.0.1"    # 网关地址
DNS1="114.114.114.114"     # DNS服务器
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="95b614cd-79b0-4755-b08d-99f1cca7271b"
DEVICE="ens33"
ONBOOT="yes"             #是否开机启用

# 配置DNS
cat /etc/resolv.conf
nameserver 114.114.114.114
nameserver 223.5.5.5

# 修改主机名
hostnamectl set-hostname template

3.5 配置epel源安装常用软件

# 设置阿里源
rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
yum install -y vim git tree lsof tcp wget tcpdump nc nmap openssl-devel ntpdate 

3.6 允许root可以ssh登录

# 打开允许root允许ssh登录
sed -i 's#\#PermitRootLogin yes#PermitRootLogin yes#g' /etc/ssh/sshd_config 

# 安全配置可设置hosts.all和hosts.deny
cat /etc/hosts.allow
##IDC LAN ip
sshd:192.168.1.0/255.255.255.0
sshd:10.0.0.1/255.255.255.0

cat /etc/hosts.deny
sshd:all

# 重启sshd服务
systemctl restart sshd

3.7 修改缓存、清理历史命令,关机可作为模板

yum clean all
yum makecache
history -c

4. 使用模板创建虚拟机

# 可以制作多个不同的模板,按业务环境需求,直启动.
virt-install --name im1 --ram 4096 --vcpu=2 --virt-type kvm --disk /var/lib/libvirt/images/im1.qcow2,bus=virtio --network bridge=br0,model=virtio --import --noautoconsol

5. 压缩qcow2镜像

以下在目标虚拟机内执行

# 需要对虚拟机系统对剩余空间写零操作:
dd if=/dev/zero of=/tmp/zero.img 
删除 zero.img:
rm /tmp/zero.img

完成上述步骤后,关闭虚拟机,以下在宿主机机内执行

qemu-img convert -c -O qcow2 /path/old.qcow2 /path/new.qcow2

最后备份old.qcow2,将new.qcow2重命名为old.qcow2 启动测试,一切正常之后删除原始的镜像就结束了。

6. virsh常用命令

1、查看在运行的虚拟机
virsh list

2、查看创建的所有虚拟机
virsh list --all

3、启动虚拟机
virsh start win10   # win10是虚拟机的domain名称,下同。

4、挂起虚拟机
virsh suspend win10

5、恢复被挂起的虚拟机
virsh resume win10

6、开机启动虚拟机,即在虚拟机服务(libvirt)启动的时候,就启动虚拟机。
virsh autostart win10

7、关闭开机启动虚拟机
virsh auto start --disable win10

8、关闭虚拟机(需要ACPID服务的支持,ACPI是Advanced Configuration and PowerInterface缩写,高级配置和电源管理接口)
virsh shutdown win10

9、强制关闭虚拟机,这种方式是从virsh list列表中将虚拟机删除,仍然可以start起来
virsh destory win10

10、启动默认的网络
virsh net-start default

11、自启动默认网络
virsh net-autostart default

12、彻底删除虚拟机步骤
1)关闭虚拟机:virsh destroy win10
2)删除定义:virsh undefine win10
3)删除虚拟机文件(在/var/lib/libvirtd/下的相关文件)

你可能感兴趣的:(KVM创建新的虚拟机)