KVM安装部署

KVM做单机管理虚拟机,Openstack集群管理虚拟机
docker单机管理容器,k8s集群管理容器
  • 1.
  • 2.
 
宿主机环境准备
在vmware安装linux系统,并在设置中开启虚拟化
CPU开启虚拟化
一:开启虚拟化引擎两项内容
二:提高内存和处理器至8G

验证开启虚拟化
grep -Em 1  "vmx|svm" /proc/cpuinfo
Inter CPU对应vmx
AMD   CPU对应svm

验证是否开启虚拟化支持
[root@ubunt ~]# grep -Em 1  "vmx|svm" /proc/cpuinfo
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat md_clear flush_l1d arch_capabilities
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
 
ubuntu安装KVM相关包
[root@ubunt ~]#apt update
[root@ubunt ~]#apt -y install qemu-kvm virt-manager libvirt-daemon-system

ubuntu自动起来libvirtd服务,启动服务后多virbr0桥接网卡
安装bridge-utils
[root@ubunt ~]#yum -y install bridge-utils
[root@ubunt ~]#brctl show
访问10.0.0.100:9090
输入linux的root和密码

#如果没有开启CPU虚拟化功能会提示以下信息
[root@ubunt ~]#kvm-ok 
INFO: Your CPU does not support KVM extensions 
KVM acceleration can NOT be used

#添加CPU的虚拟化支持再执行
[root@ubunt ~]#kvm-ok 
INFO: /dev/kvm exists 
KVM acceleration can be used
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
 
红帽安装KVM相关包
[root@rocky8 ~]#yum -y install qemu-kvm libvirt   virt-manager virt-install virt-viewer
[root@rocky8 ~]#systemctl start --now libvirtd

CentOS 8 还提供基于Web的虚拟机管理方式
[root@rocky8 ~]#yum -y install cockpit cockpit-machines

[root@rocky8 ~]#systemctl enable --now cockpit.socket
[root@rocky8 ~]#systemctl start --now libvirtd #启动服务多virbr0网卡
安装bridge-utils
[root@rocky8 ~]#yum -y install bridge-utils
[root@rocky8 ~]#brctl show
访问10.0.0.8:9090
输入linux的root和密码
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
 
启动libvirtd服务后生成virbr0桥接网卡
当每安装一个虚拟机,虚拟机的eth0网卡会自动桥接在virbr0上,virbr0的dhcp服务会自动给虚拟机分配IP,获取的地址是192.168.122.1地址段,最后数字随机生成的

虚拟机网段地址是由/etc/libvirt/qemu/networks/default.xml决定的,可由此修改网段
  • 1.
  • 2.
  • 3.
 

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_命令行工具创建安装虚拟机

virt-manager图形化工具安装虚拟机(ubuntu和rocky)
[root@ubunt ~]# virt-manager 打开图形管理页面   #字符集是中文产生乱码,把字符集改成英文
修改字符集
[root@ubunt ~]# localectl set-locale LANG=en_US.utf8
[root@ubunt ~]# localectl status
   System Locale: LANG=en_US.utf8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105

[root@ubunt ~]# virt-manager


[root@ubunt ~]# virt-manager 
[root@ubunt ~]# Unable to init server: Could not connect: Connection refused
Unable to init server: Could not connect: Connection refused
Unable to init server: Could not connect: Connection refused

(virt-manager:11546): Gtk-WARNING **: 03:31:52.289: cannot open display: localhost:11.0
出现以上问题,需要更改变量
[root@rocky8 ~]#export DISPLAY=10.0.0.1:0.0

[root@ubunt ~]# virt-manager
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
 
准备安装系统的ISO相关文件
将需要安装的系统的ISO文件上传到宿主机
[root@ubunt ~]# mkdir -pv /data/isos/
[root@ubunt isos]# ls
CentOS-7-x86_64-Minimal-2207-02.iso
cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_x64_dvd_617598.iso
Rocky-8.6-x86_64-minimal.iso
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
 
ubuntu创建虚拟机
[root@ubunt ~]# virt-manager打开图形页面
file--New Virtual Machine
  • 1.
  • 2.
 

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_KVM安装部署_02

 

点击Local install media(ISO image or CDROM)--forward
  • 1.
 

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_图形化工具创建安装虚拟机_03

 

取消自动监测(把√去掉)
点击Browse Local浏览,/var/lib/libvirt/images这个目录是放磁盘镜像的默认路径
再点击Browse Local选择/data/isos目录下的镜像
  • 1.
  • 2.
  • 3.
 

也可add pool创建镜像池,它会自动找到镜像,点击左下角小电脑

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_命令行工具创建安装虚拟机_04

name:isos-pool对应/data/isos

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_命令行工具创建安装虚拟机_05

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_KVM安装部署_06

选择镜像,然后点击choose volume

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_KVM安装部署_07

