手动建立虚拟机

图形创建虚拟机,安装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      /挂载点
发布了37 篇原创文章 · 获赞 48 · 访问量 1686

猜你喜欢

转载自blog.csdn.net/tian1345/article/details/103602097