云计算与虚拟化复习
第一章:云计算与虚拟化概论
1. 简述虚拟化技术中。虚拟化监视器(VMM)的主要作用。
答:虚拟机监视器,又称虚拟化层,是联系主机与虚拟机的一个中间件,在虚拟化技术中,VMM 可以对下层的硬件资源进行封装和隔离,将其抽象为另一种形式的逻辑资源,提供给上层虚拟机使用。
2. 一个系统称为虚拟机需要具备的条件:
由 VMM 提供高效、独立的计算机系统;
拥有自己的虚拟硬件;
上层软件·将其识别为真实物理机;
有虚拟机控制台。
3. 虚拟机技术的主要特点:同质、高效、资源可控、移植方便。
4. CPU 一般分为用户态与内核态两种状态。
5. X86 CPU 可以分为内核态( Ring0 )、驱动层( Ring1 和 Ring2 )和用户态( Ring3 )。
6. 虚拟化的实现的方式分为全软件模拟、虚拟化层翻译和容器虚拟化三种。
7. 全虚拟化中特权解除和陷入模拟。
8. 内存虚拟化中,涉及三类地址,两层映射,其中,Guest OS 负责 VA(虚拟地址)到 PA(物理地址)的映射;VMM 负责从 PA(物理地址)到 MA(机器地址)的映射。
9. 与虚拟机相比,容器的特点:
容器中运行的一般不是完整的 OS ,而虚拟机上运行的必须是完整的 OS ;
容器比虚拟机占用的资源更少;
容器在云硬件中被复用,虚拟机在裸机上被复用;
容器的部署时间是毫秒级,虚拟机至少为分钟级。
10. 云计算的实现方式:
IasS----基础设施即服务:基础设施由一些硬件、网络和操作系统资源集成;
PaaS----平台即服务:PaaS 在 IaaS 的基础上加入了中间件和数据库资源;
SaaS----软件即服务:在 SaaS 模式下,用户使用的软件并不需要自己安装,也不用自己维护,只需要登录即可使用。
第二章:创建 KVM 虚拟机
1. KVM 即基于内核的虚拟机,是一种开源的虚拟化技术。内核不是操作系统,而是一个完整操作系统的核心部分,通常用于运行进程,并提供进程间的通信。
2. KVM 技术由 KVM 引擎、虚拟化程序 QEMU 和管理工具 Libvirt 组成。
3. KVM 的作用:
提高物理服务器的资源利用率;
支持批量部署虚拟机;
支持实时快照功能;
支持克隆功能;
支持离线迁移和在线迁移;
支持资源的动态调整。
4. 关闭服务端防火墙的命令
systemctl stop firewalld
systemctl disable firewalld
5. 创建一个名叫 br0 的网桥,将其物理网卡 enp33 绑定在该网桥上。
virsh iface-bridge enps33 br0
6. 重启网络命令
systemctl restart network
7. 启动 KVM 虚拟机管理器界面的命令
virt-manager
8. 在 /var/lib/libvirt/images/ 目录下创建一个名为 mycentos.qcow2 的 qcow2 格式的镜像文件,大小为 50G 。
qemu-img create /var/lib/libvirt/images/mycentos.qcow2 -f qcow2 50G
第三章:CPU 虚拟化
1. 多 CPU 技术发展至今,主要经历了 SMP、MPP 和 NUMA 三种技术。
2. 查看宿主机配置信息
numactl --hardware
3. Linux 默认采用 NUMA 平衡策略,也就是说系统会自动调配内存使用,以求保持平衡,停用和启用 NUMA 自动平衡的命令。
echo 0 > /proc/sys/kernel/numa_balancing //停用
echo 1 > /proc/sys/kernel/numa_balancing //启用
4. 在宿主机启动 virsh 命令行管理工具后,可以列出正在运行的虚拟机的信息的命令。
list
5. 在宿主机的 virsh 工具中查看某虚拟机的 NUMA 模式配置
numatune
6. 修改 KVM 虚拟机的配置信息,默认情况下,虚拟机的配置文件存放在 /etc/libvirt/qemu 路径下,名字为: 虚拟机名.xml
vi /etc/libvirt/qemu/CentOS7.xml
7. 虚拟 CPU 上使用的 NUMA 模式共有三种
strict 只使用本节点内存
preferred 优先使用本节点内存
interleave 交错使用各节点内存
8. 在 virsh 工具中将宿主机中编号为 2 的虚拟机设置为使用节点 1、3 的 CPU 。
virsh # numatune 2 --nodeset '1,3'
9. 在 virsh 工具中查看编号为 2 的虚拟机的 VCPU 与宿主机的物理 CPU 之间的对应关系。
vish # vcpuinfo 2
10. 在 virsh 工具中将编号为 2 的虚拟机的 VCPU 节点 0 与宿主机的物理 CPU 节点 3 进行在线绑定。
virsh # vcpupin 2 0 3
11. 目前,编号为 2 的虚拟机有 1 个 VCPU ,在宿主机的 virsh 工具中使用命令,为其在线添加 1 个 VCPU 。
virsh # setvcpus 2 2 --live
12. 常用的 VCPU 配置模式有 custom 、host-model 、host-passthrough ,其中,直接将物理 CPU 指定给 VCPU 使用的配置模式是 host-passthrough 。
第四章:内存虚拟化
1. KSM 使用了 CentOS7 的哪 2 个服务?这 2 个服务的开启和关闭命令是什么?
使用了 ksm 服务和 ksmtuned 服务
#开启
systemctl restart ksm
systemctl restart ksmtuned
#关闭
systemctl stop ksm
systemctl disable ksm
systemctl stop ksmtuned
systemctl disable ksmtuned
2. 什么是内存气球技术?有哪两种基本的操作方式?内存气球有何优势和不足?
内存气球技术可以在虚拟机和宿主机之间按照实际需求的变化动态调整内存分配,有效提高内存利用率。
内存气球的基本操作方式:
膨胀:把虚拟机的内存划给宿主机。
压缩:把宿主机的内存划给虚拟机。
优势:
1.节约内存
2.内存调节灵活
3.归还内存,缓解宿主机压力
不足:
1.需要虚拟机操作系统加载内存气球驱动
2.可能会降低虚拟机操作系统的运行性能
3.只能使用命令行来使用内存气球,不便于大规模自动化部署
4.可能使内存被过度碎片化
5.影响虚拟机内核对内存的优化效果
3. 进行虚拟机的内存限制的两种方式:一种是使用命令 memtube ;另一种是修改虚拟机的配置文件。
第五章:网络虚拟化
1. 全虚拟化与半虚拟化网卡的区别
全虚拟化网卡是由虚拟化层完全模拟出来的,而半虚拟化网卡则是通过驱动程序对操作系统进行了改造。在生产环境中,半虚拟化网卡。即 Virtio 网卡较多。
2. PCI Passthrough 功能可以让虚拟机独占物理网卡,允许有多块网卡的宿主机将其中的几块网卡分配给网络 I/O 需求大的虚拟机,由其他虚拟机共享剩余的网卡。
3. Open vSwitch bond 常用的配置模式有哪些?
- active-backup 模式:先分配其中的一块物理网卡,如果损坏,就切换到另一个网卡上;
- balance-slb 模式:根据数据源的 MAC 地址和 VLAN ID 在物理网卡间均衡分配;
- balance-tcp 模式:该模式可已根据数据源的 IP 地址、TCP 端口等均衡分配网络负载,但需要上游交换机支持,如果不满足条件,则自动切换回 balance-slb 模式。
第六章:存储虚拟化
1. KVM 支持 IDE 、SATA 、Virtio 、Virtio-SCSI 四种类型的硬盘,其中 IDE、SATA 是全虚拟化硬盘,Virtio 、Virtio-SCSI 是半虚拟化硬盘。
2. 虚拟机常用的镜像格式:raw 、cloop 、cow 、qcow 、qcow2
- row :一种简单的二进制文件格式,会一次性占用完所分配的硬盘空间。
- cloop :压缩的 loop 格式,主要用于可直接引导的 U 盘或光盘。
- qcow2 :一种功能较为全面的格式,支持内部快照、加密、压缩等功能,读写性能也比较好。
3. 使用命令创建镜像
- 创建一个名为 test.raw ,大小为 2G 的镜像文件;
qemu-img create test.raw 2G // 默认镜像格式为 raw ,所以不用指定
- 创建一个名为 test.qcow2 ,大小为 2G 的镜像文件;
qemu-img create test.qcow2 -f qcow2 2G // -f 指定镜像格式
4. 使用命令查看镜像文件信息
qemu-img info test.raw
5. 使用命令将镜像文件 test.raw 转换为 qcow2 格式,名字为 test1.qcow2 。
qemu-img convert -p -f raw -O qcow2 test.raw test1.qcow2
6. 使用命令为镜像文件 test.qcow2 创建快照 snap1 。
qemu-img snapshot test.qcow2 -c snap1
第七章:资源限制
1. 什么是 Cgroups ?Cgroups 由什么组成?
Cgroups 是一种用来限制、记录、隔离进程组所用物理资源的机制。由任务、控制组群、层级和子系统构成。
任务(task):任务即进程;
控制组群(Control Group):控制组群是一组按照某种标准划分的进程;
层级(Hierarchy)
子系统(Subsystem):子系统必须附加(attach)到一个层级上才能起作用,一个子系统附加到某个层级以后,这个层级上的所有控制组群都受到这个子系统的控制。
2. Cgroups 子系统、层级、控制组群和任务的关系
(1)在系统中创建新层级时,该系统中的所有任务都是所在层级的默认Cgroups(被称为Root Cgroups,此Cgroups在创建层级时自动创建,之后在该层级中创建的所有Cgroups都是这个Cgroups的后代)的初始成员。
(2)一个子系统最多只能附加到一个层级上。
(3)一个层级可以附加多个子系统
(4)一个任务可以是多个Cgroups的成员,但这些Cgroups必须位于不同的层级。
(5)系统中的进程(任务)创建子进程(任务)时,该子任务自动成为其父进程所在Cgroups的成员,之后也可以根据需要将它移动到不同的Cgroups中。
3. 在宿主机上,使用命令创建一个名称为 mytest ,并包括 cpu、memory、cpuset 三个子系统的控制组群。
cgcreate -g cpu,memory,cpuset:/mytest
4. 在宿主机上,使用命令,将组群 mytest 删除
cgdelete -r cpu,memory,cpuset:/mytest
第八章:分布式文件系统
1. 简述 GlusterFS 文件系统各类卷的特点。
- 分布卷:又称哈希卷。使用哈希算法将文件随机存储在多个 Brick 上。哈希卷适合存储大量的小文件,读写性能好。
- 复制卷:将文件的副本存储在多个 Brick 上,适合数据安全要求高的业务,但会占用资源较多。
- 条带卷:将文件划分为条带存储在多个 Brick 上,适合存储大文件,但会降低文件的安全性。
2. 在四台虚拟机 vm1 vm2 vm3 vm4 上,创建分布卷
gluster volume create dis-vol vm1:/opt/gfs/vdb/dis vm2:/opt/gfs/vdb/dis vm3:/opt/gfs/vdb/dis vm4:/opt/gfs/vdb/dis
3. 查看分布卷的信息和状态
gluster volume info
gluster volume status
4. 启动已经创建的分布卷 dis-vol
gluster volume start dis-vol
第九章:管理虚拟机
1. 虚拟化环境中的迁移,可以分为静态迁移(static migration,又称冷迁移或离线迁移)和动态迁移(live migration,又称热迁移或在线迁移)。二者最大的区别在于:静态迁移有一段明显的虚拟服务不可用时间,而动态迁移则没有明显的服务暂停时间。动态迁移需要保证虚拟机的内存、硬盘存储和网络连接在迁移到目标宿主机后仍然保持不变,而且迁移过程的服务暂停时间非常短。
2. 虚拟机迁移命令
virsh define
3. 在虚拟机动态迁移过程中,如果出现硬盘缓存模式错误,其对应的解决方案是:在测试环境中,将硬盘缓存模式改为 unsafe 模式。
第十章:Docker 应用
1. Docker 两大主要组成部分:Docker 和 DockerHub 。
Docker :开源的容器虚拟化平台
DockerHub :分享并管理 Docker 容器的 Docker SaaS 平台。
2. Docker 使用客户端-服务器(C/S)架构模式。
3. Docker 镜像 :类似于虚拟机的镜像,可以理解为一个面向 Docker 引擎的只读模板,其中包含了文件系统。
4. Docker 仓库 :集中存放镜像文件的场所。世界上最大的 Docker 公开仓库是 DockerHub 。
5. Dcoker 的特点。
(1)Docker 作为轻量级的容器虚拟化技术,以宿主机操作系统内核的特性为支撑来完成虚拟化。
(2) Docker 可以对系统的部分空间进行隔离,并对系统的内存和 CPU 等资源进行分配、控制和记录。
(3)Docker 技术通过容器来对应用打包。迁移服务器时,只需在新服务器系统上,重新分配内存和 CPU 等资源,然后启动需要的容器即可。
(4)Docker 技术为应用的开发和部署提供 “一站式” 解决方案。
6. Docker 与传统虚拟机的差异
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iTFV0ecD-1656983744995)(C:\Users\PC\Desktop\图片1.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yKTOmrjV-1656983744997)(C:\Users\PC\Desktop\图片2.png)]文章来源:https://www.toymoban.com/news/detail-473436.html
7. 搜索镜像
docker search
8. 保存镜像
docker pull
9. 查看已下载的镜像
docker images
10. 保存镜像
docker save -o ubuntu_latest_save.tar ubuntu:latest
11. 删除镜像
docker rmi ubuntu:16.04
docker rmi -f centos //强制删除镜像
12. 基于原有的镜像模板文件,创建镜像
cat ubuntu-16.04-x86.tar.gz | docker import - ubuntu:16.04
13. 新建并启动一个容器
docker run centos
# centos 是镜像名
14. 进入容器
# d5e 是容器 ID
docker exec -ti d5e /bin/bash
15. 退出容器
exit
16. 停止容器
docker stop d5e
docker stop -t 10 d5e
17. 启动容器
docker start d5e
18. 重启容器
docker restart d5e
19. 删除容器(先停止,再删除)
docker stop d5e
docker rm d5e
docker rm -f d5e
20. 容器的端口映射
# 随机把一台宿主机的端口映射给容器
docker run -d -P nginx
# 指定端口,不指定 IP 地址
docker run -d -p 8090:80 registry
# 指定 IP ,不指定端口
docker run -p -d 192.168.10.1::80 nginx
# 指定 IP 地址,指定端口
docker run -d -p 192.168.10.1:8090:80 nginx
# 查看容器端口映射到系统的具体端口
docker port d5e 80
文章来源地址https://www.toymoban.com/news/detail-473436.html
到了这里,关于【云计算与虚拟化概论复习】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!