聂永的博客

记录工作/学习的点点滴滴。

服务器操作系统CoreOS初体验

CoreOS官网主页使用一句话概括其理念:“A new way to think about servers”,以及紧接着的“CoreOS is Linux for massive server deployments”, 表示这是一个新思维方式思考未来服务器大规模部署的的Linux服务器操作系统。

CoreOS宣称最小化的定制版linux系统,具有:

  • Linux内核,Linux运行所需
  • 存在两个ROOT分区,一个被用作启动分区,一个被用作更新分区
    更新分区在更新完成后,自动重新启动系统,当前机器不需要从负载集群中移除,为了保证其它应用程序不被打断,会通过Linux cgroup限制更新过程中的磁盘、网络等IO使用。
  • systemd,作为默认系统和服务管理器,其优秀特性:

    支持并行化任务;
    同时采用 socket 式与 D-Bus 总线式激活服务;
    按需启动守护进程(daemon);
    利用 Linux 的 cgroups 监视进程;
    支持快照和系统恢复;
    维护挂载点和自动挂载点;
    各服务间基于依赖关系进行精密控制。
    
  • root分区被设计成只读,用以保证数据的一致性和更新可用

  • CPU、IO等资源隔离,自然要祭出容器(Container)来,CoreOS很明智使用Docker作为容器管理器用以构建、发布应用,从这个层面来看,一个应用其实就是一个容器。
  • etcd组件负责服务发现和配置共享,采用Raft分布式一致性协议算法,承担起,组件之间服务通信使用。很自然的,容器(Container)之间应用、服务的伸缩,就显得很简单了。其基因层面支持集群特性,当然,你也可以解读为云环境的支持。

看起来,这个系统是为类似于拥有众多平台的IT公司准备的。服务之间,粒度变得很细。

刚刚发布第一个0.1.0版本,官方总结特性如下:

  1. 接口简单,HTTP+JSON
  2. 安全,可选择的SSL通信协议
  3. 快速,经测试1000s单一实例写入操作
  4. 可靠,分布式层面使用Raft协议
  5. 坚固,集群的失败可以从磁盘恢复

要想体验,目前看来,最简单方式,需要在一个虚拟环境中尝试一把,当然也是这样做的。本次体验,基于Windows 7 64位系统。以下为简单步骤:

  1. 先安装VirtualBox 4.2.16,建议从官网下载。
  2. Vagrant,这次安装最新的1.2.7版本,下载地址
  3. 安装Git for Windows 1.8.3,可以让命令下直接使用git命令
  4. 安装CoreOS环境,打开windows命令行环境:

    git clone https://github.com/coreos/coreos-vagrant/
    cd coreos-vagrant
    vagrant up
    vagrant ssh
    

    执行完毕 vagrant ssh, 会自动生成一些ssh的一些信息:

    Host: 127.0.0.1
    Port: 2222
    Username: core
    Private key: C:/Users/nieyong/.vagrant.d/insecure_private_key
    

    使用熟悉的SSH终端工具登陆即可,这里推荐xshell,不在细述。SSH成功登入,可以看到欢迎信息:

    coreos-ssh

  5. 体验一把Docker作为容器管理器
    这里快速体验一把,敲入一下命令:

    docker run ubuntu /bin/echo hello world
    

    此时,自动下载Ubuntu系统容器镜像文件:

    CoreOS-ubuntu

    更多Docker操作,请参阅其文档

  6. 进程管理systemd的一处使用这里想让系统启动时,执行一些简单任务。终端下输入

    sudo -i
    

    切换到Ubuntu ROOT用户角色下, 执行vi /media/state/units/hello.service,敲入如下内容:

    [Unit]
    Description=My Service
    After=docker.service
    
    [Service]
    Restart=always
    ExecStart=/usr/bin/docker run ubuntu /bin/sh -c "while true; do echo Hello World; sleep 1; done"
    
    [Install]
    WantedBy=local.target
    

    保存之后,我们需要做到模拟重启:

    systemctl restart local-enable.service
    

    现在查看一下日志,可以看到其输出:

    journalctl -u hello.service -f
    

    coreos-log

    更多systemd细节,请参考http://www.freedesktop.org/wiki/Software/systemd/

  7. 本次浅尝辄止,到此结束

总体看,CoreOS最大特色,专门为大规模服务器部署定制的Linux精简系统,尽可能的精简无关紧要的功能,将操作系统和应用程序完全分离,从而降低操作系统和应用程序的耦合度,同时解决了现有Linux服务器在容器资源、权限管理方面的欠缺。目前若说是颠覆性的操作系统,十分牵强,是不是未来,也不好说,但肯定是一种趋势。

因此,十分值得期待。


进阶阅读:

Linux黑客车库创业:服务器操作系统CoreOS颠覆互联网

 

posted on 2013-08-26 17:27 nieyong 阅读(54297) 评论(3)  编辑  收藏 所属分类: 容器

评论

# re: 服务器操作系统CoreOS初体验 2014-02-16 17:48 hipin

以前翻译过CoreOS的一部分帖子,还是比较看好CoreOS的,不过最近在尝试使用docker部署项目
https://github.com/cloudcube/coreos-manual-chinese
不过CoreOS还是有好多问题没解决呢。  回复  更多评论   

# re: 服务器操作系统CoreOS初体验 2015-03-20 16:41 适度清洁是祛痘的关键

总体看,CoreOS最大特色,专门为大规模服务器部署定制的Linux精简系统,尽可能的精简无关紧要的功能,将操作系统和应用程序完全分离,从而降低操作系统和应用程序的耦合度,同时解决了现有Linux服务器在容器资源、权限管理方面的欠缺。目前若说是颠覆性的操作系统,十分牵强,是不是未来,也不好说,但肯定是一种趋势。对于楼主这说法,我还是比较赞同的  回复  更多评论   

# re: 服务器操作系统CoreOS初体验 2016-03-11 11:04 linux

关注这方面技术的同学
可以
加QQ群479189837讨论   回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

公告

所有文章皆为原创,若转载请标明出处,谢谢~

新浪微博,欢迎关注:

导航

<2013年8月>
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

统计

常用链接

留言簿(58)

随笔分类(130)

随笔档案(151)

个人收藏

最新随笔

搜索

最新评论

阅读排行榜

评论排行榜