日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenStack运维面试(1)

發(fā)布時間:2024/4/13 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenStack运维面试(1) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

???確實有很久都沒寫博客了,這篇題目筆記是自己經(jīng)歷的,也有自己思考的,已經(jīng)有很長時間才算寫完這30道。說說自己的狀況吧,首先說為什么是OpenStack運維面試呢,因為之前在一家OpenStack云計算公司實習(xí),時間不長,只有20天,我就離職了,是我自己主動要辭的。說實話,還是不錯了,實習(xí)4K,周末雙休,不加班,不值夜班,坐辦公室學(xué)習(xí),這簡直超乎了我的意料,確實跟我想象的運維工程師不太一樣。這種上班的感覺還是挺不錯的,我相信我過不了多久做下一份工作的時候,回憶起來肯定覺得這簡直太幸福了。我面試準(zhǔn)備了那么久,好不容易找到一個工資不錯的公司,雖然只是實習(xí),還是一個朝氣蓬勃的行業(yè)和公司,說離開就離開估計是誰都想不通。唉,其實我本意也不想離開,但是我“闖禍了”,呵呵,倒不是技術(shù)上,而是說話上,還不是口頭,只是郵件。事情是這樣的,我也想吐槽,這真的很小氣。

? ?本來讓我當(dāng)天去偏僻的“DB”甲方公司看項目的,恰好那天讓我去搬防火墻(真尼瑪重!),那天回來后,通知我還讓我去,我什么都沒準(zhǔn)備啊,第二天跑了好遠(yuǎn)的路,每天的開銷不小,那一天啥事都沒有做,我連網(wǎng)都上不了。說是“看”,還算有點小見識,但是我真的感覺還不會,也確實沒啥技術(shù)含量,就想下次回公司修煉一段時間再說,就是不來了。恰好那一周我給自己步驟的任務(wù)是一周內(nèi)完成OpenStack平臺的搭建,各種事情的耽擱讓我有點慌,那天很早就下班,我跟我的上級說我不去甲方了,但是沒有跟項目經(jīng)理說(其實我不想當(dāng)面說的)。元旦回來,星期二我就發(fā)郵件說“我不去了,有見識但技術(shù)上沒啥收獲”,就這么簡短的一句話,呵呵,那些所謂的領(lǐng)導(dǎo)就炸了,覺得我不服從管理,好高騖遠(yuǎn),狂妄自大吧,項目經(jīng)理也回復(fù)我了,感覺是生氣的樣子。這幾天,恰好招我進來的HR休假了吧,部門老大以及直屬上級都找我談話,我也知道自己說話確實不太小心,這2個人還是沒怎么批評我,還是對我挺好的,幫我洗黑,說實話,我感謝!

? ?平靜的過了幾天,我以為沒事了,沒想到,HR回來倒找我了,想讓我轉(zhuǎn)崗,覺得我不合適做運維,溝通能力不好,性格不合,怎么可能呀,我花了那么多時間,從網(wǎng)絡(luò)轉(zhuǎn)運維,費了多少力氣,如今再讓我轉(zhuǎn)軟件,簡直天方夜譚,貌似著是委婉趕我走的意思。整個下午我什么事情都不想做,想想自己,為何命運多舛,之前面試的時候還有1家公司給我offer了,問的比較難,還好答得中規(guī)中矩,還跟我簽三方協(xié)議,但是工資太低,我就去了openstack公司,期間實習(xí)的時候還有2家公司面試都拒了。唉,沒想到,很快就又要面試了,我把公司電腦上所有東西都刪了,原來什么樣就是什么樣,跟帶我的人說了句我走了,就離開了,那天我哭了,有點小難過,只能說準(zhǔn)備春招吧。

? ?回來了墮落了好久,完全不想學(xué)習(xí),接下來的簡歷我也不知道怎么準(zhǔn)備了,反正又是大變化。畢業(yè)設(shè)計也是特么難搞,說句不好聽的,我尼瑪過年都有人問有女朋友了沒,真沒有啊,混得垃圾呀,身邊比我小的也結(jié)婚了,咱還是...壓力大呀

? ?技術(shù)、社交、生活,學(xué)的東西太多了,煩!下面好好準(zhǔn)備春招吧,不投實習(xí)崗位了!




1、如何刪除一個文本中的空白行,比如一行有字,然后一行空白,再有一行字?

[root@www]cat 1.txt

===========================

yhc?


is?


very?


good !

===========================

