遷移填坑第二季

2021-06-28 03:47:23 字數 1874 閱讀 9524

之前說到,配置了遷移環境碰到了各種坑,然後終於解決掉了,終於能夠nova live-migration kobe compute5了。。。然後就開始批量生產遷移環境,然後。。

之前是只用了compute3和compute5,然後把compute6和compute7也配置好nfs和libvirt,然後嘗試把kobe遷到6,失敗!回滾到active狀態,看起來是pre check的時候的問題,然後遷到7,失敗!好像是同樣的問題。。看了下日誌,說的是check_can_live_migration_destination出錯,但是compute6上的日誌內容很奇怪,然後突然想起來之前第一次填坑的時候憤怒的把compare_cpu注釋掉了。。恢復之後,重新來失敗一次。。果然,日誌說destination的cpu不相容,compute6上說cpu set 2 4 6 8 (忘了,大概是這樣子#todo),然後看了一下6 和 7的cpu,果然比較老,支援的cpu features比較少(但是沒有深究這個cpu features是幹嘛的)。

那這個如何是好。。。就算可以從6遷回去,但是遷不回來有毛用啊。我那時候突然冒出來乙個十分偉大的想法:寫乙個假的程式模擬那些不支援的features,因為cpu的model是我可以指定的,只要避開那些不支援的feature,其他的只要檢查一下是否存在就好了。然後估算了一下,這玩意兒涉及到了系統的更底層,複雜度更一步增加,然後。。就沒有然後了。。

結局:這個坑挖出來只能避開它。。

然後等compute1 compute2 compute4裝好,先確認過這幾台是比較新的dell,然後配置好之後,愉快的玩了半天,1到2,2到3,3到4,4。。。。。

4又怎麼了!!!

看日誌,是許可權錯誤??/var/lib/nova/instances

臥槽,owner怎麼變成libvirt-dnsmasq了。。還我nova啊啊啊

好吧,淡定點,刪掉它,重新啟乙個。。咦?error,no valid hosts?再來一發。。no valid hosts .....again , again again and again

然後chown nova:nova instances

然後在試,我擦擦,controller也變了,變成neutron,其他的節點有的變了有的沒有。

...............中午飯都顧不上吃了,覺也顧不上了,和同學開始進入瘋狂思考模式。

問題大概是這樣的,controller裡nova的uid是110,neutron是108. compute1,2,3,5裡nova是108,libvirt-dnsmasq是110,compute4裡nova是111?忘了。。反正跟其他的compute都不一樣。

各種掛載,對映,修改uid,就差去換乙個共享儲存了。(這裡還是有點偷懶,沒有去看nfs關於許可權的規定,我記得並且從現象上看是根據uid)

然後失敗,3點左右去吃飯睡覺寫會rails壓壓驚。

快6點的時候和同學去食堂吃飯,然後詳細的捋了一遍,我隱約發現了問題。。這貌似是第一次在食堂還這麼激烈的討論和思考。

我們回到實驗室的時候有這麼幾個打算:

1,我再試試,按照我的思路要先取消掛載,然後挨個節點嘗試一下。。

2,重新裝機,每個節點的nova的uid都要強行一致。

3,換實驗室。。。。。。。

運氣不錯,先把其他都關掉,只留下乙個compute1,然後 umount /var/lib/nova/instances

然後在controller和compute1上chown -r nova:nova /var/lib/nova/instances 

然後重新mount -a -v 

然後nova boot。。神奇的事情出現了!成功的找到了compute1並spawn了。

然後如法炮製,compute2,然後遷移。。果然成功!!

然後除了4,其他都啟起來了。。。遷移完全沒問題了。。

大喜到大悲再到大喜。。。

Python踩坑指南(第二季)

本期圍繞jieba講乙個我遇到的實際問題,在同乙個服務裡,存在兩個不同介面a和b,都用到了jieba分詞,區別在於兩者需要呼叫不同的詞庫,巧合中,存在以下情況 詞庫a 幹拌麵 詞庫b 乾拌 面 在服務啟動的時候,由於詞庫a優先被載入了,再去載入詞庫b的時候發現,並沒有載入成功 介面a中 jieba....

Java 基礎(第二季)

public class helloworld public class helloworld int num1 int num2 初始化塊 static public static void main string args 結果如下 通過靜態初始化塊為靜態變數num3賦值 通過初始化塊為變數nu...

X A B (第二季水)

description give you two numbers a and b,if a is equal to b,you should print yes or print no input each test case contains two numbers a and b.output ...