開放星雲。 簡短的筆記

開放星雲。 簡短的筆記

大家好。 本文是為那些仍在選擇虛擬化平台之間猶豫不決的人而寫的,他們在閱讀了系列文章“我們安裝了proxmox,總的來說一切都很好,6 年的正常運行時間沒有一次中斷」。 但在安裝一個或另一個開箱即用的解決方案後,問題出現了:我如何在這裡糾正這個問題,以便監控更容易理解,並且在這裡控制備份......。 然後時機成熟,您意識到您想要更多功能,或者您希望系統內部的所有內容都變得清晰,而不是這個黑盒子,或者您想要使用的不僅僅是虛擬機管理程式和一堆虛擬機。 本文將包含一些基於Opennebula平台的思考和實踐——我選擇它是因為。 它對資源要求不高,架構也不是那麼複雜。

因此,正如我們所看到的,許多雲端提供者都在 kvm 上工作並建立外部連接來控制機器。 很明顯,大型託管商為雲端基礎架構編寫了自己的框架,例如相同的 YANDEX。 有人使用openstack並在此基礎上建立連接-SELECTEL、MAIL.RU。 但如果你有自己的硬體和一小部分專家,那麼你通常會選擇現成的東西 - VMWARE、HYPER-V,有免費和付費許可證,但這不是我們現在討論的。 讓我們來談談愛好者 - 這些人不害怕提供和嘗試新的東西,儘管公司明確表示,“誰會在你之後為這個提供服務”,“我們會稍後將其投入生產嗎?” ? 可怕的。” 但你可以先將這些解決方案應用在測試台上,如果大家都喜歡的話,那麼你可以提出在更嚴峻的環境中進一步開發和使用的問題。

這裡還有報告的鏈接 www.youtube.com/watch?v=47Mht_uoX3A 來自該平台開發的積極參與者。

也許本文中的某些內容是多餘的,並且對於經驗豐富的專家來說已經可以理解,並且在某些情況下我不會描述所有內容,因為類似的命令和描述可以在 Internet 上找到。 這只是我使用這個平台的經驗。 希望積極的參與者在評論中補充我哪些地方可以做得更好,哪些地方我犯了錯。 所有動作均在由 3 台具有不同特性的 PC 組成的主看台中進行。 另外,我沒有具體說明這個軟體是如何運作以及如何安裝的。 不,只有管理經驗和我遇到的問題。 也許這對他們選擇的人有用。

那麼,讓我們開始吧。 作為系統管理員,以下幾點對我來說很重要,否則我不太可能使用此解決方案。

1.安裝重複性

安裝opennebula的說明很多,應該不會有問題。 從一個版本到另一個版本,出現的新功能在從一個版本移動到另一個版本時並不總是有效。

2. 監控

我們將監控節點本身、kvm 和 opennebula。 幸運的是,它已經準備好了。 關於監控 Linux 主機有很多選項,相同的 Zabbix 或節點導出器 - 誰更喜歡哪個 - 目前我將其定義為透過 zabbix 監控系統指標(可以測量的溫度、磁碟陣列的一致性) ,以及透過Prometheus 匯出器的應用程式。 以kvm監控為例,可以拿項目 github.com/zhangjianweibj/prometheus-libvirt-exporter.git 並將其設置為通過systemd運行,它運行得很好並顯示kvm指標,還有一個現成的儀表板 grafana.com/grafana/dashboards/12538.

例如,這是我的文件:

/etc/systemd/system/libvirtd_exporter.service
[Unit]
Description=Node Exporter

[Service]
User=node_exporter
ExecStart=/usr/sbin/prometheus-libvirt-exporter --web.listen-address=":9101"

[Install]
WantedBy=multi-user.target

所以我們有 1 個導出器,我們需要第二個導出器來監控 opennebula 本身,我使用了這個 github.com/kvaps/opennebula-exporter/blob/master/opennebula_exporter

可以正常添加 節點導出器 監控系統以下內容。

在node_exporter檔案中,我們像這樣更改開始:

ExecStart=/usr/sbin/node_exporter --web.listen-address=":9102" --collector.textfile.directory=/var/lib/opennebula_exporter/textfile_collector

建立目錄 mkdir -p /var/lib/opennebula_exporter

上面介紹的bash腳本,首先我們透過控制台檢查工作,如果它顯示我們需要的內容(如果它給出錯誤,則安裝xmlstarlet),將其複製到/usr/local/bin/opennebula_exporter.sh

每分鐘增加一個 cron 任務:

*/1 * * * * (/usr/local/bin/opennebula_exporter.sh > /var/lib/opennebula_exporter/textfile_collector/opennebula.prom)