答:sed ?'/^$/d' 1.txt ? ##注意這里不能加-n靜默選項。另外可以使用cat 1.txt|tr "\n" " " 讓它變成一行英語語句


2、請解釋下怎么進行l(wèi)ocation匹配的規(guī)則?(我覺得這個非常難以理解,多虧有視頻啊!看懂這個,對Nginx自信爆漲)

答:精確匹配>普通匹配>正則匹配

分析:首先是URI解析,找到第一個精確匹配的,如果命中精確匹配,那么徹底結(jié)束了,不再進行下面的location匹配了,如果沒有精確命中,那么就去尋找多個普通匹配的,普通匹配跟編輯location語句的順序沒有關(guān)系,如果普通匹配命中多個,那么記憶匹配最長的(比如/aaa/bbb/)的結(jié)果,如果命中一個,那么也記憶普通匹配的結(jié)果(注意,這里并未徹底結(jié)束),無論普通匹配有無命中,都要去尋找正則匹配,正則匹配跟編輯location的順序有關(guān)(一定是正則1不滿足才找正則2),如果第一個正則匹配成功,則立即跳出,返回該正則匹配下的結(jié)果,也徹底結(jié)束了,如果正則一個都沒有匹配成功,則返回前面普通匹配記憶的結(jié)果。

參考視頻:(燕十八location流程圖解) http://www.icoolxue.com/play/7027


3、Nginx如何拒絕某一個人來訪問?(對比上篇博客提到的apache只允許某個IP訪問)

答:在location上下文中添加If語句,如果$remote_addr是某個IP的話,直接返回403 forbidden

-----------------------------------------------------------------------------------------

location / {

root html;

index index.php index.html;

if ($remote_addr = 192.168.1.100) { ? ? ? ? ##if 空格 (條件),不要忘了空格

return 403;

}

}

------------------------------------------------------------------------------------------


4、當(dāng)瀏覽器訪問一個Nginx不存在的頁面時,如何返回404頁面?(感覺這些問題很常見,但是沒怎么想過具體怎么做)

答:在location字段添加if語句,如果請求的文件名不存在,rewrite重寫到我們?nèi)藶槎x的404頁面,但是必須要加break,不再進行下一輪UEI的匹配。rewrite到新的uri后進入另外一個location,恰好這個location也有rewrite,再次重寫的uri又調(diào)回原來的location,這樣就是死循環(huán)了,最多執(zhí)行10次,然后報500錯誤。本例中$document_root$fastcgi_script_name是客戶端傳過來的參數(shù)(比如test.html),而不是我們服務(wù)端定義的網(wǎng)頁文檔!

-----------------------------------------------------------------------------------------------------------

location / {

root html;

index index.php index.html;

if (!-e $document_root$fastcgi_script_name){

rewrite ^.*$ /404.html break; ?##這條語句表示任意文件名到/usr/local/nginx/html/404.html

}

}

-----------------------------------------------------------------------------------------------------------


5、用什么命令可以看到整個目錄下的內(nèi)容。

答:tree /usr/local/svn/svndata/


6、介紹下prefork和worker?(唉,這一點表述的不好,記不住了,event模式應(yīng)該是nginx和apache都有的,都是一個進程處理多個請求)

答:(1)Prefork MPM實現(xiàn)了一個非線程的、預(yù)派生的web服務(wù)器。它在Apache啟動之初,root控制進程在最初建立“StartServers”個子進程后,

為了滿足MinSpareServers設(shè)置的需要創(chuàng)建一個進程,等待一秒鐘,繼續(xù)創(chuàng)建兩個,再等待一秒鐘,繼續(xù)創(chuàng)建四個……如此按指數(shù)級增加創(chuàng)建的進程數(shù),最多達到每秒32個,直到滿足MinSpareServers設(shè)置的值為止。這種模式可以不必在請求到來時再產(chǎn)生新的進程,從而減小了系統(tǒng)開銷以增加性能。然后等待連接;可以減少頻繁創(chuàng)建和銷毀進程的開銷,每個子進程只有一個線程,在一個時間點內(nèi),只能處理一個請求。這是一個成熟穩(wěn)定,可以兼容新老模塊,也不需要擔(dān)心線程安全問題,但是一個進程相對占用資源,消耗大量內(nèi)存,不擅長處理高并發(fā)的場景。

