图形创建虚拟机,安装CentOs系统
1.采用光盘镜像安装
2.内存设为2048M
3.虚拟机名称设为:kvm
4.网络类型:private1
5.系统语言:中文
6.软件包选择:带GUI的服务器
7.分区: 自动分区
8.创建普通用户lisi,密码为1
9.设置管理员密码为1
virtualization 虚拟化资源管理
x个物理资源----->y个逻辑资源
实现程度:完全.部分.硬件辅助(CPU)
如何查看CPU支持虚拟化指令集
[student@room9pc01 ~]$ lscpu | grep vmx
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp #这一段话中出现vmx字段则说明可以支持虚拟化
虚拟机kvm的操作
1.配置IP地址:192.168.4.100/24
2.配置永久主机名:kvm.tedu.cn
3.修改SELinux状态为宽松模式
[root@kvm ~]# getenforce
Enforcing
[root@kvm ~]# setenforce 0 #修改为宽松模式
[root@kvm ~]# getenforce
Permissive
[root@kvm ~]# vim /etc/selinux/config #设置为永久宽松模式
SELINUX=permissive
4.修改防火墙默认区域为trusted
[root@kvm ~]# firewall-cmd --set-default-zone=trusted
success
5.构建yum仓库
[root@kvm ~]# ping 192.168.4.254 #首先测试能否ping通真机虚拟网卡IP
[root@kvm ~]# cd /etc/yum.repos.d/ #切换路径
[root@kvm yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@kvm yum.repos.d]# mkdir repo #创建目录,把多余的yum源移到此目录
[root@kvm yum.repos.d]# mv *.repo repo
[root@kvm yum.repos.d]# ls
repo
[root@kvm yum.repos.d]# ls repo
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@kvm yum.repos.d]# vim dvd.repo #书写自己的yum源文件
[dvd]
name=haha
baseurl=ftp://192.168.4.254/centos-1804
enabled=1
gpgcheck=0
[root@kvm yum.repos.d]# yum repolist #查看是否有自己书写的yum源文件
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
dvd | 3.6 kB 00:00
(1/2): dvd/group_gz | 166 kB 00:00
(2/2): dvd/primary_db | 5.9 MB 00:00
源标识 源名称 状态
dvd haha 9,911
repolist: 9,911
虚拟化主要厂商及产品
VMware-------------- VMware Workstation.vSphere
Miscrosoft ----------- VirtualPC . Hyper-V
RedHat -------------- KVM.RHEV
Citrix------------------ Xen
Oracle----------------- Oracle VM VirtualBox
安装虚拟化服务器平台
主要软件包
qemu-kvm:kvm 提供底层仿真支持
libvirt-daemon:libvirted 守护进程,管理虚拟机
libvirt-client:用户端软件,提供客户端管理命令
libvirt-daemon-dirver-qemu:libvirted 连接qemu的驱动
virt-manager:图形管理工具
[root@kvm ~]# yum -y install qemu-kvm
[root@kvm ~]# yum -y install libvirt-daemon
[root@kvm ~]# yum -y install libvirt-client
[root@kvm ~]# yum -y install libvirt-daemon-driver-qemu
[root@kvm ~]# yum -y install virt-manager
虚拟化服务libvirrtd
[root@kvm ~]# systemctl status libvirtd #确认是active状态即可进行虚拟化
● libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2019-12-18 09:58:56 CST; 1h 33min ago
virsh命令工具介绍
----virsh默认只有root用户才可以运行
提供管理各虚拟机的命令接口
支持交互模式,查看/创建/停止/关闭
格式:virsh 控制指令 [虚拟机名称] [参数]
*列出虚拟机
[student@room9pc01 ~]$ virsh list [--all]
*查看指定虚拟机信息
[student@room9pc01 ~]$ virsh dominfo 虚拟机名称
*运行或重启或关闭指定的虚拟机
[student@room9pc01 ~]$ virsh start或reboot或shutdown 虚拟机名称
*强制关闭指定的虚拟机
[student@room9pc01 ~]$ virsh destroy 虚拟机名称
*将制定的虚拟机设置为开机自动运行
[student@room9pc01 ~]$ virsh autostart 虚拟机名称 #设置开机自动运行
[student@room9pc01 ~]$ virsh dominfo 虚拟机名称 #再次查看该虚拟机的信息是否开机自动运行
[student@room9pc01 ~]$ virsh autostart 虚拟机名称 --disable #设置关闭开始自动运行
一台kvm虚拟机的组成
1.xml配置文件:定义虚拟机的名称.UUID.CPU.内存.虚拟磁盘.网卡等各种参数的设置
默认路径:/etc/libvirt/qemu
磁盘镜像文件:保存虚拟机的操作系统及文档数据,镜像路径取决于xml配置文件中的定义
2.默认路径:/var/lib/libvirt/images
手动建立虚拟机
1.建立一个新的磁盘镜像文件
[student@room9pc01 ~]$ cd /var/lib/libvirt/images/
[student@room9pc01 images]$ du -sh .node_base.qcow2
633M .node_base.qcow2
[student@room9pc01 images]$ cp .node_base.qcow2 nsd.qcow2
[student@room9pc01 images]$ du -sh nsd.qcow2
633M nsd.qcow2
2.建立一个新的xml配置文件
1)kvm虚拟机文件内容写到.etc/dumpvcirt/qemu/nsd01.xml
[student@room9pc01 qemu]$ virsh dumpxml kvm > /etc/libvirt/qemu/nsd01.xml
1)修改虚拟机的名称: <name> nsd01</name>
2)UUID整行内容:整行删除
<uuid>fbef7edc-82cd-45de-a2ef-ec6f84123d04</uuid>
3)修改磁盘镜像文件:
<source file='/var/lib/libvirt/images/nsd.qcow2'/>
4)网卡的mac地址:整行删除
<mac address='52:54:00:db:a2:7d'/>
[student@room9pc01 qemu]$ virsh define /etc/libvirt/qemu/nsd01.xml
[student@room9pc01 qemu]$ virsh start nsd01
手动建立虚拟机
1.建立新的磁盘文件
[student@room9pc01 ~]$ mkdir /home/student/kvmfile #创建自定义磁盘路径
[student@room9pc01 ~]$ cp /var/lib/libvirt/images/.node_base.qcow2 /home/student/kvmfile/nsd05.qcow2
[student@room9pc01 ~]$ du -sh /home/student/kvmfile/nsd05.qcow2
633M /home/student/kvmfile/nsd05.qcow2
2.建立xml配置文件
[student@room9pc01 ~]$ virsh dumpxml kvm > /home/student/kvmfile/nsd05.xml
[student@room9pc01 ~]$ vim /home/student/kvmfile/nsd05.xml
<name>nsd05</name> #修改虚拟机名字
<uuid>fbef7edc-82cd-45de-a2ef-ec6f84123d04</uuid> #删除UUID
<source file='/home/student/kvmfile/nsd05.qcow2'/> #修改磁盘文件路径
<mac address='52:54:00:db:a2:7d'/> #删除网卡的mac地址
3.导入文件,开机
[student@room9pc01 ~]$ virsh define /home/student/kvmfile/nsd05.xml
定义域 nsd05(从 /home/student/kvmfile/nsd05.xml)
[student@room9pc01 ~]$ virsh start nsd05
在取消定义时并不会把自定义路径下的文件删除
手动建立虚拟机
1.建立磁盘文件
[student@room9pc01 ~]$ cd /var/lib/libvirt/images/
[student@room9pc01 images]$ cp .node_base.qcow2 nsd06.qcow2
[student@room9pc01 images]$ du -sh nsd06.qcow2
633M nsd06.qcow2
2.建立xml配置文件
三合一: 导入.修改.导出 #交互式
[student@room9pc01 ~]$ virsh edit kvm
<name>nsd06</name> #修改虚拟机名字
<uuid>fbef7edc-82cd-45de-a2ef-ec6f84123d04</uuid> #删除UUID
<source file='/var/libvirt/qemu/nsd06.qcow2'/> #修改磁盘文件路径
<mac address='52:54:00:db:a2:7d'/> #删除网卡的mac地址
[student@room9pc01 ~]$ virsh start nsd06
快速产生虚拟机磁盘镜像文件
COW技术
Copy On Write 写时复制
直接映射原始盘的数据内容
当原始盘的旧数据有修改时,在修改前自动将旧数据存入前端盘
对前端盘的修改不会写到原始盘
如果原始盘大小大于前端盘的大小,在传输大于前端盘的数据时,前端盘会自动崩溃
一旦使用写时复制,原始盘的数据会永久封存,不能做任何修改,如果修改则前端盘会自动崩溃
1.快速创建qcow前端盘
qemu-img create -f 生成后前端盘格式 -b 原始盘 前端盘 前端盘大小(要比原始盘大!!!)
[student@room9pc01 ~]$ cd /var/lib/libvirt/images/ #切换到默认路径
[student@room9pc01 images]$ qemu-img create -f qcow2 -b .node_base.qcow2 stu01.qcow2 10G #进行写时复制
Formatting 'stu01.qcow2', fmt=qcow2 size=10737418240 backing_file='.node_base.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
[student@room9pc01 images]$ ls
centos7.0.qcow2 nsd.qcow2 server-2.qcow2 tedu_node05.img
content rh254-classroom-vda.ovl server-3.qcow2 tedu-wallpaper-01.png
iso rh254-desktop-vda.ovl server-4.qcow2 virt
kvm.qcow2 rh254-desktop-vdb.ovl server-5.qcow2 win-clone.img
lost+found rh254-server-vda.ovl server.qcow2 win.img
nsd04.qcow2 rh254-server-vdb.ovl stu01.qcow2
nsd06.qcow2 server-1.qcow2 tedu_node04.img
[student@room9pc01 images]$ qemu-img info stu01.qcow2 #查看前端盘的信息
virtual size: 10G (10737418240 bytes) #虚拟的大小
disk size: 196K #占用磁盘的真正空间
backing file: .node_base.qcow2 #原始盘
2.建立新的xml配置文件
[student@room9pc01 ~]$ virsh dumpxml kvm > /home/student/kvmfile/stu01.xml
[student@room9pc01 ~]$ vim /home/student/kvmfile/stu01.xml
<name>stu01</name>
<uuid>fbef7edc-82cd-45de-a2ef-ec6f84123d04</uuid> #删掉它!!!!!
<source file='/var/lib/libvirt/images/stu01.qcow2'/> #改成前端盘的路径名称
<mac address='52:54:00:db:a2:7d'/> #继续删掉它!!!
[student@room9pc01 ~]$ virsh define /home/student/kvmfile/stu01.xml #导入文件
[student@room9pc01 ~]$ virsh start stu01 #开机!
[student@room9pc01 ~]$ cd /var/lib/libvirt/images/ #切换到默认路径
[student@room9pc01 images]$ ls
centos7.0.qcow2 nsd.qcow2 server-2.qcow2 tedu_node05.img
content rh254-classroom-vda.ovl server-3.qcow2 tedu-wallpaper-01.png
iso rh254-desktop-vda.ovl server-4.qcow2 virt
kvm.qcow2 rh254-desktop-vdb.ovl server-5.qcow2 win-clone.img
lost+found rh254-server-vda.ovl server.qcow2 win.img
nsd04.qcow2 rh254-server-vdb.ovl stu01.qcow2
nsd06.qcow2 server-1.qcow2 tedu_node04.img
[student@room9pc01 images]$ qemu-img info stu01.qcow2 #再次查看前端盘的信息
virtual size: 10G (10737418240 bytes)
disk size: 12M #此时占用的空间大小会变大,是因为开机之后会不断地有原始盘的数据复制到前端盘
cluster_size: 65536
backing file: .node_base.qcow2
离线访问虚拟机
guestmount -a 虚拟机磁盘路径 -i /挂载点
支持离线挂载raw.qcow2格式虚拟机磁盘
可以在虚拟机关机的情况下,直接修改磁盘中的文档
方便对虚拟机定制.修复.脚本维护
!!!只能root使用,注意SELinux机制的影响
[root@room9pc01~]# guestmount -a 虚拟机磁盘路径 -i /挂载点
来源:CSDN
作者:tian1345
链接:https://blog.csdn.net/tian1345/article/details/103602097