2019年9月

作为一个曾经亲自扛着 2U 服务器进长安街长话机房的系统工程师,我对服务器的感情是深厚的,当抚摸着冰冷的裸金属,感受着机房内嗡嗡的背景噪音时,似乎能感觉到数据的流动。因此,当得知我的采访对象是国内第一个服务器硬件开源项目的总架构师陈国峰先生时,我还是有点小激动的。

国峰是一个十分低调的人,现任京东云硬件研发总监,他曾在百度工作,负责过百度硬件架构设计的相关工作,如百度的“北极”整机柜服务器、百度网盘用的冰山服务器、百度 AI 所使用的 X-MAN 异构计算服务器等就是其带领团队研发的成果,他也曾任开放数据中心委员会“天蝎”项目的总架构设计师。这十来年的硬件设计经历,让这个行业“老兵”对于互联网的基础设施——服务器,有着独到的见解。

京东云硬件研发总监 陈国峰

演进:从复杂到简单的服务器

我最早接触过的服务器是 Sun 微系统的 Sparc 小型服务器,并没有见识过最早的 大型机 MainFrame 。随着互联网的发展,作为互联网迅猛发展的重要基础设施,服务器的形态也逐渐演变,从塔式服务器、刀片式服务器,再到机架式服务器,我们可以看到服务器的发展从高成本向低成本演进,由复杂变简单,由高技术壁垒向无技术壁垒演进。

就好比手机的演进过程,从一开始使用模拟网的大哥大,到后来使用数字网的手机(现在我们称之为功能机),再到现在的智能机,可以看到,手机的技术在急速进步,技术壁垒在迅速降低,生产成本也以不可思议的速度降低。而在服务器硬件方面,我们同样发现,现在的机架式服务器与原来的大型机相比,亦是如此。

从另外一个角度来看,随着市场需求的不断加大,我们对于服务器硬件的看法也逐渐发生了变化。从过去每个互联网公司最重要的硬件资产就是昂贵的服务器,到如今服务器已经成为了基本的生产资料一样普遍和随处可见。

以前对大机和小机追求的高可靠性、高稳定性,以及由此产生的高成本,随着云计算技术的普及,对单个服务器基础设施的稳定性和可靠性也在降低。互联网应用系统可以通过软件、集群的方式,来提升可靠性和稳定性,通过软件上的容忍度,对集群的容忍度会变高,通过这些上层的手段来避免对于底层基础设施的过度追求。相应的,随着对于基础设施的要求的不断降低,硬件设计的成本自然而然的也就降了下来。

变化:源自真实场景的需求

京东云的下一代服务器也并非完全凭空诞生,而是源自于实际需求的变化。

在过去,使用机架式服务器依然有大量的工作需要在机房内由人工完成,比如一个月可以在一个机房内交付 1 万台机器,一年 10 万台左右的规模。在过去的产业模式下,这种机制尚可持续,但如今的 HyperScale 模式下,这样的交付效率显然无法满足业务对于大规模数据中心的部署要求。

另外,随着云计算的兴起,云的场景也开始多元化,传统的公有云开始衍生出混合云、私有云……这样就会诞生另外一个场景,私有化的部署,包括边缘部署。这种部署是很分散的,不是集中式的。对于这种分散式的部署,我们更需要的是一体化集成的整机柜服务器,避免把很多部署的技术资源分散到各个地域和零散的点上面去。然而云用户,特别是私有云和混合云用户对硬件的稳定和配合功能往往也会有不同的诉求,这给传统的整机柜服务器提出了新的挑战。

为此,国峰带领他的团队,设计出了京东云下一代服务器。