(2)worker使用了多進程和多線程的混合模式,worker模式也同樣會先預(yù)派生一些子進程,然后每個子進程創(chuàng)建一些線程,同時包括一個監(jiān)聽線程,每個請求過來會被分配到一個線程來服務(wù)。線程比起進程會更輕量,因為線程是通過共享父進程的內(nèi)存空間,因此,內(nèi)存的占用會減少一些,在高并發(fā)的場景下會比prefork有更多可用的線程,表現(xiàn)會更優(yōu)秀一些;另外,如果一個線程出現(xiàn)了問題也會導(dǎo)致同一進程下的線程出現(xiàn)問題,如果是多個線程出現(xiàn)問題,也只是影響Apache的一部分,而不是全部。由于用到多進程多線程,需要考慮到線程的安全了。

參考文檔:http://www.mamicode.com/info-detail-1212491.html


7、Nginx的master進程和worker進程工作原理?

答:Nginx采用異步非阻塞的方式來處理網(wǎng)絡(luò)事件,類似于Libevent。Nginx服務(wù)一啟動后,master進程先建好需要listen的socket后,然后再fork出多個worker子進程,這樣每個worker進程都可以去accept這個socket。當(dāng)一個client連接到來時,所有accept的worker進程都會受到通知,但只有一個進程可以accept成功,其它的則會accept失敗。Nginx提供了一把共享鎖accept_mutex來保證同一時刻只有一個worker進程在accept連接,從而解決驚群問題。當(dāng)一個worker進程accept這個連接后,就開始讀取請求,解析請求,處理請求,產(chǎn)生數(shù)據(jù)后,再返回給客戶端,最后才斷開連接,這樣一個完整的請求就結(jié)束了。

參考文檔:http://blog.chinaunix.net/uid-24517549-id-3977650.html


8、描述系統(tǒng)的啟動過程?當(dāng)用戶登錄上系統(tǒng)后,linux系統(tǒng)為用戶做了什么任務(wù)?(拓麻的這個問題我吞吞吐吐的才說出好幾個,以前沒思考過這些問題,謝天謝地終于問了我那個背了很久的啟動過程,還好避免了悲劇)

答:(1)讀取/etc/passwd文件進行身份驗證。

(2)將用戶登錄信息寫入安全日志里面。

(3)啟動該用戶的環(huán)境變量 (然后引申出環(huán)境變量的一系列問題,我不知道)

(4)


9、如何讓域名擁有多個IP地址?客戶端來解析的時候,返回的是哪條記錄?(后面這個問題我不清楚,當(dāng)時猜測是第一條,現(xiàn)在想起來,真尼瑪×××,這特么不就是DNS輪詢嗎?肯定是一個客戶端返回第一個,另一個客戶端返回第二個,然后這樣周期性的順序調(diào)度)

答:DNS給域名設(shè)置多條主機A記錄即可。不同客戶端可能返回不同記錄,根據(jù)輪詢指定哪個IP地址返回給哪些客戶端。


10、說說TCP的擁塞控制。(果然是云計算企業(yè)呀,畢竟互聯(lián)網(wǎng),拓麻的這個問題勞資一時想不起來呀,我還寫的精通TCP/IP,其實這個問題

我整理過,表現(xiàn)不太完美)

答:(1)慢啟動算法作用在TCP數(shù)據(jù)傳輸?shù)拈_始階段,當(dāng)主機開始發(fā)送數(shù)據(jù)時,因為不知道網(wǎng)絡(luò)中的負(fù)荷情況,如果立即發(fā)送大量的數(shù)據(jù),有可能會引起網(wǎng)絡(luò)的擁塞。因此,TCP采用試探的方法,逐漸增大擁塞窗口。通常在剛開始發(fā)送數(shù)據(jù)報文段時,先將擁塞窗口cwnd設(shè)置為一個TCP最大段長度MSS的值。而在每收到N個數(shù)據(jù)報文段的確認(rèn)后,cwnd就增加一個MSS的數(shù)值(就是增大一倍,所以是指數(shù)型)。這樣就可以逐漸增大發(fā)送端的擁塞窗口,使數(shù)據(jù)注入網(wǎng)絡(luò)的速率比較合理。

(2)為了防止擁塞窗口增長過快而引起網(wǎng)絡(luò)擁塞,TCP還需要設(shè)置一個慢啟動閾值ssthresh,當(dāng)擁塞窗口的值增加到ssthresh時,就要減緩擁塞窗口的增長速度,具體的做法是每經(jīng)過一個RTT,擁塞窗口cwnd的值加1(單位為MSS),這樣就可以使cwnd按線性規(guī)律緩慢增長

(3)快速重傳算法的基本思想是:接收端每收到一個失序的數(shù)據(jù)報文段后就立即發(fā)出重復(fù)確認(rèn),以便更早地通知發(fā)送端有丟包的情況發(fā)生。

