【KVM】KVM部署及常用命令

KVM部署及常用命令

KVM软件安装

1、查看cpu是否支持vt技术

cat /proc/cpuinfo | grep -E 'vmx|svm'

2、卸载kvm

yum remove `rpm -qa |egrep 'qemu|virt|KVM'` -y
rm -rf /var/lib/libvirt/ /etc/libvirt/

3、安装软件

yum install -y *qemu* *virt* librbd1-devel
qemu-KVM: 主包
libvirt:API接口
virt-manager: 图形化管理程序
kvm技术,应用到qemu+kvm
kvm负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但不能模拟其他设备
qemu是模拟IO设备(网卡+磁盘...)。
libvirt是调用kvm虚拟化技术的接口管理工具。

4、启动服务

systemctl start libvirtd

5、查看kvm模块加载

lsmod|grep kvm

guest os 安装

1、飞机驾驶舱安装和管理虚拟机

yum install cockpit -y
systemctl start cockpit

访问:

​ 浏览器访问

​ 服务器地址:9090

# 停止
systemctl stop cockpit.socket

2、图形界面安装

需要提前准备镜像文件

virt-manager

3、完全文本模式安装

# 查看kvm支持的版本
osinfo-query os|grep centos

virt-install --connect qemu:///system -n kvm1 -r 2048 --diskpath=/var/lib/libvirt/images/kvm1.img,size=7 --os-type=linux --os-variant=centos7.0 --vcpus=1 --location=ftp://192.168.0.1/centos7u4 -x console=ttyS0 --nographics

4、命令行模式

# 虚拟机配置文件位置:
ll /etc/libvirt/qemu
# 储存虚拟机的介质:
ll /var/lib/libvirt/images/

复制虚拟机介质以及配置文件。
修改配置文件:必改点:name,uuid,source file,mac address<只能修改后三位>
# 创建虚拟机
virsh define vm02.xml
# 重启
systemctl restart libvirtd
# 宿主机开启路由转发
net.ipv4.ip_forward = 1

添加磁盘:

# 修改配置文件.xml
file,dev,slot,bus

# 创建磁盘镜像文件
qemu-img create -f qcow2 /var/lib/libvirt/images/vm02-2.xml 2G

virsh define vm02.xml

KVM存储

KVM必须要配置一个目录当作存储磁盘镜像的目录,称之为存储池。

1、存储池管理

# 基于文件夹的存储池
mkdir -p /data/vmfs

# 定义存储池及其目录
virsh pool-define-as vmdisk --type dir --target /data/vmfs

# 构建存储池
virsh pool-build vmdisk
# 查看已经定义的存储池
virsh pool-list --all

# 激活并自动启动已经定义的存储池
virsh pool-start vmdisk
# 设置开机自启动
virsh pool-autostart vmdisk

# 在存储池中创建虚拟机存储卷
virsh vol-create-as vmdisk mydisk.qcow2 20G --format qcow2

相关命令:

# 在存储池中删除虚拟机存储卷
virsh vol-delete --pool vmdisk mydisk.qcow2

# 取消激活存储池
virsh pool-destroy vmdisk

# 删除存储池中定义的目录
virsh pool-delete vmdisk

# 取消定义存储池
virsh pool-undefine vmdisk

2、 磁盘格式

raw 
原始格式,性能最好

qcow2
性能不如raw,但是支持快照、支持写时拷贝、更小的储存空间、支持zlib的磁盘压缩、支持AES加密

qed
基本不用了

写时拷贝:

raw立即分配空间
qcow2只在需要空间时,才会分配空间

创建磁盘文件:

qemu-img create -f qcow2 /var/lib/libvirt/images/test.qcow2 20G
qemu-img create -f raw /var/lib/libvirt/images/test.img 20G


# 查看虚拟磁盘文件
qemu-img info test.qcow2

# 转换raw格式为qcow2格式
qemu-img convert -O qcow2 /var/lib/libvirt/images/vm2.raw /var/lib/libvirt/images/vm2.qcow2

3、 挂载磁盘

虚拟机无法启动时,通过挂载磁盘排错。利用libguestfs找出损坏的虚拟机文件。

# 查看磁盘镜像分区信息:
virt-df -h -d vm1

# 查看文件系统:
virt-filesystems -d vm1

# 挂载磁盘镜像分区
guestmount -d vm1 -m /dev/centos/root --rw /mnt

# 取消挂载
guestunmount  /mnt

KVM管理

# 查看
virsh list [--all]

# 查看虚拟机配置文件
virsh dumpxml vm1

# 拷贝vm1配置文件
virsh dumpxml vm1 > /etc/libvirt/qemu/vm121.xml

# 修改配置文件
virsh edit vm1

# 启动
virsh start vm1

# 关闭虚拟机
virsh shutdown vm1

# 重启虚拟机
virsh reboot vm1

# 重置虚拟机
virsh reset vm1

# 暂停虚拟机
virsh suspend vm1

# 恢复虚拟机
virsh resume vm1

# 删除虚拟机
virsh undefine vm1
virsh destroy vm1

# 设置虚拟机开机自启动
virsh autostart vm1
ll /etc/libvirt/qemu/autostart/ <设置autostart后创建文件>

# 关闭自启动
virsh autostart --disable vm1

# 查看所有开机自启动的guest os
virsh list --all --autostart 或者
ll /etc/libvirt/qemu/autostart/ 

虚拟机克隆

图形界面直接克隆

或者:

# 克隆之前保证虚拟机为关机状态
virt-clone -o vm02 -n vm02-2 --auto-clone
virt-clone -o vm02 -n vm02-2 --auto-clone -f /var/lib/libvirt/images/kvm1.img <指定新的磁盘镜像文件>

增量镜像

基本镜像的一个副本,节省磁盘空间,快速复制虚拟机。

# 创建增量镜像文件
qemu-img create -b /var/lib/libvirt/images/vm1.img -f qcow2 /var/lib/libvirt/images/vm2.img

# 查看增量镜像详细信息
qemu-img info /var/lib/libvirt/images/vm2.img

# 拷贝配置文件
cp /etc/libvirt/qemu/vm1.xml /etc/libvirt/qemu/vm2.xml

# 编辑配置文件
vim /etc/libvirt/qemu/vm2.xml

<name>vm2</name>
<uuid>de2739fd-bf1a-4066-b3b9-924d9ab1d27c</uuid>
...
...



然后就是修改配置文件创建虚拟机的步骤了

其他:

# 创建200M大小文件
dd if=/dev/zero of=test bs=1M count=200

快照

raw不支持快照

# 创建快照
virsh snapshot-create-as vm02 vm02.snap02

# 查看快照
virsh snapshot-list vm02

# 关闭虚拟机,恢复快照
virsh snapshot-revert vm02 vm02.snap02

# 删除快照
virsh snapshot-delete --snapshotname vm02.snap02 vm02

网络管理

分为 nat、isolated、bridge

brctl show 查看交换机信息

# 删除网络接口
brctl delif virbr0 vnet0

# 增加网络接口
brctl add virbr0 vnet0
1、桥接网卡
# 在宿主机/etc/sysconfig/network-scripts中添加网卡ifcfg-br0

TYPE=Bridge
NAME=br0
DEVICE=br0
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.18.110.73	# 宿主机ip
GATEWAY=10.18.110.254	# route命令查看
NETMASK=255.255.254.0
DNS1=114.114.114.114
DNS2=8.8.8.8

# 修改ens33网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33

DEVICE=ens33
ONBOOT=yes
BRIDGE=br0

# 重启libvirtd
systemctl restart libvirtd

# 重启networkd
systemctl restart network
2、 nat网络/isolated
# 复制默认网络配置文件
cp /etc/libvirt/qemu/networks/default.xml /etc/libvirt/qemu/networks/nat1.xml

# 修改文件 name ,uuid ,birdge.name,mac,ip
# 文件名和name一致
<network>
  <name>nat1</name>
  <uuid>5d4dc814-ed70-4b0a-be41-a0b4730893a5</uuid>
  <forward mode='nat'></forward>   # isolated网卡,只需要将forward标签删除即可
  <bridge name='nat01' stp='on' delay='0'/>
  <mac address='52:54:00:46:1c:d2'></mac>
  <ip address='192.168.2.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.2.2' end='192.168.2.254'></range>
    </dhcp>
  </ip>
</network>

# 重启libvirtd
systemctl restart libvirtd

添加网卡
# 查看所有网络
virsh net-list

# 启动网卡
virsh net-start nat1

# 设置自动启动
virsh net-autostart nat1

# 查看虚拟机的网络接口信息
virsh domiflist vm02
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yohann*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值