概述
Smartos
是一个开源的Unix系列操作系统,从Solaris10
分支出来,由Joyent
公司开发。Smartos
拥有非常强大而简便的虚拟化功能,非常适合用来做云计算。
Smartos
详细资料请参考:https://wiki.smartos.org/display/DOC/Home。
SmartOS入门
为了方便理解接下来的安装配置过程,先介绍一些Smartos相关的入门知识。
SmartOS
是驻内存的操作系统,它本身不在磁盘上保存任何操作系统运行相关的文件,只将配置、虚拟机等信息持久化到磁盘上。所以每次启动时,整个系统都会被全部加载到内存中运行。而根据加载源的不同,就有两种加载方式:
USB启动
。将操作系统写入到U盘中,并让服务器从本地U盘启动。PXE启动
。将操作系统放到某个服务器中并提供PXE启动服务,其他的服务器就可以通过网络启动了。
因此,操作系统更新时,也从来不用打任何补丁,直接从最新版的系统重新启动即可。
zfs文件系统
SmartOS
使用zfs
作为本地的文件系统,而zfs
本身并不是SmartOS
独有的,其他Linux
发行版也可以使用。zfs
和其他的文件系统相比有诸多好处,这里就不一一陈述了,但是简单的介绍下zfs
的结构。
存储池
zfs
首先从物理磁盘开始构建存储池,叫做zpool
,服务器的存储空间可以由一个或者多个zpool
组成,每个zpool都是独立的存储空间。
disk
:操作系统可以直接检测到物理磁盘,也可以检测到硬件raid
虚拟化出来的磁盘,但是为了充分利用zfs的性能,应该将硬件raid
设置成直连(HBA
)模式,直接暴露所有物理磁盘。
array
:将物理磁盘进行任意组合,可以生成一个或多个软件阵列,可以是mirror
、raid
等模式。一旦阵列生成,组成阵列的磁盘数量将不允许变更,只能对成员磁盘进行脱离、更换等工作。
zpool
:将阵列进行任意的组合,可以生成一个或者多个zpool
,zpool
可以添加或者删除子阵列,zpool
的存储空间就是所有阵列存储空间的叠加。
文件系统
有了zpool
存储空间后,就可以构建文件系统了。
zfs
文件系统以zpool
为根,以树形结构进行层级划分和管理,但是文件系统的属性(比如预留空间、权限、配额)可以有继承和依赖关系。zfs
文件系统和虚拟机里面的文件系统很像似,但是不一样,zfs
文件系统的节点是一个设备,需要挂载到虚拟机文件系统的一个目录树节点上,而虚拟机文件系统中的节点就是目录或者文件。最简洁的判别方法就是zfs
文件系统不以/开头。
SmartOS网络层次
Smartos
作为虚拟化操作系统,必然要实现网络硬件的虚拟化,虚拟化的技术叫做Crossbow
,这里只简单的介绍一下。
physical nic
:一台物理机上可以插多张物理网卡,每个网卡上可以有多个物理网口,每个物理网口都有一个全宇宙唯一的mac地址。
aggregation
:聚合网口由多个物理网口聚合而成,一个物理网口只能加入一个聚合网口或者不聚合,聚合网口通过一个名称来进行标识,物理网口直接用mac进行标识。
virtual switch
:虚拟交换机的名称在Smartos
里叫做nic tag
,每个虚拟交换机能且只能配置一个聚合网口或者物理网口,一个聚合网口或者物理网口可以属于任意多个虚拟交换机。
global zone
和vm:global zone
就是物理机的根操作系统,但是应该理解成一个特殊的虚拟机。虚拟机通过给每个虚拟网卡指定nic tag
来接入虚拟交换机,每台虚拟机都必须指定一个主要网卡作为默认路由。
硬件需求
Smartos
对硬件有些需求,并不适用任意硬件,不过也没有太多苛刻的地方,这里简单概括下:
1.64-bit x86
架构,推荐Intel的CPU,开启VT-x
功能支持kvm
虚拟化。
2.能够USB启动
以及能够PXE启动
,第一台机器只可能USB启动
,之后的机器可以PXE启动。
3.只支持本地存储,尽量避免使用硬件RAID
,将RAID
控制器设置成HBA直连模式。因为要使用zfs文件系统。
4.推荐Intel的网卡,至少两块网卡。