WinddSnow

杂谈服务器

字数统计: 1.7k阅读时长: 5 min
2018/05/03

服务器本质上也是就是加强版的计算机,服务器主要对外提供服务。但这有什么好谈论的呢?现代网络条件下,随着物联网的进一步发展,万物互联成为了趋势,那这一切服务的背后,是无数的服务器的支撑。

我曾经一度很好奇,各种云厂商,如阿里云等,巨量的服务器是如何运维的?他们的服务器安装的是什么系统,不同的架构(如X86或ARM)对前端服务有何影响?网上资料很少,我的见解也是一知半解,只当记录,留作参考。

磁盘阵列RAID

谈论服务器绕不开磁盘阵列,本质上磁盘阵列是硬盘的一种冗余方式,从接触的服务器来看,大多服务器自带raid卡,可以进行硬件层面的磁盘阵列,牺牲性价比的raid1,两个磁盘互备,损失一半容量,很多系统盘会采用raid1,raid0与raid1相反,数据的火葬场,速度翻倍,损坏一块硬盘数据全丢,还有raid5,增加奇偶校验,三分之二的容量,是比较常用的方式,一块硬盘损坏时,不影响使用,正常更换硬盘即可。还有更多的raid方式可以自行了解。

但各种磁盘阵列仍有风险,拿raid5来说,如果是同时更换的新硬盘做的阵列,一块硬盘损坏时,剩下硬盘亦有可能处于损坏边缘,更换新硬盘后,恢复数据时对所有硬盘都有读写压力,有可能在恢复过程中造成剩下硬盘损坏,这就雪崩了,但实际工作中,尚未遇到过这种情况,只是听闻过这种风险存在。

目前听说有新款服务器,强行绑定raid卡,非raid情况下,无法安装系统,不知道硬件厂商时出于何种考虑,但在dell R740上,我曾通过繁琐的设置,可以在不设置磁盘阵列的情况下,直接将系统安装在硬盘上。之所以有直接安装在硬盘上的需求,就不得不说到裸金属服务器和普通服务器了。

裸金属服务器与其他服务器

因为服务器基本24小时不停对外提供服务,所以服务器的配置都很高,一般情况很难榨干一台服务器的所有性能,会有服务器空闲的时候,这时虚拟化就站了出来。

通过对服务器进行虚拟化,一台服务器就可以变成多台主机对外服务,甚至于现在的云服务厂商,我们购买的云服务器,本质上应该也是分配一台虚拟的主机出来,通过控制带宽和性能,分成不同层次的云主机,区别只在于不同的虚拟化方式和技术,听闻国内均是采用open stack的开源方案,通过自主改造而成的虚拟化方案,真实情况不得而知。

那为何有裸金属服务器和其他服务器之分呢?原来,既然服务器是要虚拟化来使用,为何不直接使用虚拟化专用系统呢?这就是裸金属服务器的由来,不安装正常的操作系统,直接安装虚拟化专用操作系统,比如VMware的ESXI系统,比如开源的Proxmox VE(PXE)等等,此类系统从系统底层就是为虚拟化而生,将服务器变成裸金属服务器,专门实现虚拟化,将服务器的资源变成一个虚拟的资源池,可以通过分配,根据需求,虚拟出不同的主机用于服务,而其他服务器,则是安装正常的操作系统,如Redhat,Windows server,Debian等,然后在操作系统的层面再进行其他操作。

虚拟化与容器docker

可以说,虚拟化是所有服务器的终点,服务器本质是一种计算资源,一种储存资源,通过虚拟化,可以最大化的利用各种资源,无论是裸金属服务器,还是在系统层面,通过开源KVM方式,微软Hyper-V,或其他方式,都是在实现不同的虚拟化。包括无状态容器的兴起,docker的流行,我不知现在有没有专门的容器系统,可以直接安装在服务器上,直接实现服务器的容器化,但我所知道的容器,还是需要底层系统的支持,联系上面所有的,安装普通操作系统后,通过容器的无状态化,分布式部署,底层的磁盘阵列(raid)还是否有必要,因为在容器编排下,都是至少三副本的存在,可以做到一台主机挂掉,服务自动偏移,不影响服务的程度。在这种情况下,磁盘阵列,甚至裸金属服务器是否又变得不太需要呢?在目前的学识下,我并没有答案。

实际工作中,大部分服务器还是使用VMware虚拟化,分配主机,可以在虚拟的主机上进行安装docker容器操作,实现容器化等。但底层还是裸金属服务器,如果服务器崩溃,上面运行的容器也将不能实现无障碍服务漂移,似乎陷入了某种循环矛盾…

所以很好奇云厂商是怎么处理这种情况,实现巨型系统的虚拟化,容器化,是怎么改造open stack的?我大概的思路只能说,通过巨型的网络,容许的故障会越来越大,从允许一块硬盘挂掉,不影响主机服务,再到分布式,一台服务器挂掉,不影响服务,最后一个机房挂掉,不影响整个系统的服务,本质都是资源的备份,各种冗余与备份…

如何压榨服务器

我觉得个人测试,使用PVE是很好的选择,操作简单,开源,可以使用普通主机虚拟出多台虚拟机,用于测试,虚拟出多台主机,即可进行各种分布式实验,以及测试各种服务,对于目前来说,相当于底层架构好了,接下来就是如何使用,如何使用服务器对外提供服务,如何实现不同的服务?哪些服务是需要的?

杂谈服务器记录完毕。

CATALOG
  1. 1. 磁盘阵列RAID
  2. 2. 裸金属服务器与其他服务器
  3. 3. 虚拟化与容器docker
  4. 4. 如何压榨服务器