(4)快速恢復(fù)是配合快速重傳使用的算法,其基本思想是:當(dāng)發(fā)送端連續(xù)收到三個重復(fù)確認(rèn)時,就將慢啟動閾值ssthresh減半,以預(yù)防網(wǎng)絡(luò)擁塞的發(fā)生,并且將擁塞窗口cwnd的值置為減半后的ssthresh,然后開始執(zhí)行擁塞避免算法,使得cwnd緩慢地加性增大。

參考文檔:https://www.nowcoder.com/discuss/6175


11、用過啥抓包軟件?如何判斷網(wǎng)絡(luò)出現(xiàn)擁塞、***、延遲以及各種異常情況?TCP的窗口在哪?(答得不好,根據(jù)序列號來判斷是我瞎說的,還好面試官原諒我沒經(jīng)驗)

答:wireshark、tcpdump。

(1)分析是否有大量數(shù)據(jù)包的序列號混亂。

(2)分析是否有廣播地址存在。

(3)分析延遲多不多。(但是感覺不容易,因為一般是看不出來延遲的,只是觀測一個源IP地址的數(shù)據(jù)包發(fā)出請求,然后看什么位置目的端進行響應(yīng)了該請求)


12、如果我是小白,什么叫做反向代理,Nginx的反向代理和負(fù)載均衡有什么區(qū)別嗎?Nginx根據(jù)什么來進行反向代理到后端服務(wù)器。(其實最后

一個問題當(dāng)時除了URI根本答不出來其他的)

答:反向代理:代理服務(wù)器監(jiān)聽外網(wǎng)上的客戶端發(fā)出來的請求,并把該請求轉(zhuǎn)發(fā)給內(nèi)網(wǎng)后臺的真實服務(wù)器進行處理,處理完畢后,先經(jīng)過代理服務(wù)器緩存一份,而后,再通過代理服務(wù)器封裝http應(yīng)答報文返回給客戶端。Nginx的通過location正則匹配URI代理到后端的服務(wù)器,并且在負(fù)載均衡upstream模塊,根據(jù)域名和端口代理到多臺后端服務(wù)器。(域名和端口這個怎么能叫問題呢)

區(qū)別:(1)Nginx的反向代理和負(fù)載均衡沒有太大區(qū)別,基本的配置指令都一樣,但是反向代理提供緩存功能,所以可以添加一些緩存命令行。

(2)代理到后端一臺服務(wù)器就可以稱之為反向代理,代理到后端多臺服務(wù)器就稱為負(fù)載均衡,負(fù)載均衡是每臺機器都會分擔(dān)一些處理請求的壓力,負(fù)載均衡完全可以認(rèn)為是反向代理。

參考文檔:https://www.oschina.net/question/126236_119223


13、為什么慢啟動算法中擁塞窗口要按指數(shù)級進行增長呢?擁塞窗口到底代表什么意思?(以前真沒有好好想過擁塞控制,一旦自己面試遇到了,知道這玩意重要了)

答:擁塞窗口就是發(fā)送方在某次會話交互過程中,在一個RTT(round trip time)周期內(nèi),能夠發(fā)送的TCP報文段的數(shù)量多少。

原因:(1)當(dāng)TCP連接剛剛建立,準(zhǔn)備要數(shù)據(jù)傳輸?shù)臅r候,由于不知道網(wǎng)絡(luò)的負(fù)載情況,所以要去試探性檢測,只發(fā)出很少的數(shù)據(jù)包,擁塞窗口的值設(shè)的很小,我每發(fā)出N個數(shù)據(jù)幀,如果網(wǎng)絡(luò)不擁塞丟包,那么就應(yīng)該返回給我N個確認(rèn)包,而后我的擁塞窗口就會在以前的基礎(chǔ)上增大一倍,說明我之前發(fā)出N個數(shù)據(jù)包是沒有問題的,不會堵塞,同時增大一倍提高發(fā)送效率。

(2)那么每增大一倍,擁塞窗口的大小就是按著指數(shù)級別增長了。當(dāng)增大到一定程度上,必須減緩發(fā)送速率,于是使用擁塞避免算法,讓擁塞窗口可以線性增長,每收到一個確認(rèn),窗口就增大1個單位,當(dāng)達到最大MSS(max segment size)時,擁塞窗口大小驟降,變?yōu)樵瓉砺龁铀惴〞r候的窗口大小,通常為1,并且門限值變?yōu)镸SS的一半,而后,如此往復(fù)。


