https://wiki.smartos.org

A Little History

2005年,Sun Microsystems开源了其著名的Unix操作系统Solaris,最终被发布为一个名为OpenSolaris的发行版。 OpenSolaris最早采用者和最有效的倡导者是本·洛克伍德(Ben Rockwood),他于2005年6月撰写了“Cuddletech指南”,是OpenSolaris新兴社区的第一个重要贡献。同时,Joyent的首席技术官Jason Hoffman对大多数操作系统无法回答似乎简单的问题感到沮丧,如:“为什么服务器关闭?什么时候可以备份?现在它已经备份了,为什么我的数据库还慢?

杰森知道这些问题在基于Solaris的系统上会更容易解决,并将Sun的开源计划认定为一个巨大的机会。他聘请了本,Joyent成为开源Solaris内核(“Solaris 11 Nevada构建”)中最具创新性的用户之一,多年来积累了大量的专业知识来调整Joyent的云计算需求。

在2010年收购Sun Microsystems之后,Oracle Corp.关闭了OpenSolaris。幸运的是,另一种替代方案 - Illumos是Solaris的新叉,已经在工作中,许多Solaris工程师已经离开了Oracle,并且可以自由地为此做出贡献。毫不奇怪,其中一些工程师最终在Joyent,作为一个有才华的团队的一部分,现在对Illumos做出了非常大的贡献,将其扩展到诸如KVM(内核虚拟机)等关键领域,以及专门用于云端使用的Illumos内核。

The Real Cloud OS

为“云计算”设计的操作系统意味着什么? 云计算操作系统基本面临的挑战是向许多客户提供单一的服务器,同时让每个客户都觉得是唯一使用该机器的客户。 从用户的角度来看,云操作系统必须是:

快速:最小化延迟(操作完成所需的时间)
     灵活:具有automatic bursting和轻松缩放
     安全:我永远不用担心我的邻居在做什么

对于云数据中心操作员,操作系统另外必须提供:

超快速配置和取消配置(即虚拟机的创建和销毁)
     有效和公平的资源共享
     多线程和多处理器支持
     简单/自动化操作
     可靠性
     可观察性:当某事物的行为不当时,我们需要能够快速找出错误的原因

Inherited Features

从Illumos,SmartOS继承了强大的功能来满足这些需求。 我们在这里简单介绍一下; 其中一些主题将在今后的职位中深入讨论。

Operating System Virtualization(操作系统虚拟化)

“由于Solaris / Illumos的遗产,SmartOS已经拥有 Containers和Zones - 基于 Containers的虚拟化( Container应该是zones+资源控制),允许用户在彼此隔离的一个服务器上运行多个应用程序集,使用KVM在SmartOS上,Joyent现在可以解决那些需要Linux,Windows或其他操作系统的客户运行完整操作系统的工作负载,可以在完全硬件辅助的虚拟化中运行。与任何其他“虚拟机管理程序”不同,Joyent的KVM映像以一个zone内的进程:实际上是一种非常安全的运行Windows的方式,与Linux不同,SmartOS还可以让客户访问许多用户发现令人信服的Solaris技术,如DTrace和ZFS。“ReadWriteEnterprise

Joyent的首席绩效工程师Brendan

Gregg对zones,KVM和Xen的性能进行了广泛的分析。在DTrace博客的一篇文章中,他以四种方式总结了其性能:特性,框图,内部结构和结果。通过查看I
/
O路径(网络,磁盘)及其开销,他提供了一些最低配置结果,比较了操作系统虚拟化(Zones)与Xen和KVM品种的硬件虚拟化之间的性能.Brendan的全文更深入了解了每个这些技术的工作原理,每个性能评估标准以及每个技术执行网络I
/ O的代码路径,请阅读DTrace博客的全面分析。- joyent

ZFS

这个未来的证明文件系统(future proof file system) - 也是一个逻辑卷管理器 - 给我们:

