冷修改虚拟机的硬件配置;
1、 CPU 和内存 已完成
2、 给虚拟机加存储
UAT-NFS62
[root@kvm /kvm]# qemu-img create -f qcow2 nfs62_2.qcow2 100G
[root@kvm /kvm]# virsh edit UAT-NFS62
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/kvm/UAT-NFS62.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/kvm/nfs62_2.qcow2'/>
<target dev='vdb' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>
增加disk
模块,加快硬盘。
[root@kvm /kvm]# virsh start UAT-NFS62
[root@kvm /kvm]# virsh console UAT-NFS62
[root@NFS2 ~]# fdisk -l /dev/vda
[root@NFS2 ~]# fdisk -l /dev/vdb
[root@NFS2 ~]# pvcreate /dev/vdb
[root@NFS2 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
sys 1 2 0 wz--n- 199.80g 189.30g
[root@NFS2 ~]# vgextend sys /dev/vdb
[root@NFS2 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
sys 2 2 0 wz--n- <299.80g <289.30g
3、 给虚拟机加网卡
UAT-NFS62 增加一个网卡。
关掉虚拟机。
[root@kvm /kvm]# virsh edit UAT-NFS62
<interface type='bridge'>
<mac address='52:54:00:e5:24:72'/>
<source bridge='br0'/>
<model type='rtl8139'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:e6:25:73'/>
<source bridge='br0'/>
<model type='rtl8139'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</interface>
[root@kvm /kvm]# virsh start UAT-NFS62
[root@kvm /kvm]# virsh console UAT-NFS62
[root@NFS2 network-scripts]# cp ifcfg-ens3 ifcfg-ens8
[root@NFS2 network-scripts]# vim ifcfg-ens8
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens8
DEVICE=ens8
ONBOOT=yes
IPADDR=172.17.0.62
NETMASK=255.255.0.0
[root@NFS2 ~]# /etc/init.d/network restart
应用场景:
网站的静态资源数据如何处理。
文字 小
图片 大
视频 大
与业务沟通 数
跟防火墙"商量",背板带宽是有限的
如果静态资源数据量很大,会堵死防火墙的背板带宽!!!
(1)静态资源数据量不是很高
将所有的节点都放置在防火墙内部,受其保护。正常连线。
(2)静态资源的数据量很高
将静态资源节点放置在防火墙外部,通过交换机的外网vlan,直连公网。
服务器的5个网卡1个做管理,2个连内网vlan,2个连外网vlan,并且做2个网桥。
这个服务器上有个静态资源的KVM虚拟机,这个静态资源的虚拟机双网卡,一个走内网网桥,一个走外网网桥。网桥的IP本身作用不大,只要能通过它连接到外网就ok了。
》》》》》》》》》》》》》》》》》》》》》》
在线修改虚拟机的硬件配置:
虚拟机处于运行状态调整硬件配置。
前提:
服务器还有资源。
1、CPU
kvm虚拟机是开机状态
[root@test-node ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 26
Model name: Intel Core i7 9xx (Nehalem Class Core i7)
Stepping: 3
CPU MHz: 2266.818
BogoMIPS: 4533.63
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 4096K
NUMA node0 CPU(s): 0
Flags: fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx lm constant_tsc rep_good nopl pni ssse3 cx16 sse4_1 sse4_2 x2apic popcnt hypervisor lahf_lm
只有1个CPU CPU编号是0
CPU(s): 1
On-line CPU(s) list: 0
先关机修改配置文件让其支持动态修改硬件资源
[root@kvm_s /]# virsh edit test-node
<vcpu placement='auto' current='1'>4</vcpu>
placement='auto' //支持动态调整
current='1' //当前线程数是1 最大到4
然后虚拟机开机
查看CPU依旧是1 个。
宿主机输入这个命令
[root@kvm_s /]# virsh setvcpus test-node 2 --live
然后查看虚拟机cpu数量
[root@test-node ~]# lscpu
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
发现已经改变为2 了,编号是0,1。
CPU只支持调大,不支持缩小。
前提:应用程序可以在每个在线的CPU上都得到处理。
2、内存
先关机修改选项。依旧是virtsh edit
<memory unit='KiB'>2097152</memory> 能够使用的内容的上限
<currentMemory unit='KiB'>2097152</currentMemory> 当前使用的内存
关机改成这样
<memory unit='GiB'>4</memory>
<currentMemory unit='GiB'>1</currentMemory>
然后开机。
查看内存
[root@test-node ~]# free -m
total used free shared buff/cache available
Mem: 879 85 701 8 93 620
Swap: 511 0 511
1G内存。
在宿主机进行修改。
[root@kvm_s /]# virsh qemu-monitor-command test-node --hmp --cmd balloon 2048
test-node 是虚拟机名字
2048 是内存大小
然后再虚拟机进行查看。
[root@test-node ~]# free -m
total used free shared buff/cache available
Mem: 1903 72 1737 8 93 1657
Swap: 511 0 511
已经正价为2G了,并且是开机状态修改的
内存支持下调
[root@kvm_s /]# virsh qemu-monitor-command test-node --hmp --cmd balloon 512
查看虚拟机
[root@test-node ~]# free -m
total used free shared buff/cache available
Mem: 367 71 202 8 93 121
Swap: 511 0 511
已经缩小
3、硬盘
虚拟机的硬盘默认是vda。
现在看只有1块
[root@test-node ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 200G 0 disk
├─vda1 252:1 0 200M 0 part /boot
└─vda2 252:2 0 199.8G 0 part
├─sys-root 253:0 0 10G 0 lvm /
└─sys-swap 253:1 0 512M 0 lvm [SWAP]
现在宿主机创建一块硬盘
然后添加并命名。
[root@kvm_s kvm]# qemu-img create -f qcow2 test_2.qcow2 100G
[root@kvm_s kvm]# virsh attach-disk test-node --source /kvm/test_2.qcow2 --target vdb --cache writeback --subdriver qcow2
Disk attached successfully
test-node 虚拟机名字
test_2.qcow2 硬盘文件及目录
vdb 硬盘的名字
[root@test-node ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 200G 0 disk
├─vda1 252:1 0 200M 0 part /boot
└─vda2 252:2 0 199.8G 0 part
├─sys-root 253:0 0 10G 0 lvm /
└─sys-swap 253:1 0 512M 0 lvm [SWAP]
vdb 252:16 0 100G 0 disk
多了一块vdb。
删除硬盘:
[root@kvm ~]# virsh detach-disk test-node --target vdb
然后就被删除了。
收到分区空间不足的报警要先了解分区存储的是什么数据?
1、如果是日志 清除 >
2、如果是静态数据 拉伸lv
3、如果是数据库数据 拉伸lv
4、 网卡
临时添加网卡:
[root@kvm_s kvm]# virsh attach-interface test-node --type bridge --source br0
Interface attached successfully
就能看到2个网卡了
[root@kvm_s kvm]# virsh domiflist test-node
Interface Type Source Model MAC
-------------------------------------------------------
vnet0 bridge br0 rtl8139 52:54:00:2b:00:02
vnet1 bridge br0 rtl8139 52:54:00:62:c3:f5
并且客户机
[root@test-node ~]# ifconfig
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.12.222 netmask 255.255.0.0 broadcast 172.16.255.255
ens7: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.67.26 netmask 255.255.0.0 broadcast 172.16.255.255
二块网卡。
永久增加一个网卡:
[root@kvm ~]# virsh attach-interface UAT-MySQLA --type bridge --source br0 --config
这个命令是直接写入配置文件,
[root@kvm ~]# vim /etc/libvirt/qemu/UAT-MySQLA.xml
需要重启生效。
删除网卡
[root@kvm_s kvm]# virsh detach-interface test-node --type bridge --mac 52:54:00:62:c3:f5
Interface detached successfully
给虚拟机做快照:
一定是在虚拟机关机的状态下,创建快照。
创建
[root@kvm_s kvm]# qemu-img snapshot -c name /kvm/test-node.qcow2
snapshot 快照
-c 快找名字
/kvm/test-node.qcow2 虚拟机文件名字
查看
[root@kvm_s kvm]# qemu-img snapshot -l /kvm/test-node.qcow2
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 kz1 0 2019-12-20 18:43:31 00:00:00.000
2 name 0 2019-12-21 02:32:49 00:00:00.000
然后做个很危险的操作
[root@test-node ~]# rm -rf /*
只能拔电源。
[root@kvm_s ~]# virsh destroy test-node
然后恢复快照
[root@kvm_s kvm]# qemu-img snapshot -a 1 /kvm/test-node.qcow2
1 是列表中的ID号
开机
[root@kvm_s ~]# virsh start test-node
Domain test-node started
test-node login: root
Password:
Last failed login: Sat Dec 21 10:51:57 CST 2019 on ttyS0
There was 1 failed login attempt since the last successful login.
Last login: Thu Dec 19 06:10:27 from 172.16.12.1
[root@test-node ~]#
能够登录
删除快照
[root@kvm_s kvm]# qemu-img snapshot -d 1 /kvm/test-node.qcow2
删除前面的快照后边的不会受到影响
在kvm环境,安装windows虚拟机:
1、 宿主机有图形界面,直接打开图形界面安装
[root@kvm ~]# virt-manager
2、 宿主机是minimal版本,没有图形界面
[root@kvm ~]# yum install -y virt-manager xorg-x11-xauth dejavu-lgc-sans-fonts tigervnc tigervnc-server
[root@kvm ~]# virt-manager
这个情况xshell要有xmanager那些图形的组件。
我就用图形化的centos了
首先要有windows的镜像
点击这个新建虚拟机
选择本地的镜像。
选择镜像文件的位置,下边的是windows7系统
分配硬件资源
下一步之前先创建一块硬盘,供windows使用。
然后这里就写下边的,然后指定刚刚创建的虚拟机文件。
可以修改下名字,然后就直接finish了
然后就进入windows的安装引导了。接下来就是windows的安装了。
kvm虚拟机的网络:
-
br0 桥接
-
virbr0 NAT
虚拟NAT的配置文件就在qemu下的network目录
[root@kvm /etc/libvirt/qemu/networks]# ls
autostart default.xml
虚拟机的网卡,连接到virbr0
虚拟机可以连接外网
但是外部节点无法连接虚拟机
[root@kvm ~]# virsh net-list
Name State Autostart Persistent
----------------------------------------------------------
default active yes yes
[root@kvm ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29ad6032 no ens32
virbr0 8000.5254004a42db yes virbr0-nic
虚拟机资源的监控
[root@kvm ~]# yum install -y virt-top
[root@kvm ~]# virt-top
监控虚拟机消耗的资源。