14、在OpenStack中,用戶PUT和GET都是同一個對象,說說存儲節(jié)點Swift存取的工作原理?

答:(1)上傳文件時,PUT請求經(jīng)過負(fù)載均衡機器通過一致性哈希算法隨機選擇一臺代理服務(wù)器,再將請求轉(zhuǎn)發(fā)數(shù)據(jù)存儲節(jié)點,代理服務(wù)器通過查找本地的Ring(環(huán))文件,包括account環(huán)、container環(huán)、object環(huán)選擇3個不同的區(qū)域(zone),zone保證了數(shù)據(jù)的副本不會都放在同一個存儲節(jié)點上,從而避免了單點故障的可能性,可以使用3個磁盤來替代3個節(jié)點。而后,向3個數(shù)據(jù)節(jié)點都進行寫操作,只有當(dāng)至少2個節(jié)點都確認(rèn)寫成功后,再向用戶返回寫成功信息。

(2)而后,當(dāng)用戶需要get請求該對象(對象=元數(shù)據(jù)+內(nèi)容)下載文件時,也需要經(jīng)過負(fù)載均衡隨機挑選一臺代理服務(wù)器,代理服務(wù)器上的環(huán)文件能

查詢到這個文件存儲在哪三個節(jié)點中,然后同時向后端查詢,當(dāng)前僅當(dāng)至少2個存儲節(jié)點表示可以提供該文件,然后代理服務(wù)器才從中選擇一個節(jié)點下載文件。


15、云主機實例1和云主機實例2彼此通信,基于VXLAN的工作原理?(VTEP是Vxlan tunnel end point,VNI是vxlan的network identifier,虛擬機通信還可以

linux bridge)

答:(1)VM1要向VM2發(fā)送數(shù)據(jù)前,必須要知道VM2的MAC地址,其獲取過程如下:

? ? ? ? ?1、VM1發(fā)送ARP請求包,請求192.168.0.101[VM2_IP]的MAC地址;

? ? ? ? ?2、ARP請求包被VTEP1封裝成多播包,發(fā)給VNI=864的多播組;

? ? ? ? ?3、所有的VTEP接收此多播包,并添加(VNI–VTEP1–VM1_MAC Address)映射關(guān)系到自己的VXLAN表中;

? ? ? ? ?4、目的主機上的VTEP2接收到多播包后將其解開,并向本主機上VNI=864的所有虛擬機發(fā)送廣播包;

? ? ? ? ?5、VM2看到了ARP包后,回應(yīng)了自己的MAC地址;

? ? ? ? ?6、VTEP2再次封裝回應(yīng)的單播包,通過路由發(fā)給VTEP1;

? ? ? ? ?7、VTEP1解包,并將包傳給VM1,則最終獲取了VM2的MAC地址;

? ? ? ? ?8、VTEP1將(VNI–VTEP2–VM2_MAC Address)映射關(guān)系添加到自己的VXLAN表中;

(2)VM1獲知VM2的MAC地址后,發(fā)送數(shù)據(jù)包,過程如下:

1、 ?VM1發(fā)送IP數(shù)據(jù)包到VM2,即192.168.0.100 到 192.168.0.101;

2、 ?VTEP1查找自己的VXLAN表知道要發(fā)給VTEP2,然后依次封裝以下數(shù)據(jù)包頭;

a)VXLAN包頭,VNI=864;

b)標(biāo)準(zhǔn)UDP包頭,校驗和checksum為0x0000,目標(biāo)端口號4789;

c)標(biāo)準(zhǔn)IP包頭,目標(biāo)地址為VTEP2的IP地址,協(xié)議號設(shè)為0x11表面為UDP包。

d)標(biāo)準(zhǔn)MAC數(shù)據(jù)包,目標(biāo)地址為下一跳設(shè)備(虛擬路由器)的MAC地址00:10:11:FE:D8:D2,可路由到目標(biāo)隧道端VTEP2。

3、 ?VTEP2接收數(shù)據(jù)包,根據(jù)UDP的destination端口找到VXLAN數(shù)據(jù)包。接著查找所有所在VXLAN的VNI為864的端口組,找到VM2的

4、 ?VM2接收并處理數(shù)據(jù)包,拿到Payload數(shù)據(jù).(vxlan有2^24個邏輯網(wǎng)絡(luò),所以稱為擴展vlan)

參考文檔:http://www.aboutyun.com/thread-11189-1-1.html