创建快速文件系统:创建和启动其他zones(Joyent术语中的“SmartMachines”) - 换句话说,添加新的付费客户 - 几乎是即时的。
    保证数据完整性,特别强调防止静默数据损坏。
    存储池:“虚拟存储”使管理任务和扩展变得更加容易。要扩展存储容量,您需要做的就是将新的磁盘(硬盘,闪存,以及将来可能出现的任何内容)添加到zpool。
    快照:ZFS的“ copy-on-write”事务模型可以随时捕获整个文件系统的快照,仅在不断更改工作文件系统之间存储差异。这将创建一个管理员可以轻松回滚到的备份点。
    克隆:可以克隆卷和文件系统的快照,创建相同的副本。克隆几乎是瞬间的,最初不消耗额外的磁盘空间。这有助于快速创建新的,几乎相同的虚拟机。
    * ARC(自适应替换缓存)可提高文件系统和磁盘性能,降低整体系统延迟。

Scalability(可扩展性)

维基百科将可伸缩性定义为“...系统,网络或过程的能力,以优雅的方式处理越来越多的工作,或者将其扩大以适应这种增长的能力”。
Solaris几十年来一直是主要企业计算机的首选操作系统。 “纳夫说!

Resource Controls

SmartOS提供两种方法来控制CPU消耗: 公平共享调度程序允许操作员设置CPU的最小保证份额。 当系统忙于来自多个zone的需求时,它将生效,以确保每个区域获得公平的份额。 当系统不是很忙的情况下,一个zone可以“burst”超出其通常的限制,消耗超过最低要求,直到为其设置的CPU上限。 CPU帽是最大的,例如 用户支付的CPU时间量。 这也可以用于设置用户对系统性能的期望,即使整个系统尚未填充且负载仍然很轻。

Network Virtualization

虚拟化也用于创建实际上不在真实系统上的事物的错觉,如虚拟网络接口(VNIC)。 Joyent是Project Crossbow的第一批用户,它向OpenSolaris添加了网络虚拟化。 使用此技术,每个Joyent SmartMachine都可以获得32个VNIC,每个VNIC都有自己的TCP / IP协议栈。 这有助于通过使用网络池来最大化其他稀缺资源,IPv4地址。

Observability(可观察性)

Illumos,Mac OS X和FreeBSD的用户都知道[DTrace |]可以让您以前所未有的方式了解整个软件堆栈的发生。 在SmartOS中,这允许操作员在整个数据中心的所有zones和nodes之间观察和排除故障。 在SmartDataCenter中,Joyent团队利用云分析功能,以更方便用户的形式利用了DTrace的功能,云计算运营商及其客户可以使用云计算。

Security

由于SmartOS继承了几个功能,Solaris一直是高度安全的数据中心的操作系统。 SmartOS zones虽然共享系统资源,如CPU和磁盘空间,但根本无法看到对方。因此,在多租户环境中的用户彼此保护;你邻居的安全失效不会影响你的zone。数据安全性也得到保证:现在或以后,任何其他客户都不会共享一个客户的数据字节,因为:

zone只能看到自己的网络流量。
    只能通过ZFS文件系统访问磁盘存储,而不能使用原始设备。每个SmartMachine都有自己的文件系统,甚至不知道是否存在任何其他的文件系统。
    用户无法访问原始内存设备,因此无法扫描系统内存。

删除SmartMachine后,文件系统将被销毁,并且没有设备路径,未来的客户可以访问该文件系统中剩余的任何数据。

SmartMachine通过一些相同的功能来保护DDOS攻击,保证它们获得公平的系统资源:公平共享计划程序,上限,进程限制,rcapd,交换上限,磁盘文件系统限制,配额限制。通过限制每个区域的资源使用,SmartOS确保即使在重度攻击下,一个区域也不会使其邻居遭到破坏。

Reliability(可靠性)

SmartOS更可靠: 故障管理(FMA):“任何可能的组件 - 硬件或软件遇到问题的细粒度故障隔离和重新启动。为此,系统必须包括智能,自动化,主动诊断错误。诊断系统用于触发有针对性的自动应答或指导人为干预,以减轻特定问题,或至少防止其恶化。 服务管理工具(SMF)是“Solaris操作系统的一项功能,可在每个Solaris系统上为服务和服务管理创建支持的统一模型”。

