kvm笔记

环境

hostnameIPservice
kvm01192.168.236.156kvm
kvm02192.168.236.157kvm
nfs192.168.236.156nfs

安装

安装方式1: 安装centos系统时,选择安装类型为 Virtualizaiton Host

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OViLaLib-1627877859168)(images/image-20210802092357499.png)]

安装方式2:在已有的centos上安装kvm

使用kvm需要确认内核开启了kvm的模块

lsmod |grep kvm	
    kvm_intel             188740  0 
    kvm                   637289  1 kvm_intel
    irqbypass              13503  1 kvm

安装kvm相关工具

yum install libvirt virt-install qemu-kvm  -y

创建虚拟主机

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos701 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/iso/CentOS-7-x86_64-DVD-2009.iso --network=default --graphics vnc,listen=0.0.0.0 --noautoconsole


virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos702 --memory 1024 --vcpus 1 --disk /opt/centos702.qcow2,format=qcow2,size=10 --cdrom /opt/iso/CentOS-7-x86_64-DVD-2009.iso --network=default --graphics vnc,listen=0.0.0.0 --noautoconsole


virt-type: 		虚拟化类型
os-type:		操作系统类型
os-variant:		操作系统发行版
name:			虚拟机名字 (唯一)
memory:			内存大小 M
vcpus:			CPU核数
disk:			磁盘文件
format:			磁盘文件格式,有raw和qcow2,默认为raw
size:			磁盘大小,G
cdrom:			镜像文件
network:		网络,默认为NAT
graphics:   	图形化
noautoconsole:	不自动试图连接到客户机控制台。默认调用一个VNC客户端显示图形控制台,或者运行"virsh" "console"显示文本控制台	

virsh 命令

virsh list    只显示正在运行的 
virsh list --all 显示所有
virsh shutdown 关机 	需要存在系统
virsh destroy  关机 强制关机
virsh reboot  重启 需要存在系统
virsh start 开机

导出配置文件
virsh dumpxml
virsh dumpxml centos701  > vm_centos701_$(date +%F).xml

删除配置
virsh undefine  建议先destroy 在undefine

virsh define 导入配置
virsh edit 修改配置

virsh domrename  重命名

virsh suspend 挂起
virsh resume  恢复


virsh autostart  开机自启
virsh autostart --disable  取消开机自启

使用console进入虚拟机

kvm宿主机执行
	grubby --update-kernel=ALL --args="console=ttyS0"
重启

执行 virsh console 

磁盘管理

qemu-img info  查看磁盘信息
qemu-img info  centos701.raw

qemu-img create  创建磁盘
qemu-img create test.row 3G
qemu-img create -f qcow2  test.qcow2 3G

qemu-img resize 调整磁盘大小
qemu-img resize test.row  4G  调整到4G
qemu-img resize test.row  +4G 加4G
qemu-img resize test.row  -4G 减4G 不要对磁盘进行缩容的操作,防止数据丢失

qemu-img convert 磁盘格式转换 
-c 压缩
将centos701.raw的磁盘文件的raw格式转换成qcow2格式,并生成磁盘文件centos701.qcow2
qemu-img  convert -f raw -O qcow2 centos701.raw  centos701.qcow2

快照

只有qcow2格式支持快照,快照保存在qcow2的磁盘文件中

virsh snapshot-create-as  创建快照
virsh snapshot-create-as centos701 --name test 创建centos701快照test 

virsh snapshot-list 查看快照
virsh snapshot-list centos701

virsh snapshot-revert 恢复快照
virsh snapshot-revert centos701  --snapshotname test

virsh snapshot-delete 删除快照
virsh snapshot-delete centos701  --snapshotname test 

修改密码

qemu-guest-agent   虚拟机中运行该软件,可以实现在宿主机修改密码

在宿主机上修改密码
virsh set-user-password  --user root --password 123456 centos701

克隆

完全克隆和链接克隆

完全克隆
自动
virt-clone -o centos701 -n centos701_clone -f /opt/centos701_clone.qcow2

virt-clone -o centos702_clone -n centos702_clone_clone --auto-clone 配置文件在/etc/libvirt/qemu/下

手动
1.克隆配置文件
virsh dumpxml centos702 > centos702_clone.xml

2.克隆磁盘
qemu-img convert -f qcow2 -O qcow2 centos702.qcow2  centos702_clone.qcow2

3.修改配置文件
vim centos702_clone.xml 
"修改虚拟机名字"
"删除uuid"
"删除mac"
"修改disk路径和格式"

4.导入配置文件
virsh define centos702_clone.xml 


链接克隆
1.克隆配置文件
virsh dumpxml centos701_clone > centos701_clone_link_clone.xml

2.创建链接的磁盘
qemu-img create -f qcow2 -b centos701_clone.qcow2 centos701_clone_link_clone.qcow2