在他看来,下一代服务器必须具备以下几个特性:

  1. 高稳定性。在过去私有云的时代,总拥有成本(TCO)是服务器定制的核心诉求,而在云的时代,为用户提供高可靠的基础设施是京东云的基本服务宗旨,所以,我们把高稳定性放在第一位,而不再是简单的将成本放在第一位。
  2. 高灵活性。公有云就意味着你的客户也是千人千面,不同于传统自用私有云,公有云客户需求的多元化是不可避免的,因此,基础服务就必须有足够的灵活性,以适配这种来自需求的灵活性。这也是为什么京东云下一代服务器要采用模块化设计的概念。
  3. 高效率。对于当前复杂的云市场,公有云,私有云,混合云多种场景并存的市场下,提供一体化交付,并且快速响应客户的资源需求也是产品竞争力的一项重要指标;高效另外一个层面的含义是高能效,能效是数据中心技术中的又一项重要指标,直接影响基础设施的运营成本;因此高效率也成为硬件基础设施的重要特性。
  4. 低成本。任何产品都避不开成本,成本是产品市场的核心因素,影响到产品的核心竞争力,但是,在云的场景下成本管控应当是在为客户提供了高稳定性、高灵活性、高效率之后考虑的事情。

HaaS :Hardware as a Service

和我们所熟知的裸金属、异构计算不同,京东云下一代服务器是比裸金属和异构计算更底层的基础设施服务。确切地说,不管是裸金属还是异构计算,包括上层的 IaaS、PaaS、SaaS 等服务都可以在京东云下一代服务器上呈现。

京东云将会围绕着下一代服务器打造公有云、私有云、混合云、全方位的云产品。一方面,这些底层的硬件服务会服务于京东集团内部的自用私有云,同时也会服务于集团的公有云业务。另一方面,针对私有云和混合云,也可以对外提供私有化交付。如果客户有需求,京东云可以将这些定制的硬件结合京东云的 Iaas、Paas、SaaS 相关技术和产品做成整体解决方案,交付给客户。针对不同的客户需求,京东云可以围绕定制化服务器硬件和MDC(整合IT,供电,制冷一体方案)提供租、售产品服务。这就是我们所谓的 HaaS 的理念和概念。

挑战:技术的进步

当然,下一代服务器并非一蹴而就,所面临的挑战主要分为三个方面:

第一、设计理念——高灵活性,因为用户的需求不可预测,用户场景复杂,租用机房较多,每个机房基础设施条件不一样,同时业务类型复杂,资源调配迁移需求比较多,而目前主流的整机柜与通用机相比,无论从 21 英寸的尺寸还是集中的散热方式都有很大的差异,造成了整机柜部署的局限性,很难实现灵活迁移,混合部署。京东云的下一代服务器通过“标准化,模块化,弹性化”,极大地提高了多场景支撑的灵活性。首先我们采用 42U 19 英寸标准机柜为设计单位,节点独立散热,通用性强,实现了整机柜和标准机架服务器任意切换。其次,节点前 IO 设计,机柜后部无任何线缆,所有运维工作均可在冷通道进行,单边维护效率更高,环境更友好。同时通过模块化设计,可实现前后 IO 灵活切换,集中供电和单机供电模式灵活切换。

第二、也是这个行业面临的通用性技术挑战——高功率密度问题。因为现在芯片行业已经进入到后摩尔定律时代了,意味着计算力的提升也会带来功耗的不断提升。功耗的上升,对于系统散热设计的挑战就会越来越大,风冷已经不足以满足目前的制冷需求,甚至散热某种程度上已经制约了服务器和数据中心的发展。所以,在新的架构设计上,我们会通过一些新的散热手段,比如通过风液混合散热的方式解决功率密度的问题。

第三,功率密度提高之后,风扇转速就会更高。同时由于硬盘的存储密度不断上升,对于外部环境的振动、噪声的敏感度就越来越高。所以我们在设计上对于硬盘和风扇振动需要考虑得更多,我们采用了“硬盘前置,风扇后置”的系统架构,最大程度的拉开风扇和硬盘之间的距离,有效的降低了震动对硬盘的影响。

开源:硬件开源任重道远

软件是开源领域的主力,虽然已经有一些开源硬件的出现,但是,仍然算不上主流,绝大多数团队在硬件方面依然采用传统的闭源方式。

在这个方面,我专门请教了国峰。在他看来,首先,必须承认硬件开源的发展远不如软件开源。硬件开源是最近几年兴起的,国际上比较知名的组织就是 OCP(Open Compute Project),以及国内比较知名的 ODCC ,其前身是 BAT 三家发起的天蝎项目。