Joyent-Added Features in SmartOS

Joyent除了Solaris之外,还扩展了SmartOS,具有云操作员特别感兴趣的功能,包括磁盘I / O调节。 经典Solaris中多租户的一个缺点是,在存储共享的情况下,系统上的单个应用程序可以通过同步I / O请求流垄断对本地存储的访问,从而有效阻止系统对I / O请求的服务 其他zone和应用程序,并导致其他租户的性能下滑。 这种新的可操作员可配置的设置会阻止来自不正常行驶区域的I / O(通过在每次读取或写入时增加一个小延迟),从而确保其他区域在读取/写入磁盘时也会转弯。 与CPU帽一样,当系统处于来自多个租户的负载时,磁盘I / O限制只会生效。 当系统相对安静时,单个租户可以享受更快的I / O,而不用打扰邻居。

以下是Joyent向SmartOS添加的主要功能的列表

支持运行 a live image    Joyent branded zone
        使用类似于Solaris 10的“sparse root”模型
    KVM
        还添加了kvmstat命令
        vmx / svm增强的isainfo
        KVM运行在branded zone以获得更高的安全性
    可扩展zone内存cap
        不使用rcapd - 每个zone都是独立管理的
        除非有必要,否则不使用昂贵的RSS计算
        使用新的zonememstat命令而不是rcapstat
        内存cap是现在的一个rctl,可以用prctl命令进行管理
     per-zone ZFS I/O throttle
        还添加了新的vfsstat命令
        还添加了新的ziostat命令
        也增加了zone优先级
    ZFS转储到RAID-Z池
    作为zone引导/停止创建/销毁的动态VNIC
        增强的友好名称(换句话说,每个zone可以具有由全局zone创建的VNIC,名为“net0”)
        增强的dladm,dlstat和flowadm命令带有区域支持
    zone svcs命令增强功能
        -z来看一个zone
         -Z查看所有zones
        -L查看日志文件
        还添加了-z到svcadm和svcprop

CPU bursting
        可以定义CPU使用率和上限的基本级别
        可以限制一个zone可以burst多少时间
   zone可靠性 - 许多内核修复,用于处理防止zone关闭的错误情况
    更好的可观察性 - zone的许多新的kstats,CPU bursting,ZFS I / O等。
    wall(1) zone support
    FSS修复以防止过程不足
    coreadm
        支持限制核心转储的数量
        为zonepath添加%Z corefile名称模式
    支持SMF重启速率
    DTrace增强
        llquantize
        vmregs []
        enablings on defunct providers prevent providers from unregistering
        tracemem()操作需要一个动态大小参数
        toupper()和tolower()子例程
        lltostr()D子例程应该有一个可选的基础
        sdt探测zvol_read和zvol_write
        bump dtrace_helper_actions_max为1024
    改进的反汇编器支持
    新的持久区域改进跨区域重启的DTracing
    全系统的crontab支持
    每区负荷平均值
    驱动程序和模块更新
        ixgbe已更新
        igb更新了
        纳入英特尔的最新acpica代码
        从FreeBSD开启IPMI驱动程序
    改进了mdb支持
        用于迭代对象符号的mdb api函数
        :: ugrep和:: kgrep不适用于小于4的大小
        :: scalhrtime dcmd
        :: printf
        :: findjsobjects
        mdb_v8
        :: walk jsframe和jstack
        标签完成
    libumem支持分配器
    关键的IP DCE修复系统在重的IP负载
    显着降低SMF RSS - 重要的许多区域
    扰动的VNIC用于测试现实世界的网络
    vmadm命令和元数据支持区域启动时自定义
    很多杂项。 bug修复

Orchestrating the Cloud(协调云端)

