KVM
- KVM
- KVM:前身就是qemu,(全虚拟化的软件CPU、IO、内存),主要负责:虚拟化CPU、和内存。通过/dev/kvm访问内核实现虚拟化
- QEMU:虚拟化I/O(通过硬件辅助virtio)实现虚拟化。
- 工具集
安装KVM
- 查看是否支持虚拟化
cat /proc/cpuinfo
#查看flags是否有SVM或VMX
cat /proc/cpuinfo|grep svm
cat /proc/cpuinfo|grep vmx
- 如果没有则开启虚拟化
关闭虚拟机打开设置,在处理器中开启虚拟机
- 开启虚拟化之后
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#添加BRIDGE=bro
ifconfig
#查看网卡的详细信息
vi /etc/sysconfig/network-scripts/ifcfg-bro
TYPE=Bridge #类型为桥接
DEVICE=bro
IPADDR=192.168.233.144 #ens33的IP地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.233.2 #网关,点击虚拟机工具栏的编辑,点击虚拟网络编辑器,选中VMnet8,点击下方NAT设置,查看网关
DNS1=114.114.114.114
ONBOOT=yes
BOOTPROTO=static
- 配置结束
service network restart
brctl show
#如下显示则成功
- 安装软件
yum -y install libcanberra-gtk2 qemu-kvm.x84_64 qemu-kvm-tools.x86_64 libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarch libvirt-python.x86_64 libiscsi-1.7.0-5.e16.x86_64 dbus-devel virt-clone tunctl virt-manager libvirt libvirt-python python-virtinst
yum -y install qemu-kvm python-virtinst virt-manager virt-top virt-viewer libvirt libvirt-client virt-install bridge-utils
lsmod | grep kvm
#如下显示则成功
- 存储数据池
添加硬盘创建存储池
virsh pool-list --all #显示所有存储池
virsh pool-info 存储池名 #显示存储池的详细信息
virsh pool-autostart 存储池名 #设置存储池自动启动
virsh pool-start 存储池名 #开启存储池
- 配置KVM
systemctl start libvirtd
virt-manager#打开虚拟系统管理器
- 创建虚拟机
- 上传镜像文件,保存至镜像存储池,这里用的是新添加的磁盘/dev/sdc1
- 创建数据存储库,这里用的是新添加的磁盘/dev/sdd1
virt-manager
#按照步骤创建虚拟机,并对其进行管理
- 命令行创建虚拟机
创建虚拟机磁盘分配6G
qemu-img create -o preallocation=metadata -f qcow2 /sdd1/database/winxp.qcow2 6G
安装虚拟机
virt-install --name centos71 --vcpus 1 --virt-type kvm --ram 1024 --location=/sdc1/images/iso/CentOS-7-x86_64-DVD-1804.iso --disk path=/sdd1/database/winxp.qcow2 --network bridge=bro --graphics none --extra-args='console=ttyS0' --force
安装配置VNC
- 更改模式
systemctl get-default #查看模式
#命令行模式:multi-user.target
#图形界面模式:graphical.target
systemctl set-default graphical.target #更改为图形界面模式
yum update #更新软件,不知道需不需要
- 安装软件
yum groupinstall "GNOME Desktop" "X Window System" "Desktop"
yum -y install tigervnc-server tigervnc vnc vnc-server
- 配置VNC
vim /usr/lib/systemd/system/vncserver@.service
#修改如下内容
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
vncpasswd #修改密码 ,最后选择n
systemctl daemon-reload
systemctl start vncserver@:1.service #开启服务
systemctl enable vncserver@:1.service# 配置开机自启
ss -ntl
#如下5901端口开启表示成功。
操作命令
- virsh shutdown winxp //关闭虚拟机
- virsh start winxp //启动虚拟机
- virsh destroy winxp //停止虚拟机(关闭后状态仍然是运行,停止才会删除,关闭状态)
- virsh suspend winxp //挂起、暂停
- virsh resume winxp //恢复
- virsh autostart winxp //开机自运行
- virsh dumpxml 虚拟机名称 > 路径
删除KVM虚拟机
- virsh undefine winxp #取消定义
- virsh destroy winxp //先关闭再删除,或者先删除再关闭,一样能删除
- virsh undefine winxp
- virsh list –all //查看虚拟机状态
克隆-(centos7.4版本已经没有以下命令了)
- virsh list –all
- virt-clone -o 源虚拟机名称 -n 克隆后的虚拟机名称 -f 克隆后的虚拟机磁盘镜像路径
- virsh start 克隆后的虚拟机名称
virt-install管理虚拟机
克隆KVM虚拟机
- virsh susspend VM7
- virt-clone –connect qemu:///system –original VM7 –name VM8 –file XXXX
- virsh resume VM7
- virsh start VM8
快照
- virsh snapshot-create centos7u4-node #创建快照
- virsh snapshot-revert centos7u4-node XXXXX #恢复快照后面加快照号
- virsh snapshot-list centos7u4-node #查看虚拟机centos7u4的快照
版权声明:本文为qq_42747099原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。