smartos教程一:smartos入门

SmartOS是一个开源的Unix系列操作系统,从Solaris10分支出来,由Joyent公司开发。SmartOS拥有非常强大而简便的虚拟化功能,非常适合用来做云计算。

概述

Smartos是一个开源的Unix系列操作系统,从Solaris10分支出来,由Joyent公司开发。Smartos拥有非常强大而简便的虚拟化功能,非常适合用来做云计算。

Smartos详细资料请参考:https://wiki.smartos.org/display/DOC/Home

SmartOS入门

为了方便理解接下来的安装配置过程,先介绍一些Smartos相关的入门知识。

SmartOS是驻内存的操作系统,它本身不在磁盘上保存任何操作系统运行相关的文件,只将配置、虚拟机等信息持久化到磁盘上。所以每次启动时,整个系统都会被全部加载到内存中运行。而根据加载源的不同,就有两种加载方式:

  1. USB启动。将操作系统写入到U盘中,并让服务器从本地U盘启动。
  2. PXE启动。将操作系统放到某个服务器中并提供PXE启动服务,其他的服务器就可以通过网络启动了。

因此,操作系统更新时,也从来不用打任何补丁,直接从最新版的系统重新启动即可。

zfs文件系统

SmartOS使用zfs作为本地的文件系统,而zfs本身并不是SmartOS独有的,其他Linux发行版也可以使用。zfs和其他的文件系统相比有诸多好处,这里就不一一陈述了,但是简单的介绍下zfs的结构。

存储池

zfs首先从物理磁盘开始构建存储池,叫做zpool,服务器的存储空间可以由一个或者多个zpool组成,每个zpool都是独立的存储空间。

zpool

disk:操作系统可以直接检测到物理磁盘,也可以检测到硬件raid虚拟化出来的磁盘,但是为了充分利用zfs的性能,应该将硬件raid设置成直连(HBA)模式,直接暴露所有物理磁盘。

array:将物理磁盘进行任意组合,可以生成一个或多个软件阵列,可以是mirrorraid等模式。一旦阵列生成,组成阵列的磁盘数量将不允许变更,只能对成员磁盘进行脱离、更换等工作。

zpool:将阵列进行任意的组合,可以生成一个或者多个zpoolzpool可以添加或者删除子阵列,zpool的存储空间就是所有阵列存储空间的叠加。

文件系统

有了zpool存储空间后,就可以构建文件系统了。

zpool

zfs文件系统以zpool为根,以树形结构进行层级划分和管理,但是文件系统的属性(比如预留空间、权限、配额)可以有继承和依赖关系。zfs文件系统和虚拟机里面的文件系统很像似,但是不一样,zfs文件系统的节点是一个设备,需要挂载到虚拟机文件系统的一个目录树节点上,而虚拟机文件系统中的节点就是目录或者文件。最简洁的判别方法就是zfs文件系统不以/开头。

SmartOS网络层次

Smartos作为虚拟化操作系统,必然要实现网络硬件的虚拟化,虚拟化的技术叫做Crossbow,这里只简单的介绍一下。smartos网络层次

physical nic:一台物理机上可以插多张物理网卡,每个网卡上可以有多个物理网口,每个物理网口都有一个全宇宙唯一的mac地址。

aggregation:聚合网口由多个物理网口聚合而成,一个物理网口只能加入一个聚合网口或者不聚合,聚合网口通过一个名称来进行标识,物理网口直接用mac进行标识。

virtual switch:虚拟交换机的名称在Smartos里叫做nic tag,每个虚拟交换机能且只能配置一个聚合网口或者物理网口,一个聚合网口或者物理网口可以属于任意多个虚拟交换机。

global zonevm: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的网卡,至少两块网卡。