指標開始出現,你可以像普羅米修斯一樣使用它們並建立圖表並發出警報。 例如,在 Grafana 中您可以繪製這樣一個簡單的儀表板。

開放星雲。 簡短的筆記

(很明顯,我在這裡過度使用了cpu、ram)

對於那些熱愛和使用 Zabbix 的人來說,有 github.com/OpenNebula/addon-zabbix

就監控而言,最主要的是它的存在。 當然,除此之外,你還可以使用內建的虛擬機器監控工具,上傳資料到計費,這裡每個人都有自己的想法,我還沒有開始更深入地研究這個。

我還沒有真正開始記錄。 最簡單的選擇是新增 td-agent 以使用正規表示式解析 /var/lib/one 目錄。 例如,sunstone.log 檔案與 nginx 正規表示式和其他顯示平台存取歷史記錄的檔案相符 - 這樣做的優點是什麼? 舉例來說,我們可以明確地追蹤「錯誤,錯誤」的數量,並快速追蹤故障的位置和等級。

3. 備份

還有付費完成的項目 - 例如 sep wiki.sepsoftware.com/wiki/index.php/4_4_3_Tigon:開啟Nebula_Backup。 在這裡,我們必須明白,在這種情況下,簡單地備份機器映像是完全不同的,因為我們的虛擬機必須完全整合(描述網路設定、虛擬機名稱和應用程式的自訂設定的相同上下文文件) 。 因此,我們在這裡決定備份什麼以及如何備份。 在某些情況下,最好複製虛擬機器本身的內容。 也許您只需要備份給定電腦上的一個磁碟。

例如,我們確定所有機器都以持久圖像啟動,因此,在閱讀之後 docs.opennebula.io/5.12/operation/vm_management/img_guide.html

這意味著我們首先可以從虛擬機器上傳圖像:

onevm disk-saveas 74 3 prom.qcow2
Image ID: 77

Смотрим, под каким именем он сохранился

oneimage show 77
/var/lib/one//datastores/100/f9503161fe180658125a9b32433bf6e8
   
И далее копируем куда нам необходимо. Конечно, так себе способ. Просто хотел показать, что используя инструменты opennebula можно строить подобные решения.

我也在網路上找到了 有趣的報告 還有更多 這樣一個開放的項目,但是只有qcow2的儲存空間。

但眾所周知,遲早有一天你需要增量備份,這會更困難,也許管理層會分配資金購買付費解決方案,或者走另一條路,明白我們只是在削減資源,並在應用程序級別進行備份並添加許多新節點和虛擬機- 是的,在這裡,我說的是純粹使用雲來啟動應用程序集群,並在另一個平台上啟動數據庫或採用現成的平台如果可能的話,來自供應商。

4. 易於使用

在本段中我將描述我遇到的問題。 例如,根據鏡像,我們知道,存在持久性——當這個鏡像掛載到一個vm上時,所有的資料都會寫入這個鏡像。 如果是非持久性的,則圖像將複製到存儲,資料將寫入從來源圖像複製的內容 - 這就是模板模板的工作原理。 我多次給自己帶來問題,忘記指定持久化,200GB的鏡像被複製了,問題是這個過程肯定不能取消,你必須去節點殺死當前的「cp」進程。

重要的缺點之一是您無法僅使用 GUI 取消操作。 或者更確切地說,您將取消它們,然後看到沒有任何反應,然後您將再次啟動它們,取消它們,實際上已經有 2 個 cp 進程在複製映像。

然後就理解為什麼opennebula用新的id對每個新實例進行編號,例如,在同一個proxmox中創建了一個id為101的虛擬機,將其刪除,然後再次創建它並id為101。在opennebula中這不會發生,每個新實例都將使用新的 ID 創建,這有其自己的邏輯 - 例如,清除舊資料或不成功的安裝。

儲存也是如此;最重要的是,這個平台的目標是集中儲存。 有一些插件可以使用本地插件,但這不是我們在本例中討論的內容。 我認為將來有人會寫一篇關於他們如何設法在節點上使用本地儲存並在生產中成功使用它的文章。

5. 最大程度的簡單性

當然,你走得越遠,理解你的人就越少。

在我的立場的條件下 - 3 個帶有 nfs 儲存的節點 - 一切正常。 但是如果我們進行涉及斷電的實驗,例如運行快照並關閉節點電源時,我們在資料庫中保存的設定是有快照,但實際上沒有(好吧,我們都明白,我們最初在sql 中編寫了有關此操作的資料庫,但操作本身並不成功)。 優點是,在建立快照時,會形成一個單獨的文件,並且有一個“父文件”,因此,如果出現問題,即使無法透過 GUI 工作,我們也可以拾取 qcow2 文件並單獨恢復它 docs.opennebula.io/5.8/operation/vm_management/vm_instances.html

