KVM虚拟化安装说明

首先配置阿里云的epel源基本源

yum安装KVM相关依赖软件
	yum install qemu-kvm libvirt virt-manager libguestfs-tools virt-install -y
	
	
启动KVM软件
	systemctl start libvirtd.service 
	
设置为开机自启动KVM软件
	systemctl enable libvirtd.service

查看启动状态	
	systemctl status libvirtd.service

raw:

raw: 裸格式,占用空间比较大,不支持快照功能,性能较好,不方便传输 总50G 占用50G 	
	
创建一台为raw磁盘格式的虚拟机利用命令创建一台名字为centos7的虚拟机,创建虚拟机的名字不能重命名
 virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos7.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
 
这个时候可以用vuc连接了,默认第一台端口为5900,;例如你的IP地址是192.168.123.8
那么这个地址就应该是192.168.123.8:5900 这样就可以连接上你的虚拟机了.
如果这台虚拟机重启了需要把这台虚拟机开启以后才能连接上.
 
 
 命令解释:
	--virt-type kvm 虚拟化的类型(qemu) 
	--os-type=linux 系统类型 
	--os-variant rhel7 系统版本 
	--name centos7 虚拟机的名字 
	--memory 1024 虚拟机的内存 
	--vcpus 1 虚拟cpu的核数
	--disk /opt/centos2.raw,format=raw,size=10 使用磁盘的格式
	--network network=default 使用默认NAT的网络 
	--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso   iso虚拟镜像存放位置
	--graphicsvnc,listen=0.0.0.0 --noautoconsole
 
查看虚拟机只能查看已经开机或者挂起的:
	virsh list
	
查看所有的虚拟机包括关机状态下的
	virsh list --all
	
开启其中一台虚拟机
	virsh start centos7
	
正常关机其中一台
	virsh shutdown centos7

非正常关机,相当于直接拔掉电源
	virsh destroy centos7

重启其中一台,需要进入系统以后才能用
	cirsh reboot centos7

导出centos7这台虚拟机的配置的文件
	virsh dumpxml centos7 > centos7.xml
	
导入centos7这台虚拟机的配置文件,这样做的目的是为了迁移这台电脑的系统
	virsh define centos7.xml

删除一台虚拟机
	virsh undefina centos7
	
虚拟机配置文件存放位置,每创建一台或者导入一台,就会在这个目录下生成配置文件
	/etc/libvirt/qemu/
	
编译配置文件,建议用virsh edit这条命令有语法检查
	virsh edit centos7

当/根下的/opt分区快要满了的情况下,把虚拟机迁移到新的硬盘上面去,新的硬盘挂在的分区目录为/data下
首先关闭虚拟机,先来配置虚拟机的文件,把opt的目录改成/data下
	先来关闭虚拟机
		virsh shutdown centos7
	
	编辑配置文件
		virsh edit centos7
	
	把这条/opt/centos2.raw
		<source file='/opt/centos2.raw'/>
	
	修改成/data/centos2.raw
		<source file='/data/centos2.raw'/>

	再来迁移虚拟机磁盘文件
		mv /opt/centos2.raw /data/
	
	再来开启虚拟机就可以了
	
修改虚拟机主机名称,修改centos7,为web-blog名,修改的时候需要在虚拟机关机的情况下做修改
	virsh domrename centos7 web-blog

挂起虚拟机,而不关机虚拟机
	virsh suspend web-blog
查看一下虚拟机的状态,可以看到web-blog已经是暂停的状态也就是挂起的状态
	[root@localhost ~]# virsh list --all
	Id    名称                         状态
	----------------------------------------------------
	5     centos7.6                      running
	8     web-blog                       暂停

恢复挂起的虚拟机
	virsh rssume web-blog
	返回结果:
		域 web-blog 被重新恢复

查看虚拟机的VNC的端口号		
	virsh vncdisplay centos7.6 
	返回结果
		:1
		这里的1也就是5901,也可以在连接的时候输入192.168.123.8:1这样和192.168.123.8:5901的效果也是一样的
	
开机自启动虚拟机,把web-blog设置为开机自启动
	virsh autostart web-blog

