检测是否支持KVM
Kvm是基于x86虚拟化拓展(Intel VT或者 AMD-V)技术的虚拟机软件,所以查看CPU是否支持VT技术,就可以判断是否支持kvm .有返回结果,如果结果中有vmx(inel)或svm(AMD)字样,就说明CPU的支持的.
#cat /proc/cpuinfo | egrep 'vmx|svm'
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse
关闭selinux,将/etc/sysconfig/selinux中的selinux=enforcing修改为 selinux=disable
#vi /etc/sysconfig/selinux
复制代码
安装kvm环境
通过yum安装kvm基础包和管理工具
Kvm相关安装包及其作用:
.qemu-kvm 主要的kvm程序包
.Python-virtinst 创建虚拟机所需要的命令行工具和程序库
.virt-manager GUI虚拟机管理工具
.virt-top 虚拟机统计命令
.virt-viewer GUI连接程序,连接到已配置好的虚拟机
.libvirt C语言工具包,提供libvirt服务
.libvirt-client 为虚拟客户机提供的c语言工具包
.virt-install 基于libvirt服务的虚拟机创建命令
.bridge-utils 创建和管理桥接设备的工具
#安装qemu libvirt
yum -y install qemu-kvm qemu-img libvirt virt-install bridge-utils qemu-kvm-tools virt-manager
#可以重启一下宿主机,以便加载kvm模块
Reboot
#查看kvm模块是否被正确加载
#lsmod | grep kvm
kvm_intel 162153 0
kvm 525259 1 kvm_intel
开启kvm服务,并且设置其开自动启动
#systemctl start libvirtd
#systemctl enable libvirtd
#查看运行情况
#systemctl status libvirtd
设置一下语言环境
#LANG="en_US.UTF-8"
复制代码
#在根下创建一个目录/data ,(不把虚拟机的文件放在/root或根主要是虚拟机启动之后qemu这些用户没有权限去/root或根下读取虚拟机的配置文件)
#mkdir /data
#cd /data
#wget http://mirrors.aliyun.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso (下载一个centos的ISO镜像)
复制代码
安装虚拟机
安装前要设置环境语言为英文LANG="en_US.UTF-8",如果是中文的话某些版本可能会报错。CentOS 7 在这里修改 /etc/locale.conf。
kvm创建虚拟机,特别注意.iso镜像文件一定放到/data 或者根目录重新创建目录,不然会因为权限报错,无法创建虚拟机。
.创建一个虚拟磁盘, -f指定格式, 路径是/data/kvm.qcow2 ,大小为30G
qemu-img create -f qcow2 -o preallocation=metadata /data/kvm.qcow2 30G
复制代码
首先学virt-install命令,在这里使用-help查看,并且只学习重要的,其他的可以后面学习.
.virt-install -help
-n (name) : 指定虚拟机的名称
-memory (-raw) : 指定内存大小
-cpu : 指定CPU的核数(默认为1)
-cdrom : 指定镜像
-disk: 指定磁盘路径(即预先创建的虚拟磁盘)
-virt-type : 指定虚拟机类型(kvm, qemu , xen)
-network : 指定网络类型
复制代码
执行创建虚拟机命令
# virt-install --virt-type=kvm --name=centos88 --vcpus=2 --memory=4096 --location=/data/CentOS-7-x86_64-Minimal-1810.iso --disk path=/data/kvm.qcow2,size=20,format=qcow2 --network network=default --graphics none --extra-args='console=ttyS0' --force
复制代码
上面创建虚拟机命令最终需要配置一下系统基础设置,带[!]基本都是要配置的,按照顺序往下配置,按对用的数字以此进行设置.
步骤1.Timezone settings 时区设置选择 2) Asia亚洲,再选择城市 64) Shanghai上海
Installation Destination 安装目的地
Autopartitioning Options 自动分区选项
[ ] 1) Replace Existing Linux system(s) 替换现有的Linux系统
[x] 2) Use All Space 使用所有空间
[ ] 3) Use Free Space 使用可用空间
Partition Scheme Options 分区方案选项
[ ] 1) Standard Partition 标准分区
[ ] 2) Btrfs Btrfs
[x] 3) LVM LVM(逻辑卷管理)
[ ] 4) LVM Thin Provisioning 精简配置
安装完成默认是进入到系统里面去了.
查看虚拟机
virsh list # 查看在运行的虚拟机
virsh list --all # 查看所有虚拟机
复制代码
#连接到虚拟机的命令
#virsh console centos88 (如果报错,可能是安装完成之后已经在界面进入了,需要退出那个界面,再登录就好了,自己应变一下)
复制代码
虚拟机基本操作学习
生成kvm虚拟机:virt-install
查看在运行的虚拟机:virsh list
查看所有虚拟机:virsh list –all
查看kvm虚拟机配置文件:virsh dumpxml name
启动kvm虚拟机:virsh start name
正常关机:virsh shutdown name
非正常关机(相当于物理机直接拔掉电源):virsh destroy name
删除:virsh undefine name(彻底删除,找不回来了,如果想找回来,需要备份/etc/libvirt/qemu的xml文件)
根据配置文件定义虚拟机:virsh define file-name.xml
挂起,终止:virsh suspend name
恢复挂起状态:virsh resumed name
复制代码
编辑kvm的xml文件,更改虚拟机CPU配置 .配置虚拟机的CPU有两种方式(启动的时候指定核数,更改xml) .第一种方法:为了实现CPU的热添加,就需要更改CPU的最大值,热添加的个数不能超过最大值.
#virsh list --all 查看虚拟机
#virsh edit centos88 打开虚拟机的xml文件,找到如下项
复制代码
当前为2,改为自动括容,最大为4
<vcpu placement='auto'current="2">4</vcpu>
复制代码
.重启虚拟机,查看CPU信息,确认CPU的个数,再进行CPU热添加
#virsh shutdown centos88
#virsh start centos88
复制代码
#virsh setvcpus centos88 --live
复制代码
再去虚拟机查看cpu信息
.第二种方法:安装的时候指定
# -vcpus 5,maxcpus=10,cpuset=1-4,6,8
-vcpus sockets=2,cores=4,thread=2
复制代码
编辑kvm的xml文件,更改虚拟机内存配置
内存的设置拥有一个“气球(balloon)机制”,可以增大减少,但是也要设置一个最大值,默认并没有设置最大值,也可以在安装的时候指定
.#virsh dominfo centos88 查看虚拟机信息
复制代码
#virsh edit centos88
. <memory unit='KiB'>6000640</memory> (最大内存为6G)
<currentMemory unit='KiB'>4194304</currentMemory> (当前内存为4G)
#virsh setmem centos88 5G (增大或减小)
能够在线调整的最大内存不能超过为虚拟机分配的最大内存,否则需要关闭虚拟机上调最大内存
复制代码
通过镜像创建虚拟机
镜像制作原则
.分区的时候,只分一个/根分区,并不需要swap分区,由于虚拟机的磁盘性能就不好,如果设置了swap分区,当swap工作的时候,性能会更差。例如阿里云主机,就没有交换分区。
.镜像制作需要删除网卡(eth0)中的UUID
.关闭selinux,关闭iptables
.安装基础软件的包:net-tools lrzsz screen tree vim wget
创建虚拟机镜像文件
#复制第一次安装的干净系统镜像,作为基础镜像文件,后面创建虚拟机使用这个基础镜像.
#cp /data/centos.88.qcow2 /data/centos7.base.qcow2
.使用基础镜像文件,创建新的虚拟机镜像
#cp /data/centos7.base.qcow2 /data/centos7.113.qcow2
创建虚拟机配置文件
.复制第一次安装的干净的系统镜像,作为基础配置文件.
#virsh dumpxml centos88 > /data/centos7.base.xml
.使用基础虚拟机镜像配置文件,创建新的虚拟机配置文件
#cp /data/centos7.base.xml /data/centos.113.xml
复制代码
编辑新虚拟机配置文件
主要是修改虚拟机文件名,UUID,镜像地址和网卡地址,其中 UUID 在 Linux 下可以使用 uuidgen 命令生成
<domain type='kvm'>
<name>centos.113</name>
<uuid>1e86167a-33a9-4ce8-929e-58013fbf9122</uuid>
<devices>
<disk type='file' device='disk'>
<source file='/home/vms/centos.113.img'/>
</disk>
<interface type='bridge'>
<mac address='00:00:00:00:00:04'/>
</interface>
</devices>
</domain>
# virsh define /data/centos.113.xml
复制代码
转载于:https://juejin.im/post/5d0b5903e51d45508c2fb863