在与Fengqi.Asia(风起云)的潜在客户接触时,经常被问到如下问题:
- 为什么我要用从Linux换到SmartOS,一个我不熟悉的系统?
- 什么是SmartOS?
- 你们使用的是Joyent的技术,那么Joyent是干嘛的?
- SmartOS用的是Linux的哪个发行版?
- ……
我在之前的博客里介绍过SmartOS(这里,转载)。这里再说一下。首先SmartOS是基于illumos的。Illumos是从OpenSolaris继承而来的开源产品,而OpenSolaris又是基于Sun的Solaris 10操作系统而来的。所以SmartOS并不是运行于任何一个操作系统之上的应用系统,它本身就是操作系统。在Fengqi.Asia(风起云)和Joyent,我们把它当成是一个hypervisor,在上面运行Linux、Windows、FreeBSD和在KVM上的虚拟机。KVM是Joyent从Linux里剥离出来移植到SmartOS上的(参考链接)。
此外,SmartOS支持操作系统虚拟化,虚拟出SmartMachine。和KVM类似,一个SmartMachine看上去就是一个完整的机器,有自己的硬件(存储、网络和处理器)和操作系统以及库文件等。和KVM不同的是,没有格外的虚拟化层。这意味着不同的SmartMachine在同一硬件上共用操作系统(SmartOS)。
那为什么要推荐使用SmartMachine或SmartOS,而不是Linux呢?
从high level的角度来看,主要有以下几个原因:
- 性能
- 可观测性(Observability)
- 可靠性
我们来逐个细看。以下不仅适用于虚拟机,也适用于裸机。
性能
一般来说,提到性能,我们在乎的多数是网络和存储的延迟、吞吐量,