环境准备
硬件准备
虚拟机开启虚拟化的配置
系统环境
检测系统版本及内核
[root@ localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@ localhost ~]# uname -r
3.10.0-514.el7.x86_64
[root@ localhost ~]# getenforce
Disabled
[root@ localhost ~]# systemctl stop firewalld.service
检查CPU是否支持虚拟化
KVM其实已经在Centos7内置到系统内核,无需安装
[root@ localhost ~]# egrep -o '(vmx|svm)' /proc/cpuinfo
vmx
vmx
检查CPU是否开启虚拟化
在Linux平台下,我们可以通过命令查看。如果cpu开启虚拟化的,显示如下:
安装KVM用户态模块
[root@ localhost ~]# yum -y install qemu-kvm qemu-kvm-tools libvirt
libvirt用来管理kvm kvm属于内核态,不需要安装。但是需要一些类似于依赖的。
启动libvirt
[root@ localhost ~]# systemctl start libvirtd.service
[root@ localhost ~]# systemctl enable libvirtd.service
启动之后我们可以使用ifconfig进行查看,libvirtd已经为我们安装了一个桥接网卡
创建虚拟机
创建虚拟机步骤
1.准备虚拟机硬盘
2.需要系统iso镜像
3.需要安装一个vnc的客户端来连接
查看磁盘空间
[root@ localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/cl-root 17G 2.1G 15G 13% /
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 8.7M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 1014M 121M 894M 12% /boot
tmpfs 394M 0 394M 0% /run/user/0
上传镜像
提示:如果使用rz上传镜像可能会出现错误,所以我们使用dd命令,复制系统的镜像。只需要挂载上光盘即可。
[root@ localhost ~]# cd /opt/
[root@ localhost opt]# dd if=/dev/cdrom of=/opt/CentOS-7-x86_64-Minimal-1810.iso
1880064+0 records in
1880064+0 records out
962592768 bytes (963 MB) copied, 4.433 s, 217 MB/s
创建磁盘
提示:qemu-img 软件包是我们安装qemu-kvm-tools依赖给安装上的
qemu-img create -f qcow2 /opt/c73.qcow2 6G
Formatting '/opt/c73.qcow2', fmt=qcow2 size=6442450944 encryption=off cluster_size=65536 lazy_refcounts=off
[root@ localhost opt]# ll
total 940228
-rw-r--r-- 1 root root 197120 2020-02-10 20:30 c73.qcow2
-rw-r--r-- 1 root root 962592768 2020-02-10 20:24 CentOS-7-x86_64-Minimal-1810.iso
-f 指定虚拟机格式/opt/Centos存放路径6G代表镜像大小
磁盘格式介绍 raw----裸磁盘不支持快照 qcow2----支持快照。Openstack使用的方式推荐使用这个。注意:关闭虚拟机后操作。 区别: 全镜像格式(典型代表raw),特点:设置多大就是多大,写入速度快,方便转换其他格式,性能最优,但是占用空间大。 稀疏格式(典型代表qcow2),其特点:支持压缩、快照、镜像,更小的存储空间(即用多少占多少) qcow2 数据的基本组成单元是cluster raw性能比qcow2快 raw创建多大磁盘,就占用多大空间直接分配,qcow2动态的用多大占用多大空间。
安装虚拟机
[root@ localhost opt]# yum -y install -y virt-install
[root@ localhost opt]# virt-install --virt-type=kvm --name=c73 --vcpus=1 -r 1024 --cdrom=/opt/CentOS-7-x86_64-Minimal-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --disk path=/opt/c73.qcow2,size=6,format=qcow2
[root@ localhost opt]# virsh list --all
Id Name State
----------------------------------------------------
1 c73 running
[root@ localhost opt]# netstat -lntup|grep 5900
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 2712/qemu-kvm
virt-install 常用参数
1.-n --name= 客户端虚拟机名称
2.-r --ram= 客户端虚拟机分配的内存
3.-u --uuid= 客户端UUID 默认不写时,系统会自动生成
4.--vcpus= 客户端的vcpu个数
5.-v --hvm 全虚拟化
6.-p --paravirt 半虚拟化
7.-l --location=localdir 安装源,有本地、nfs、http、ftp几种,多用于ks网络安装
8.--vnc 使用vnc ,另有--vnclient=监听的IP --vncport =VNC监听的端口
9.-c --cdrom= 光驱 安装途径
10.--disk= 使用不同选项作为磁盘使用安装介质
11.-w NETWORK, --network=NETWORK 连接客户机到主机网络
12.-s --file-size= 使用磁盘映像的大小 单位为GB
13.-f --file= 作为磁盘映像使用的文件
14.--cpuset=设置哪个物理CPU能够被虚拟机使用
15.--os-type=OS_TYPE 针对一类操作系统优化虚拟机配置(例如:‘linux’,‘windows’)
16.--os-variant=OS_VARIANT 针对特定操作系统变体(例如’rhel6’, ’winxp’,'win2k3')进一步优化虚拟机配置
17.--host-device=HOSTDEV 附加一个物理主机设备到客户机。HOSTDEV是随着libvirt使用的一个节点设备名(具体设备如’virsh nodedev-list’的显示的结果)
18.--accelerate KVM或KQEMU内核加速,这个选项是推荐最好加上。如果KVM和KQEMU都支持,KVM加速器优先使用。
19.-x EXTRA, --extra-args=EXTRA 当执行从"--location"选项指定位置的客户机安装时,附加内核命令行参数到安装程序
20.--nographics "virt-install" 将默认使用--vnc选项,使用nographics指定没有控制台被分配给客户机
VNC连接虚拟机
安装系统
注意:安装好之后会看到让你重启,点击了重启之后,再次用vnc连接的时候会出现
这里出现的原因是虚拟机自动关闭了,在重新开启就好了
开启命令`virsh start c73
再次查看一次状态
[root@ localhost opt]# virsh list --all
Id Name State
----------------------------------------------------
2 c73 running
再次用vnc连接出现以下界面,表示成功
常用的virsh管理命令
列出所有的虚拟机 virsh list --all
显示虚拟机信息 virsh dominfo c73
列出ID为6的虚拟机名 virsh domname 6
显示虚拟机内存和cpu的使用情况 virt-top
关闭虚拟机 virsh shutdown c73
强制关闭虚拟机 virsh destroy c73
启动虚拟机 virsh start c73
设置虚拟机随系统自启 virsh autostart c73
关闭虚拟机随系统自启 virsh autostart --disable c73
删除虚拟机 virsh undefine c73
通过控制窗口登录虚拟机 virsh console c73
挂起$hostname虚拟机 virsh suspend c73
恢复挂起的虚拟机 virsh resume c73
查看网卡配置信息 virsh domiflist c73
查看该虚拟机的磁盘位置 virsh domblklist c73
查看KVM虚拟机当前配置 virsh dumpxml c73