管理OpenVZ服務器(III)

大家好。 今天,我們將繼續本系列文章中有關行政管理的內容 OpenVZ的。 在 以前的帖子 我們涵蓋了與 安裝 由OpenVZ。

因此,如果一切順利,我們應該已經擁有服務器 OpenVZ的 已安裝並準備開始使用它。

今天我們將討論與行政管理有關的一切 集裝箱,包括其創建以及配置和管理。

創建容器

很多 集裝箱 o 電動車 它們是我們將通過服務器創建和管理的虛擬環境(虛擬機) OpenVZ的。 為了創建它們,我們需要一個模板。

很多 模板 它們是用來構建容器的模型。 它們包含系統和某些基本應用程序運行所需的各種程序包,以及用於構建和配置計算機的所有元數據(模板高速緩存)。

有不同的模板 分佈 de Linux的。 其中一些是官方維護的,其他是社區的貢獻。

獲得它們的最簡單方法是使用以下方法之一 預先創建的模板。 通過從模板創建容器,然後將其打包到文件中來獲得這些文件 gzip。

這些壓縮文件將是我們要下載的文件,並從中創建自己的容器。 這樣,容器的創建比過去必須手動生成緩存的情況要快得多,容易得多。 您今天要做的就是從此頁面下載所選發行版本的文件:

http://openvz.org/Download/template/precreated

下載後,我們將其保存在服務器上的以下目錄中:

/vz/template/cache

現在我們可以創建我們的 集裝箱 從已安裝的模板中。 首先要記住的是,每個容器都有一個與之關聯的數字ID,用於標識VE,並且它不能在同一物理主機中重複。

而且,該ID必須大於100,因為系統使用的ID是0到100。

要管理容器,最重要的命令是 ct。 以下語法用於創建新容器:

#vzctl create --ostemplate template --config config_file

在ostemplate中,我們放置了之前下載的模板的名稱。 config參數是可選的。 您在其中放置了具有容器預定義配置的文件名。

如果未指定,則必須手動放置。 配置文件位於:

/etc/sysconfig/vz-scripts

文件名具有以下結構:

ve-nombre_config.conf-sample

最常見的是 basic (ve-basic.conf-sample)。 我們可以使用默認創建的那些,也可以使用我們自己創建的那些。 無論如何,以後可以修改所有指定的值。

例如,要從我們之前下載並使用基本配置的debian模板中創建一個ID為101的容器,我們執行:

#vzctl create 101 --ostemplate debian-6.0-x86 --config basic

容器配置

現在我們已經創建了容器,我們可以繼續配置它。 為此,我們使用以下語法:

#vzctl set --parametro valor --parámetro valor […]