16、在OpenStack中,介紹什么是浮動IP?什么是元數(shù)據(jù)?

答:(1)OpenStack引入了一個叫浮動ip的概念,浮動ip是一些可以從外部訪問的ip列表,通常從isp哪里買來的。浮動ip缺省不會自動賦給實例,用戶需要手動從地址池里抓取然后賦給實例。一旦用戶抓去后,他就變成這個ip的所有者,可以隨意賦給自己擁有的其他實例。如果實例死掉了的話,用戶也不會失去這個浮動ip,可以隨時賦給其他實例。暫時不支持為了負(fù)載均衡多實例共享一個浮動ip。動IP地址可以讓實例使用私有網(wǎng)絡(luò)連接到外部網(wǎng)絡(luò),例如互聯(lián)網(wǎng)。而對于固定ip來說,實例啟動后獲得的ip是自動的,不能指定某一個。所以當(dāng)一個VM歇菜了,再啟動也許固定ip就換了一個。

(2)系統(tǒng)管理員可以配置多個浮動ip池,這個ip池不能指定租戶,每個用戶都可以去抓取。多浮動ip池是為了考慮不同的isp服務(wù)提供商,免得某一個isp出故障帶來麻煩。如果運行的是企業(yè)云,浮動ip池就是那些openstack外的數(shù)據(jù)中心都能訪問到的ip。浮動ip機制給云用戶提供了很多靈活性,也給系統(tǒng)管理員減少了安全風(fēng)險,盡量只讓OpenStack軟件去改防火墻會安全些。

參考文檔:http://www.cnblogs.com/wcxy/p/3402006.html

元數(shù)據(jù)(Metadata):又稱中繼數(shù)據(jù),描述為數(shù)據(jù)的數(shù)據(jù),主要是描述數(shù)據(jù)屬性(property)的信息,用來支持如指示存儲位置、歷史數(shù)據(jù)、資源查找、文件記錄等功能。


17、講講Opnstack啟動虛擬機實例后,虛擬機的狀態(tài)是怎么變化的?

答:(1)管理員發(fā)出創(chuàng)建虛擬機的命令,決定從鏡像文件或是快照文件進行啟動。

(2)當(dāng)創(chuàng)建后,虛擬機實例進入Build狀態(tài),任務(wù)狀態(tài)是Spawning孵化。

(3)期間,將會從控制節(jié)點上的Glance組件把相應(yīng)的鏡像文件從中下載到Nova計算節(jié)點,并進行一些虛擬機的初始參數(shù)配置,如內(nèi)存、CPU、磁盤空間。

(4)當(dāng)一切正常后,虛擬機將會將會進入Active狀態(tài),此后,用戶便可以使用云主機了。創(chuàng)建實例的時間一般由鏡像文件的大小、網(wǎng)絡(luò)傳輸帶寬、以及創(chuàng)建的Hypervisor磁盤性能大小。

(5)虛擬機創(chuàng)建完畢,可以經(jīng)過Horzion的web界面進行管理,也可以基于Python Nova client的命令行管理。


18、說說OpenStakc各組件的作用?

答:(1)keystone負(fù)責(zé)為每個服務(wù)進行認(rèn)證、授權(quán)、租戶管理、項目權(quán)限和配額以及服務(wù)目錄管理。

(2)Glance負(fù)責(zé)提供Nova創(chuàng)建實例所需要的鏡像文件,鏡像格式如raw、qcow2。

(3)Nova負(fù)責(zé)云主機實例生命周期的管理,以及宿主機資源調(diào)度;Nova還決定了虛擬機實例在哪一臺Hypervisior物理機上運行。

(4)Horzion將用戶的http請求轉(zhuǎn)換為RESTful請求,然后將RESTful請求分發(fā)給Nova API,進行實例的創(chuàng)建。

(5)cinder提供塊存儲,目的是用來做持久存儲的,典型軟件如ceph;swift提供對象存儲,用來文件共享的。

(6)neutron服務(wù)為云主機實例提供網(wǎng)絡(luò)服務(wù),比如私有IP的地址分配問題,訪問外網(wǎng)的浮動IP、NAT路由、防火墻,以及云主機實例彼此之間的vxlan通信。


19、談?wù)勀銓pentStack的認(rèn)識?

答:OpenStack是一個分布式系統(tǒng),完成一件事,基本上都會涉及到一系列的組件,這些組件協(xié)同工作,在云中扮演著各種角色。(然后就拿上面各組件的作用說,原理我看就算了,一般人說不清楚,對方也聽不懂,呵呵)


