TFS新機器上線問題

2022-05-02 20:51:10 字數 1007 閱讀 5783

昨天下午線上輔集群加機器擴容,擴容的機器在執行一段時間後線上有block lost的告警,從nameserver(ns)的日誌上發現,擴容的新機器上有多次加入集群和退出集群的記錄,最初我懷疑是擴容後,集群做容量負載均衡,大量資料往新加入的節點遷移,導致新機器負載高,從而出現心跳資訊沒有及時到達ns的情況,此時ns認為dataserver(ds)宕機,如果有乙個block的多個副本都被遷入到新擴容的機器中,則可能出現某一段時間ns認為block已經丟失,但實際上block仍然正常存在的;檢視ns最新的日誌後發現,block可能丟失的日誌一直都存在,於是開始找ds的問題。

從已丟失block列表中選取乙個block,查詢block建立記錄,發現其13:23時刻在a、b兩個ds上建立,從a的日誌發現,a在13:32時刻被強制kill,並很快被啟動了,從日誌中找該block的記錄,發現在被kill前的確有建立block的記錄,但重啟後,完全沒有跟該block相關的記錄,block莫名奇妙的不見了,只有一種可能性,第二次重啟前,檔案系統被重新格式化過。

跟pe同事確認後,發現問題在於運維平台上的上線請求被提交了兩次(第一次提交後,頁面沒什麼動靜,pe以為有問題,重新整理了一下頁面),為什麼提交兩次會有問題? 後台在服務ds上線請求時,如果發現有ds程序在執行,則會先將其強制kill,然後格式化檔案系統,再啟動ds程序。

這裡有兩個設計相關的問題: (1) 傳送請求後頁面沒動靜。 (2) 上線ds時,強制先下線。

對於問題(1):使用者提交請求後,如果任務需要執行很長時間,可以給使用者一些友好的提示,比如告訴使用者請求已經收到,後台正在執行,大概需要多長時間之類的資訊; 如果請求在語義上不能重複提交,就應該使用技術手段顯式阻止使用者重新提交其請求。

對於問題(2): 介面的語義應該盡量簡單,比如向使用者提供上線、下線伺服器的介面,上線的語義應該是把乙個原來不在集群中的ds加入到集群;下線就是把原來在集群中的ds從集群中移除;如果上線時發現機器上已有ds在執行,這樣是不滿足上線條件的,則直接把問題拋給請求者,請求者發現有程序在執行,須先確認情況,如果發現的確需要把正在執行的ds下線掉,他就需要先執行一次下線操作,再重新上線。

新機器的靈魂

1 新的時代 開車由深南大道到蛇口,沿途可以看到乙個巨大的工地,大片推平的黃褐色土地一派淒涼。在這旁邊則有成片嶄新的高層寫字樓 生活區和購物商場,來往的車輛穿梭於農工商的大道上,在這一座座寫字樓上掛著許多新興公司的名字 康佳電子 長城國際 康柏 華為技術等。這些迅速壯大的公司都預示在中國經濟發展的大...

實驗室來了新機器

好久沒上來了,學校的網路最近有點萎靡,隨便帖一篇,慶祝用上新機器 最近我們實驗室太熱鬧了,新來了很多機器,爽的同時也帶來不少麻煩 首先是一台惠普伺服器,帶上一台磁碟陣列 10 300g,真沒想到這輩子還能摸到tb級別的磁碟,實在大大的開了眼界,價錢還貴過伺服器。伺服器也很猛,體積是一般pc的四五倍,...

centos7新機器初始化

今天拿到一台新上架的centos7機器,配置為72核,376g記憶體,雙t4顯示卡。需要對機器進行一些初始化設定才能正式投入生產。初始化包括但不限於,修改主機名,修改系統最大開啟檔案數,對資料盤進行掛載並設定開機自動掛載,安裝顯示卡驅動等。一,修改主機名 永久修改主機名,直接執行命令 hostnam...