本文从个人角度上分析虚拟化的意义

 

1. 虚拟化对成本的影响

 

A. 节约采购成本:

     提高 PC CPU ,内存,硬盘和网络使用效率,同时降低了电力消耗

B. 节约了维护的成本:

     i. PC 少了,维护工作自然少了

    ii. 集中化的管理 , 减轻维护人员工作压力

    iii. 可以弹性的资源调配

  

2. 虚拟化前的资源使用分析

 

下面场景是最直观的资源闲置

  • 为了保证服务的持续性,很多应用要求有主备,所有的备机是闲置的
  • 测试服和开发机,只有测试需要或者编译时会使用。
  • 很多 IT 公司的服务器都是根据年初预算提前采购,如果项目进展或者用户需求不如预期,将产生很大一批机器资源浪费
  • 测试客户机,只有测试的时候才需要
  • 测试开发机,只有编译或者调试时使用
  • 测试服务器,测试时候才有用

 

下面场景是利用率不高

  • 接入机,网络占用高, CPU, 内存,磁盘低
  • 工作 PC ,时高时低,特别是那些需要倒班的企业,换一批人,机器就闲置一批(或者不换,但是共享 PC 容易导致工作场景或文件丢失)
  • 缓存服务器, IO
  • 应用服务器,一般内存和 IO 都比较低

3. 如何部署虚拟化主机

 

3.1 水平划分

对大公司来说,云太大了,将会导致管理的混乱,所以我们要进行一定的水平划分。

水平划分有很多方法,比如按照业务的敏感度,或者部门,业务的开放性(对内还是对外等),轻重分离。如果划分后还是太大了,可以继续 2 级, 3 级划分。

 

3.2 资源的最大利用  

  

划分完以后,我们可以部署我们的虚拟集群了。

针对 2 节中的分析, 可以对我们的场景进行分类和部署

 

 

场景

CPU

MEN

NET

IO

业务特点

部署

A

主备功能

M

M

M

M

要求主备隔离

不同应用的主备混搭,可以把 A 进程的主和 B 进程的背搭在同一机器上的不同虚拟机上

B

UI 测试和工作 PC

M

M

L

L

资源要求不高,大部分时间是闲置

通过 XEN 底层预销售尽量多的工作单元

C

前端网络接入机

L

L

H

L

网络内外网资源占用高,其他低

可以跟一些网络要求不高的混搭,比如 D

D

应用 1

L

L

H

H

存储应用一般只对 IO NET 要求高

混搭

E

应用 2

H

H

L

L

后台运行应用,比如生成静态化报表等

 

F

应用 3

H

H

H

L

如缓存或者主控应用

相对独立,可以部署那些不活跃的备份日志混搭

G

应用 4

L

L

L

H

备份存储应用

 

H

都高

H

H

H

H

DB 等,

不适合虚拟化

 

通过虚拟化的资源池,我们可以对上表的场景 追求资源的最大化利用

下面是使用视图

 

 

上图显示,虚拟化起码可以帮我们节省 80% 以上 PC 资源,如果预销售越多,或者应用对资源要求越低,我们将会节省更多。

 

4. 虚拟化主机和多进程的区别

很多时候,做分布式应用时,感觉多虚拟机和多进程部署有一定的雷同

实际上还是差别非常大的:

  • 虚拟机的隔离性更好,应用问题引起的拓机或者资源泄露不会影响其它应用
  • 虚拟机部署更灵活,用户不需要知道具体哪个物理机,根据 IP 就可以了。而多进程必须指定 IP 和端口号
  • 对使用者更灵活,用户可以随意在其计算单元上部署 crontab 等应用而不必怕影响到其它用户
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