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版本,官方總結特性如下:
- 接口簡單,HTTP+JSON
- 安全,可選擇的SSL通信協議
- 快速,經測試1000s單一實例寫入操作
- 可靠,分布式層面使用Raft協議
- 堅固,集群的失敗可以從磁盤恢復
要想體驗,目前看來,最簡單方式,需要在一個虛擬環境中嘗試一把,當然也是這樣做的。本次體驗,基于Windows 7 64位系統。以下為簡單步驟:
- 先安裝VirtualBox 4.2.16,建議從官網下載。
- Vagrant,這次安裝最新的1.2.7版本,下載地址
- 安裝Git for Windows 1.8.3,可以讓命令下直接使用git命令
-
安裝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成功登入,可以看到歡迎信息:

-
體驗一把Docker作為容器管理器
這里快速體驗一把,敲入一下命令:
docker run ubuntu /bin/echo hello world
此時,自動下載Ubuntu系統容器鏡像文件:
更多Docker操作,請參閱其文檔。
-
進程管理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
更多systemd細節,請參考http://www.freedesktop.org/wiki/Software/systemd/。
- 本次淺嘗輒止,到此結束
總體看,CoreOS最大特色,專門為大規模服務器部署定制的Linux精簡系統,盡可能的精簡無關緊要的功能,將操作系統和應用程序完全分離,從而降低操作系統和應用程序的耦合度,同時解決了現有Linux服務器在容器資源、權限管理方面的欠缺。目前若說是顛覆性的操作系統,十分牽強,是不是未來,也不好說,但肯定是一種趨勢。
因此,十分值得期待。
進階閱讀: