01
本来想写完“系统运维篇”后着手写“应用系统建设篇”的,毕竟应用系统建设一直伴随分公司十年信息化发展的步伐。但依旧是那句话“马虎啃天,无处下口”——十年来分公司应用系统建设迅猛推进,大大小小的应用系统建了数十个,要从中提炼出共性的方面,可借鉴的东西实属不易。只能先放一放,把这个想法交给潜意识,让它自己在头脑中慢慢酝酿、生根发芽吧。
02
虚拟化
而分公司虚拟化平台建设则是一个较为独立的过程,并且发展较晚,是这两年才开展的事情。所以在这里先把虚拟化这一块剥离出来,给大脑腾出一部分硬盘空间,免得挤得难受,运行不畅。
有一点要说明的是,这里说的虚拟化,指的是企业版虚拟化平台的建设部署,而不是个人版虚拟机的安装使用,二者不在同一层级上。
在我看来,虚拟化(机)的确是一种高级发明,它把服务器及主板、网卡、显卡等完全虚拟化,完全脱离硬件而存在,不需要单独安装各类驱动。其安装部署使用,简单、快捷,省时省力。
03
航母
没有虚拟化平台以前,要部署应用系统,数据库等就必须真刀实枪去安装一台物理机服务器。
如果说物理机安装部署相当于在大海中独立造船的话,那么虚拟平台的搭建,则相当于先在海上建造一艘航空母舰,然后在其上分门别类按需求建造功能各异的房间。
一旦航母建造完毕,则在上面搭建房屋建筑,显然比在直接在大海中造小船要容易的多。毕竟少了底层基础架构的施工,方便省事儿多了。
——有了虚拟平台以后,再部署虚拟机,就相当于在航母上利用各种已有设施装备,搭建一个个功能室。
当然,虚拟化平台有很多与物理机不一样的特点:
04
快照
虚拟化有一个重要的技术“快照”。所谓的快照就是忠实地记录某台虚拟机某时刻运行状态的。如果在某时刻对虚拟机做了快照,那么一旦将来该虚拟机出现问题,就可以迅速恢复到此快照上来,避免更大损失。其最常见的应用就是当要对虚拟机做某项可能有风险的配置操作前,先给它执行一个快照,以备不测。
在我看来,快照技术有点像孙悟空的猴毛。孙悟空调皮好动,他每做一个动作,就在脖子上揪下一根毫毛变成小猴子,然后把它定在那里记住孙悟空当时的动作。一旦孙悟空想查找自己在某个时刻做的动作时,只需要找到那只定住的小猴子即可。然后可以根据小猴的动作,快速切换到当时这个动作角色里去。
05
克隆与模板
克隆相当于复制,可以把一台虚拟机服务器进行克隆备份防止出现问题;
而模板,则是把某一台服务器拿出来,标准化其配置,变成样板儿。这样再有类似配置的服务器需要部署的时候,可以直接拿来用。
克隆、模板与快照的区别:
克隆是相当于复制,即新复制出一台一摸一样的虚拟机,与原来的没有关系了;
模板:只能当模板,本身不能当做虚拟机;
快照:是某一台具体虚拟机在某个特定时刻状态的记录。快照是不连续的,离散的。虚拟机只能穿越到做快照的某个时刻,不能随意穿越,有条件限制。
以工业化生产线作比喻:
模板相当于生产产品的模子;
克隆相当于利用模子生产出多个一模一样的产品;
而快照则相当于把生产线过程中某一个半成品拿走存档,记录半成品的质量状态,留作以后过程检验使用。
06
隔离与封装
隔离:虚拟化服务器可以使每个虚拟机互相隔离,数据不会在虚拟机之间泄露。
封装:虚拟单元的所有环境被存放在一个单独文件中; 整个磁盘分区被存储为一个文件,易于备份、转移和拷贝。而为应用展现的是标准化的虚拟硬件。
这两个特点在应用上有一个很大的方便。比如对于一个新手,如果要学习某一方面的技能,或者学习一个新的系统或数据库,只需要迅速搭建一个虚拟机作为应用服务器,进行与正式服务器相同的配置即可。当然如果正式服务器也是部署在虚拟平台的话,可以利用上文中的“ 克隆”功能,快速完成一个复制克隆。
然后,就可以在自己独立虚拟机的一亩三分地上,随意地翻跟头,尽情地打滚折腾,可劲造吧。反正你再怎么捅咕也不会影响到别人的应用。当然,进行病毒复制测试除外。
07
故障迁移
隔离与封装特点,使得各虚拟机在虚拟化平台中就像一个个彼此互相独立运行的格子间,工作室,或者形象地称之为电影院的放映室。
观众在放映室里看电影,就相当于虚拟机在正常运行着一些进程。
VMotion 是 VMware 开发的一项独特技术,它可使得正在运行的整个虚拟机能够在瞬间从一台物理服务器移到另一台上。
比如,当某台虚拟机所在物理服务器出现故障,就像放映室出现问题,比如停电时,坐在座位上看电影的人,会像时空转换一样,瞬间转移到另一间放映室看电影,不会有任何的感觉,并且电影的内容与进度完全不变,丝毫不影响你看电影的兴致。
但这种技术还有一个问题需要完善,那就是不支持USB设备,比如硬件狗的实时迁移。因此,一旦某台虚拟机出问题而迁移到别的服务器上了,在它上面配置的USB设备,并不会跟着过去,在程序调用的时候就会出现问题——据说这个问题可以通过Usbserver来来解决,以后可以尝试一下。
——就像你进电影院看电影前,把随身带的伞挂在电影院某个放映室外面。如果该放映室由于故障,而把你时空转换迁移到别的放映室,等你看完电影出来找伞的时候,却发现伞并不在这个放映室门口,而是在原来那个门口外面,不免有点突兀与惊愕。
08
P2V
P2V,Physical to Virtual,物理到虚拟,顾名思义,就是把物理机迁移到虚拟机,这是虚拟机一个很重要的应用。
如果某一台物理机身体状况不太好,硬件配置比较落后,应用经常出错,为保险起见就可以把它迁移到虚拟机。顺便给它增加硬盘空间,加大内存容量,非常方便。
P2V可以把物理机的配置原封不动地纳入到虚拟机中来,完成物理到虚拟的完美吸收与迁移。这一点非常像《天龙八部》中的绝世武功北冥神功,把别人的内力悉数吸收过来,为我所用。
但与北冥神功不同的是,P2V迁移后,原物理机配置依旧存在,生龙活虎,不像北冥神功那样利己需损人。
正是基于P2V这个特点,我经常用这种方法给一些年代比较久远的物理机做迁移备份。这样以后一旦物理机坏了,可以直接切换到虚拟机,不至于到时候手忙脚乱,六神无主。
09
大范围应用
虚拟机部署安装有一个最大的特点,就是添加硬件配置像吃自助餐一样,可以按照应用的性能要求,自行搭配荤素,绝不会造成浪费,少拿多取,一次不够,继续添加。
不像物理机那样,购买时一般是标配,如果安装一个不咋占资源的应用,则会造成浪费;反之,则需要继续扩硬盘,加内存,很难你情我愿,对上眼。
虚拟机添加配置非常简单:关机,改配置,重启,配置生效。
但是有一个问题,就是一台虚拟机的的硬盘只能从小增到大,不能从大回到小。即一旦某台虚拟机的硬盘空间设置过大,你想把多余的硬盘删除掉,那是没有办法的。即使你从修改配置里删除掉,表面看不见了,但是被删除的这部分硬盘空间依旧不能被释放,供其他虚拟机调用。不太清楚这方面的机理。
现在分公司再部署应用系统,数据库或者专业软件的时候,如果对显卡类没有特殊需求的话,我们一般会部署在虚拟机上,方便快捷,按需分配。
到现在为止,大大小小的虚拟机应用已经安装了几十个了,从管理平台上瞅一瞅那一排虚拟机,心中也有小小的成就感,就像自己养的孩子,一点点看他长大,走向成熟。
记忆中最大的一次事故是一次机房完全停电,连UPS也出现了问题,直接导致几台虚拟机蓝屏无法启动。所幸,这几台虚拟机都不咋重要,抑或是测试用的,损失不大。
但这次事故也给我们敲响了“使用虚拟机也不能一劳永逸”的警钟,自家的孩子是不会自己长大成人的 ,必须付出精心的呵护与守候,生而不养是要不得的。
从那以后,我们对虚拟机的关注更加殷勤起来,按时监控,定期对重要的系统做快照,甚至备份克隆。
10
备份
理财界有一句经典金句:鸡蛋不能放在一个篮子里。其实对于虚拟机及数据库、应用系统的部署使用来说,也是同样的道理。
各种各样的虚拟机小船,化成身材庞大的航空母舰,为信息化数据的安全保驾护航。
但是,你应该也看出来了,航母这样一个庞然大物,固然沉稳、踏实,令人放心,可以容纳比小舟小船多得多的东西,并且功能众多,操控方便。但是,它毕竟是孤零零漂在大海里的,没有与之呼应的救援航母群。
大海风景虽美,却也暗藏风险。一旦它发起怒来,咆哮起来,那可不是闹着玩的。大海毕竟是无情的,就算是你做好了各种安全防护措施,船板足够硬,足够厚,但是一旦遇到冰山触礁也是无能为力的。当年号称不沉之船的“泰坦尼克号”,不也是发生险情而最终倾覆,死伤无数吗?
所以,平常就要注重做好航母的安全防控工作。不仅要做好它本身的检查与修缮,更重要的是要定时观测大海的状况,一旦有风吹草动,就需要马上采取应急措施。
对于一个大型磁盘阵列存储而言,尽管可以利用RAID技术进行镜像备份恢复,但也只限于一些小的内部故障,一旦发生重大灾难依然难以招架。
所以你应该也想到解决方案了:即再造一艘一模一样的航空母舰,并且航行在不同的海域。在新航母上进行与第一艘完全一样的装修、配置,并且还要定期进行同步对照更改。这样一旦首选的航母发生故障,可以第一时间启用备用航母,不至于舰沉船毁,全军覆没。
不过根据这种方案,复制建造航母需要大量的财力物力,只有财大气粗的土豪们才有这个能力,对于一般的小老百姓,真的是望洋兴叹,无能为力。所以只有一些资金丰厚的巨无霸公司,才有能力在全国或者全球不同地点设立灾备中心。
11
vGPU技术
虚拟机可以在很多方面把物理机模仿得惟妙惟肖,以假乱真,除了显卡驱动这一块。
由于虚拟机用的是虚拟化驱动,对付一般的正常应用来说是绰绰有余,但是对于有特殊需求的一些应用则显得力不从心,比如一些专业软件需要进行3D渲染展示。
这时候就需要vGPU排上用场了。vGPU能够同时在多个虚拟机之间共享一个GPU,可以像虚拟化其他服务器组件那样对硬件GPU进行虚拟化,然后利用直通或者共享的模式实现显卡的共享共有,按需分配,从而满足一些高端软件3D调用的需要。
在这方面可以尝试Nvidia的Grid K2显卡与Vmware虚拟平台组合使用。
12
虚拟化与云计算
由于虚拟机的自由组合搭配、可随时调度、对资源再分配利用等特点与“云”有些相似,所以很多人容易把虚拟化与云计算混淆。其实二者不尽相同:
云计算和虚拟化并非捆绑技术,虚拟化是云计算中主要支撑技术之一,是云计算中最关键、最核心的技术源动力。云计算把计算当做公用资源,但不是一个具体的产品或者是技术。
云计算将各种IT资源以服务的方式通过互联网交付给用户,给用户提供服务。而虚拟化本身并不能给用户提供自服务层。
因此说,虚拟化绝不是云计算,而云计算则远远超出了虚拟化的范畴。
——如果把云计算看作一桌招待客人的酒席,那么虚拟化便是这桌酒席上极其重要的招牌菜,离了招牌菜固然可以成席,但会逊色不少。
在云时代下,云计算搭台,虚拟机唱戏,这一趋势已经十分显著,云计算与虚拟机之间的关系可以用相互促进,密不可分来形容,两者之间相互配合才能产生巨大合力。
13
虚拟化意义
与物理机相比,虚拟化最大的优点就是实现了资源的整合与再配置。它打破了原来物理机一城一池的桎梏,可以把闲置不用的资源浮动出来,供其他急需的进程调用。防止出现涝的涝死,旱的旱死,旱涝不均,实现资源的均衡分配。
就像现在流行的部委合并,部门、机构合并,其本质上也是资源整合与再分配。
合并后,对外展示的就是一个优化后的资源池,只要外界有需求,资源池就会集中最佳资源提供最优的服务,防止以前小部门之间存在的扯皮推诿及部门交叉处空白地带的出现。
14
虚拟机思想
比特币首富李笑来利用虚拟机思想发展出一套为人处世的方法论。他说在这个世界上有很多人信星座、信血型、信中医,如果你什么都不信,走高冷范儿,人至察则无徒,容易没朋友的。
因此他利用虚拟机独立互不影响,不用时就关闭的思想,发展出一套方法论。即平常在脑子里划分出一块空间专门学习一下星座、血型、中医之类的知识,遇到相信这方面的女性、老人或者朋友,就打开虚拟机,这样就可以跟对方有共同的话题,不至于冷场。不需要的场合则马上把虚拟机关闭,不占内存,不耗资源,一举两得。