他认为,之所以过去大家不做硬件开源,主要是两个原因:

一方面,原来硬件的技术壁垒相对较高,大家希望通过这些技术壁垒来创造价值,来实现商业变现,所以,之前市场上一直没有硬件开源的社区和项目。

另一方面,硬件跟软件有一个很大的不同点,软件的代码一旦写好,在机器上直接运行就能知道是否可以工作,硬件不一样,要验证一个硬件系统的设计,首先要从原理图上设计出来,然后在工厂生产出来,最后进行验证。它的周期长,同时需要大量实物的投入,投入成本相对比较大。此外,还需要有很多专业设备做测试,调试,所以,它的验证成本也非常高。这也是为什么硬件开源难以发展起来的原因。

但是,随着时代的变化,市场的不断变大,技术的开放力度也在不断的增强,技术壁垒也相应在不断降低,成本也越来越低。众人拾柴火焰高,一个新的硬件出来之后有更多的人参与进来,它的上下游的生态就会建得更快一点,普及周期就会变得更短。

这也是为什么京东云下一代服务器要做硬件开源的原因,我们希望建立和维护这样的生态,把大家拉到一起共同推动新生态的演进。

当然,开源也并非易事,要开源首先必须得做好充分的准备来接受市场以及行业专业人士的检验。目前京东云正在为下一代服务器的开源做准备。接下来,京东云也会围绕其新的硬件设计建立一些开源的渠道,比如 OCP、ODCC 等。

京东云希望通过硬件开源,让行业里面更多相关经验的从业者参与到下一代服务器的硬件设计中来,共同围绕新的服务器架构营造一个合作共赢的生态。

微软再次证明了其摒弃了“非我发明”这一态度来支持客户。

当微软将 Azure 作为其 Windows 服务器操作系统的云计算版本发布时,它并没有使其成为仅支持 Windows 系统的版本,它还支持 Linux 系统,并且在短短几年内其 Linux 实例的数量现在已经超过了Windows 实例的数量

很高兴看到微软终于摆脱了这种长期以来非常有害的“非我发明”态度,该公司的最新举动确实令人惊讶。

微软与一家名为 Skytap 的公司合作,以在 Azure 云服务上提供 IBM Power9 实例,可以在 Azure 云内运行基于 Power 的系统,该系统将与其已有的 Xeon 和 Epyc 实例一同作为 Azure 的虚拟机(VM)。

Skytap 是一家有趣的公司。它由华盛顿大学的三位教授创立,专门研究本地遗留硬件的云迁移,如 IBM System I 或 Sparc 的云迁移。该公司在西雅图拥有一个数据中心,以 IBM 的硬件运行 IBM 的 PowerVM 管理程序,并且对在美国和英格兰的 IBM 数据中心提供主机托管。

该公司的座右铭是快速迁移,然后按照自己的节奏进行现代化。因此,它专注于帮助一些企业将遗留系统迁移到云,然后实现应用程序的现代化,这也是它与微软合作的目的。Azure 将通过为企业提供平台来提高传统应用程序的价值,而无需花费巨额费用重写一个新平台。

Skytap 提供了预览,可以看到使用 Skytap 上的 DB2 提升和扩展原有的 IBM i 应用程序以及通过 Azure 的物联网中心进行扩展时可能发生的情况。该应用程序无缝衔接新旧架构,并证明了不需要完全重写可靠的 IBM i 应用程序即可从现代云功能中受益。

迁移到 Azure

根据协议,微软将把 IBM 的 Power S922 服务器部署在一个未声明的 Azure 区域。这些机器可以运行 PowerVM 管理程序,这些管理程序支持老式 IBM 操作系统以及 Linux 系统。

Skytap 首席执行官 布拉德·希克 Brad Schick 在一份声明中说道:“通过先替换旧技术来迁移上云既耗时又冒险。……Skytap 的愿景一直是通过一些小小的改变和较低的风险实现企业系统到云平台的迁移。与微软合作,我们将为各种遗留应用程序迁移到 Azure 提供本地支持,包括那些在 IBM i、AIX 和 Power Linux 上运行的程序。这将使企业能够通过使用 Azure 服务进行现代化来延长传统系统的寿命并增加其价值。”

