keystone源碼
❶ android studio app 自動更新 源碼
第一步,打開android studio,打開自己的項目系統源碼,如圖所示,點擊Build菜單,然後選擇GenerateSigned APK。
❷ ubuntu關機後怎麼重啟OpenStack服務,使用Devstack部署的
1、安裝git:
sudo apt-get install git
這個很簡單吧,但就是這個還著實讓我費了一番力氣。因為我擔心ubuntu初始的源不給力,所以剛安裝好便換成了國內的源,偏偏這國內的源無法安裝git,換了好機會仍然是這樣。(網路連接正常,不清楚為什麼會這樣)只能單獨下載包,然後手動安裝了,手動安裝
其實不難(下載到包,之後執行 dpkg -i <包名>),關鍵是得找對版本。
2、獲取devstack腳本:
git clone https://github.com/openstack-dev/devstack.git
3、執行:
cd devstack && ./stack.sh
腳本執行全程只需要按照提示設置幾個密碼,其他無需干預。我沒有讀腳本的源碼,但是根據執行過程的輸出信息大致總結出了他的執行過程:
(1)下載並安裝Openstack運行所需要的系統軟體,大概包括一些python的組件、mysql、rabbitmq-server等
(2)下載openstack組件,包括nova 、keystone、glance、noVNC、horizon等
(3)下載並安裝openstack源碼所依賴的python庫和框架
(4)安裝openstack各組件
(5)啟動各項服務
在較好的網路環境下,有人用不到十分鍾搞定了整個過程,但是我們公司網路環境不是很好,中間還中斷了幾次,大致都與網路有關。遇到較多的問題就是某些軟體無法下載,好在腳本會比較清楚報出錯誤信息,可以將安裝出錯的軟體手動安裝,之後重新執行腳本(最好不要用國內源,用歐美源應該比較靠譜)。過程雖然不是很順利,但是最後還是成功了,看到了dashboard界面。耗時大約3小時。
❸ 如何開始使用OpenStack命令行和API
1、創建hadoop管理員帳號
直接在終端執行如下命令行:
1 sudo adser hadoop
然後要求你設置hadoop帳戶密碼,這個命令是添加一個名為hadoop的標准帳戶,我們需要的是管理員帳號
可以直接在圖形界面下修改hadoop許可權,將滑鼠點擊右上角的一個人頭處,浮現列表,點擊「用戶賬戶」,解鎖,然後更改為管理員許可權
2、安裝ssh服務
ssh可以實現遠程登錄和管理,詳細情況請google網路
ubuntu默認並沒有安裝ssh服務,如果通過ssh鏈接ubuntu,需要自己手動安裝ssh-server。命令行:
1 sudo apt-get install ssh openssh-server
3、ssh無密碼驗證登錄
創建ssh-key,這里我們採用rsa方式,命令行如下:
1 ssh-keygen -t rsa -P ""
出現一個圖形,出現的圖形就是密碼,不用管它
1 cat ~/.ssh/id_rsa.pub >> authorized_keys
然後即可無密碼驗證登錄了,如下:
1 ssh localhost
退出命令行為:
exit
4、解壓hadoop源碼包
終端下進入hadoop源碼包所在目錄,使用復制命令把hadoop源碼包復制到/home/hadoop下
1 cp hadoop-1.2.1.tar.gz /home/hadoop
然後解壓,命令行如下
tar -xzvf *.tag.gz
5、配置hadoop的hadoop/conf下的hadoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml
配置hadoop-1.2.1/conf/hadoop-env.sh,命令行:
1 gedit /home/hadoop/hadoop-1.2.1/conf/hadoop-env.sh
ctrl + f 搜索到java_HOME
把前面的#去掉,加上本系統jdk路徑,保存退出
配置hadoop-1.2.1/conf/core-site.xml,命令行:
gedit /home/hadoop/hadoop-1.2.1/conf/core-site.xml
在hadoop新建hadoop_tmp目錄,
將如下<configuration> </configuration>之間的添加進入,保存退出
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-1.2.1/hadoop_tmp</value>
<description>A base for other temporary directories.</description>
</property>
</configuration>
配置hadoop-1.2.1/conf/mapre-site.xml,命令行:
1 gedit /home/hadoop/hadoop-1.2.1/conf/mapre-site.xml.xml
將如下<configuration> </configuration>之間的添加進入,保存退出
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
配置hadoop-1.2.1/conf/hdfs-site.xml,命令行:
1 gedit /home/hadoop/hadoop-1.2.1/conf/hdfs-site.xml
將如下<configuration> </configuration>之間的添加進入,保存退出
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
至此hadoop的安裝配置已經完畢,稍後的是hadoop的初次運行操作
6、格式化hdfs文件系統
進入hadoop-1.2.1
/bin/hadoop namenode -format
7、啟動hadoop服務
/bin/start-all.sh
出現如下畫面
jps
jps是查看java虛擬機運行的java線程
然後出現如下畫面
不計jps,有五個hadoop相關線程,恭喜你,hadoop安裝配置成功,運行正常。
然後可以退出hadoop。,以後再用時再啟動,導入數據
❹ openstack指的是什麼包含什麼
OpenStack是一個雲平台管理的項目,它不是一個軟體。這個項目由幾個主要的組件組合起來完成一些具體的工作。
OpenStack是一個旨在為公共及私有雲的建設與管理提供軟體的開源項目,OpenStack被公認作為基礎設施即服務(簡稱IaaS)資源的通用前端。
openstack自身都包含什麼
以下是5個OpenStack的重要構成部分:
l Nova _ 計算服務
l Swift _ 存儲服務
l Glance _ 鏡像服務
l Keystone _ 認證服務
l Horizon _ UI服務
❺ 關於linux學習路線的問題 請教前輩
很多同學接觸Linux不多,對Linux平台的開發更是一無所知。而現在的趨勢越來越表明,作為一 個優秀的軟體開發人員,或計算機IT行業從業人員,掌握Linux是一種很重要的謀生資源與手段。下來我將會結合自己的幾年的個人開發經驗,及對 Linux,更是類UNIX系統,及開源軟體文化,談談Linux的學習方法與學習中應該注意的一些事。
就如同剛才說的,很多同學以前可能連Linux是什麼都不知道,對UNIX更是一無所知。所以我們從最基礎的講起,對於Linux及UNIX的歷史我們不做多談,直接進入入門的學習。
Linux入門是很簡單的,問題是你是否有耐心,是否愛折騰,是否不排斥重裝一類的大修。沒折騰可以說是學不好Linux的,鳥哥說過,要真正了解Linux的分區機制,對LVM使用相當熟練,沒有20次以上的Linux裝機經驗是積累不起來的,所以一定不要怕折騰。
由於大家之前都使用Windows,所以我也盡可能照顧這些「菜鳥」。我的推薦,如果你第一次接觸Linux,那麼首先在虛擬機中嘗試它。虛擬機我推薦Virtual Box,我並不主張使用VM,原因是VM是閉源的,並且是收費的,我不希望推動盜版。當然如果你的Money足夠多,可以嘗試VM,但我要說的是即使是VM,不一定就一定好。付費的軟體不一定好。首先,Virtual Box很小巧,Windows平台下安裝包在80MB左右,而VM動輒600MB,雖然功能強大,但資源消耗也多,何況你的需求Virtual Box完全能夠滿足。所以,還是自己選。如何使用虛擬機,是你的事,這個我不教你,因為很簡單,不會的話Google或Bai都可以,英文好的可以直接看官方文檔。
現在介紹Linux發行版的知識。正如你所見,Linux發行版並非Linux,Linux僅是指操作系統的內核,作為科班出生的你不要讓我解釋,我也沒時間。我推薦的發行版如下:
UBUNTU適合純菜鳥,追求穩定的官方支持,對系統穩定性要求較弱,喜歡最新應用,相對來說不太喜歡折騰的開發者。
Debian,相對UBUNTU難很多的發行版,突出特點是穩定與容易使用的包管理系統,缺點是企業支持不足,為社區開發驅動。
Arch,追逐時尚的開發者的首選,優點是包更新相當快,無縫升級,一次安裝基本可以一直運作下去,沒有如UBUNTU那樣的版本概念,說的專業點叫滾動升級,保持你的系統一定是最新的。缺點顯然易見,不穩定。同時安裝配置相對Debian再麻煩點。
Gentoo,相對Arch再難點,考驗使用者的綜合水平,從系統安裝到微調,內核編譯都親歷親為,是高手及黑客顯示自己技術手段,按需配置符合自己要求的系統的首選。
Slackware與Gentoo類似。
CentOS,社區維護的RedHat的復刻版本,完全使用RedHat的源碼重新編譯生成,與RedHat的兼容性在理論上來說是最好的。如果你專注於Linux伺服器,如網路管理,架站,那麼CentOS是你的選擇。
LFS,終極黑客顯擺工具,完全從源代碼安裝,編譯系統。安裝前你得到的只有一份文檔,你要做的就是照文檔你的說明,一步步,一條條命令,一個個軟體包的去構建你的Linux,完全由你自己控制,想要什麼就是什麼。如果你做出了LFS,證明你的Linux功底已經相當不錯,如果你能拿LFS文檔活學活用,再將Linux從源代碼開始移植到嵌入式系統,我敢說中國的企業你可以混的很好。
你得挑一個適合你的系統,然後在虛擬機安裝它,開始使用它。如果你想快速學會Linux,我有一個建議就是忘記圖形界面,不要想圖形界面能不能提供你問題的答案,而是滿世界的去找,去問,如何用命令行解決你的問題。在這個過程中,你最好能將Linux的命令掌握的不錯,起碼常用的命令得知道,同時建立了自己的知識庫,裡面是你積累的各項知識。
再下個階段,你需要學習的是Linux平台的C/C++開發,同時還有Bash腳本編程,如果你對Java興趣很深還有Java。同樣,建議你拋棄掉圖形界面的IDE,從VIM開始,為什麼是VIM,而不是Emacs,我無意挑起編輯器大戰,但我覺得VIM適合初學者,適合手比較笨,腦袋比較慢的開發者。Emacs的鍵位太多,太復雜,我很畏懼。然後是GCC,Make,Eclipse(Java,C++或者)。雖然將C++列在了Eclipse中,但我並不推薦用IDE開發C++,因為這不是Linux的文化,容易讓你忽略一些你應該注意的問題。IDE讓你變懶,懶得跟豬一樣。如果你對程序調試,測試工作很感興趣,GDB也得學的很好,如果不是GDB也是必修課。這是開發的第一步,注意我並沒有提過一句Linux系統API的內容,這個階段也不要關心這個。你要做的就是積累經驗,在Linux平台的開發經驗。我推薦的書如下:C語言程序設計,譚浩強的也可以。C語言,白皮書當然更好。C++推薦C++ Primer Plus,Java我不喜歡,就不推薦了。工具方面推薦VIM的官方手冊,GCC中文文檔,GDB中文文檔,GNU開源軟體開發指導(電子書),匯編語言程序設計(讓你對庫,鏈接,內嵌匯編,編譯器優化選項有初步了解,不必深度)。
如果你這個階段過不了就不必往下做了,這是底線,最基礎的基礎,否則離開,不要霍霍Linux開發。不專業的Linux開發者作出的程序是與Linux文化或UNIX文化相背的,程序是走不遠的,不可能像Bash,VIM這些神品一樣。所以做不好乾脆離開。
接下來進入Linux系統編程,不二選擇,APUE,UNIX環境高級編程,一遍一遍的看,看10遍都嫌少,如果你可以在大學將這本書翻爛,裡面的內容都實踐過,有作品,你口頭表達能力夠強,你可以在面試時說服所有的考官。(可能有點誇張,但APUE絕對是聖經一般的讀物,即使是Windows程序員也從其中汲取養分,Google創始人的案頭書籍,扎爾伯克的床頭讀物。)
這本書看完後你會對Linux系統編程有相當的了解,知道Linux與Windows平台間開發的差異在哪?它們的優缺點在哪?我的總結如下:做Windows平台開發,很苦,微軟的系統API總在擴容,想使用最新潮,最高效的功能,最適合當前流行系統的功能你必須時刻學習。Linux不是,Linux系統的核心API就100來個,記憶力好完全可以背下來。而且經久不變,為什麼不變,因為要同UNIX兼容,符合POSIX標准。所以Linux平台的開發大多是專注於底層的或伺服器編程。這是其優點,當然圖形是Linux的軟肋,但我站在一個開發者的角度,我無所謂,因為命令行我也可以適應,如果有更好的圖形界面我就當作恩賜吧。另外,Windows閉源,系統做了什麼你更本不知道,永遠被微軟牽著鼻子跑,想想如果微軟說Win8不支持QQ,那騰訊不得哭死。而Linux完全開源,你不喜歡,可以自己改,只要你技術夠。另外,Windows雖然使用的人多,但使用場合單一,專注與桌面。而Linux在各個方面都有發展,尤其在雲計算,伺服器軟體,嵌入式領域,企業級應用上有廣大前景,而且兼容性一流,由於支持POSIX可以無縫的運行在UNIX系統之上,不管是蘋果的Mac還是IBM的AS400系列,都是完全支持的。另外,Linux的開發環境支持也絕對是一流的,不管是C/C++,Java,Bash,Python,PHP,Javascript,。。。。。。就連C#也支持。而微軟除Visual Stdio套件以外,都不怎麼友好,不是嗎?
如果你看完APUE的感觸有很多,希望驗證你的某些想法或經驗,推薦UNIX程序設計藝術,世界頂級黑客將同你分享他的看法。
現在是時候做分流了。 大體上我分為四個方向:網路,圖形,嵌入式,設備驅動。
如果選擇網路,再細分,我對其他的不是他熟悉,只說伺服器軟體編寫及高性能的並發程序編寫吧。相對來說這是網路編程中技術含量最高的,也是底層的。需要很多的經驗,看很多的書,做很多的項目。
我的看法是以下面的順序來看書:
APUE再深讀 – 尤其是進程,線程,IPC,套接字
多核程序設計 - Pthread一定得吃透了,你很NB
UNIX網路編程 – 卷一,卷二
TCP/IP網路詳解 – 卷一 再看上面兩本書時就該看了
5.TCP/IP 網路詳解 – 卷二 我覺得看到卷二就差不多了,當然卷三看了更好,努力,爭取看了
6.Lighttpd源代碼 - 這個伺服器也很有名了
7.Nginx源代碼 – 相較於Apache,Nginx的源碼較少,如果能看個大致,很NB。看源代碼主要是要學習裡面的套接字編程及並發控制,想想都激動。如果你有這些本事,可以試著往暴雪投簡歷,為他們寫伺服器後台,想一想全球的魔獸都運行在你的伺服器軟體上。
Linux內核 TCP/IP協議棧 – 深入了解TCP/IP的實現
如果你還喜歡驅動程序設計,可以看看更底層的協議,如鏈路層的,寫什麼路由器,網卡,網路設備的驅動及嵌入式系統軟體應該也不成問題了。
當然一般的網路公司,就算網路級別的也該毫不猶豫的僱用你。只是看後面這些書需要時間與經驗,所以35歲以前辦到吧!跳槽到給你未來的地方!
圖形方向,我覺得圖形方向也是很有前途的,以下幾個方面。
Opengl的工業及游戲開發,國外較成熟。
影視動畫特效,如皮克斯,也是國外較成熟。
GPU計算技術,可以應用在瀏覽器網頁渲染上,GPU計算資源利用上,由於開源的原因,有很多的文檔程序可以參考。如果能進火狐開發,或google做瀏覽器開發,應該會很好 。
嵌入式方向:嵌入式方向沒說的,Linux很重要。
掌握多個架構,不僅X86的,ARM的,單片機什麼的也必須得懂。硬體不懂我預見你會死在半路上,我也想走嵌入式方向,但我覺得就學校教授嵌入式的方法,我連學電子的那幫學生都競爭不過。奉勸大家,一定得懂硬體再去做,如果走到嵌入式應用開發,只能祝你好運,不要碰上像Nokia,Hp這樣的公司,否則你會很慘的。
驅動程序設計:軟體開發周期是很長的,硬體不同,很快。每個月誕生那麼多的新硬體,如何讓他們在Linux上工作起來,這是你的工作。由於Linux的兼容性很好,如果不是太低層的驅動,基本C語言就可以搞定,系統架構的影響不大,因為有系統支持,你可能做些許更改就可以在ARM上使用PC的硬體了,所以做硬體驅動開發不像嵌入式,對硬體知識的要求很高。可以從事的方向也很多,如家電啊,特別是如索尼,日立,希捷,富士康這樣的廠子,很稀缺的。
LDD – Linux驅動程序設計與內核編程的基礎讀物
深入理解Linux內核 – 進階的
Linux源代碼 – 永無止境的
當然你還的看個方面的書,如網路啊什麼的。
❻ 如何開啟OpenStack社區貢獻之路
1、簽訂ICLA
參與社區貢獻前,需要簽訂ICLA協議。進入 docs.openstack.org 網站,在Contributor Guides下找到並點擊「OpenStack Infrastructure User Manual 」。如圖1所示
圖1
圖2
圖3
圖4
2、上傳自己的SSH 密鑰
這里請參考github上的操作說明: https://help.github.com/articles/generating-ssh-keys
3、配置Git Bash
git config –global user.name 「XXX」
git config –global user.email [email protected]
此處填寫要與gerrit賬戶一致。
4、安裝git-review
具體步驟請參考 https://www.mediawiki.org/wiki/Gerrit/git-review
5、下載源碼庫
作為剛剛接觸社區的同學,建議先在openstack-manuals項目上下手,一方面可以藉此熟悉openstack。同時,在進行社區貢獻,驗證bug時,促使自己動手操作,增加運維經驗。先從github上下載源代碼,以OpenStack社區手冊openstack-manuals為例:
git clone git://github.com/openstack/openstack-manuals.git
cd openstack-manuals
git review -s
首先會確保能使用你的ssh key登錄gerrit,默認使用當前git環境變數配置的用戶,否則,會提示輸入gerrit用戶名,可以通過這個鏈接查看gerrit用戶名。
成功後,會在openstack-manuals目錄下生成一個.gitreview目錄
最新代碼:
git checkout master
git pull
新建分支,如果是blueprint,分支名是「bp/BP-NAME」,其中的BP-NAME是在launchpad上bp的名稱;如果是修復bug,分支明是「bug/BUG-NUMBER」,其中BUG-NUMBER可以在bug頁面上找到:
git checkout -b BRANTCH-NAME
6、commit
注意,在每提交一個新的commit之前,請先確保代碼是最新的。執行下面兩條命令更新庫。
git checkout master
git pull
提交代碼前,還需要對openstack-manuals目錄下的.git文件夾內的兩個文件進行修改。
cd openstack-manuals
cd .git/
vim config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
#[remote "origin"]
# url = https://github.com/openstack/keystone
# fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "origin"]
url = git://git.openstack.org/openstack/openstack-manuals.git
fetch = +refs/heads/*:refs/remotes/origin/*
[remote "gerrit"]
url = https://username:[email protected]/openstack/openstack-manuals.git
fetch = +refs/heads/*:refs/remotes/gerrit/*
上文代碼中的username:password部分請在下圖所示的頁面中查看,第一次需要生成一個密碼,可以重復生成,請盡量選擇使用沒有特殊字元的密碼,由大小寫字母加數字的密碼即可。
❼ 怎樣生成導出Android APP的android.keystore
Android App打包指的是將APP源碼壓縮成一個apk包的過程,具體步驟如下。 工具:eclipse 在eclipse中,工程上「右鍵」->導出。 讓選擇需要打包的工程,直接「Next」,到keystone頁面 接下來填寫證書信息 根據自己的情況填寫,點擊「Next」,生成keystore,到下一頁面: 選擇APK文件生成的位置,點擊Finish,完成,把apk文件安裝到手機上運行看是否正常運行。至此,全部結束!
❽ 在linux中git獲取openstack源碼要多久
要看網速。
❾ 全面認識openstack,它到底是什麼包含什麼
(1)官方的解釋相信大家都已經了解了,不了解也沒有關系。現在從常識的角度來給大家解釋和說明。
OpenStack是一個雲平台管理的項目,它不是一個軟體。這個項目由幾個主要的組件組合起來完成一些具體的工作。
OpenStack是一個旨在為公共及私有雲的建設與管理提供軟體的開源項目,OpenStack被公認作為基礎設施即服務(簡稱IaaS)資源的通用前端。
如果這些還不明白,那麼從另外的角度給大家介紹:
首先讓大家看下面兩個圖就很簡單明了了:
此圖為openstack的登錄界面
下面是openstack的一個管理界面
從這兩個圖,相信有一定開發經驗,就能看出openstack是什麼了。可以說他是一個框架,甚至可以從軟體的角度來理解它。如果不明白,就從傳統開發來講解。不知道你是否了解oa,erp等系統,如果不了解可以到網上去找,資料一大把。他和oa,erp有什麼不同。很簡單就是openstack是用做雲計算的一個平台,或則一個解決方案。它是雲計算一個重要組成部分。
上面對openstack有了一個感性的認識。
(2)openstack能幹什麼。
大家都知道阿里雲平台,網路雲平台,而阿里雲平台據傳說就是對openstack的二次開發。對於二次開發相信只要接觸過軟體的都會明白這個概念。不明白的自己網上去查一下。也就是說openstack,可以搭建雲平台,什麼雲平台,公有雲,私有雲。現在網路在招聘的私有雲工程師,應該就是這方面的人才。
(3)openstack自身都包含什麼
以下是5個OpenStack的重要構成部分:
l Nova – 計算服務
l Swift – 存儲服務
l Glance – 鏡像服務
l Keystone – 認證服務
l Horizon – UI服務
圖1 OpenStack基本構架
下圖展示了Keystone、Dashboard二者與其它OpenStack部分的交互。
下面詳細介紹每一個服務:
(一)OpenStack計算設施—-Nova Nova是OpenStack計算的彈性控制器。OpenStack雲實例生命期所需的各種動作都將由Nova進行處理和支撐,這就意味著Nova以管理平台的身份登場,負責管理整個雲的計算資源、網路、授權及測度。雖然Nova本身並不提供任何虛擬能力,但是它將使用libvirt API與虛擬機的宿主機進行交互。Nova通過Web服務API來對外提供處理介面,而且這些介面與Amazon的Web服務介面是兼容的。
功能及特點
l 實例生命周期管理
l 計算資源管理
l 網路與授權管理
l 基於REST的API
l 非同步連續通信
l 支持各種宿主:Xen、XenServer/XCP、KVM、UML、VMware vSphere及Hyper-V
OpenStack計算部件
l Nova彈性雲包含以下主要部分:
l API Server(nova-api)
l 消息隊列(rabbit-mq server)
l 運算工作站(nova-compute)
l 網路控制器(nova-network)
l 卷管理(nova-volume)
l 調度器(nova-scheler)
API伺服器(nova-api)
API伺服器提供了雲設施與外界交互的介面,它是外界用戶對雲實施管理的唯一通道。通過使用web服務來調用各種EC2的API,接著API伺服器便通過消息隊列把請求送達至雲內目標設施進行處理。作為對EC2-api的替代,用戶也可以使用OpenStack的原生API,我們把它叫做「OpenStack API」。
消息隊列(Rabbit MQ Server)
OpenStack內部在遵循AMQP(高級消息隊列協議)的基礎上採用消息隊列進行通信。Nova對請求應答進行非同步調用,當請求接收後便則立即觸發一個回調。由於使用了非同步通信,不會有用戶的動作被長置於等待狀態。例如,啟動一個實例或上傳一份鏡像的過程較為耗時,API調用就將等待返回結果而不影響其它操作,在此非同步通信起到了很大作用,使整個系統變得更加高效。
運算工作站(nova-compute)
運算工作站的主要任務是管理實例的整個生命周期。他們通過消息隊列接收請求並執行,從而對實例進行各種操作。在典型實際生產環境下,會架設許多運算工作站,根據調度演算法,一個實例可以在可用的任意一台運算工作站上部署。
網路控制器(nova-network)
網路控制器處理主機的網路配置,例如IP地址分配,配置項目VLAN,設定安全群組以及為計算節點配置網路。
卷工作站(nova-volume)
卷工作站管理基於LVM的實例卷,它能夠為一個實例創建、刪除、附加卷,也可以從一個實例中分離卷。卷管理為何如此重要?因為它提供了一種保持實例持續存儲的手段,比如當結束一個實例後,根分區如果是非持續化的,那麼對其的任何改變都將丟失。可是,如果從一個實例中將卷分離出來,或者為這個實例附加上卷的話,即使實例被關閉,數據仍然保存其中。這些數據可以通過將卷附加到原實例或其他實例的方式而重新訪問。
因此,為了日後訪問,重要數據務必要寫入卷中。這種應用對於數據伺服器實例的存儲而言,尤為重要。
調度器(nova-scheler)
調度器負責把nova-API調用送達給目標。調度器以名為「nova-schele」的守護進程方式運行,並根據調度演算法從可用資源池中恰當地選擇運算伺服器。有很多因素都可以影響調度結果,比如負載、內存、子節點的遠近、CPU架構等等。強大的是nova調度器採用的是可插入式架構。
目前nova調度器使用了幾種基本的調度演算法:
隨機化:主機隨機選擇可用節點;
可用化:與隨機相似,只是隨機選擇的范圍被指定;
簡單化:應用這種方式,主機選擇負載最小者來運行實例。負載數據可以從別處獲得,如負載均衡伺服器。
(二)OpenStack鏡像伺服器—-GlanceOpenStack鏡像伺服器是一套虛擬機鏡像發現、注冊、檢索系統,我們可以將鏡像存儲到以下任意一種存儲中:
本地文件系統(默認)
l OpenStack對象存儲
l S3直接存儲
l S3對象存儲(作為S3訪問的中間渠道)
l HTTP(只讀)
功能及特點
提供鏡像相關服務
Glance構件
l Glance控制器
l Glance注冊器
(三)OpenStack存儲設施—-Swift
Swift為OpenStack提供一種分布式、持續虛擬對象存儲,它類似於Amazon Web Service的S3簡單存儲服務。Swift具有跨節點百級對象的存儲能力。Swift內建冗餘和失效備援管理,也能夠處理歸檔和媒體流,特別是對大數據(千兆位元組)和大容量(多對象數量)的測度非常高效。
功能及特點
l 海量對象存儲
l 大文件(對象)存儲
l 數據冗餘管理
l 歸檔能力—–處理大數據集
l 為虛擬機和雲應用提供數據容器
l 處理流媒體
l 對象安全存儲
l 備份與歸檔
l 良好的可伸縮性
Swift組件
l Swift賬戶
l Swift容器
l Swift對象
l Swift代理
l Swift RING
Swift代理伺服器
用戶都是通過Swift-API與代理伺服器進行交互,代理伺服器正是接收外界請求的門衛,它檢測合法的實體位置並路由它們的請求。
此外,代理伺服器也同時處理實體失效而轉移時,故障切換的實體重復路由請求。
Swift對象伺服器
對象伺服器是一種二進制存儲,它負責處理本地存儲中的對象數據的存儲、檢索和刪除。對象都是文件系統中存放的典型的二進制文件,具有擴展文件屬性的元數據(xattr)。
注意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所支持,但是並沒有有效測試證明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同樣能運行良好。不過,XFS被認為是當前最好的選擇。
Swift容器伺服器
容器伺服器將列出一個容器中的所有對象,默認對象列表將存儲為SQLite文件(譯者註:也可以修改為MySQL,安裝中就是以MySQL為例)。容器伺服器也會統計容器中包含的對象數量及容器的存儲空間耗費。
Swift賬戶伺服器
賬戶伺服器與容器伺服器類似,將列出容器中的對象。
Ring(索引環)
Ring容器記錄著Swift中物理存儲對象的位置信息,它是真實物理存儲位置的實體名的虛擬映射,類似於查找及定位不同集群的實體真實物理位置的索引服務。這里所謂的實體指賬戶、容器、對象,它們都擁有屬於自己的不同的Rings。
(四)OpenStack認證服務(Keystone)
Keystone為所有的OpenStack組件提供認證和訪問策略服務,它依賴自身REST(基於Identity API)系統進行工作,主要對(但不限於)Swift、Glance、Nova等進行認證與授權。事實上,授權通過對動作消息來源者請求的合法性進行鑒定。如下圖所示:
Keystone採用兩種授權方式,一種基於用戶名/密碼,另一種基於令牌(Token)。除此之外,Keystone提供以下三種服務:
l 令牌服務:含有授權用戶的授權信息
l 目錄服務:含有用戶合法操作的可用服務列表
l 策略服務:利用Keystone具體指定用戶或群組某些訪問許可權
認證服務組件
服務入口:如Nova、Swift和Glance一樣每個OpenStack服務都擁有一個指定的埠和專屬的URL,我們稱其為入口(endpoints)。
l 區位:在某個數據中心,一個區位具體指定了一處物理位置。在典型的雲架構中,如果不是所有的服務都訪問分布式數據中心或伺服器的話,則也稱其為區位。
l 用戶:Keystone授權使用者
譯者註:代表一個個體,OpenStack以用戶的形式來授權服務給它們。用戶擁有證書(credentials),且可能分配給一個或多個租戶。經過驗證後,會為每個單獨的租戶提供一個特定的令牌。[來源:http://blog.sina.com.cn/s/blog_70064f190100undy.html]
l 服務:總體而言,任何通過Keystone進行連接或管理的組件都被稱為服務。舉個例子,我們可以稱Glance為Keystone的服務。
l 角色:為了維護安全限定,就雲內特定用戶可執行的操作而言,該用戶關聯的角色是非常重要的。
譯者註:一個角色是應用於某個租戶的使用許可權集合,以允許某個指定用戶訪問或使用特定操作。角色是使用許可權的邏輯分組,它使得通用的許可權可以簡單地分組並綁定到與某個指定租戶相關的用戶。
l 租間:租間指的是具有全部服務入口並配有特定成員角色的一個項目。
譯者註:一個租間映射到一個Nova的「project-id」,在對象存儲中,一個租間可以有多個容器。根據不同的安裝方式,一個租間可以代表一個客戶、帳號、組織或項目。
(五)OpenStack管理的Web介面—-Horizon
Horizon是一個用以管理、控制OpenStack服務的Web控制面板,它可以管理實例、鏡像、創建密匙對,對實例添加卷、操作Swift容器等。除此之外,用戶還可以在控制面板中使用終端(console)或VNC直接訪問實例。總之,Horizon具有如下一些特點:
l 實例管理:創建、終止實例,查看終端日誌,VNC連接,添加卷等
l 訪問與安全管理:創建安全群組,管理密匙對,設置浮動IP等
l 偏好設定:對虛擬硬體模板可以進行不同偏好設定
l 鏡像管理:編輯或刪除鏡像
l 查看服務目錄
l 管理用戶、配額及項目用途
l 用戶管理:創建用戶等
l 卷管理:創建卷和快照
l 對象存儲處理:創建、刪除容器和對象
l 為項目下載環境變數
❿ 「openstack」自動化部署有哪些工具
Fuel比較值得推薦x0dx0a這是Mirantis出品的部署安裝工具,2013年10月份,推出他的3.2版本,讓人很震撼,基本算是把Openstack所有的部署都web化,你可以太多的選擇:尤其是網路,存儲。這基本都是大家學習的榜樣。已經敢和企業簽訂SLA。x0dx0a目前國內杜玉傑,九州雲,在做該項目的漢化工作和考慮日後的技術支持。x0dx0ax0dx0aDevstackx0dx0a這應該算是Openstack最早的安裝腳本,他是通過直接git源碼,進行安裝,目的是讓開發者可以快速搭建一個環境。目前這套腳本可以在Ubuntu和Fedora下跑的很好。x0dx0a如果你想了解新版本的功能,通過Devstack是一個最佳選擇。我第一次成功安裝Openstack,就是用這個。x0dx0aDiablo安裝腳本x0dx0a這算是我知道的第一個基於ubuntu 源的安裝腳本,當時Diablo發布的時候,有bug,keystone和Horizon無法一起工作,ubuntu 11.10源里的包也是有相同的bug,並且Ubuntu 官方並不打算維護和升級。這位作者個人身份,維護了Diablo 版本後來的升級,打包,並且寫了一套腳本。x0dx0ax0dx0a這套腳本,其實寫的非常好,我同事改造了一下,就可以安裝Essex版本。目前正在改進,用來安裝Folsom版本。x0dx0aStackopsx0dx0aOpenstack起步的時候,官方的安裝文檔,其實基本都是來自Stackops,當時他們提供Openstack的部署服務。你下載一個iso,裝完一個ubuntu系統後,就會轉到他們的web,你填寫相關的配置參數,通過chef進行部署。x0dx0aStackops在Chef上是比較強悍的,包括Dell的Crowbar,也是和他合作,才搞定Chef。不過我的理解,他的Chef 腳本是沒有開源的。x0dx0aStackops通過商業定製,進行收費。目前感覺有點走下坡路,業內的聲音比較小了。對openstack的新版本支持比較慢,Essex支持,到9月份才支持。目前還沒有任何關於Folsom 的支持。x0dx0aCrowbarx0dx0a在Openstack上,Dell是有點郁悶,中國的那句老話,起個大早,趕個晚集。Openstack剛發布的時候,Dell就號稱要做一個工具部署,不過畢竟是硬體公司,對軟體還是比較外行。x0dx0aDell的Crowbar,是一個iso,裝完後,你可以在web界面進行Openstack的部署,底下其實也是使用Chef。集成了Nagios監控,安裝OS是dell自己開發的,有點創新。x0dx0a以前Dell的Crowbar一個大的特色就是可以遠程設置機器的Raid和Bios,這是從Dell,我才知道可以這樣做。不過也正因為這個特色,導致廠商綁定,還有Dell自己如何定位Crowbar,當初還想搞一個商業的版本,結果後來放棄。x0dx0aCrowbar目前的開發,其實應該是遇到問題,任何做部署工具的,應該都是一個很好的失敗的案例。後續的發展,維護,更新都是問題。x0dx0ax0dx0aMaas+Jujux0dx0a這是Canonical推出的部署工具,可以用在Openstack的部署,類似Puppet,Chef 的部署工具。Maas是用於安裝ubuntu,juju是用於部署應用。