服務(wù)器操作系統(tǒng)CoreOS初體驗(yàn)
CoreOS官網(wǎng)主頁使用一句話概括其理念:“A new way to think about servers”,以及緊接著的“CoreOS is Linux for massive server deployments”, 表示這是一個(gè)新思維方式思考未來服務(wù)器大規(guī)模部署的的Linux服務(wù)器操作系統(tǒng)。
CoreOS宣稱最小化的定制版linux系統(tǒng),具有:
- Linux內(nèi)核,Linux運(yùn)行所需
- 存在兩個(gè)ROOT分區(qū),一個(gè)被用作啟動(dòng)分區(qū),一個(gè)被用作更新分區(qū)
更新分區(qū)在更新完成后,自動(dòng)重新啟動(dòng)系統(tǒng),當(dāng)前機(jī)器不需要從負(fù)載集群中移除,為了保證其它應(yīng)用程序不被打斷,會(huì)通過Linux cgroup限制更新過程中的磁盤、網(wǎng)絡(luò)等IO使用。 -
systemd,作為默認(rèn)系統(tǒng)和服務(wù)管理器,其優(yōu)秀特性:
支持并行化任務(wù); 同時(shí)采用 socket 式與 D-Bus 總線式激活服務(wù); 按需啟動(dòng)守護(hù)進(jìn)程(daemon); 利用 Linux 的 cgroups 監(jiān)視進(jìn)程; 支持快照和系統(tǒng)恢復(fù); 維護(hù)掛載點(diǎn)和自動(dòng)掛載點(diǎn); 各服務(wù)間基于依賴關(guān)系進(jìn)行精密控制。
-
root分區(qū)被設(shè)計(jì)成只讀,用以保證數(shù)據(jù)的一致性和更新可用
- CPU、IO等資源隔離,自然要祭出容器(Container)來,CoreOS很明智使用Docker作為容器管理器用以構(gòu)建、發(fā)布應(yīng)用,從這個(gè)層面來看,一個(gè)應(yīng)用其實(shí)就是一個(gè)容器。
- etcd組件負(fù)責(zé)服務(wù)發(fā)現(xiàn)和配置共享,采用Raft分布式一致性協(xié)議算法,承擔(dān)起,組件之間服務(wù)通信使用。很自然的,容器(Container)之間應(yīng)用、服務(wù)的伸縮,就顯得很簡單了。其基因?qū)用嬷С旨禾匦裕?dāng)然,你也可以解讀為云環(huán)境的支持。
看起來,這個(gè)系統(tǒng)是為類似于擁有眾多平臺的IT公司準(zhǔn)備的。服務(wù)之間,粒度變得很細(xì)。
剛剛發(fā)布第一個(gè)0.1.0版本,官方總結(jié)特性如下:
- 接口簡單,HTTP+JSON
- 安全,可選擇的SSL通信協(xié)議
- 快速,經(jīng)測試1000s單一實(shí)例寫入操作
- 可靠,分布式層面使用Raft協(xié)議
- 堅(jiān)固,集群的失敗可以從磁盤恢復(fù)
要想體驗(yàn),目前看來,最簡單方式,需要在一個(gè)虛擬環(huán)境中嘗試一把,當(dāng)然也是這樣做的。本次體驗(yàn),基于Windows 7 64位系統(tǒng)。以下為簡單步驟:
- 先安裝VirtualBox 4.2.16,建議從官網(wǎng)下載。
- Vagrant,這次安裝最新的1.2.7版本,下載地址
- 安裝Git for Windows 1.8.3,可以讓命令下直接使用git命令
-
安裝CoreOS環(huán)境,打開windows命令行環(huán)境:
git clone https://github.com/coreos/coreos-vagrant/ cd coreos-vagrant vagrant up vagrant ssh
執(zhí)行完畢 vagrant ssh, 會(huì)自動(dòng)生成一些ssh的一些信息:
Host: 127.0.0.1 Port: 2222 Username: core Private key: C:/Users/nieyong/.vagrant.d/insecure_private_key
使用熟悉的SSH終端工具登陸即可,這里推薦xshell,不在細(xì)述。SSH成功登入,可以看到歡迎信息:
-
體驗(yàn)一把Docker作為容器管理器
這里快速體驗(yàn)一把,敲入一下命令:docker run ubuntu /bin/echo hello world
此時(shí),自動(dòng)下載Ubuntu系統(tǒng)容器鏡像文件:
更多Docker操作,請參閱其文檔。
-
進(jìn)程管理systemd的一處使用這里想讓系統(tǒng)啟動(dòng)時(shí),執(zhí)行一些簡單任務(wù)。終端下輸入
sudo -i
切換到Ubuntu ROOT用戶角色下, 執(zhí)行vi /media/state/units/hello.service,敲入如下內(nèi)容:
[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
現(xiàn)在查看一下日志,可以看到其輸出:
journalctl -u hello.service -f
更多systemd細(xì)節(jié),請參考http://www.freedesktop.org/wiki/Software/systemd/。
- 本次淺嘗輒止,到此結(jié)束
總體看,CoreOS最大特色,專門為大規(guī)模服務(wù)器部署定制的Linux精簡系統(tǒng),盡可能的精簡無關(guān)緊要的功能,將操作系統(tǒng)和應(yīng)用程序完全分離,從而降低操作系統(tǒng)和應(yīng)用程序的耦合度,同時(shí)解決了現(xiàn)有Linux服務(wù)器在容器資源、權(quán)限管理方面的欠缺。目前若說是顛覆性的操作系統(tǒng),十分牽強(qiáng),是不是未來,也不好說,但肯定是一種趨勢。
因此,十分值得期待。
進(jìn)階閱讀:
posted on 2013-08-26 17:27 nieyong 閱讀(54364) 評論(3) 編輯 收藏 所屬分類: 容器