3.修改配置文件
 vim centos701_clone_link_clone.xml
"修改虚拟机名字"
"删除uuid"
"删除mac"
"修改disk路径和格式"

4.导入配置文件
virsh define centos701_clone_link_clone.xml

配置桥接网络

1.编辑宿主机的网卡配置文件,取消dhcp
cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
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=8807c9b6-ef63-4988-8fba-36fc15bbf71e
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.236.156
NETMASK=255.255.255.0
GATEWAY=192.168.236.2
DNS1=223.5.5.5
DNS2=8.8.8.8

2.关闭NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager

3.创建桥接网络  /etc/sysconfig/network-scripts/ifcfg-ens33被修改,新增/etc/sysconfig/network-scripts/ifcfg-br0配置文件
virsh iface-bridge  ens33 br0

取消桥接
virsh iface-unbridge br0


新建虚拟机设置桥接模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos703 --memory 1024 --vcpus 1 --disk /opt/centos703.qcow2,format=qcow2,size=10 --cdrom /opt/iso/CentOS-7-x86_64-DVD-2009.iso --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole


将现有虚拟机的nat模式修改成桥接模式
1.关闭需要修改的的虚拟机
 virsh shutdown centos701

2.修改配置
virsh edit centos701 

<interface type='bridge'>
      <source bridge='br0'/>

热添加磁盘

查看centos701虚拟机的磁盘情况
virsh domblklist centos701

1.创建磁盘
qemu-img create -f qcow2 centos701_add01.qcow2 2G

2.附加磁盘到虚拟机centos701  默认是raw格式,通过subdriver参数指定格式  此时为临时生效,需永久生效需加上--config参数(重启生效)
virsh attach-disk centos701 /opt/centos701_add01.qcow2  vdb --subdriver qcow2
 
3.格式化磁盘(虚拟机中操作)
mkfs.xfs /dev/vdb

4.挂载(虚拟机中操作)



数据盘扩容
1.卸载磁盘(虚拟机中操作)

2.分离需要扩容的数据盘
virsh detach-disk centos701 vdb

3.扩容
qemu-img resize centos701_add01.qcow2 +2G

4.附加磁盘
virsh attach-disk centos701 /opt/centos701_add01.qcow2  vdb --subdriver qcow2

5.重新挂载(虚拟机中操作)

6.同步文件系统(虚拟机中操作)
xfs_growfs /dev/vdb

迁移

kvm分静态和动态迁移,静态迁移就是关机迁移,动态迁移就是不关闭服务器进行迁移

静态迁移
1.确认需要迁移的虚拟主机已关机

2.导出配置文件
virsh dumpxml centos701 > vm_centos701.xml

3.将导出的配置文件拷贝到目标宿主机
scp vm_centos701.xml  root@192.168.236.157:/etc/libvirt/qemu/

4.查看磁盘文件
virsh domblklist centos701
    目标     源
    ------------------------------------------------
    vda        /opt/centos701.qcow2
    hda        -

5.将需要迁移的虚拟主机所使用的所有磁盘文件拷贝到目标宿主机
scp /opt/centos701.qcow2  root@192.168.236.157:/opt/

6.在目标宿主机上定义该虚拟主机
virsh define /etc/libvirt/qemu/vm_centos701.xml

7.在目标宿主机上查看虚拟主机
virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     -     centos701                      关闭

8.正常启动和管理
动态迁移

基于共享存储系统nfs,实现动态迁移

1.创建nfs共享存储
	# 安装nfs
	yum -y install nfs-utils rpcbind
	
	# 编辑共享目录
	cat /etc/exports
        /opt/ 192.168.236.156/24(rw,sync,no_root_squash,no_all_squash)
        /etc/libvirt/qemu/  192.168.236.156/24(rw,sync,no_root_squash,no_all_squash)

	# 检查
	showmount -e 192.168.236.156
        Export list for 192.168.236.156:
        /etc/libvirt/qemu 192.168.236.156/24
        /opt              192.168.236.156/24
        
    # KVM02上挂载
    vim /etc/fstab
        192.168.236.156:/opt  /opt       nfs    defaults 0 0
        192.168.236.156:/etc/libvirt/qemu /etc/libvirt/qemu     nfs    defaults  0 1
	
	mount -a
	
2. 编写hosts文件
cat /etc/hosts
    192.168.236.156 kvm01
    192.168.236.157 kvm02

3. 迁移 热迁移需保证被迁移主机处在运行状态
virsh migrate --live --verbose  centos702 qemu+ssh://192.168.236.157/system --unsafe  # 临时迁移

virsh migrate --live --verbose  centos702 qemu+ssh://192.168.236.157/system --unsafe --persistent # 永久迁移
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值