取消开机自启动虚拟机
	virsh autostart --disable web-blog
			
	
查看哪些虚拟机是开机自启动的
	ls /etc/libvirt/qemu/autostart/
	返回结果:
	web-blog.xml
	可以看到web-blog.xml存在,说明这台机器是开机自启动的,这个文件是一个软连接,如果把别的虚拟机的配置文件
软连接过来,也是可以启到开机自启动的目的,删除了,也就开机不自启动了

实现console登录虚拟机
	首先修改优化内核参数,先来连接到这台虚拟机,修改一下内核的一些参数,把下面这一短话复制进去
		 grubby --update-kernel=ALL --args="console=ttyS0,115200n8"	
	
	修改好以后reboot重启生效
	
连接虚拟机主机,直接原物理机上的XHELL连接
	virsh console web-blog
	
	未修改内核的时候退出:
		ctrl+]就可以退出
	
也可以直接用shell连接到物理主机,再连接到虚拟机里面去
	ssh root@IP
	
raw: 裸格式,占用空间比较大,不支持快照功能,性能较好,不方便传输 总50G 占用50G 


磁盘管理工具




查看文件是不是镜像文件,需要先进入你存放的虚拟机的目录下,我的目录是/opt/和/data目录下
	qemu-img info centos2.raw
	返回结果:
	image: centos2.raw   格式
	file format: raw	 类型	
	virtual size: 10G (10737418240 bytes) 大小
	disk size: 1.8G
	


手动创建一个磁盘文件大小为10G,文件类型为qcow2,文件存到/data/下,需要制定文件格式,如果不指定默认是raw格式的,所以-f qcow2加上文件格式
	qemu-img create -f qcow2 /data/text.qcow2 10G
	返回结果:
		Formatting '/data/centos.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off 
		
查看刚创建文件的信息:
	# qemu-img info centos.qcow2 
	返回结果
	image: centos.qcow2
	file format: qcow2
	virtual size: 10G (10737418240 bytes)
	disk size: 196K
	cluster_size: 65536
	Format specific information:
    compat: 1.1
    lazy refcounts: false

修改原有的文件磁盘大小,原来为10G,增加到1T
	qemu-img resize text.qcow2 1T
		返回结果
		Image resized.

查看修改过的text.qcow2
	qemu-img info text.qcpw2 
		返回结果
		image: text.qcow2
		file format: qcow2
		virtual size: 1.0T (1099511627776 bytes)
		disk size: 212K
		cluster_size: 65536
		Format specific information:
			compat: 1.1
			lazy refcounts: false

RAW磁盘格式支持减少空间
	qemu-img resize 123.raw -2G
		实际生产环境中这跳命令千万不要用,直接放弃这条命令.减完以后你的数据会丢,你的工作会没,而且还会赔钱
		
磁盘文件类型转换从raw转换到qcow2,将web-blog.raw这台虚拟机的文件转换为web-blog.qcow2格式的类型文件
	qemu-img convert -f raw -O qcow2 web-blog.raw web-blog.qcow2

转换磁盘类型以后需要修改web-blog的配置文件
	virsh edit web-blog
	需要修改的内容搜索disk找到一下内容
	修改的内容为raw修改为qcow2,也就是文件转换以后文件类型
	未修改的
	<disk type='file' device='disk'>
     <driver name='qemu' type='raw'/>
     <source file='/opt/web-blog.raw'/>
	修改过的
	<disk type='file' device='disk'>
     <driver name='qemu' type='qcow2'/>
	 <source file='/opt/web-blog.qcow2'/>
	
测试一下,启动一下虚拟机
	virsh start web-blog 
	返回结果:
	域 web-blog 已开始
	
检查一下配置文件:
	virsh dumpxml web-blog |grep qcow2
	返回结果:
	 <driver name='qemu' type='qcow2'/>
     <source file='/opt/web-blog.qcow2'/>
	
		
	
qcow2: cow(copyon write)占用空间小,支持快照,性能比raw差一点,方便传输 总50G 占用2G	

qcow2
	
创建一台qcow2磁盘格式的虚拟机
	virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-1 --memory 1024 --vcpus 1 --disk /data/centos7-1.qcow2,format=qcow2,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole	