随着基于 Power 应用程序的现代化,Skytap 随后将引入 DevOps CI/CD 工具链来加快软件的交付。迁移到 Azure 的 Skytap 上后,客户将能够集成 Azure DevOps,以及 Power 的 CI/CD 工具链,例如 Eradani 和 UrbanCode。

这些听起来像是迈出了第一步,但这意味着以后将会实现更多,尤其是在应用程序迁移方面。如果它仅在一个 Azure 区域中,听起来好像它们正在对该项目进行测试和验证,并可能在今年晚些时候或明年进行扩展。


via: https://www.networkworld.com/article/3438904/microsoft-brings-ibm-iron-to-azure-for-on-premises-migrations.html

作者:Andy Patrizio 选题:lujun9972 译者:Morisun029 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

我喜欢互联网的一点是在互联网放置静态页面是如此简单。今天有人问我该怎么做,所以我想我会快速地写下来!

只是一个 HTML 页面

我的所有网站都只是静态 HTML 和 CSS。我的网页设计技巧相对不高(https://wizardzines.com 是我自己开发的最复杂的网站),因此保持我所有的网站相对简单意味着我可以做一些改变/修复,而不会花费大量时间。

因此,我们将在此文章中采用尽可能简单的方式 —— 只需一个 HTML 页面。

HTML 页面

我们要放在互联网上的网站只是一个名为 index.html 的文件。你可以在 https://github.com/jvns/website-example 找到它,它是一个 Github 仓库,其中只包含一个文件。

HTML 文件中包含一些 CSS,使其看起来不那么无聊,部分复制自 https://example.com

如何将 HTML 页面放在互联网上

有以下几步:

  1. 注册 Neocities 帐户
  2. 将 index.html 复制到你自己 neocities 站点的 index.html 中
  3. 完成

上面的 index.html 页面位于 julia-example-website.neocities.com 中,如果你查看源代码,你将看到它与 github 仓库中的 HTML 相同。

我认为这可能是将 HTML 页面放在互联网上的最简单的方法(这是一次回归 Geocities,它是我在 2003 年制作我的第一个网站的方式):)。我也喜欢 Neocities (像 glitch,我也喜欢)它能实验、学习,并有乐趣。

其他选择

这绝不是唯一简单的方式,在你推送 Git 仓库时,Github pages 和 Gitlab pages 以及 Netlify 都将会自动发布站点,并且它们都非常易于使用(只需将它们连接到你的 GitHub 仓库即可)。我个人使用 Git 仓库的方式,因为 Git 不会让我感到紧张,我想知道我实际推送的页面发生了什么更改。但我想你如果第一次只想将 HTML/CSS 制作的站点放到互联网上,那么 Neocities 就是一个非常好的方法。

如果你不只是玩,而是要将网站用于真实用途,那么你或许会需要买一个域名,以便你将来可以更改托管服务提供商,但这有点不那么简单。

这是学习 HTML 的一个很好的起点

如果你熟悉在 Git 中编辑文件,同时想练习 HTML/CSS 的话,我认为将它放在网站中是一个有趣的方式!我真的很喜欢它的简单性 —— 实际上这只有一个文件,所以没有其他花哨的东西需要去理解。

还有很多方法可以复杂化/扩展它,比如这个博客实际上是用 Hugo 生成的,它生成了一堆 HTML 文件并放在网络中,但从基础开始总是不错的。


via: https://jvns.ca/blog/2019/09/06/how-to-put-an-html-page-on-the-internet/

作者:Julia Evans 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Scipio ERP 具有包罗万象的应用程序和功能。

如果,你想在网上销售产品或服务,但要么找不到合适的软件,要么觉得定制成本太高?那么,Scipio ERP 也许正是你想要的。