20、概述創(chuàng)建虛擬機的流程。(這個問題,非常值得思考,很容易被問到!)

答:(1)Horizon通過Keystone獲取nova-Compute組件的的訪問地址(即URL),并獲取令牌token。

(2)Horizion攜帶授權(quán)令牌,發(fā)送創(chuàng)建虛擬機指令。

(3)Nova-compute組件通過glance-api下載虛擬機鏡像,glance鏡像中有緩存機制,通常把緩存文件放入名為_base的目錄,如果_base緩存沒有鏡像文件

,那么就會從glance下載鏡像到base緩存,然后再從base緩存通過TCP/IP網(wǎng)絡(luò)復(fù)制到計算節(jié)點云主機實例下的鏡像目錄里。

(4)glance檢索后端鏡像,glance后端存儲不一定要使用swift,只要是存放鏡像文件的系統(tǒng)都可以。

(5)獲取網(wǎng)絡(luò)信息,決定虛擬機的網(wǎng)絡(luò)模式以及建立網(wǎng)絡(luò)連接。

(6)nova-compute發(fā)送啟動虛擬機指令,至此經(jīng)過虛擬機服務(wù)任務(wù)狀態(tài)的變化,正常過后創(chuàng)建即可完成。


21、如果我有多個計算節(jié)點,那么我啟動一個云主機實例,那么我怎么知道該實例在哪臺計算節(jié)點上運行呢?(嗯...因缺絲婷)

答:命令查看...



22、PXE的工作原理?

答:實現(xiàn)自動獲取IP網(wǎng)絡(luò)安裝linux是這樣的:客啟端PXE網(wǎng)卡啟動-->通過Bootp協(xié)議廣播dhcp請求-->DHCP服務(wù)器-->獲取IP,TFTP服務(wù)器地址-->從TFTP上下載 pxelinux.0以及系統(tǒng)內(nèi)核文件vmlinuz、initrd.img-->啟動系統(tǒng)-->(到指定url去下載ks.cfg文件-->根據(jù)ks.cfg文件去NFS/HTTP/FTP服務(wù)器自動下載軟件包)安裝系統(tǒng)-->完成安裝。

DHCP server為客戶端分配ip并提供TFTP服務(wù)器地址及PXE啟動文件位置,TFTP server為客戶端提供引導(dǎo)文件



23、創(chuàng)建網(wǎng)絡(luò)時,Neutron做了什么?

答:創(chuàng)建虛擬機時,Neutron會根據(jù)選擇的網(wǎng)絡(luò),首先給虛擬機分配一個tap設(shè)備作為虛擬的網(wǎng)卡,命名為tapXXX , XXX是一串?dāng)?shù)字和字母的組合,用來標(biāo)識的,譬如tap8eaf6158-80,

在系統(tǒng)中使用ifconfig命令可以看到新增了這個網(wǎng)口。建立一個Linux網(wǎng)橋,命名為

qbr8eaf6158-80。把上面那個新增的tap網(wǎng)口接在這個qbr的交換機上,使用命令“brctl

show”可以列出存在的網(wǎng)橋設(shè)備和端口。現(xiàn)在,虛擬機上已經(jīng)有了一個接在虛擬網(wǎng)橋上的網(wǎng)

口,接下來是如何把這個網(wǎng)口與OVS的br-tun連接起來。

? ? 這時會有一對veth設(shè)備出現(xiàn)。veth是Linux中的虛擬網(wǎng)絡(luò)設(shè)備,總是成對出現(xiàn),一對veth設(shè)備的數(shù)據(jù)總是從一個流人,

從另一個流出。Neut1-on會建立一對分別命名為qvbXXX

和qvoXXX的veth設(shè)備,并且把它們分別連接到前面提到的qbr8eaf6158和br-int這兩個交

換機上。可以使用命令“brctl show”和“ovs-vsctl show”分別查詢qbrXXX和br-int這兩個

交換機是否已經(jīng)串聯(lián)起來了。


23、saltstack中,master和minion各自干了什么事?

答:master:存放所有minion的公鑰、監(jiān)聽mininon、發(fā)送命令給minion、存放一些為minion準(zhǔn)備的配置文件,如state、存放一些為minion準(zhǔn)備的files和數(shù)據(jù),如apache2.cnf,pillar

minion:連接master、監(jiān)聽master發(fā)送的commands、從master下載state并且執(zhí)行state、可以執(zhí)行在minion上執(zhí)行state,用salt-call,當(dāng)然這個一般多數(shù)用于調(diào)試