我們可以配置許多參數。 要諮詢他們,我們都可以轉到vzctl手冊(#man vzctl) 或者 openvz維基.

為了更改所做的更改,這些更改在關閉系統後仍保留,我們必須在命令末尾添加–save。 如果不是,它將僅持續到下一次關閉。

在這裡,我們將解釋一些最基本的命令:

將容器配置為在計算機啟動或不啟動時啟動。
onboot [yes/no]

指定計算機的主機名
hostname

將IP地址添加到設備。 它們是累積添加的。
ipadd

如果要刪除任何先前配置的文件,則必須使用:
ipdel dir_ip|all

配置DNS服務器的地址。 您可以在同一命令中多次使用此選項來配置多個服務器。 這樣做將覆蓋所有先前配置的名稱服務器。
nameserver

設置系統用戶密碼。 如果不存在,請創建它。 建議不要與其他參數一起使用。 不需要使用 save 使用此參數。

userpasswd user:password

指示機器啟動時的啟動順序。 數字越高,優先級越高。 如果未配置,則認為它具有最低優先級,並且配置的所有其他容器將首先啟動。

bootorder

最後,我以容器101基本配置的執行為例

#vzctl設置101 --onboot是-主機名虛擬主機--ipadd 192.168.1.10-名稱服務器8.8.8.8-名稱服務器4.4.4.4-保存#vzctl設置101 --userpasswd根:1234

集裝箱管理

創建並配置容器後,就可以對其進行管理。 為此,我們將再次使用vzctl命令。 下面列出了一些用於管理容器的基本命令:

啟動容器
#vzctl start ID

停止容器
#vzctl stop ID

停止容器而不等待其所有進程停止
#vzctl stop ID --fast

它告訴我們容器的狀態
#vzctl status ID

銷毀容器。 在必須停止它之前。
#vzctl destroy ID

您可以通過命令行輸入機器,就好像ssh已訪問我們一樣。
#vzctl enter ID

在容器內運行命令。
#vzctl exec ID comando

列出服務器上活動的容器。 使用-a選項還會列出被拘留者。
#vzlist

今天就這些。 至此,我們完成了行政管理的最基本部分 OpenVZ的.

在接下來的幾篇文章中,我們將討論更高級的過程,例如資源管理,執行 備份 或使用 循環.

在此之前,您可以嘗試我們到目前為止已解釋的所有內容。 與往常一樣,在評論中留下您的任何問題,很快再見。 壽命長,繁榮。


本文內容遵循我們的原則 編輯倫理。 要報告錯誤,請單擊 這裡.

17條評論,留下您的評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   拉夫 他說:

    優秀的文章! 😉

    1.    神崎666 他說:

      非常感謝!。 我很高興能夠發表這些文章。 我將繼續努力,並儘我所能進行協作。 壽命長,繁榮。

  2.   OCZ 他說:

    關於OpenVZ的非常有趣的文章。 讓我們看看您是否鼓勵我嘗試一下,我對此事已經關注了很長時間。 在這裡,我留下一些評論:

    我完全不了解OpenVZ的工作原理,我的主要問題之一就是為什麼必須為每台機器手動設置網絡配置。 不能讓它從DHCP服務器獲取它嗎? 也就是說,您可以給它一個MAC +橋接器,然後機器自行管理以獲取網絡配置嗎? (因為在我已經閱讀過的有關OpenVZ的文章中,始終將其配置為IPv4,但是IPv6呢?)

    此外,如果我必須靜態配置網絡配置,那麼從計算機“內部”進行操作有什麼問題? 從主機分配主機名又是什麼? 簡而言之,這對我來說似乎是多餘的和多餘的,我想知道為什麼有必要或建議這樣做。

    順便說一句,我不知道您是否打算討論這個主題,但是我會對一篇有關使用OpenVZ的安全性和隱私性的文章感興趣。 在VirtualBox中,除非我要通過網絡或共享文件夾,否則我不會互相“看到”主機,也不會與主機“看到”主機。 例如,我想知道使用OpenVZ設置蜜罐會帶來什麼風險。 我將其作為一種想法進行評論,以備您撰寫。

    1.    神崎666 他說:

      我很高興您喜歡這些帖子,並鼓勵您嘗試使用OpenVZ。 您將看到它非常易於管理。

      關於您的疑問,大多數與我們尚未談論的事情有關。 但我會給您一些介紹來解決它們。

      您必須知道的第一件事是,在OpenVZ中,網絡有兩種類型的配置。 可以使用Venet或veth。 第一個類似於專用網絡,也就是說,只能從容器和物理主機進行訪問。 在網絡上其他計算機看來,它們似乎不存在。 另一方面,veth是虛擬網卡,它使容器像網絡上的另一台計算機一樣工作,並且可以被其他計算機訪問。 它還允許使用更高級的選項,例如使用DHCP或從容器內部進行網絡配置。

      關於IPv6,兩種模式都支持它。 您可以將ipadd命令與ipv6地址配合使用而不會出現問題。 當然,使用venet並不是所有功能都能正常工作。 由於venet卡沒有關聯的MAC,因此鄰居發現或路由器通告之類的功能不起作用。

      我認為,關於必須在外部配置特性這一事實,這是簡化管理員工作的一種方式。 它使您可以輕鬆更改特性,並且幾乎可以輕鬆實現自動化。 而且,正如我在文章中提到的,您可以創建自己的配置模型以從中創建機器,從而消除了許多麻煩。

      最後,關於安全性,強烈建議使用OpenVZ創建蜜罐。 OpenVZ完全將容器與物理系統隔離開,並且對攻擊者而言是真實存在的。 所有這些都以非常低的資源消耗實現。 這是構建蜜罐的絕佳選擇(儘管對此有更簡單且特別針對性的選擇)。

      希望我能解決您的疑慮。 如果您想讓我討論其他主題,請不要猶豫。 再見。 壽命長,繁榮。

  3.   加布里埃爾 他說:

    您好,本系列的帖子非常好,我想諮詢以下內容:我正在嘗試還原一些在Ubuntu Server主機上運行的OpenVZ容器(一些.tar文件)的備份,它們是通過以下操作完成的命令:

    vzdump –掛起ID –mailto root –dumpdir /備份/文件

    該主機具有以下版本:vzctl版本3.0.22
    現在的想法是能夠在CentOS 6服務器上還原這些容器。創建新的VM時,我沒有問題,但是我找不到還原這些備份的方法(在CentOS上,我具有以下版本:vzctl version 4.7.2)

    我讀過這個:
    https://openvz.org/Quick_Installation_CentOS_6
    http://wiki.centos.org/HowTos/Virtualization/OpenVZ
    http://www.howtoforge.com/installing-and-using-openvz-on-centos-6.4-p2
    當然,這將是一個帖子😉

    從我所看到的大多數信息中,他們談到了使用vzrestore或vzdump –restore,但是我無法使還原工作。 (在CentOS 6中,我沒有vzrestore,vzdump中的–restore標誌也沒有)。

    問題來了:
    可以做我想做的嗎? 有障礙嗎?
    怎麼做呢? 我應該以某種方式安裝vzrestore嗎?
    推薦或閱讀?

    感謝您的貢獻,問候

    1.    神崎666 他說:

      您好,感謝您的評論。

      關於您的問題,原則上應該沒有問題。 實際上,我記得我很久以前就遇到過這個問題,當時我已經解決了。 但是現在我無法訪問自己為自己製作的文檔,並且由於我有一段時間沒有接觸過它,所以我不記得了。 但是請不要失望,我將在稍後安裝帶有OpenVZ的計算機,稍後我將為您解決。 因此,順便說一句,也許我會回到這一系列的帖子,我對此有些遺棄。

      壽命長,繁榮。

      1.    加布里埃爾 他說:

        感謝您的回答,如果您能看到它,我將不勝感激。
        (此外,可能出現在主題上的新帖子肯定非常有用)

        引起我注意的一件事是,在我安裝的CentOS 6.5中,這些是它安裝的工具:
        vzcalc,vzcptcheck,vzctl,vzdqdump,vzeventd,vzifup-post,vzmemcheck,vznetaddbr,vzoversell,vzquota,vzstats,vzubc,vzcfgvalidate,vzcpucheck,vzdqqcheck,vzmigt-vzratezvzmigplznet,vzmigt-vzmigplznet

        通過遵循官方文檔中的步驟: https://openvz.org/Quick_Installation_CentOS_6
        在我在vzdqdump人中看到的標誌中,我沒有–restore標誌。 我還看到在vzctl男人中我有一些標誌–snapshot *,但我不知道這是我要查找的還是確切地使用它們。

    2.    神崎666 他說:

      好吧,在與openvz和其文檔極其豐富的內容進行鬥爭之後,我想我終於明白了。 最終,您需要使用與vzdump捆綁在一起的vzrestore。 但是在CentOS中並沒有安裝它們,您必須手工完成。 這個過程有點複雜(剛好足以讓您的頭撞到鍵盤),所以我在我最近打開的我的博客上臨時撰寫了一篇文章。

      網址是: https://kamisama666.github.io/2014/07/instalacion-vzdump-centos6/

      希望我能幫上忙,您會告訴我情況如何。 哦,而且,正如您所問的那樣,“快照”選項僅適用於ploop類型的容器,這是與openvz中通常使用的存儲形式不同的形式。 更有趣的是“ suspend”和“ restore”,它們能夠保存容器的狀態並在以後還原它(但不,它與vzdump不兼容)。 無論如何,看看我是否重新發帖並談論這些事情。

      壽命長,繁榮。

      1.    加布里埃爾 他說:

        你不知道我對那篇文章的讚賞。 在星期一,我將嘗試並告訴您,我希望您繼續就此主題發表新的系列文章。 當然,我將分享您的帖子,以確保其他人肯定會覺得有用。😉問候,我將告訴您星期一的進展。

    3.    神崎666 他說:

      很高興它對您有所幫助。 實際上,自從我完成了這篇文章之後,我就充分利用了它,並將其發佈在desdelinux上,以使更多的人看到它。 你可以在這裡找到它:

      https://blog.desdelinux.net/vzdump-instalarlo-centos-6-5/

      長壽與繁榮

  4.   克里斯多 他說:

    朋友,我在執行配置步驟時遇到問題,問題是在配置我的新VM的計算機上可見,但在網段卻看不到,例如:

    我有一個網段1。*,我的主機A有1.50,新的VM B有1.201,我可以從機器A看到B,但是從連接到同一網絡的另一台計算機看不到,

    你可以說明我的失敗

  5.   達里奧 他說:

    優秀的文章,它對我有很大幫助,現在是一個查詢,我已經有一個帶有debian-7模板的生產容器,並且我想將其更新為同一容器的debian-8,我該怎麼辦?

    1.    神崎666 他說:

      您好,非常感謝。 我已經斷開與OpenVZ的連接一段時間了,但我會盡力為您提供幫助。

      首先,我將告訴您,如果可能的話,您將考慮創建一個比Debian 8模板新的容器,並逐步將數據和配置從舊容器遷移到新容器。 然後,您只需要將舊計算機的IP放入新的IP地址即可。 這是最簡單的方法。

      另一方面,如果由於某種原因無法做到這一點,那麼從理論上講,可以像在任何其他Debian機器上一樣從容器本身內部更新發行版。 但是我聽說過對此有問題的人,因此首先嘗試將其與任何其他容器一起使用。 如果您有問題,這裡有兩個站點(如何用英語)談論如何解決它們:

      https://www.skelleton.net/2015/05/04/upgrading-debian-guests-on-proxmox-to-jessie/
      http://forum.openvz.org/index.php?t=msg&goto=51280&
      http://justinfranks.com/linux-administration/upgrade-openvz-vps-from-debian-7-wheezy-64-bit-to-debian-8-jessie-64-bit

      尤其要看一下第一個,它是最新的,它會逐步為您解釋所有內容。

      當然,在生產中對容器進行任何更改之前,我甚至不必告訴您對容器進行冷或熱備份(以防萬一)。

      希望能對您有所幫助。 壽命長,繁榮。

    2.    神崎666 他說:

      您好,非常感謝。 我已經斷開與OpenVZ的連接一段時間了,但希望能對您有所幫助。

      首先,如果沒有什麼可以阻止的,我建議您使用Debian 8模板創建一個新容器,並在那裡遷移所有配置,數據和軟件。 一旦一切正常,您只需要更改舊容器的IP並將其放入新容器中即可。 實際上,這是最簡單,最快的方法。

      如果由於某種原因您無法執行此操作,則理論上可以從容器本身內部更新發行版。 您只需要像在普通Debian機器上一樣進行操作即可。 但是我聽到有問題的人的聲音,儘管如果您保持主機內核的更新不會發生這種情況。 無論如何,您可以做的最好的事情就是嘗試使用debian 7用另一個容器進行更新,以確保它不會出現問題。 如果有任何發現,這裡有一些頁面討論如何修復(英語):

      https://www.skelleton.net/2015/05/04/upgrading-debian-guests-on-proxmox-to-jessie/
      http://justinfranks.com/linux-administration/upgrade-openvz-vps-from-debian-7-wheezy-64-bit-to-debian-8-jessie-64-bit
      http://forum.openvz.org/index.php?t=msg&goto=51280&

      第一個特別有趣,它是最新的,並逐步解釋了所有內容。

      即使這樣,我也不必告訴您,無論您做出什麼決定,在生產容器之前不做任何事情,而不必先進行熱備份或冷備份,以防萬一。

      希望對您有幫助。 長壽與繁榮

      1.    達里奧 他說:

        感謝您的回复,幫助非常好,我將閱讀本文並進行一些測試,然後再告訴您哪個是最好的問候。

  6.   雷蒙黴素 他說:

    您好,我在openvz容器中遇到錯誤,找不到任何邏輯。 看到帶有部分評論的博客,我在這裡啟動查詢,以防有人可以幫助我。

    我已經毫無問題地安裝了openvz並沒有問題地創建了容器,在其中一個容器中安裝了一個簡單的Web服務並進行了訪問。

    事實是,當嘗試執行更新時,例​​如:»apt-get update»,這告訴我它與存儲庫的ips沒有關係,並且不下載任何內容,因此我無法更新或安裝新軟件包。 如果您對這些ip進行ping操作,我會錯過什麼嗎?

    提前致謝

    1.    雷蒙黴素 他說:

      再次問好。

      我花了很長時間回答,但是很久以前我找到了解決方案,所以我不想把它擱淺。

      問題主要是我不是很聰明,通常是大多數問題的根源,我有一個nateo將通過端口80到達的所有內容重定向到反向代理,在執行apt-get更新時,它啟動了它但是答案被重定向到上述團隊,正確配置iptables可以解決問題,一切順理成章,這是合乎邏輯的。

      感謝您在OpenVZ上的輸入,它幫助我很好地配置了它

      PS:我了解到更新是通過端口80完成的,我想我會使用1000中的任意一個...

      問候。