Scipio ERP 是一个基于 Java 的开源的电子商务框架,具有包罗万象的应用程序和功能。这个项目于 2014 年从 Apache OFBiz 分叉而来,侧重于更好的定制和更现代的吸引力。这个电子商务组件非常丰富,可以在多商店环境中工作,同时支持国际化,具有琳琅满目的产品配置,而且它还兼容现代 HTML 框架。该软件还为许多其他业务场景提供标准应用程序,例如会计、仓库管理或销售团队自动化。它都是高度标准化的,因此易于定制,如果你想要的不仅仅是一个虚拟购物车,这是非常棒的。

该系统也使得跟上现代 Web 标准变得非常容易。所有界面都是使用系统的“模板工具包”构建的,这是一个易于学习的宏集,可以将 HTML 与所有应用程序分开。正因为如此,每个应用程序都已经标准化到核心。听起来令人困惑?它真的不是 HTML——它看起来很像 HTML,但你写的内容少了很多。

初始安装

在你开始之前,请确保你已经安装了 Java 1.8(或更高版本)的 SDK 以及一个 Git 客户端。完成了?太棒了!接下来,切换到 Github 上的主分支:

git clone https://github.com/ilscipio/scipio-erp.git
cd scipio-erp
git checkout master

要安装该系统,只需要运行 ./install.sh 并从命令行中选择任一选项。在开发过程中,最好一直使用 “installation for development”(选项 1),它还将安装一系列演示数据。对于专业安装,你可以修改初始配置数据(“种子数据”),以便自动为你设置公司和目录数据。默认情况下,系统将使用内部数据库运行,但是它也可以配置使用各种关系数据库,比如 PostgreSQL 和 MariaDB 等。

 title=

按照安装向导完成初始配置

通过命令 ./start.sh 启动系统然后打开链接 https://localhost:8443/setup/ 完成配置。如果你安装了演示数据, 你可以使用用户名 admin 和密码 scipio 进行登录。在安装向导中,你可以设置公司简介、会计、仓库、产品目录、在线商店和额外的用户配置信息。暂时在产品商店配置界面上跳过网站实体的配置。系统允许你使用不同的底层代码运行多个在线商店;除非你想这样做,一直选择默认值是最简单的。

祝贺你,你刚刚安装了 Scipio ERP!在界面上操作一两分钟,感受一下它的功能。

捷径

在你进入自定义之前,这里有一些方便的命令可以帮助你:

  • 创建一个 shop-override:./ant create-component-shop-override
  • 创建一个新组件:./ant create-component
  • 创建一个新主题组件:./ant create-theme
  • 创建管理员用户:./ant create-admin-user-login
  • 各种其他实用功能:./ant -p
  • 用于安装和更新插件的实用程序:./git-addons help

另外,请记下以下位置:

  • 将 Scipio 作为服务运行的脚本:/tools/scripts/
  • 日志输出目录:/runtime/logs
  • 管理应用程序:<https://localhost:8443/admin/>
  • 电子商务应用程序:<https://localhost:8443/shop/>

最后,Scipio ERP 在以下五个主要目录中构建了所有代码:

  • framework: 框架相关的源,应用程序服务器,通用界面和配置
  • applications: 核心应用程序
  • addons: 第三方扩展
  • themes: 修改界面外观
  • hot-deploy: 你自己的组件

除了一些配置,你将在 hot-deploythemes 目录中进行开发。

在线商店定制

要真正使系统成为你自己的系统,请开始考虑使用组件。组件是一种模块化方法,可以覆盖、扩展和添加到系统中。你可以将组件视为独立 Web 模块,可以捕获有关数据库(实体)、功能(服务)、界面(视图)、事件和操作和 Web 应用程序等的信息。由于组件功能,你可以添加自己的代码,同时保持与原始源兼容。

运行命令 ./ant create-component-shop-override 并按照步骤创建你的在线商店组件。该操作将会在 hot-deploy 目录内创建一个新目录,该目录将扩展并覆盖原始的电子商务应用程序。

 title=

一个典型的组件目录结构。

你的组件将具有以下目录结构:

  • config: 配置
  • data: 种子数据
  • entitydef: 数据库表定义
  • script: Groovy 脚本的位置
  • servicedef: 服务定义
  • src: Java 类
  • webapp: 你的 web 应用程序
  • widget: 界面定义