SmartOS允许云托管提供商将更多的客户放在物理服务器上(每个都在自己的SmartMachine中),同时仍然给予它们所有惊人的性能。 Joyent的服务器通常以70%的CPU容量运行,符合15%的行业标准。 Joyent SmartMachines也运行得更快。 SmartOS提供了基本功能; SmartDataCenter添加了将这些概念和操作抽象到GUI和/或API层的编排层。

Beyond the Cloud(超越云端)

我们应该补充说,SmartOS可能具有远远超出云和大数据中心的应用。 这是Gigaom的Stacy Higginbotham的一个想法:SmartOS需要相对较小的内存占用,并启动到仅限于ram的环境以实现性能。 这意味着它可以用于各种较小的计算平台,如数字标牌,机顶盒甚至高端传感器。 展望未来,拥有可在数据中心级别和现场传感器上工作的操作系统能够实现传感器丰富的网络。

smartos介绍的更多相关文章

  1. Redis学习笔记1-Redis的介绍和认识

    说明:文章内容来自百度百科和redis官方对redis的介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API ...

  2. redis 介绍和常用命令

    redis 介绍和常用命令 redis简介 Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统.由于 Redis 的键 ...

  3. [redis] 介绍安装

    redis相关网站 官方网站:http://redis.io/ redis简介 官方介绍:http://redis.io/topics/introduction 百度百科:http://baike.b ...

  4. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  5. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  6. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  7. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  8. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

  9. HTML DOM 介绍

    本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...

随机推荐

  1. mysql 微信用户昵称emoji 完整保存

    微信用户昵称现在丰富多样,一些个性的名称中经常包含有特殊字符,以及emoji表情.起先,我总以为MySQL只能保存纯文本数据.但其实mysql(5.7版本)已非常强大,完整保存微信用户昵称(emoji ...

  2. spring boot学习(7) SpringBoot 之表单验证

    第一节:SpringBoot 之表单验证@Valid 是spring-data-jpa的功能:   下面是添加学生的信息例子,要求姓名不能为空,年龄大于18岁.   贴下代码吧: Student实体: ...

  3. Spring Cloud构建微服务架构(七)消息总线

    先回顾一下,在之前的Spring Cloud Config的介绍中,我们还留了一个悬念:如何实现对配置信息的实时更新.虽然,我们已经能够通过/refresh接口和Git仓库的Web Hook来实现Gi ...

  4. Spring Cloud config之一:分布式配置中心入门介绍

    Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持.配置服务器为各应用的所有环境提供了一个中心化的外部配置.它实现了对服务端和客户端对Spring Environm ...

  5. [转]批处理遍历文件夹生成 html 文件

    [转自] http://www.360doc.com/content/15/0205/20/21861372_446525665.shtml :: 自动将指定文件夹中的图片写入到 html 文件中 @ ...

  6. 魅族pro6部分应用内adb断开连接

    魅族pro6打开支付宝,adb自动断开链接,顶部有Flyme自动保护中. 进入手机管家的设置,将Flyme支付保护关掉 再次进入支付宝页面,adb不会再自动断开链接

  7. kddcup2015

    kddcup2015,二分类,课程逃课预测.写了好久了,突然想起简单整理一下,以备后需. step1,预处理,利用numpy和pandas库,数值化特征,简单而优雅 #!/usr/bin/env py ...

  8. FileSync plugin for Eclipse 安装注意事项 Eclipse文件同步插件

    习惯了使用MyEclipse,各种插件不用自己安装,觉得开发起来很方便,现在大家都用Eclipse了,还有不用Eclipse用更高级的,IT当然开发大型项目没人用UltraEdit吧,虽然是一个不错的 ...

  9. 【C++11新特性】 - 空间配置allocator类

    原文链接: http://blog.csdn.net/Xiejingfa/article/details/50955295 今天我们来讲讲C++的allocator类. C++提供了new和delet ...

  10. C# webbrowser实现百度知道团队邀请助手!

    [百度知道团队邀请助手] 是您快速提高百度知道团队成员数和团队排名的利器! 主要功能: 1.运用C#自带的webbrowser自动登录百度: 2.自动采集请在C#.Net分类排名下的所有用户,邀请这些 ...