选择centos7,forward

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_KVM安装部署_08

根据需要配置内存cpu和硬盘大小

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_KVM安装部署_09

 

硬盘大小(写20GiB,会立即分配20GiB,不太好,如果想用多少就分配多少,可使用命令实现。可先创建10GiB,创建之后,会在宿主机/var/lib/libvirt/images/下立即生成10GiB的文件)

其生成的文件再宿主机的/目录下,/目录可设置逻辑卷,不够可以扩
  • 1.
  • 2.
  • 3.
 

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_命令行工具创建安装虚拟机_10

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_命令行工具创建安装虚拟机_11

点击Begin Installation 开始安装

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_KVM安装部署_12

选择install centos7

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_命令行工具创建安装虚拟机_13

选择语言

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_命令行工具创建安装虚拟机_14

调整时区DATE & TIME 上海时区

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_命令行工具创建安装虚拟机_15

点击KDUMP关闭enable kdump(开启会额外消耗资源),Done更改

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_KVM安装部署_16

点击NETWORK & HOST NAME 开启网络并修改主机名

在虚拟机的宿主机ping 192.168.122.161可以ping通,但远程通不了,因为是桥接的
修改主机名后Apply 
Done保存
  • 1.
  • 2.
  • 3.
 

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_KVM安装部署_17

开始安装 Begin Installation 并设置root密码 Done更改

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_图形化工具创建安装虚拟机_18

 

创建好虚拟机,查看镜像默认路径,会发现多了个10G的硬盘文件
[root@ubunt ~]# ll /var/lib/libvirt/images/ -h
total 1.3G
drwx--x--x 2 root         root 4.0K Oct 13 06:51 ./
drwxr-xr-x 7 root         root 4.0K Oct 13 03:03 ../
-rw------- 1 libvirt-qemu kvm   11G Oct 13 07:10 centos7.9.qcow2

以上是虚拟机的磁盘文件,虚拟机的其他配置(cpu 、内存等)在这个文件
[root@ubunt ~]# ls /etc/libvirt/qemu/centos7.9.xml
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
 
rocky创建虚拟机(把上面ubuntu安装镜像拷贝到rocky上)
在rocky上创建目录
[root@rocky8 ~]#mkdir -pv /data
把ubuntu机器上的安装镜像拷贝到rocky上
[root@ubunt ~]# scp -r /data/isos/ 10.0.0.8:/data/
[root@rocky8 isos]#ls
CentOS-7-x86_64-Minimal-2207-02.iso
cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_x64_dvd_617598.iso
Rocky-8.6-x86_64-minimal.iso
[root@ubunt ~]# virt-manager打开图形页面
创建方法与ubuntu一样
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
 
使用命令行工具virt-install创建虚拟机(需要提前准备好虚拟磁盘,磁盘按需增长)
利用 qemu-img命令创建虚拟磁盘
注意: qemu-img create 一定要确认对应路径下没有此文件,如果存在将覆盖原文件
虚拟磁盘存放位置/var/lib/libvirt/images/

第一步:
利用 osinfo-query命令查看支持的OS版本
ubuntu没有这个命令,需要安装
[root@ubunt ~]# apt install libosinfo-bin
[root@ubunt ~]# osinfo-query os| grep -i centos|rhel (支持的版本)

第二步:
创建虚拟磁盘文件(文件很小,按需增长,如指定20GiB,并不立即占用20GiB,按需增长)
[root@rocky8 isos]#qemu-img create -f qcow2 /var/lib/libvirt/images/rocky8.qcow2 20G

Formatting '/var/lib/libvirt/images/rocky8.qcow2', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16 磁盘按需分配

第三步:
创建虚拟机使用光盘启动并手动安装
[root@rocky8 isos]#virt-install --virt-type kvm --name rocky8 --ram 1024 --vcpus 2 --cdrom=/data/isos/Rocky-8.6-x86_64-minimal.iso --disk path=/var/lib/libvirt/images/rocky8.qcow2 --network network=default  --graphics vnc,listen=0.0.0.0 --noautoconsole --os-variant=rhel8.2

[root@rocky8 isos]#virt-manager打开图形页面查看安装
选择语言--调整时区,选择上海--software选择最小化安装--关闭enable kdump--连接网络并更改主机名--设置root密码,开始安装
其实也是手动安装,可查看bilibiliPXE实现自动化安装教程
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
 
运行虚拟机
[root@ubunt ~]#virt-manager
  • 1.
 

1、KVM安装部署及virt-manager图形化工具创建安装虚拟机、命令行工具virt-install创建安装虚拟机_图形化工具创建安装虚拟机_19

安装好之后可用命令行查看安装好的虚拟机

[root@ubunt ~]# virsh list --all
 Id   Name        State
---------------------------
 5    centos7.9   running
[root@ubunt ~]# virsh list只能看到启动的虚拟机