此外,ivy.xml 文件允许你将 Maven 库添加到构建过程中,ofbiz-component.xml 文件定义整个组件和 Web 应用程序结构。除了一些在当前目录所能够看到的,你还可以在 Web 应用程序的 WEB-INF 目录中找到 controller.xml 文件。这允许你定义请求实体并将它们连接到事件和界面。仅对于界面来说,你还可以使用内置的 CMS 功能,但优先要坚持使用核心机制。在引入更改之前,请熟悉 /applications/shop/

添加自定义界面

还记得模板工具包吗?你会发现它在每个界面都有使用到。你可以将其视为一组易于学习的宏,它用来构建所有内容。下面是一个例子:

<@section title="Title">
    <@heading id="slider">Slider</@heading>
    <@row>
        <@cell columns=6>
            <@slider id="" class="" controls=true indicator=true>
                <@slide link="#" image="https://placehold.it/800x300">Just some content…</@slide>
                <@slide title="This is a title" link="#" image="https://placehold.it/800x300"></@slide>
            </@slider>
        </@cell>
        <@cell columns=6>Second column</@cell>
    </@row>
</@section>

不是很难,对吧?同时,主题包含 HTML 定义和样式。这将权力交给你的前端开发人员,他们可以定义每个宏的输出,并坚持使用自己的构建工具进行开发。

我们快点试试吧。首先,在你自己的在线商店上定义一个请求。你将修改此代码。一个内置的 CMS 系统也可以通过 https://localhost:8443/cms/ 进行访问,它允许你以更有效的方式创建新模板和界面。它与模板工具包完全兼容,并附带可根据你的喜好采用的示例模板。但是既然我们试图在这里理解系统,那么首先让我们采用更复杂的方法。

打开你商店 webapp 目录中的 controller.xml 文件。控制器会跟踪请求事件并相应地执行操作。下面的操作将会在 /shop/test 下创建一个新的请求:

<!-- Request Mappings -->
<request-map uri="test">
     <security https="true" auth="false"/>
      <response name="success" type="view" value="test"/>
</request-map>

你可以定义多个响应,如果需要,可以在请求中使用事件或服务调用来确定你可能要使用的响应。我选择了“视图”类型的响应。视图是渲染的响应;其他类型是请求重定向、转发等。系统附带各种渲染器,可让你稍后确定输出;为此,请添加以下内容:

<!-- View Mappings -->
<view-map name="test" type="screen" page="component://mycomponent/widget/CommonScreens.xml#test"/>

用你自己的组件名称替换 my-component。然后,你可以通过在 widget/CommonScreens.xml 文件的标签内添加以下内容来定义你的第一个界面:

<screen name="test">
        <section>
            <actions>
            </actions>
            <widgets>
                <decorator-screen name="CommonShopAppDecorator" location="component://shop/widget/CommonScreens.xml">
                    <decorator-section name="body">
                        <platform-specific><html><html-template location="component://mycomponent/webapp/mycomponent/test/test.ftl"/></html></platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>

商店界面实际上非常模块化,由多个元素组成(小部件、动作和装饰器)。为简单起见,请暂时保留原样,并通过添加第一个模板工具包文件来完成新网页。为此,创建一个新的 webapp/mycomponent/test/test.ftl 文件并添加以下内容:

<@alert type="info">Success!</@alert>

 title=

一个自定义的界面。

打开 https://localhost:8443/shop/control/test/ 并惊叹于你自己的成就。

自定义主题

通过创建自己的主题来修改商店的界面外观。所有主题都可以作为组件在 themes 文件夹中找到。运行命令 ./ant create-theme 来创建你自己的主题。

 title=

一个典型的主题组件布局。