不幸的是,在網路上,並非一切都那麼簡單。 好吧,至少它比在openstack 中更容易,我只使用了vlan (802.1Q) - 它工作得很好,但如果你從模板網絡更改設置,那麼這些設置將不會應用於已經運行的機器,即您需要刪除並新增網路卡,然後才會套用新的設定。

如果你還想將它與openstack進行比較,那麼你可以這樣說:在opennebula中,沒有明確定義使用哪些技術來儲存資料、管理網路、資源——每個管理員自己決定什麼對他來說更方便。

6. 附加插件和安裝

畢竟按照我們的理解,雲端平台不僅可以管理kvm,還可以管理vmware esxi。 不幸的是,我沒有使用 Vcenter 的池,如果有人嘗試過,請寫信。

聲明了對其他雲端提供者的支持 docs.opennebula.io/5.12/advanced_components/cloud_bursting/index.html
AWS、蔚藍。

我也嘗試從 Selectel 連接 Vmware Cloud,但沒有任何效果 - 一般來說,它被阻止,因為有很多因素,並且沒有必要寫信給託管提供者的技術支援。

此外,現在新版本還有爆竹- 這是microvm 的推出,這是一種基於docker 的kvm 工具,它提供了更多的多功能性、安全性和更高的生產力,因為無需在模擬設備上浪費資源。 我認為相對於 Docker 的唯一優點是它不會佔用額外的進程數,並且在使用此模擬時不會佔用套接字,即很有可能將其用作負載平衡器(但在我完全運行所有測試之前,可能值得就此撰寫一篇單獨的文章)。

7.積極的使用經驗和錯誤調試

我想分享我對這項工作的觀察,我在上面描述了一些,我想寫更多。 事實上,我可能不是唯一一個一開始就認為這不是正確的系統的人,而且總的來說,這裡的一切都是拐杖 - 他們如何使用它? 但後來我們明白,一切都是非常合乎邏輯的。 當然,你不可能讓所有人都滿意,有些方面還需要改進。

例如,將磁碟映像從一個資料儲存複製到另一個資料儲存的簡單操作。 就我而言,有2 個帶有nfs 的節點,我發送圖像- 複製通過前端opennebula 進行,儘管我們都習慣了數據應該直接在主機之間複製的事實- 在同一個vmware、hyper-v 中,我們是習慣了這個,但這裡又是另一個。 有不同的方法和不同的意識形態,在 5.12 版本中,他們刪除了“遷移到數據存儲”按鈕 - 僅傳輸機器本身,但不傳輸存儲,因為意思是集中儲存。

接下來是一個常見的錯誤,原因有很多:「部署虛擬機器時發生錯誤:無法從 /var/lib/one//datastores/103/10/deployment.5 建立網域」下面是最重要的內容。

  • oneadmin 使用者的肖像權;
  • oneadmin用戶運行libvirtd的權限;
  • 資料儲存是否正確安裝? 去檢查節點本身的路徑,可能有東西掉下來了;
  • 網路配置不正確,或者更確切地說,在前端的網路設定中,vlan 的主介面是 br0,但在節點上它被寫為bridge0 - 它必須是相同的。

系統資料儲存為您的虛擬機儲存元數據,如果您使用持久映像運行虛擬機,則虛擬機需要有權存取您建立虛擬機的儲存體上最初建立的配置 - 這非常重要。 因此,當將虛擬機器傳輸到另一個資料儲存時,您需要仔細檢查所有內容。

8. 文件、社群。 進一步的發展

其餘的,良好的文檔、社區,最重要的是該項目在未來繼續存在。

一般來說,一切都有很好的記錄,即使使用官方來源,安裝和尋找問題的答案也不會有問題。

社區,活躍。 發布了許多可在安裝中使用的現成解決方案。

目前公司部分政策自5.12以來發生了變化 forum.opennebula.io/t/towards-a-stronger-opennebula-community/8506/14 看看這個項目如何發展將會很有趣。 一開始,我特別指出了一些使用他們的解決方案的供應商以及行業提供的內容。 當然,對於使用什麼沒有明確的答案。 但對於較小的組織來說,維護小型私有雲可能不像看起來那麼昂貴。 最重要的是確切地知道您需要什麼。

因此,無論您選擇什麼作為雲端系統,您都不應該停留在一種產品上。 如果您有時間,值得看看其他更開放的解決方案。

有一個很好的聊天 t.me/opennebula 他們會積極提供協助,而不是讓您在 Google 上搜尋問題的解決方案。 加入我們。

來源: www.habr.com

添加評論