你不得不知的云计算与虚拟化基础知识(下)
csdh11 2025-04-30 16:10 12 浏览
1.4KVM日常管理
[root@linux-node1opt]# virsh start CentOS-7-x86_64 #启动刚才创建的CentOS7KVM虚拟机
DomainCentOS-7-x86_64 started
[root@linux-node1opt]# virsh list #查看KVM虚拟机是否启动
Id Name State
----------------------------------------------------
3 CentOS-7-x86_64 running
1.4.1CPU扩容
[root@linux-node1opt]# virsh edit CentOS-7-x86_64 #为了实现CPU的热添加,就需要更改Cpu的最大值,当然热添加值不能超过最大值
4 #当前为1,自动扩容最大为4
[root@linux-node1opt]# virsh shutdown CentOS-7-x86_64 #关闭KVM虚拟机
DomainCentOS-7-x86_64 is being shutdown
[root@linux-node1opt]# virsh start CentOS-7-x86_64 #启动KVM虚拟机
DomainCentOS-7-x86_64 started
[root@linux-node1opt]# virsh setvcpus CentOS-7-x86_64 2 --live #热修改为2个cpu(不知减少),高版本自动激活
[root@KVM]#grep processor /proc/cpuinfo |wc -l #通过vnc登录KVM虚拟机查看是否扩容成功
2
在创建虚拟机时指定cpu
[root@linux-node1~]# virt-install --help|grep vcpus
--vcpus VCPUS 为虚拟机配置的 vcpus 数。例如:
--vcpus 5
--vcpus5,maxcpus=10,cpuset=1-4,6,8
--vcpussockets=2,cores=4,threads=2,
1.4.2内存扩容
内存的设置拥有一个气球(balloon)机制,可以增大减少,但是也要设置一个最大值,默认并没有最大值,也可以在安装时指定。
4194304 #修改最大支持内存扩容为4G
1048576 #当前KVM虚拟机内存为1G
重启虚拟机
[root@linux-node1~]# virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd info balloon #查看当前KVM内存大小
balloon:actual=1024
[root@linux-node1~]# virsh qemu-monitor-command CentOS-7.1-x86_64 --hmp --cmd balloon #热添加
unexpected end of expression
[root@linux-node1~]# virsh qemu-monitor-command CentOS-7.1-x86_64 --hmp --cmd info balloon #在次查看 balloon: actual=2001
1.4.3硬盘管理
更改虚拟机中存储,硬盘设置(不建议生产环境使用硬盘的扩大收缩模式,很容易产生故障)
[root@linux-node1~]# qemu-img --help |grep -i "formats:"
Supportedformats: vvfat vpc vmdk vhdx vdi ssh sheepdog rbd raw host_cdrom host_floppyhost_device file qed qcow2 qcow parallels nbd iscsi gluster dmg tftp ftps ftphttps http cloop bochs blkverify blkdebug
硬盘格式都可以通过qeum-img管理,具体qemu-img --help
全镜像格式(代表raw):设置多大就是多大,写入速度快,方便的转换为其他格式,性能最优,但是占用空间大。 稀疏格式(代表qcow2):支持压缩,快照,镜像,更小的存储空间(即用多少占多少)
1.4.4网络管理
默认情况KVM的网络是NAT模式,但是在生产情况,用的多的都是网桥模式。
修改eth0(这里CentOS7的eth0在装机时就指定了,那如果没指定怎么办?
[root@linux-node1~]# brctl addbr br0 #添加一个网卡
[root@linux-node1~]# brctl show #查看网卡信息
bridgename bridge id STP enabled interfaces
br0 8000.000000000000 no
virbr0 8000.5254009f0311 yes virbr0-nic
[root@linux-node1~]# brctl addif br0 eth0 && ip addr del dev eth0 192.168.56.111/24&&ifconfig br0
192.168.56.111/24 up && route add default gw192.168.56.2 && iptables -F #把eth0加入网桥,使用桥接模式,给br设置ip,添加路由网关,关闭防火墙
[root@linux-node1~]# ifconfig br0 #查看网桥的IP
br0:flags=4163 mtu 1500
inet 192.168.56.111 netmask 255.255.255.0 broadcast 192.168.56.255
inet6 fe80::20c:29ff:fe5d:cc27 prefixlen 64 scopeid 0x20
ether 00:0c:29:5d:cc:27 txqueuelen 0 (Ethernet)
RX packets 4813 bytes 472527 (461.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2705 bytes 510369 (498.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@linux-node1~]# virsh edit CentOS-7-x86_64 #编辑虚拟机的网络配置使用br0网桥模式
#虚拟机网络连接方式
#为虚拟机分配MAC地址,务必唯一,如果是dhcp获得同样IP会引起冲突
#当前主机网桥名称
#然后配置静态IP地址,重启网卡,即可以通过xshell连接上KVM虚拟机了。
1.5KVM常用管理
[root@linux-node1~]# virt-install #建立kvm虚拟机
[root@linux-node1~]# virsh list #查看正在运行的KVM虚拟机
[root@linux-node1~]# virsh list --all #查看所有KVM虚拟机
[root@linux-node1~]# virsh start name #启动KVM虚拟机
[root@linux-node1~]# virsh shutdown name #正常关闭KVM虚拟机
[root@linux-node1~]# virsh destroy name #强制关闭KVM虚拟机(类似于直接断电)
[root@linux-node1~]# virsh suspend name #挂起KVM虚拟机
[root@linux-node1~]# virsh resume name #恢复挂起的KVM虚拟机
[root@linux-node1~]# virsh dumpxml name #查看KVM虚拟机配置文件
[root@linux-node1~]# virsh edit name #编辑KVM虚拟机的xml配置文件
[root@linux-node1~]# virsh undefine name #彻底删除KVM虚拟机,不可逆,如果想找回来,需要备份/etc/libvirt/qemu的xml文件)
1.6KVM性能优化
1.6.1CPU优化
inter的cpu的运行级别,按权限级别高低Ring3->Ring1->Ring0(Ring2和Ring1暂时用不上)Ring3为用户态,Ring0为内核态
Ring3的用户态是没有权限管理硬件的,需要切换到内核态Ring0,这样的切换(系统调用)称为上下文切换,物理机到虚拟机多次的上下文切换,势必会导致性能出现问题。对于全虚拟化,inter实现了技术VT-x,在CPU硬件上实现了加速转换,CentOS7默认是不需要开启的。
1.6.2内存优化
宿主机虚拟内存-> 宿主机物理内存
虚拟机的虚拟内存 -> 虚拟机的物理内存
VMM通过采用影子列表解决内存转换的问题,影子页表是一种比较成熟的纯软件的内存虚拟化方式,但影子页表固有的局限性,影响了VMM的性能,例如,客户机中有多个CPU,多个虚拟CPU之间同步页面数据将导致影子页表更新次数幅度增加,测试页表将带来异常严重的性能损失。如下图1-1为影子页表的原理图
在此之际,Inter在最新的Core I7系列处理器上集成了EPT技术(对应AMD的为RVI技术),以硬件辅助的方式完成客户物理内存到机器物理内存的转换,完成内存虚拟化,并以有效的方式弥补了影子页表的缺陷,该技术默认是开启的,如下图1-2为EPT技术的原理。
1.6.3磁盘IO优化
1、Noop Scheduler:简单的FIFO队列,最简单的调度算法,由于会产生读IO的阻塞,一般使用在SSD硬盘,此时不需要调度,IO效果非常好
2、Anticipatory IO Scheduler(asscheduler)适合大数据顺序顺序存储的文件服务器,如ftp server和web server,不适合数据库环境,DB服务器不要使用这种算法。
3、Deadline Schedler:按照截止时间的调度算法,为了防止出现读取被饿死的现象,按照截止时间进行调整,默认的是读期限短于写期限,就不会产生饿死的状况,一般应用在数据库
4、Complete Fair Queueing Schedule:完全公平的排队的IO调度算法,保证每个进程相对特别公平的使用IO [root@linux-node1~]# dmesg|grep -i "scheduler" #查看本机Centos7默认所支持的调度算法
[ 1.332147] io scheduler noop registered
[ 1.332151] io scheduler deadline registered(default)
[ 1.332190] io scheduler cfq registered
临时更改某个磁盘的IO调度算法,将deadling模式改为cfq模式
[root@linux-node1~]# cat /sys/block/sda/queue/scheduler
noop[deadline] cfq
[root@linux-node1~]# echo cfq >/sys/block/sda/queue/scheduler
[root@linux-node1~]# cat /sys/block/sda/queue/scheduler
noopdeadline [cfq]
[root@linux-node1~]# vim /boot/grub/menu.lst #使更改的IO调度算法永久生效,需要更改内核参数
kernel/boot/vmlinuz-3.10.0-229.el7 ro root=LABEL=/ elevator=deadline rhgb quiet
1.7虚拟化镜像制作
1.在开始创建过虚拟磁盘,并命名为CentOS-7.1-x86_64.raw,这个是虚拟机镜像。
[root@linux-node1~]# ll /opt/
total5203344
-rw-r--r-- 1 qemu qemu 4310695936 12月 28 04:46CentOS-7.1.iso
-rw-r--r--.1 qemu qemu 10737418240 12月 28
08:55CentOS-7.1-x86_64.raw
2. 分区的时候,只分一个/分区(不需要swap分区)。
3. 删除网卡里面{UUID,MAC}
4. 如果有
/etc/udev/rules.d/70-persistent-ipoib.rules 则删除。
5. iptables关闭、selinux关闭
6.安装基础软件包。(net-tools lrzsz screen tree vim wget)
2016革新之年,双节同庆惊喜不断!
本站文章除注明转载外,均为本站原创或翻译
相关推荐
- SpringBoot+LayUI后台管理系统开发脚手架
-
源码获取方式:关注,转发之后私信回复【源码】即可免费获取到!项目简介本项目本着避免重复造轮子的原则,建立一套快速开发JavaWEB项目(springboot-mini),能满足大部分后台管理系统基础开...
- Spring Boot+Vue全栈开发实战,中文版高清PDF资源
-
SpringBoot+Vue全栈开发实战,中文高清PDF资源,需要的可以私我:)SpringBoot致力于简化开发配置并为企业级开发提供一系列非业务性功能,而Vue则采用数据驱动视图的方式将程序...
- 2021年超详细的java学习路线总结—纯干货分享
-
本文整理了java开发的学习路线和相关的学习资源,非常适合零基础入门java的同学,希望大家在学习的时候,能够节省时间。纯干货,良心推荐!第一阶段:Java基础...
- 探秘Spring Cache:让Java应用飞起来的秘密武器
-
探秘SpringCache:让Java应用飞起来的秘密武器在当今快节奏的软件开发环境中,性能优化显得尤为重要。SpringCache作为Spring框架的一部分,为我们提供了强大的缓存管理能力,让...
- 3,从零开始搭建SSHM开发框架(集成Spring MVC)
-
目录本专题博客已共享在(这个可能会更新的稍微一些)https://code.csdn.net/yangwei19680827/maven_sshm_blog...
- Spring Boot中如何使用缓存?超简单
-
SpringBoot中的缓存可以减少从数据库重复获取数据或执行昂贵计算的需要,从而显著提高应用程序的性能。SpringBoot提供了与各种缓存提供程序的集成,您可以在应用程序中轻松配置和使用缓...
- 我敢保证,全网没有再比这更详细的Java知识点总结了,送你啊
-
接下来你看到的将是全网最详细的Java知识点总结,全文分为三大部分:Java基础、Java框架、Java+云数据小编将为大家仔细讲解每大部分里面的详细知识点,别眨眼,从小白到大佬、零基础到精通,你绝...
- 1,从零开始搭建SSHM开发框架(环境准备)
-
目录本专题博客已共享在https://code.csdn.net/yangwei19680827/maven_sshm_blog1,从零开始搭建SSHM开发框架(环境准备)...
- 做一个适合二次开发的低代码平台,把程序员从curd中解脱出来-1
-
干程序员也有好长时间了,大多数时间都是在做curd。现在想做一个通用的curd平台直接将我们解放出来;把核心放在业务处理中。用过代码生成器,在数据表设计好之后使用它就可以生成需要的controller...
- 设计一个高性能Java Web框架(java做网站的框架)
-
设计一个高性能JavaWeb框架在当今互联网高速发展的时代,构建高性能的JavaWeb框架对于提升用户体验至关重要。本文将从多个角度探讨如何设计这样一个框架,让我们一起进入这段充满挑战和乐趣的旅程...
- 【推荐】强&牛!一款开源免费的功能强大的代码生成器系统!
-
今天,给大家推荐一个代码生成器系统项目,这个项目目前收获了5.3KStar,个人觉得不错,值得拿出来和大家分享下。这是我目前见过最好的代码生成器系统项目。功能完整,代码结构清晰。...
- Java面试题及答案总结(2025版持续更新)
-
大家好,我是Java面试分享最近很多小伙伴在忙着找工作,给大家整理了一份非常全面的Java面试场景题及答案。...
- Java开发网站架构演变过程-从单体应用到微服务架构详解
-
Java开发网站架构演变过程,到目前为止,大致分为5个阶段,分别为单体架构、集群架构、分布式架构、SOA架构和微服务架构。下面玄武老师来给大家详细介绍下这5种架构模式的发展背景、各自优缺点以及涉及到的...
- 本地缓存GuavaCache(一)(guava本地缓存原理)
-
在并发量、吞吐量越来越大的情况下往往是离不开缓存的,使用缓存能减轻数据库的压力,临时存储数据。根据不同的场景选择不同的缓存,分布式缓存有Redis,Memcached、Tair、EVCache、Aer...
- 一周热门
- 最近发表
- 标签列表
-
- mydisktest_v298 (34)
- document.appendchild (35)
- 头像打包下载 (61)
- acmecadconverter_8.52绿色版 (39)
- word文档批量处理大师破解版 (36)
- server2016安装密钥 (33)
- mysql 昨天的日期 (37)
- parsevideo (33)
- 个人网站源码 (37)
- centos7.4下载 (33)
- mysql 查询今天的数据 (34)
- intouch2014r2sp1永久授权 (36)
- 先锋影音源资2019 (35)
- jdk1.8.0_191下载 (33)
- axure9注册码 (33)
- pts/1 (33)
- spire.pdf 破解版 (35)
- shiro jwt (35)
- sklearn中文手册pdf (35)
- itextsharp使用手册 (33)
- 凯立德2012夏季版懒人包 (34)
- 冒险岛代码查询器 (34)
- 128*128png图片 (34)
- jdk1.8.0_131下载 (34)
- dos 删除目录下所有子目录及文件 (36)