以下是最重要的目录和文件列表:

  • 主题配置:data/*ThemeData.xml
  • 特定主题封装的 HTML:includes/*.ftl
  • 模板工具包 HTML 定义:includes/themeTemplate.ftl
  • CSS 类定义:includes/themeStyles.ftl
  • CSS 框架: webapp/theme-title/

快速浏览工具包中的 Metro 主题;它使用 Foundation CSS 框架并且充分利用了这个框架。然后,然后,在新构建的 webapp/theme-title 目录中设置自己的主题并开始开发。Foundation-shop 主题是一个非常简单的特定于商店的主题实现,你可以将其用作你自己工作的基础。

瞧!你已经建立了自己的在线商店,准备个性化定制吧!

 title=

一个搭建完成的基于 Scipio ERP的在线商店。

接下来是什么?

Scipio ERP 是一个功能强大的框架,可简化复杂的电子商务应用程序的开发。为了更完整的理解,请查看项目文档,尝试在线演示,或者加入社区.


via: https://opensource.com/article/19/1/scipio-erp

作者:Paul Piper 选题:lujun9972 译者:laingke 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

TFTP 即 简单文本传输协议 Trivial File Transfer Protocol ,允许用户通过 UDP 协议在系统之间传输文件。默认情况下,协议使用的是 UDP 的 69 号端口。TFTP 协议广泛用于无盘设备的远程启动。因此,在你的本地网络建立一个 TFTP 服务器,这样你就可以对 安装好的 Fedora 和其他无盘设备做一些操作,这将非常有趣。

TFTP 仅仅能够从远端系统读取数据或者向远端系统写入数据,而没有列出远端服务器上文件的能力。它也没提供用户身份验证。由于安全隐患和缺乏高级功能,TFTP 通常仅用于局域网内部(LAN)。

安装 TFTP 服务器

首先你要做的事就是安装 TFTP 客户端和 TFTP 服务器:

dnf install tftp-server tftp -y

上述的这条命令会在 /usr/lib/systemd/system 目录下为 systemd 创建 tftp.servicetftp.socket 文件。

/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket

接下来,将这两个文件复制到 /etc/systemd/system 目录下,并重新命名。

cp /usr/lib/systemd/system/tftp.service /etc/systemd/system/tftp-server.service
cp /usr/lib/systemd/system/tftp.socket /etc/systemd/system/tftp-server.socket

修改文件

当你把这些文件复制和重命名后,你就可以去添加一些额外的参数,下面是 tftp-server.service 刚开始的样子:

[Unit]
Description=Tftp Server
Requires=tftp.socket
Documentation=man:in.tftpd

[Service]
ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot
StandardInput=socket

[Install]
Also=tftp.socket

[Unit] 部分添加如下内容:

Requires=tftp-server.socket

修改 [ExecStart] 行:

ExecStart=/usr/sbin/in.tftpd -c -p -s /var/lib/tftpboot

下面是这些选项的意思:

  • -c 选项允许创建新的文件
  • -p 选项用于指明在正常系统提供的权限检查之上没有其他额外的权限检查
  • -s 建议使用该选项以确保安全性以及与某些引导 ROM 的兼容性,这些引导 ROM 在其请求中不容易包含目录名。

默认的上传和下载位置位于 /var/lib/tftpboot

下一步,修改 [Install] 部分的内容

[Install]
WantedBy=multi-user.target
Also=tftp-server.socket

不要忘记保存你的修改。

下面是 /etc/systemd/system/tftp-server.service 文件的完整内容:

[Unit]
Description=Tftp Server
Requires=tftp-server.socket
Documentation=man:in.tftpd

[Service]
ExecStart=/usr/sbin/in.tftpd -c -p -s /var/lib/tftpboot
StandardInput=socket

[Install]
WantedBy=multi-user.target
Also=tftp-server.socket

启动 TFTP 服务器

重新启动 systemd 守护进程:

systemctl daemon-reload

启动服务器:

systemctl enable --now tftp-server

要更改 TFTP 服务器允许上传和下载的权限,请使用此命令。注意 TFTP 是一种固有的不安全协议,因此不建议你在与其他人共享的网络上这样做。

chmod 777 /var/lib/tftpboot

配置防火墙让 TFTP 能够使用:

firewall-cmd --add-service=tftp --perm
firewall-cmd --reload

客户端配置

安装 TFTP 客户端

yum install tftp -y

运行 tftp 命令连接服务器。下面是一个启用详细信息选项的例子:

[client@thinclient:~ ]$ tftp 192.168.1.164
tftp> verbose
Verbose mode on.
tftp> get server.logs
getting from 192.168.1.164:server.logs to server.logs [netascii]
Received 7 bytes in 0.0 seconds [inf bits/sec]
tftp> quit
[client@thinclient:~ ]$

记住,因为 TFTP 没有列出服务器上文件的能力,因此,在你使用 get 命令之前需要知道文件的具体名称。


via: https://fedoramagazine.org/how-to-set-up-a-tftp-server-on-fedora/

作者:Curt Warfield 选题:lujun9972 译者:amwps290 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

自动化是 IT 行业的增长趋势,其目的是消除重复任务中的手动干扰。Oracle 通过推出 Oracle Autonomous Linux 向自动化世界迈出了又一步,这无疑将使 IoT 和云计算行业受益。

Oracle Autonomous Linux:减少人工干扰,增多自动化

周一,Oracle 联合创始人 拉里·埃里森 Larry Ellison 参加了在旧金山举行的Oracle OpenWorld 全球大会。他宣布了一个新产品:世界上第一个自治 Linux。这是 Oracle 向第二代云迈进的第二步。第一步是两年前发布的 Autonomous Database

Oracle Autonomous Linux 的最大特性是降低了维护成本。根据 Oracle 网站 所述,Autonomous Linux “使用先进的机器学习和自治功能来提供前所未有的成本节省、安全性和可用性,并释放关键的 IT 资源来应对更多的战略计划”。

Autonomous Linux 可以无需人工干预就安装更新和补丁。这些自动更新包括 “Linux 内核和关键用户空间库”的补丁。“不需要停机,而且可以免受外部攻击和内部恶意用户的攻击。”它们也可以在系统运行时进行,以减少停机时间。Autonomous Linux 还会自动处理伸缩,以确保满足所有计算需求。

埃里森强调了新的自治系统将如何提高安全性。他特别提到了 Capitol One 数据泄露是由于配置错误而发生的。他说:“一个防止数据被盗的简单规则:将数据放入自治系统。没有人为错误,没有数据丢失。 那是我们与 AWS 之间的最大区别。”

有趣的是,Oracle 还瞄准了这一新产品以与 IBM 竞争。埃里森说:“如果你付钱给 IBM,可以停了。”所有 Red Hat 应用程序都应该能够在 Autonomous Linux 上运行而无需修改。有趣的是,Oracle Linux 是从 Red Hat Enterprise Linux 的源代码中构建的。

看起来,Oracle Autonomous Linux 不会用于企业市场以外。

关于 Oracle Autonomous Linux 的思考

Oracle 是云服务市场的重要参与者。这种新的 Linux 产品将使其能够与 IBM 竞争。让人感兴趣的是 IBM 的反应会是如何,特别是当他们有来自 Red Hat 的新一批开源智能软件。

如果你看一下市场数字,那么对于 IBM 或 Oracle 来说情况都不好。大多数云业务由 Amazon Web Services、Microsoft Azure 和 Google Cloud Platform 所占据。IBM 和 Oracle 落后于他们。IBM 收购 Red Hat 试图获得发展。这项新的自主云计划是 Oracle 争取统治地位(或至少试图获得更大的市场份额)的举动。让人感兴趣的是,到底有多少公司因为购买了 Oracle 的系统而在互联网的狂野西部变得更加安全?

我必须简单提一下:当我第一次阅读该公告时,我的第一反应就是“好吧,我们离天网更近了一步。”如果我们技术性地考虑一下,我们就像是要进入了机器人末日。如果你打算帮我,我计划去购买一些罐头食品。

你对 Oracle 的新产品感兴趣吗?你会帮助他们赢得云战争吗?在下面的评论中让我们知道。

如果你觉得这篇文章有趣,请花一点时间在社交媒体、Hacker News 或 Reddit 上分享。


via: https://itsfoss.com/oracle-autonomous-linux/

作者:John Paul 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出