24、SSH的工作原理?

答:(1)SSH可以基于賬戶密碼進行認(rèn)證;SSH可以基于密鑰對進行認(rèn)證

(2)基于密鑰的安全認(rèn)證就是本機提供一對公鑰和私鑰,把公鑰復(fù)制一份放在遠(yuǎn)程服務(wù)器上面,遠(yuǎn)程服務(wù)器的sshd進程監(jiān)聽22號端口。當(dāng)向遠(yuǎn)程服務(wù)器發(fā)起請求的時候,本機會把公鑰發(fā)送給遠(yuǎn)程服務(wù)器,遠(yuǎn)程服務(wù)器會在家目錄下檢查公鑰是否一致,如果一致,就會把應(yīng)答數(shù)據(jù)包使用公鑰加密后返回給客戶端,客戶端再使用自己的私鑰進行解密,得到解密后的數(shù)據(jù)包,其中解密后的數(shù)據(jù)包含有會話密鑰,而后使用會話密鑰進行通信。


25、Zabbix有何特性?

答:數(shù)據(jù)收集、靈活的閾值定義、高級告警設(shè)置、實時繪圖、擴展的圖形化展示、歷史數(shù)據(jù)存儲、監(jiān)控主機使用模板、自動發(fā)現(xiàn)網(wǎng)絡(luò)設(shè)備、提供Zabbix API。


26、Zabiix包含了哪幾個進程,各有什么作用?

答:(1)Zabbix_agentd:客戶端守護進程,收集本機的數(shù)據(jù)

(2)Zabbix_get:Server端用于主動獲取被監(jiān)控端數(shù)據(jù)

(3)Zabbix_sender:被監(jiān)控端結(jié)合trapper進程,主動發(fā)送監(jiān)控項收集的數(shù)據(jù)到Server或Proxy端

(4)Zabbix_server:服務(wù)端的守護進程,接受其他進程發(fā)過來的數(shù)據(jù)

(5)Zabbix_proxy:代理守護進程,功能類似于Server,不過它只是一個中轉(zhuǎn)站,把收集到的數(shù)據(jù)再提交給Server,跨機房和地區(qū)需要用到



27、zabbix的server端如何去監(jiān)控agent端?

答:原理:每一個item都有其專用的key,zabbix服務(wù)器與被監(jiān)控端進行通信時就使用相應(yīng)的協(xié)議或機制去質(zhì)詢被監(jiān)控端這個key的值,被監(jiān)控端就調(diào)用此key所對應(yīng)的腳本去獲取相應(yīng)的數(shù)據(jù)并返回給服務(wù)端。


28、監(jiān)控中,歷史數(shù)據(jù)和歷史趨勢數(shù)據(jù)有何區(qū)別?

答:歷史數(shù)據(jù):指的是采樣的數(shù)據(jù)。指定存儲在數(shù)據(jù)庫中的天數(shù),如果超過該閾值,那么會被housekeeper進程給清理掉

歷史趨勢數(shù)據(jù):指的是每小時的最大值、最小值、平均值以及各種統(tǒng)計。


29、說一下,在zabbix監(jiān)控某個主機的時候,人為應(yīng)該部署哪些步驟?

答:創(chuàng)建主機、附加模板,修改item監(jiān)控項,創(chuàng)建圖形(關(guān)聯(lián)Item),定義觸發(fā)器,創(chuàng)建用戶,創(chuàng)建事件、創(chuàng)建action


30、如果有100臺服務(wù)器,每臺服務(wù)器有30個監(jiān)控項,每個監(jiān)控項60秒刷新一次,需要多大的硬盤呢?

答:隨著監(jiān)控項的數(shù)量增多以及監(jiān)控值的實時刷新,數(shù)據(jù)庫也會越來越龐大,那么影響Zabbix硬盤大小的因素有:

(1)監(jiān)控值每秒中存儲的數(shù)據(jù)量:100x30/60=50個 ?

(2)歷史記錄保存時間

(3)趨勢數(shù)據(jù)保存時間

(4)事件記錄保存時間 (報警、恢復(fù))

(5)數(shù)據(jù)庫引擎以及數(shù)據(jù)類型(整型、浮點型、字符型)

綜上:數(shù)據(jù)庫硬盤空間=配置文件大小+歷史記錄+趨勢記錄+事件記錄



轉(zhuǎn)載于:https://blog.51cto.com/19951008/1894950

總結(jié)

以上是生活随笔為你收集整理的OpenStack运维面试(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。