快照:
	
快照管理:raw文件类型不支持快照需要做转换,qcow2支持做快照,并且快照就保存在qcow2的磁盘文件中
	
给一个虚拟机创建一个快照,给web-blog这台虚拟机创建env_ok的快照
	virsh snapshot-create-as --name  env_ok web-blog
	
查看一台虚拟机的创建过的快照列表
	virsh snapshot-list 

删除一台虚拟机的快照
	virsh snapshot-delete web-blog --snapshotname 1578081184
	
恢复web-blog这台虚拟机的env_ok的快照
	virsh snapshot-revert web-blog --snapshotname env_ok

克隆:

完整克隆
	
完整克隆一台虚拟机
	virt-clone --auto-clone -o centos7-1 -n centos7-2

手动完整克隆
	首先先复制一份原你要克隆的虚拟机的镜像文件,并给他重新命名,名字叫web-bbs.qcow2
		cp /opt/web-blog.qcow2 /opt/web-bbs.qcow2

	导出web-blog这台虚拟机的配置文件
		virsh dumpxml web-blog >web-bbs.xml
	
	编辑配置文件
		vim web-bbs.xml
		
	修改名称为web-bbs	
	<name>web-bbs</name>
	
	修改web-bbs.xml配置,把UUID和和mac地址做修改,还有虚拟机的名字做修改
		删除这一行uuid这一行,用dd可以删除 。这个uuid每台机器的id都不是不一样的,删除掉让系统重新生成
		<uuid>116724bd-f7d5-4e4b-bc12-55d994686966</uuid>

		删除mac地址这一行,每台机器的mac地址都不能一样,删除掉以后让系统重新生成
		<mac address='52:54:00:bf:ab:70'/>

	修改虚拟机的名字,修改成如下内容:修改文件路径根据自己的真实路径修改
	原内容
		<source file='/opt/web-blog.qcow2'/>
	修改过后
		<source file='/opt/web-bbs.qcow2'/>
		
	导入配置文件
	virsh  define web-bbs.xml	

		
链接克隆
	
链接克隆一台虚拟机
	qemu-img create -f qcow2 -b centos7-1.qcow2 centos7-3.qcow2
	
链接克隆支持raw格式磁盘,利用raw磁盘格式创建链接克隆,文件类型修改为qcow2
	qemu-img create -f qcow2 -b text.raw web1.qcow2

导出web-blog这台虚拟机的配置文件
		virsh dumpxml web-blog >centos7-3.xml
	
	编辑配置文件
		vim centos7-3.xml
		
	修改名称为centos7-3
	<name>centos7-3</name>
	
	修改web-bbs.xml配置,把UUID和和mac地址做修改,还有虚拟机的名字做修改
		删除这一行uuid这一行,用dd可以删除 。这个uuid每台机器的id都不是不一样的,删除掉让系统重新生成
		<uuid>116724bd-f7d5-4e4b-bc12-55d994686966</uuid>

		删除mac地址这一行,每台机器的mac地址都不能一样,删除掉以后让系统重新生成
		<mac address='52:54:00:bf:ab:70'/>

	修改虚拟机的名字,修改成如下内容:修改文件路径根据自己的真实路径修改
	原内容
		<source file='/opt/web-blog.qcow2'/>
	修改过后
		<source file='/opt/centos7-3.qcow2'/>
		
	导入配置文件
	virsh  definecentos7-3.xml	

创建桥接网卡 
	需要先把NetworkManager
	
	systemctl disable NetworkManager
	systemctl stop NetworkManager
	再来创建桥接网卡
	virsh iface-bridge eth0 br0

桥接创建虚拟机
	virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-1 --memory 1024 --vcpus 1 --disk /data/centos7-1.qcow2,format=qcow2,size=320 --cdrom /opt/CentOS-7-x86_64-DVD-1810.iso --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole	
	
	
	
	
	
图形化安装虚拟机,需要安装桌面或者用Xmanager Enterprise调用图形化来安装系
输入以下命令即可
      virt-manager


Powered By Z-BlogPHP 1.7.3

 Theme By 优美模版

本博客为开源博客,本博客联系QQ:372097243